{"version":3,"file":"js/bundle.main.xxxxxxxx.min.js","mappings":"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ACA,uCACA,sBACA,yBACA,sBACA,cACA,sBACA,mBACH,CATD,CAAYA,IAAAA,EAAwB,KAapC,SAAYC,GACR,4BACA,+CACA,yCACA,4CACH,CALD,CAAYA,IAAAA,EAAa,KAwBzB,SAAYC,GACR,4CACA,sCACA,4BACA,mBACH,CALD,CAAYA,IAAAA,EAAsB,KAOlC,SAAYC,GACR,gBACA,oBACA,eACH,CAJD,CAAYA,IAAAA,EAAsB,KAYlC,SAAYC,GACR,cACA,yBACA,4BACA,qBACH,CALD,CAAYA,IAAAA,EAAiB,KAY7B,SAAYC,GACR,cACA,yBACA,4BACA,qBACH,CALD,CAAYA,IAAAA,EAAe,KAgB3B,SAAYC,GACR,sBACA,0BACA,gBACA,gBACA,SACH,CAND,CAAYA,IAAAA,EAAoB,KAYhC,SAAYC,GACR,+BACA,6BACA,kBACA,cACA,0CACA,yBACH,CAPD,CAAYA,IAAAA,EAAS,KAiCrB,SAAYC,GACR,oBACA,oBACA,iBACH,CAJD,CAAYA,IAAAA,EAAe,KAU3B,SAAYC,GACR,0CACA,sBACA,sBACA,oBACA,mBACH,CAND,CAAYA,IAAAA,EAAyB,KAUrC,SAAYC,GACR,0CACA,sBACA,sBACA,sBACA,oBACA,mBACH,CAPD,CAAYA,IAAAA,EAAkB,KAW9B,SAAYC,GACR,gBACA,cACA,cACA,cACA,+BACH,CAND,CAAYA,IAAAA,EAAiB,KAU7B,SAAYC,GACR,2DACA,yCACA,qDACA,4CACA,wCACA,YACA,YACA,cACA,qCACA,sBACA,wBACA,oHACA,8HACA,+CACH,CAfD,CAAYA,IAAAA,EAAgB,KAiB5B,SAAYC,GACR,cACA,sBACA,gCACH,CAJD,CAAYA,IAAAA,EAAoB,KAYhC,SAAYC,GACR,UACA,YACA,UACA,cACA,WACH,CAND,CAAYA,IAAAA,EAAoB,KAehC,SAAYC,GACR,oCACA,8BACA,2BACH,CAJD,CAAYA,IAAAA,EAAwB,KAOpC,SAAYC,GACR,gBACA,kBACA,mBACH,CAJD,CAAYA,IAAAA,EAAe,KAY3B,SAAYC,GACR,2BACA,cACA,yBACH,CAJD,CAAYA,IAA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","sources":["webpack:///./common/store/alerts/types.ts","webpack:///./common/contexts/partner-context.ts","webpack:///./broker-admin/store/broker-tour-details/channels.ts","webpack:///./common/store/rfqs/selectors.ts","webpack:///./common/store/rfq-details/selectors.ts","webpack:///./broker-admin/store/tender-calculator/selectors.ts","webpack:///./common/store/transport-orders/actions.ts","webpack:///./common/store/driver-search/actions.ts","webpack:///./common/utils/hooks/useAsyncFormErrors.ts","webpack:///./common/store/carrier-contracts/channels.ts","webpack:///./common/store/rfq-details/types.ts","webpack:///./common/contexts/partner-permission-context.ts","webpack:///./common/icons/LogoIcon.tsx","webpack:///./common/store/carriers-utilization/utils.ts","webpack:///./common/store/driver-assigment/selectors.ts","webpack:///./broker-admin/store/statistics/selectors.ts","webpack:///./common/utils/logger.ts","webpack:///./common/utils/view-event-channel.ts","webpack:///./broker-admin/store/spot/selectors.ts","webpack:///./common/store/documents/types.ts","webpack:///./common/store/consistent-state-machine/channels.ts","webpack:///./common/store/countries-dict/actions.ts","webpack:///./common/store/settings/selectors.ts","webpack:///./broker-admin/store/broker-tour-edit/selectors.ts","webpack:///./common/store/shipper-contract-lane-creation/selectors.ts","webpack:///./common/layouts/LeftMenuLayout/Navigation/Logo/Logo.tsx","webpack:///./common/layouts/LeftMenuLayout/Navigation/Logo/Logo.scss?011e","webpack:///./common/icons/HelpIcon.tsx","webpack:///./common/layouts/LeftMenuLayout/Navigation/Navigation.tsx","webpack:///./common/layouts/LeftMenuLayout/Navigation/Navigation.scss?852d","webpack:///./common/utils/hooks/useWindowSize.ts","webpack:///./common/layouts/LeftMenuLayout/LeftMenuLayout.tsx","webpack:///./common/layouts/LeftMenuLayout/LeftMenuLayout.scss?66a2","webpack:///./common/store/shipper-suggest/reducer.ts","webpack:///./common/store/vehicle-schedules/actions.ts","webpack:///./common/store/auth/types.ts","webpack:///./broker-admin/store/spot/types.ts","webpack:///./common/store/user/actions.ts","webpack:///./common/components/TraceIdLabel/TraceIdLabel.tsx","webpack:///./common/components/TraceIdLabel/TraceIdLabel.scss?aab3","webpack:///./common/store/transport-orders/reducer.ts","webpack:///./common/store/auth/actions.ts","webpack:///./common/store/shipper-suggest/types.ts","webpack:///./common/icons/LockIcon.tsx","webpack:///./common/utils/api/tranziit/errors/parse-errors.ts","webpack:///./common/utils/api/do-fetch.ts","webpack:///./common/utils/stringify-query.ts","webpack:///./common/utils/api/errors/not-implemented-error.ts","webpack:///./common/utils/api/tranziit/base-tranziit-api.ts","webpack:///./common/components/Modal/ModalDialogActions/ModalDialogActions.tsx","webpack:///./common/components/Modal/ModalDialogActions/ModalDialogActions.scss?598d","webpack:///./broker-admin/store/broker-team-edit/slice.ts","webpack:///./common/store/tenders-stats/selectors.ts","webpack:///./common/store/carrier-contracts/types.ts","webpack:///./common/components/Input/Input.tsx","webpack:///./common/components/Input/Input.scss?6e48","webpack:///./common/utils/features/client-features-config.ts","webpack:///./common/store/transport-order-details/reducer.ts","webpack:///./broker-admin/store/price-settings/additional-services/types.ts","webpack:///./common/utils/url-helpers/app-url.ts","webpack:///./common/utils/api/tranziit/errors/tranziit-api-errors.ts","webpack:///./common/store/grouped-notification-counts/types.ts","webpack:///./common/utils/hooks/useQuery.ts","webpack:///./common/store/documents/reducer.ts","webpack:///./common/store/rfqs/types.ts","webpack:///./common/store/order-creation/channels.ts","webpack:///./common/store/countries-dict/selectors.ts","webpack:///./common/icons/XLSIcon.tsx","webpack:///./common/icons/ControlLoaderIcon.tsx","webpack:///./common/utils/hooks/useChannelSubscribe.ts","webpack:///./broker-admin/store/partner/details/actions.ts","webpack:///./common/icons/DocIcon.tsx","webpack:///./broker-admin/store/broker-rfq-stats/slice.ts","webpack:///./broker-admin/store/price-settings/system-settings/actions.ts","webpack:///./common/layouts/SideBars/hooks.tsx","webpack:///./common/store/subject-logs/utils.ts","webpack:///./common/store/assets/slice.ts","webpack:///./common/utils/api/auth/base-security-auth-api.ts","webpack:///./common/utils/api/auth/base-auth-service.ts","webpack:///./common/utils/api/auth/firebase-auth-service.ts","webpack:///./common/utils/api/auth/keycloak-auth-service.ts","webpack:///./common/utils/api/auth/factory.ts","webpack:///./common/store/gps-tracking-status/constants.ts","webpack:///./broker-admin/store/price-settings/rates/channels.ts","webpack:///./broker-admin/store/invoices/channels.ts","webpack:///./common/store/trucks-dict/types.ts","webpack:///./carrier/utils/api/carrier-tranziit/api.ts","webpack:///./broker-admin/store/broker-teams/selectors.ts","webpack:///./common/store/drivers/actions.ts","webpack:///./broker-admin/store/spot-requests-stats/actions.ts","webpack:///./common/contexts/features.ts","webpack:///./common/store/notifications/channels.ts","webpack:///./broker-admin/store/spot-requests/actions.ts","webpack:///./common/store/partner-suggest/slice.ts","webpack:///./common/store/rfqs-stats/types.ts","webpack:///./common/store/asset-track/actions.ts","webpack:///./common/store/members/channels.ts","webpack:///./broker-admin/store/dispatchers/selectors.ts","webpack:///./common/store/documents/actions.ts","webpack:///./common/utils/users.ts","webpack:///./common/utils/additional-services.ts","webpack:///./common/utils/distance.ts","webpack:///./common/store/vehicle-schedules/selectors.ts","webpack:///./broker-admin/store/price-settings/rates/actions.ts","webpack:///./common/utils/url-helpers/auth-return-url.ts","webpack:///./common/utils/request-status.ts","webpack:///./common/icons/InfoIcon.tsx","webpack:///./broker-admin/store/price-settings/system-settings/types.ts","webpack:///./broker-admin/store/tender-calculator/slice.ts","webpack:///./common/utils/hooks/usePartnerContext.ts","webpack:///./broker-admin/store/spot-requests-stats/types.ts","webpack:///./design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger.tsx","webpack:///./design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger.scss?1838","webpack:///./broker-admin/store/broker-team-edit/selectors.ts","webpack:///./broker-admin/store/price-settings/system-settings/selectors.ts","webpack:///./broker-admin/store/broker-tour-stats/slice.ts","webpack:///./common/components/AsyncDictCountryNameLabel/AsyncDictCountryNameLabel.tsx","webpack:///./broker-admin/store/partners/selectors.ts","webpack:///./common/store/alerts/models.ts","webpack:///./broker-admin/store/broker-order-assigment/selectors.ts","webpack:///./common/store/vehicle-schedules/channels.ts","webpack:///./common/store/company/channels.ts","webpack:///./common/components/LoaderTitle/LoaderTitle.tsx","webpack:///./common/components/LoaderTitle/LoaderTitle.scss?f106","webpack:///./common/store/user/utils.ts","webpack:///./common/store/user/sagas.ts","webpack:///./common/store/auth/sagas.ts","webpack:///./common/utils/check-need-request.ts","webpack:///./common/store/company/sagas.ts","webpack:///./common/utils/semaphore-saga.ts","webpack:///./common/store/trailers-dict/sagas.ts","webpack:///./common/utils/download-file.ts","webpack:///./common/store/trailers/sagas.ts","webpack:///./common/store/trucks-dict/sagas.ts","webpack:///./common/store/trucks/sagas.ts","webpack:///./common/store/errors/utils.ts","webpack:///./common/store/errors/sagas.ts","webpack:///./broker-admin/store/partners/sagas.ts","webpack:///./broker-admin/store/partners-stats/sagas.ts","webpack:///./broker-admin/store/managers/sagas.ts","webpack:///./broker-admin/store/dispatchers/sagas.ts","webpack:///./broker-admin/store/partner/details/sagas.ts","webpack:///./broker-admin/store/partner/details/utils/normalize-partner-details.ts","webpack:///./broker-admin/store/partner/rfq-stats/sagas.ts","webpack:///./broker-admin/store/partner/sagas.ts","webpack:///./common/store/countries-dict/sagas.ts","webpack:///./common/store/documents/utils/prepare-document.ts","webpack:///./common/store/documents/channels.ts","webpack:///./common/utils/download-headers.ts","webpack:///./common/store/documents/sagas.ts","webpack:///./common/store/documents-dict/utils/prepare-dict-document.ts","webpack:///./common/store/documents-dict/sagas.ts","webpack:///./broker-admin/store/price-settings/rates/sagas.ts","webpack:///./broker-admin/store/price-settings/rules/sagas.ts","webpack:///./common/store/settings/types.ts","webpack:///./broker-admin/utils/api/spot-broker-tranziit/api.ts","webpack:///./broker-admin/store/price-settings/system-settings/sagas.ts","webpack:///./common/store/settings/actions.ts","webpack:///./broker-admin/store/price-settings/additional-services/sagas.ts","webpack:///./broker-admin/store/price-settings/additional-services/utils.ts","webpack:///./broker-admin/store/price-settings/sagas.ts","webpack:///./broker-admin/store/broker-order-assigment/sagas.ts","webpack:///./broker-admin/store/broker-order-assigment/utils/convert-assets-search-response.ts","webpack:///./broker-admin/store/broker-order-assigment/utils.ts","webpack:///./common/store/vehicle-schedules/constants.ts","webpack:///./common/store/vehicle-schedules/sagas.ts","webpack:///./common/store/carriers-utilization/sagas.ts","webpack:///./common/store/carrier-suggest/sagas.ts","webpack:///./common/store/shipper-suggest/sagas.ts","webpack:///./common/store/additional-services-dict/sagas.ts","webpack:///./common/store/additional-services-dict/utils.ts","webpack:///./common/store/order-creation/utils/prepare-price-offer.ts","webpack:///./common/store/order-creation/utils/prepare-rfq.ts","webpack:///./common/store/order-creation/utils/get-default-additional-services.ts","webpack:///./common/store/orders/channels.ts","webpack:///./shipper/utils/api/shipper-tranziit/api.ts","webpack:///./common/store/order-creation/sagas.ts","webpack:///./common/store/order-creation/utils/create-reverse-query.ts","webpack:///./common/store/order-creation/utils/prepare-address-point.ts","webpack:///./common/store/order-creation/utils/prepare-reserve.ts","webpack:///./common/store/order-creation/utils/preview-reverse-query.ts","webpack:///./common/store/order-creation/utils/prepare-reserve-preview.ts","webpack:///./common/store/order-creation/utils/get-reserve-query-correction.ts","webpack:///./common/store/order-creation/utils/get-query-modify-event-after-reserve.ts","webpack:///./common/store/order-creation/utils/get-preview-reserve-query-correction.ts","webpack:///./broker-admin/store/broker-orders/sagas.ts","webpack:///./broker-admin/store/broker-order-details/sagas.ts","webpack:///./broker-admin/store/broker-order-stats/slice.ts","webpack:///./broker-admin/store/broker-order-stats/sagas.ts","webpack:///./broker-admin/store/broker-tours/channels.ts","webpack:///./broker-admin/store/broker-tours/sagas.ts","webpack:///./broker-admin/store/broker-teams/sagas.ts","webpack:///./broker-admin/store/broker-rfq-stats/sagas.ts","webpack:///./broker-admin/store/broker-tour-stats/sagas.ts","webpack:///./broker-admin/store/broker-tour-details/sagas.ts","webpack:///./broker-admin/store/broker-team-details/utils/normalize-team-details.ts","webpack:///./broker-admin/store/broker-team-details/sagas.ts","webpack:///./common/store/members/utils.ts","webpack:///./common/store/members/sagas.ts","webpack:///./common/store/drivers/sagas.ts","webpack:///./common/store/notifications/converter.ts","webpack:///./common/utils/watch-document-visibility-change-saga.ts","webpack:///./common/utils/interval-saga.ts","webpack:///./common/utils/watch-document-visibility-change-or-interval-saga.ts","webpack:///./common/utils/watch-document-visible-saga.ts","webpack:///./common/store/notifications/constants.ts","webpack:///./common/store/notifications/utils/filter-new-notifications.ts","webpack:///./common/store/notifications/sagas.ts","webpack:///./common/utils/broadcast-channels/common.ts","webpack:///./broker-admin/store/notifications/sagas.ts","webpack:///./common/store/asset-track/sagas.ts","webpack:///./common/store/carrier-contracts/sagas.ts","webpack:///./common/store/transport-orders/sagas.ts","webpack:///./common/store/transport-order-details/sagas.ts","webpack:///./common/store/grouped-notification-counts/constants.ts","webpack:///./common/store/grouped-notification-counts/sagas.ts","webpack:///./common/store/gps-tracking-status/sagas.ts","webpack:///./common/store/alerts/sagas.ts","webpack:///./common/store/settings/sagas.ts","webpack:///./common/store/driver-search/sagas.ts","webpack:///./broker-admin/store/statistics/sagas.ts","webpack:///./broker-admin/store/spot-requests/sagas.ts","webpack:///./broker-admin/store/spot-requests-stats/sagas.ts","webpack:///./broker-admin/store/spot-request-details/sagas.ts","webpack:///./broker-admin/store/spot/sagas.ts","webpack:///./common/store/spot-assets-assigment/sagas.ts","webpack:///./common/store/driver-assigment/sagas.ts","webpack:///./broker-admin/store/invoices/sagas.ts","webpack:///./common/store/shipper-contracts/sagas.ts","webpack:///./common/store/create-company/sagas.ts","webpack:///./common/store/shipper-contract-lanes/sagas.ts","webpack:///./common/store/shipper-contract-lane-creation/sagas.ts","webpack:///./common/store/shipper-contract-lane-details/sagas.ts","webpack:///./common/store/country-settings-dict/sagas.ts","webpack:///./common/store/consistent-state-machine/sagas.ts","webpack:///./common/store/rfqs/sagas.ts","webpack:///./common/store/rfqs-stats/sagas.ts","webpack:///./common/store/rfq-details/sagas.ts","webpack:///./common/store/rfqs-changes/sagas.ts","webpack:///./common/store/auth/reducer.ts","webpack:///./common/store/user/reducer.ts","webpack:///./common/store/company/reducer.ts","webpack:///./common/store/errors/types.ts","webpack:///./common/store/errors/reducer.ts","webpack:///./common/store/trailers-dict/reducer.ts","webpack:///./common/store/trucks-dict/reducer.ts","webpack:///./broker-admin/store/partners/reducer.ts","webpack:///./broker-admin/store/partners-stats/reducer.ts","webpack:///./broker-admin/store/managers/reducer.ts","webpack:///./broker-admin/store/dispatchers/reducer.ts","webpack:///./broker-admin/store/partner/details/reducer.ts","webpack:///./broker-admin/store/partner/reducer.ts","webpack:///./common/store/countries-dict/reducer.ts","webpack:///./broker-admin/store/price-settings/rates/reducer.ts","webpack:///./broker-admin/store/price-settings/rules/reducer.ts","webpack:///./broker-admin/store/price-settings/system-settings/reducer.ts","webpack:///./broker-admin/store/price-settings/additional-services/reducer.ts","webpack:///./broker-admin/store/price-settings/reducer.ts","webpack:///./common/utils/assignment.ts","webpack:///./broker-admin/store/broker-order-assigment/reducer.ts","webpack:///./common/store/carriers-utilization/reducer.ts","webpack:///./common/store/carrier-suggest/reducer.ts","webpack:///./common/store/order-creation/reducer.ts","webpack:///./common/store/notifications/reducer.ts","webpack:///./common/store/grouped-notification-counts/reducer.ts","webpack:///./common/store/gps-tracking-status/reducer.ts","webpack:///./common/store/alerts/reducer.ts","webpack:///./common/store/settings/reducer.ts","webpack:///./common/store/driver-search/reducer.ts","webpack:///./broker-admin/store/statistics/reducer.ts","webpack:///./broker-admin/store/spot-requests/reducer.ts","webpack:///./broker-admin/store/spot-requests-stats/reducer.ts","webpack:///./broker-admin/store/spot/reducer.ts","webpack:///./common/store/spot-assets-assigment/assignment.ts","webpack:///./common/store/spot-assets-assigment/reducer.ts","webpack:///./common/store/driver-assigment/reducer.ts","webpack:///./broker-admin/store/invoices/reducer.ts","webpack:///./common/store/rfqs-stats/reducer.ts","webpack:///./common/store/rfqs-changes/reducer.ts","webpack:///./common/store/subject-logs/models.ts","webpack:///./common/store/subject-logs/sagas.ts","webpack:///./common/store/subject-logs/converter.ts","webpack:///./common/store/carrier-contract-details/sagas.ts","webpack:///./common/store/shipper-contract-details/sagas.ts","webpack:///./common/store/routing-geometry/constants.ts","webpack:///./common/store/routing-geometry/sagas.ts","webpack:///./common/store/state-machine/sagas.ts","webpack:///./common/utils/api/errors/api-request-error-type-guard.ts","webpack:///./common/store/country-settings-dict/reducer.ts","webpack:///./broker-admin/store/order-edit-context/utils/get-order-id.ts","webpack:///./broker-admin/store/order-edit-context/utils/prepare-address-point.ts","webpack:///./broker-admin/store/order-edit-context/utils/convert-route-point-type.ts","webpack:///./broker-admin/store/order-edit-context/utils/get-corrected-stops.ts","webpack:///./broker-admin/store/order-edit-context/utils/get-added-stop-aliases.ts","webpack:///./broker-admin/store/order-edit-context/utils/get-deleted-stop-aliases.ts","webpack:///./broker-admin/store/order-edit-context/utils/get-order-stop-aliases.ts","webpack:///./broker-admin/store/order-edit-context/utils/find-first-before-stop.ts","webpack:///./broker-admin/store/order-edit-context/utils/find-context-stop-by-alias.ts","webpack:///./broker-admin/store/order-edit-context/sagas.ts","webpack:///./broker-admin/store/broker-order-edit/sagas.ts","webpack:///./broker-admin/store/broker-tour-edit/sagas.ts","webpack:///./common/store/partner-suggest/sagas.ts","webpack:///./broker-admin/store/deadhead-creation/utils/query-modifiers.ts","webpack:///./broker-admin/store/deadhead-creation/utils/get-deleted-stop-fake-ids.ts","webpack:///./broker-admin/store/deadhead-creation/utils/get-added-stop-fake-ids.ts","webpack:///./broker-admin/store/deadhead-creation/utils/get-context-route-stop-hash.ts","webpack:///./broker-admin/store/deadhead-creation/utils/fake-id-by-hash.ts","webpack:///./broker-admin/store/deadhead-creation/utils/get-order-stop-fakse-ids.ts","webpack:///./broker-admin/store/deadhead-creation/sagas.ts","webpack:///./common/store/time-zones/sagas.ts","webpack:///./common/store/assets/sagas.ts","webpack:///./broker-admin/store/broker-team-edit/sagas.ts","webpack:///./common/store/papers-edit/utils/parse-response-data.ts","webpack:///./common/store/papers-edit/sagas.ts","webpack:///./broker-admin/store/tender-calculator/sagas.ts","webpack:///./common/store/tenders-stats/sagas.ts","webpack:///./common/store/tenders/sagas.ts","webpack:///./broker-admin/store/index.tsx","webpack:///./common/store/order-creation/utils/group-offers-by-dates-hash.ts","webpack:///./common/layouts/ChangePasswordPage/constants.ts","webpack:///./common/layouts/ChangePasswordPage/validate-form.ts","webpack:///./common/layouts/ChangePasswordPage/ChangePasswordPage.tsx","webpack:///./common/layouts/ChangePasswordPage/ChangePasswordPage.scss?db2d","webpack:///./common/layouts/ChangePasswordPage/async-validations.ts","webpack:///./common/store/errors/selectors.ts","webpack:///./common/components/ErrorModal/ErrorDetails/ErrorDetails.tsx","webpack:///./common/components/ErrorModal/ErrorDetails/ErrorDetails.scss?2d03","webpack:///./common/components/ErrorModal/ErrorTraceId/ErrorTraceId.tsx","webpack:///./common/components/ErrorModal/ErrorTraceId/ErrorTraceId.scss?5d50","webpack:///./common/components/ErrorModal/ErrorModal.tsx","webpack:///./common/components/ErrorModal/ErrorModal.scss?03de","webpack:///./common/store/errors/actions.ts","webpack:///./common/layouts/AuthLoader/AuthLoader.tsx","webpack:///./common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout.tsx","webpack:///./common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout.scss?e74f","webpack:///./common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel.tsx","webpack:///./common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel.scss?a4de","webpack:///./common/components/notification-cards/SpotBidLostCard/SpotBidLostCard.tsx","webpack:///./common/components/notification-cards/entities/NotificationSubjectType/NotificationSubjectType.tsx","webpack:///./common/components/notification-cards/entities/NotificationSubjectType/NotificationSubjectType.scss?7133","webpack:///./common/components/notification-cards/entities/CityName/CityName.tsx","webpack:///./common/components/notification-cards/entities/CityName/CityName.scss?72db","webpack:///./common/components/notification-cards/entities/SubjectLink/SubjectLink.tsx","webpack:///./common/components/notification-cards/entities/SubjectLink/SubjectLink.scss?0b3b","webpack:///./common/components/notification-cards/StatusChangedCard/StatusChangedCard.tsx","webpack:///./common/components/notification-cards/StatusChangedCard/StatusChangedCard.scss?c517","webpack:///./common/components/status-colored/TransportOrderColoredStatus/TransportOrderColoredStatus.tsx","webpack:///./common/components/status/LoadStatus/LoadStatus.tsx","webpack:///./common/components/status-colored/ShipmentColoredStatus/ShipmentColoredStatus.tsx","webpack:///./common/components/toasts/utils.tsx","webpack:///./common/components/status-colored/TourColoredStatus/TourColoredStatus.tsx","webpack:///./common/components/notification-cards/SpotRequestStatusCard/SpotRequestStatusCard.tsx","webpack:///./common/components/notification-cards/SpotBidStatusCard/SpotBidStatusCard.tsx","webpack:///./common/components/notification-cards/SpotBidStatusCard/SpotBidStatusCard.scss?0245","webpack:///./broker-admin/components/notification-cards/entities/ContractName/ContractName.tsx","webpack:///./broker-admin/components/notification-cards/entities/ContractName/ContractName.scss?375b","webpack:///./broker-admin/components/notification-cards/RevokedPartnerShipperContractCard/RevokedPartnerShipperContractCard.tsx","webpack:///./broker-admin/components/notification-cards/RevokedPartnerShipperContractCard/RevokedPartnerShipperContractCard.scss?a679","webpack:///./broker-admin/components/notification-cards/ExpiredPartnerShipperContractCard/ExpiredPartnerShipperContractCard.tsx","webpack:///./broker-admin/components/notification-cards/ExpiredPartnerShipperContractCard/ExpiredPartnerShipperContractCard.scss?4d5b","webpack:///./broker-admin/components/notification-cards/ExpireSoonPartnerShipperContractCard/ExpireSoonPartnerShipperContractCard.tsx","webpack:///./broker-admin/components/notification-cards/ExpireSoonPartnerShipperContractCard/ExpireSoonPartnerShipperContractCard.scss?970d","webpack:///./broker-admin/components/notification-cards/UpdatedPartnerCarrierContractCard/UpdatedPartnerCarrierContractCard.tsx","webpack:///./broker-admin/components/notification-cards/UpdatedPartnerCarrierContractCard/UpdatedPartnerCarrierContractCard.scss?61e7","webpack:///./broker-admin/components/notification-cards/RevokedPartnerCarrierContractCard/RevokedPartnerCarrierContractCard.tsx","webpack:///./broker-admin/components/notification-cards/RevokedPartnerCarrierContractCard/RevokedPartnerCarrierContractCard.scss?a454","webpack:///./broker-admin/components/notification-cards/ExpiredPartnerCarrierContractCard/ExpiredPartnerCarrierContractCard.tsx","webpack:///./broker-admin/components/notification-cards/ExpiredPartnerCarrierContractCard/ExpiredPartnerCarrierContractCard.scss?956f","webpack:///./broker-admin/components/notification-cards/ExpireSoonPartnerCarrierContractCard/ExpireSoonPartnerCarrierContractCard.tsx","webpack:///./broker-admin/components/notification-cards/ExpireSoonPartnerCarrierContractCard/ExpireSoonPartnerCarrierContractCard.scss?1aee","webpack:///./broker-admin/components/notification-cards/UpdatedPartnerShipperContractCard/UpdatedPartnerShipperContractCard.tsx","webpack:///./broker-admin/components/notification-cards/UpdatedPartnerShipperContractCard/UpdatedPartnerShipperContractCard.scss?1b79","webpack:///./common/components/AsyncDictDocumentNameLabel/AsyncDictDocumentNameLabel.tsx","webpack:///./broker-admin/components/notification-cards/entities/PartnerName/PartnerName.tsx","webpack:///./broker-admin/components/notification-cards/entities/PartnerName/PartnerName.scss?722b","webpack:///./broker-admin/components/notification-cards/CompletedPartnerDocumentCard/CompletedPartnerDocumentCard.tsx","webpack:///./broker-admin/components/notification-cards/CompletedPartnerDocumentCard/CompletedPartnerDocumentCard.scss?22e4","webpack:///./broker-admin/components/notification-cards/CompletedPartnerShipperContractCard/CompletedPartnerShipperContractCard.tsx","webpack:///./broker-admin/components/notification-cards/CompletedPartnerShipperContractCard/CompletedPartnerShipperContractCard.scss?18bd","webpack:///./broker-admin/components/notification-cards/CompletedPartnerCarrierContractCard/CompletedPartnerCarrierContractCard.tsx","webpack:///./broker-admin/components/notification-cards/CompletedPartnerCarrierContractCard/CompletedPartnerCarrierContractCard.scss?a89b","webpack:///./broker-admin/components/notification-cards/entities/ShipperContractLaneId/ShipperContractLaneId.tsx","webpack:///./broker-admin/components/notification-cards/entities/ShipperContractLaneId/ShipperContractLaneId.scss?21e1","webpack:///./broker-admin/components/notification-cards/UpdatedPartnerShipperLaneContractCard/UpdatedPartnerShipperLaneContractCard.tsx","webpack:///./broker-admin/components/notification-cards/UpdatedPartnerShipperLaneContractCard/UpdatedPartnerShipperLaneContractCard.scss?ac12","webpack:///./broker-admin/components/notification-cards/RevokedPartnerShipperLaneContractCard/RevokedPartnerShipperLaneContractCard.tsx","webpack:///./broker-admin/components/notification-cards/RevokedPartnerShipperLaneContractCard/RevokedPartnerShipperLaneContractCard.scss?c533","webpack:///./broker-admin/components/notification-cards/ExpiredPartnerShipperLaneContractCard/ExpiredPartnerShipperLaneContractCard.tsx","webpack:///./broker-admin/components/notification-cards/ExpiredPartnerShipperLaneContractCard/ExpiredPartnerShipperLaneContractCard.scss?90b2","webpack:///./broker-admin/components/notification-cards/CompletedPartnerShipperLaneContractCard/CompletedPartnerShipperLaneContractCard.tsx","webpack:///./broker-admin/components/notification-cards/CompletedPartnerShipperLaneContractCard/CompletedPartnerShipperLaneContractCard.scss?76b6","webpack:///./broker-admin/components/notification-cards/ExpireSoonPartnerShipperLaneContractCard/ExpireSoonPartnerShipperLaneContractCard.tsx","webpack:///./broker-admin/components/notification-cards/ExpireSoonPartnerShipperLaneContractCard/ExpireSoonPartnerShipperLaneContractCard.scss?0f19","webpack:///./broker-admin/components/notification-cards/entities/BrokerOrderNumber/BrokerOrderNumber.tsx","webpack:///./broker-admin/components/notification-cards/entities/BrokerOrderNumber/BrokerOrderNumber.scss?ae07","webpack:///./broker-admin/components/notification-cards/TransportationOrderMileagAndPaymentChangedCard/TransportationOrderMileagAndPaymentChangedCard.tsx","webpack:///./broker-admin/components/notification-cards/TransportationOrderMileagAndPaymentChangedCard/TransportationOrderMileagAndPaymentChangedCard.scss?4f30","webpack:///./common/components/notification-cards/ShipmentWasCanceledCard/ShipmentWasCanceledCard.tsx","webpack:///./common/components/notification-cards/shared/FieldName/FieldName.tsx","webpack:///./common/components/notification-cards/shared/FieldValue/utils/format-time-slot-value.ts","webpack:///./common/components/notification-cards/shared/FieldValue/FieldValue.tsx","webpack:///./common/components/notification-cards/shared/FieldValue/utils/safe-parse-number.ts","webpack:///./common/components/notification-cards/shared/ChangedFieldLabel/ChangedFieldLabel.tsx","webpack:///./common/components/notification-cards/shared/NotificationVerticalRow/NotificationVerticalRow.tsx","webpack:///./common/components/notification-cards/shared/NotificationVerticalRowsLayout/NotificationVerticalRowsLayout.tsx","webpack:///./common/components/notification-cards/shared/NotificationVerticalRowsLayout/NotificationVerticalRowsLayout.scss?cfe8","webpack:///./common/components/notification-cards/ShipmentWasUpdatedCard/ShipmentWasUpdatedCard.tsx","webpack:///./common/components/notification-cards/CarrierNoShowForShipmentCard/CarrierNoShowForShipmentCard.tsx","webpack:///./common/components/notification-cards/MissedDeliveryForShipmentCard/MissedDeliveryForShipmentCard.tsx","webpack:///./broker-admin/components/notification-cards/entities/TeamName/TeamName.tsx","webpack:///./broker-admin/components/notification-cards/entities/TeamName/TeamName.scss?ac52","webpack:///./broker-admin/components/notification-cards/InvitedToTeamCard/InvitedToTeamCard.tsx","webpack:///./broker-admin/components/notification-cards/InvitedToTeamCard/InvitedToTeamCard.scss?47ae","webpack:///./broker-admin/components/notification-cards/RemovedFromTeamCard/RemovedFromTeamCard.tsx","webpack:///./broker-admin/components/notification-cards/RemovedFromTeamCard/RemovedFromTeamCard.scss?83fb","webpack:///./common/components/notification-cards/OrderEditedCard/OrderEditedCard.tsx","webpack:///./common/components/notification-cards/OrderEditedCard/OrderEditedCard.scss?b385","webpack:///./broker-admin/components/notification-cards/TransportationOrderDeclinedCard/TransportationOrderDeclinedCard.tsx","webpack:///./broker-admin/components/notification-cards/TransportationOrderDeclinedCard/TransportationOrderDeclinedCard.scss?268b","webpack:///./common/components/notification-cards/OrderWasPlacedCard/OrderWasPlacedCard.tsx","webpack:///./common/components/notification-cards/OrderWasCanceledCard/OrderWasCanceledCard.tsx","webpack:///./common/components/status-colored/OrderColoredStatus/OrderColoredStatus.tsx","webpack:///./common/components/notification-cards/OrderStatusChangedCard/OrderStatusChangedCard.tsx","webpack:///./common/components/notification-cards/ShipmentStatusChangedCard/ShipmentStatusChangedCard.tsx","webpack:///./common/components/notification-cards/TourStatusChangedCard/TourStatusChangedCard.tsx","webpack:///./common/components/notification-cards/shared/StopLabel/StopLabel.tsx","webpack:///./common/components/notification-cards/shared/ChangedStopFieldLabel/ChangedStopFieldLabel.tsx","webpack:///./common/components/notification-cards/OrderRouteWasUpdatedCard/OrderRouteWasUpdatedCard.tsx","webpack:///./common/components/notification-cards/TourOutOfTimeToAssignCarrierCard/TourOutOfTimeToAssignCarrierCard.tsx","webpack:///./common/components/notification-cards/TourDelayingCard/TourDelayingCard.tsx","webpack:///./common/components/notification-cards/TourSpotExpiredCard/TourSpotExpiredCard.tsx","webpack:///./common/components/notification-cards/TourSpotCancelledCard/TourSpotCancelledCard.tsx","webpack:///./common/components/notification-cards/TourSpotPlacedCard/TourSpotPlacedCard.tsx","webpack:///./common/components/notification-cards/TransportationOrderStatusChangedCard/TransportationOrderStatusChangedCard.tsx","webpack:///./common/components/notification-cards/TransportationOrderWasDeclinedCard/TransportationOrderWasDeclinedCard.tsx","webpack:///./common/components/notification-cards/TransportationOrderWasCanceledCard/TransportationOrderWasCanceledCard.tsx","webpack:///./common/components/notification-cards/TransportationOrderWasPlacedCard/TransportationOrderWasPlacedCard.tsx","webpack:///./common/components/notification-cards/TransportationOrderWasUpdatedCard/TransportationOrderWasUpdatedCard.tsx","webpack:///./common/components/notification-cards/TransportationOrderAssetsAssignedCard/TransportationOrderAssetsAssignedCard.tsx","webpack:///./common/components/notification-cards/TransportationOrderAssetsUnassignedCard/TransportationOrderAssetsUnassignedCard.tsx","webpack:///./common/components/notification-cards/TransportationOrderDriverAssignedCard/TransportationOrderDriverAssignedCard.tsx","webpack:///./common/components/notification-cards/TransportationOrderDriverUnassignedCard/TransportationOrderDriverUnassignedCard.tsx","webpack:///./common/components/notification-cards/TransportationOrderOutOfTimeToAssignAssetsCard/TransportationOrderOutOfTimeToAssignAssetsCard.tsx","webpack:///./common/components/notification-cards/TransportationOrderOutOfTimeToAssignDriverCard/TransportationOrderOutOfTimeToAssignDriverCard.tsx","webpack:///./common/components/notification-cards/BusinessPartnerAddressVerificationCard/BusinessPartnerAddressVerificationCard.tsx","webpack:///./broker-admin/components/notification-cards/BusinessPartnerProfileUpdatedCard/BusinessPartnerProfileUpdatedCard.tsx","webpack:///./common/components/notification-cards/entities/AssetLink/AssetLink.tsx","webpack:///./common/components/notification-cards/WaypointUpdatedCard/WaypointUpdatedCard.tsx","webpack:///./common/components/notification-cards/UploadDocumentCard/UploadDocumentCard.tsx","webpack:///./common/components/notification-cards/ApprovedDocumentCard/ApprovedDocumentCard.tsx","webpack:///./common/components/notification-cards/ApprovedDocumentCard/ApprovedDocumentCard.scss?3f6b","webpack:///./common/components/notification-cards/RejectedDocumentCard/RejectedDocumentCard.tsx","webpack:///./common/components/notification-cards/RejectedDocumentCard/RejectedDocumentCard.scss?c179","webpack:///./common/components/notification-cards/RevokedDocumentCard/RevokedDocumentCard.tsx","webpack:///./common/components/notification-cards/RevokedDocumentCard/RevokedDocumentCard.scss?97aa","webpack:///./common/components/notification-cards/UpdatedDocumentCard/UpdatedDocumentCard.tsx","webpack:///./common/components/notification-cards/UpdatedDocumentCard/UpdatedDocumentCard.scss?3578","webpack:///./common/components/notification-cards/ExpireSoonDocumentCard/ExpireSoonDocumentCard.tsx","webpack:///./common/components/notification-cards/ExpireSoonDocumentCard/ExpireSoonDocumentCard.scss?5234","webpack:///./common/components/notification-cards/ExpiredDocumentCard/ExpiredDocumentCard.tsx","webpack:///./common/components/notification-cards/ExpiredDocumentCard/ExpiredDocumentCard.scss?a2ff","webpack:///./broker-admin/components/toasts/utils.tsx","webpack:///./common/components/OverlaysManager/OverlaysManager.scss?e449","webpack:///./common/components/toasts/Toast/Toast.tsx","webpack:///./common/components/toasts/Toast/Toast.scss?7a96","webpack:///./common/components/toasts/NotificationToastContent/NotificationToastContent.tsx","webpack:///./common/components/toasts/NotificationToastContent/NotificationToastContent.scss?4e1d","webpack:///./common/components/toasts/NotificationToastsManager/NotificationToastsManager.tsx","webpack:///./common/components/toasts/NotificationToastsManager/NotificationToastsManager.scss?a634","webpack:///./common/components/toasts/NotificationToastsManager/utils.ts","webpack:///./common/icons/SquareInfoIcon.tsx","webpack:///./common/icons/AddAccountDuotineIcon.tsx","webpack:///./common/icons/DeactivateUserIcon.tsx","webpack:///./common/icons/UserSettingsIcon.tsx","webpack:///./common/components/CopyTextButton/CopyTextButton.tsx","webpack:///./common/utils/clipboard.ts","webpack:///./common/components/toasts/footers/AssetFailedActionFooter/AssetFailedActionFooter.tsx","webpack:///./common/components/toasts/footers/AssetFailedActionFooter/AssetFailedActionFooter.scss?6969","webpack:///./common/components/toasts/AlertToastsManager/utils.tsx","webpack:///./common/store/alerts/selectors.ts","webpack:///./common/components/toasts/AlertToastsManager/AlertToastsManager.tsx","webpack:///./common/components/toasts/AlertToastsManager/AlertToastsManager.scss?1962","webpack:///./common/components/OverlaysManager/DevLocalizationLanguageSwitcher/DevLocalizationLanguageSwitcher.tsx","webpack:///./common/components/OverlaysManager/DevLocalizationLanguageSwitcher/DevLocalizationLanguageSwitcher.scss","webpack:///./common/components/OverlaysManager/OverlaysManager.tsx","webpack:///./common/components/ErrorBoundary/ErrorBoundary.tsx","webpack:///./common/components/QueryParamRouterAdapter/QueryParamRouterAdapter.tsx","webpack:///./common/components/AppQueryParamProvider/AppQueryParamProvider.tsx","webpack:///./common/components/PartnerPermissionsContextProvider/PartnerPermissionsContextProvider.tsx","webpack:///./common/components/RenderLogContextProvider/RenderLogContextProvider.tsx","webpack:///./common/components/AuthRedirectWatcher/AuthRedirectWatcher.tsx","webpack:///./common/components/AppRouter/AppRouter.tsx","webpack:///./broker-admin/layouts/App/App.tsx","webpack:///./broker-admin/layouts/App/App.scss?b23f","webpack:///./broker-admin/index.tsx","webpack:///./common/utils/hooks/useMenuVisibility.ts","webpack:///./common/store/carrier-suggest/types.ts","webpack:///./common/store/asset-track/reducer.ts","webpack:///./common/store/asset-track/selectors.ts","webpack:///./common/store/country-settings-dict/types.ts","webpack:///./broker-admin/store/order-edit-context/selectors.ts","webpack:///./common/utils/features/server-features-config.ts","webpack:///./common/utils/hooks/useFeaturesContextValue.ts","webpack:///./common/store/spot-assets-assigment/actions.ts","webpack:///./broker-admin/store/broker-tours/slice.ts","webpack:///./common/store/gps-tracking-status/selectors.ts","webpack:///./common/store/rfq-details/reducer.ts","webpack:///./broker-admin/components/toasts/models.ts","webpack:///./common/store/documents/selectors.ts","webpack:///./broker-admin/store/statistics/types.ts","webpack:///./common/store/trailers-dict/selectors.ts","webpack:///./common/store/documents-dict/reducer.ts","webpack:///./common/store/time-zones/selectors.ts","webpack:///./broker-admin/store/spot-request-details/actions.ts","webpack:///./common/utils/debug-info.ts","webpack:///./common/store/auth/selectors.ts","webpack:///./common/utils/permissions.ts","webpack:///./broker-admin/store/spot-requests-stats/selectors.ts","webpack:///./common/store/drivers/reducer.ts","webpack:///./broker-admin/store/broker-tour-edit/slice.ts","webpack:///./common/store/country-settings-dict/selectors.ts","webpack:///./common/store/routing-geometry/slice.ts","webpack:///./common/components/Modal/ModalContent/ModalContent.tsx","webpack:///./common/components/Modal/ModalContent/ModalContent.scss?ed03","webpack:///./common/store/company/types.ts","webpack:///./common/store/rfqs-stats/actions.ts","webpack:///./common/icons/FilledCircleIcon.tsx","webpack:///./common/store/order-creation/selectors.ts","webpack:///./common/store/shipper-contract-details/selectors.ts","webpack:///./common/components/status/TourStatus/TourStatus.tsx","webpack:///./broker-admin/store/dispatchers/types.ts","webpack:///./broker-admin/store/price-settings/rates/selectors.ts","webpack:///./common/components/notifications/NotificationsBarContent/NotificationCardBody/NotificationCardBody.tsx","webpack:///./common/components/notifications/NotificationsBarContent/NotificationCardBody/NotificationCardBody.scss?20be","webpack:///./common/store/shipper-contracts/slice.ts","webpack:///./common/store/vehicle-schedules/types.ts","webpack:///./common/store/auth/constants.ts","webpack:///./broker-admin/store/price-settings/additional-services/selectors.ts","webpack:///./common/store/user/types.ts","webpack:///./broker-admin/store/broker-order-assigment/types.ts","webpack:///./broker-admin/store/deadhead-creation/slice.ts","webpack:///./broker-admin/store/statistics/actions.ts","webpack:///./broker-admin/store/invoices/types.ts","webpack:///./design-system/components/OutsideClickHandler/OutsideClickHandler.tsx","webpack:///./common/store/trailers/channels.ts","webpack:///./broker-admin/store/spot-requests/types.ts","webpack:///./common/store/rfqs-changes/actions.ts","webpack:///./common/components/status/TransportOrderStatus/TransportOrderStatus.tsx","webpack:///./broker-admin/store/broker-orders/selectors.ts","webpack:///./common/components/toasts/AlertToastsManager/models.ts","webpack:///./common/store/order-creation/utils/get-dates-hash.ts","webpack:///./broker-admin/store/price-settings/additional-services/actions.ts","webpack:///./broker-admin/store/broker-teams/slice.ts","webpack:///./broker-admin/store/partner/details/channels.ts","webpack:///./common/store/carriers-utilization/selectors.ts","webpack:///./common/store/driver-search/types.ts","webpack:///./common/contexts/common-url-factory-context.ts","webpack:///./common/store/order-creation/constants.ts","webpack:///./common/store/carrier-contracts/reducer.ts","webpack:///./common/icons/PadIcon.tsx","webpack:///./common/utils/api/tranziit/common-tranziit-api.ts","webpack:///./common/icons/UnLockIcon.tsx","webpack:///./common/icons/TruckIcon.tsx","webpack:///./common/store/trailers-dict/actions.ts","webpack:///./broker-admin/store/broker-teams/channels.ts","webpack:///./broker-admin/store/broker-tour-details/slice.ts","webpack:///./common/store/shipper-contract-details/slice.ts","webpack:///./broker-admin/store/deadhead-creation/channels.ts","webpack:///./common/contexts/ui-context.ts","webpack:///./common/store/state-machine/slice.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/query-models.ts","webpack:///./common/utils/hooks/navigation/useAppNavigate.ts","webpack:///./broker-admin/store/managers/types.ts","webpack:///./common/utils/pagination/reducers.ts","webpack:///./broker-admin/store/price-settings/rules/types.ts","webpack:///./broker-admin/store/partner/rfq-stats/actions.ts","webpack:///./common/store/shipper-suggest/actions.ts","webpack:///./broker-admin/store/spot-request-details/types.ts","webpack:///./broker-admin/store/spot-request-details/selectors.ts","webpack:///./common/store/carrier-contracts/selectors.ts","webpack:///./broker-admin/constants.ts","webpack:///./common/store/order-creation/actions.ts","webpack:///./common/store/carrier-contract-details/types.ts","webpack:///./common/store/carriers-utilization/actions.ts","webpack:///./common/store/trucks/selectors.ts","webpack:///./broker-admin/utils/urls.ts","webpack:///./common/store/transport-orders/channels.ts","webpack:///./common/store/order-creation/types.ts","webpack:///./common/store/assets/models.ts","webpack:///./broker-admin/store/broker-order-stats/selectors.ts","webpack:///./common/store/grouped-notification-counts/selectors.ts","webpack:///./common/store/additional-services-dict/selectors.ts","webpack:///./broker-admin/store/partners-stats/types.ts","webpack:///./common/store/shipper-contract-lane-details/selectors.ts","webpack:///./common/store/shipper-contracts/channels.ts","webpack:///./common/store/countries-dict/types.ts","webpack:///./common/components/ControlLoaderWithShadow/ControlLoaderWithShadow.tsx","webpack:///./common/components/ControlLoaderWithShadow/ControlLoaderWithShadow.scss?95e1","webpack:///./common/store/notifications/models.ts","webpack:///./common/store/shipper-suggest/selectors.ts","webpack:///./common/store/gps-tracking-status/actions.ts","webpack:///./common/utils/api/errors/api-request-error.ts","webpack:///./common/icons/ContactBadgeIcon.tsx","webpack:///./broker-admin/store/managers/selectors.ts","webpack:///./common/components/notifications/NotificationsBarContent/utils.ts","webpack:///./broker-admin/store/broker-tour-details/selectors.ts","webpack:///./common/store/shipper-contract-lane-creation/slice.ts","webpack:///./common/store/grouped-notification-counts/actions.ts","webpack:///./common/store/trucks-dict/utils.ts","webpack:///./common/contexts/render-log-context.ts","webpack:///./broker-admin/layouts/SideBars/constants.ts","webpack:///./broker-admin/store/partners/actions.ts","webpack:///./common/store/transport-order-details/types.ts","webpack:///./common/icons/CargoUnitIcon.tsx","webpack:///./common/store/asset-track/types.ts","webpack:///./broker-admin/store/broker-team-details/selectors.ts","webpack:///./common/store/transport-order-details/channels.ts","webpack:///./common/store/consistent-state-machine/utils.ts","webpack:///./common/utils/api/auth/errors/auth-api-error.ts","webpack:///./broker-admin/store/broker-tour-edit/types.ts","webpack:///./broker-admin/store/spot/actions.ts","webpack:///./common/store/spot-assets-assigment/types.ts","webpack:///./common/store/documents-dict/actions.ts","webpack:///./broker-admin/store/price-settings/rules/selectors.ts","webpack:///./common/store/carrier-suggest/actions.ts","webpack:///./broker-admin/store/partner/rfq-stats/types.ts","webpack:///./common/utils/client-config.ts","webpack:///./broker-admin/store/partner/details/selectors.ts","webpack:///./common/components/ColoredStatusLabel/ColoredStatusLabel.tsx","webpack:///./common/components/ColoredStatusLabel/ColoredStatusLabel.scss?e46e","webpack:///./common/store/carrier-suggest/selectors.ts","webpack:///./common/utils/form-common-validators.ts","webpack:///./common/utils/form-validators.ts","webpack:///./common/utils/validators.ts","webpack:///./common/store/tenders/channels.ts","webpack:///./common/store/alerts/actions.ts","webpack:///./common/store/transport-order-details/selectors.ts","webpack:///./broker-admin/store/partners/types.ts","webpack:///./broker-admin/store/broker-tours/selectors.ts","webpack:///./common/store/shipper-contracts/selectors.ts","webpack:///./common/utils/pagination/utils.ts","webpack:///./common/store/shipper-contract-lanes/channels.ts","webpack:///./common/store/country-settings-dict/actions.ts","webpack:///./common/store/carrier-contract-details/channels.ts","webpack:///./broker-admin/store/dispatchers/actions.ts","webpack:///./common/store/trucks-dict/actions.ts","webpack:///./common/store/transport-orders/selectors.ts","webpack:///./common/store/company/actions.ts","webpack:///./common/components/Alert/AlertContainer/AlertContainer.tsx","webpack:///./common/components/Alert/AlertContainer/AlertContainer.scss?15ed","webpack:///./common/components/Alert/AlertProgressBar/AlertProgressBar.tsx","webpack:///./common/components/Alert/AlertProgressBar/AlertProgressBar.scss?eb78","webpack:///./common/components/Alert/Alert.tsx","webpack:///./common/components/Alert/Alert.scss?270d","webpack:///./common/store/rfqs/actions.ts","webpack:///./common/icons/UnlinkIcon.tsx","webpack:///./broker-admin/store/broker-order-details/slice.ts","webpack:///./common/store/trucks-dict/selectors.ts","webpack:///./common/store/country-settings-dict/utils/check-location.ts","webpack:///./common/utils/url-helpers/check-is-external-url.ts","webpack:///./common/utils/hooks/useAsyncFormErrorMessage.ts","webpack:///./common/components/status/OrderStatus/OrderStatus.tsx","webpack:///./common/store/trailers/types.ts","webpack:///./common/store/members/selectors.ts","webpack:///./common/store/subject-logs/slice.ts","webpack:///./common/store/state-machine/utils.ts","webpack:///./common/store/trucks/actions.ts","webpack:///./broker-admin/store/order-edit-context/channels.ts","webpack:///./common/store/drivers/selectors.ts","webpack:///./common/icons/DeleteIcon.tsx","webpack:///./common/store/create-company/slice.ts","webpack:///./common/store/documents-dict/types.ts","webpack:///./broker-admin/store/order-edit-context/slice.ts","webpack:///./broker-admin/store/partner/rfq-stats/reducer.ts","webpack:///./common/store/company/selectors.ts","webpack:///./common/store/tenders-stats/slice.ts","webpack:///./broker-admin/store/deadhead-creation/selectors.ts","webpack:///./common/components/units/UnitTypeCount/UnitTypeCount.tsx","webpack:///./common/components/units/UnitTypeCount/UnitTypeCount.scss?9e81","webpack:///./common/layouts/LoaderOverlay/LoaderOverlay.tsx","webpack:///./common/layouts/LoaderOverlay/LoaderOverlay.scss?e7ea","webpack:///./broker-admin/store/partners/channels.ts","webpack:///./broker-admin/store/broker-orders/channels.ts","webpack:///./common/components/Money/Money.tsx","webpack:///./common/components/Money/Money.scss?aad2","webpack:///./broker-admin/store/price-settings/rules/channels.ts","webpack:///./common/components/notifications/NotificationsBarContent/NotificationCardHead/NotificationCardHead.tsx","webpack:///./common/components/notifications/NotificationsBarContent/NotificationCardHead/NotificationCardHead.scss?6ac5","webpack:///./common/icons/StopWarningIcon.tsx","webpack:///./common/store/rfqs-stats/selectors.ts","webpack:///./broker-admin/store/partner/details/types.ts","webpack:///./common/store/rfqs-changes/types.ts","webpack:///./common/utils/query.ts","webpack:///./common/store/rfq-details/actions.ts","webpack:///./common/store/trucks/reducer.ts","webpack:///./common/store/members/reducer.ts","webpack:///./common/store/papers-edit/selectors.ts","webpack:///./common/store/drivers/channels.ts","webpack:///./common/store/trailers/reducer.ts","webpack:///./common/store/additional-services-dict/slice.ts","webpack:///./common/store/carriers-utilization/types.ts","webpack:///./common/icons/DoneIcon.tsx","webpack:///./common/store/gps-tracking-status/types.ts","webpack:///./common/icons/AddUserIcon.tsx","webpack:///./design-system/components/form-field/FieldLabel/FieldLabel.tsx","webpack:///./design-system/components/form-field/FieldLabel/FieldLabel.scss?cdaa","webpack:///./design-system/components/form-field/FieldNotes/FieldNotes.tsx","webpack:///./design-system/components/form-field/FieldNotes/FieldNotes.scss?51e8","webpack:///./common/components/forms/FormikField/FormikField.tsx","webpack:///./common/components/forms/FormikField/FormikField.scss?7fe1","webpack:///./common/store/papers-edit/slice.ts","webpack:///./common/store/members/types.ts","webpack:///./common/store/notifications/selectors.ts","webpack:///./common/store/trailers/selectors.ts","webpack:///./broker-admin/store/broker-order-edit/slice.ts","webpack:///./broker-admin/store/broker-order-assigment/actions.ts","webpack:///./common/store/shipper-contract-lane-details/slice.ts","webpack:///./broker-admin/store/spot-requests-stats/channels.ts","webpack:///./common/store/additional-services-dict/constants.ts","webpack:///./common/store/state-machine/selectors.ts","webpack:///./common/store/driver-assigment/types.ts","webpack:///./common/store/drivers/types.ts","webpack:///./common/utils/phone-number.ts","webpack:///./broker-admin/store/broker-team-details/slice.ts","webpack:///./common/utils/api/errors/fetch-error.ts","webpack:///./broker-admin/store/partners-stats/actions.ts","webpack:///./common/icons/TrailerIcon.tsx","webpack:///./common/store/consistent-state-machine/slice.ts","webpack:///./common/store/time-zones/slice.ts","webpack:///./common/utils/api/tranziit/errors/error-response.ts","webpack:///./common/store/trailers/actions.ts","webpack:///./common/store/documents-dict/selectors.ts","webpack:///./common/store/notifications/actions.ts","webpack:///./common/components/RedirectSignedUser/RedirectSignedUser.tsx","webpack:///./common/components/Avatar/Avatar.tsx","webpack:///./common/components/Avatar/Avatar.scss?5e24","webpack:///./common/store/consistent-state-machine/selectors.ts","webpack:///./common/store/transport-orders/types.ts","webpack:///./common/store/trailers-dict/types.ts","webpack:///./common/components/Link/Link.tsx","webpack:///./common/components/Link/Link.scss?a557","webpack:///./broker-admin/store/broker-team-details/channels.ts","webpack:///./common/contexts/notification-sidebar-context.ts","webpack:///./broker-admin/store/broker-order-details/selectors.ts","webpack:///./common/utils/hooks/useCommonUrlFactoryContext.ts","webpack:///./common/utils/hooks/useTestSelector.ts","webpack:///./broker-admin/store/price-settings/rates/types.ts","webpack:///./common/store/tenders/slice.ts","webpack:///./common/utils/api/models.ts","webpack:///./common/store/shipper-contract-lanes/selectors.ts","webpack:///./common/icons/ArrowForwardIcon.tsx","webpack:///./common/components/Modal/Modal.tsx","webpack:///./common/store/vehicle-schedules/utils/hash.ts","webpack:///./common/utils/urls.ts","webpack:///./common/store/carrier-contract-details/selectors.ts","webpack:///./common/store/order-creation/utils/create-fake-id-from-point.ts","webpack:///./common/store/state-machine/channels.ts","webpack:///./broker-admin/store/spot-requests/selectors.ts","webpack:///./broker-admin/store/partners-stats/selectors.ts","webpack:///./common/utils/input-parsers.ts","webpack:///./broker-admin/store/spot/channels.ts","webpack:///./broker-admin/store/spot-request-details/reducer.ts","webpack:///./common/icons/HollowCircleIcon.tsx","webpack:///./common/store/carrier-contract-details/actions.ts","webpack:///./common/utils/floating-ui.ts","webpack:///./common/store/routing-geometry/selectors.ts","webpack:///./common/store/carrier-contracts/actions.ts","webpack:///./broker-admin/store/broker-order-details/channels.ts","webpack:///./broker-admin/utils/api/spot-broker-tranziit/models.ts","webpack:///./common/store/vehicle-schedules/reducer.ts","webpack:///./broker-admin/utils/api/broker-tranziit/api.ts","webpack:///./common/store/asset-track/utils.ts","webpack:///./common/store/carrier-contract-details/reducer.ts","webpack:///./common/layouts/LeftMenuLayout/contexts/content-root-context.ts","webpack:///./common/icons/DriverIcon.tsx","webpack:///./common/store/shipper-contract-lane-details/channels.ts","webpack:///./common/store/subject-logs/selectors.ts","webpack:///./common/store/spot-assets-assigment/selectors.ts","webpack:///./common/store/user/selectors.ts","webpack:///./broker-admin/store/spot-requests/channels.ts","webpack:///./common/store/transport-order-details/actions.ts","webpack:///./broker-admin/store/invoices/actions.ts","webpack:///./common/icons/RouteIcon.tsx","webpack:///./common/icons/EditIcon.tsx","webpack:///./broker-admin/store/price-settings/rules/actions.ts","webpack:///./common/icons/PaperIcon.tsx","webpack:///./broker-admin/store/order-edit-context/models.ts","webpack:///./common/store/trucks/channels.ts","webpack:///./broker-admin/store/deadhead-creation/utils/generate-point-fake-id.ts","webpack:///./common/utils/form-formatters.ts","webpack:///./common/store/notifications/types.ts","webpack:///./common/layouts/SideBars/models.ts","webpack:///./broker-admin/store/broker-orders/slice.ts","webpack:///./common/store/driver-search/selectors.ts","webpack:///./common/components/notifications/NotificationsBarContent/NotificationCardFooter/NotificationCardFooter.tsx","webpack:///./common/components/notifications/NotificationsBarContent/NotificationCardFooter/NotificationCardFooter.scss?ac00","webpack:///./common/store/rfqs/reducer.ts","webpack:///./common/icons/AssetLinkIcon.tsx","webpack:///./common/store/rfqs/channels.ts","webpack:///./broker-admin/store/invoices/selectors.ts","webpack:///./common/store/order-creation/utils/sort-offers.ts","webpack:///./common/store/assets/selectors.ts","webpack:///./common/store/trucks/types.ts","webpack:///./broker-admin/utils/urls-params.ts","webpack:///./broker-admin/store/broker-order-edit/selectors.ts","webpack:///./common/store/papers-edit/channels.ts","webpack:///./common/store/driver-assigment/actions.ts","webpack:///./common/store/tenders/selectors.ts","webpack:///./common/utils/test-selectors.ts","webpack:///./broker-admin/store/broker-tour-stats/selectors.ts","webpack:///./common/icons/RadarIcon.tsx","webpack:///./common/store/members/actions.ts","webpack:///./broker-admin/store/managers/actions.ts","webpack:///./common/utils/sort.ts","webpack:///./common/components/Modal/ModalDialog/ModalDialog.tsx","webpack:///./common/components/Modal/ModalDialog/ModalDialog.scss?d32d","webpack:///./common/store/shipper-contract-lanes/slice.ts","webpack:///./common/components/CompanyLogo/CompanyLogo.tsx","webpack:///./common/components/CompanyLogo/CompanyLogo.scss?f2b4"],"sourcesContent":["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 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 { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport type BrokerTourDetailsRefreshChannelEventT = {\n    brokerTourId: BrokerTourIdT;\n};\n\nexport const brokerTourDetailsRefreshChannel = new ViewEventChannel<BrokerTourDetailsRefreshChannelEventT>();\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 { 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","import { StateT } from 'broker-admin/store/models';\nimport { TenderCalculatorStateT } 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): TenderCalculatorStateT => state.tenderCalculator;\n\nexport const selectTendersDownloadRequestStatus = (state: StateT): RequestStatusT =>\n    state.tenderCalculator.downloadRequestStatus;\n\nexport const selectTendersImportRequestStatus = (state: StateT): RequestStatusT =>\n    state.tenderCalculator.importRequestStatus;\n\nexport const selectTendersFetchStatusRequestStatus = (state: StateT): RequestStatusT =>\n    state.tenderCalculator.fetchStatusRequestStatus;\n\nexport const selectTendersDeleteRequestStatus = (state: StateT): RequestStatusT =>\n    state.tenderCalculator.deleteRequestStatus;\n\nexport const selectTendersLastStatus = (state: StateT): ApiTenderInfoT | null => state.tenderCalculator.lastStatus;\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","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 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 { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const carrierContractsRefreshChannel = new ViewEventChannel<{}>();\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 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","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","export const getHash = (carrierId: string, date: string): string => {\n    return `${carrierId}/${date}`;\n};\n","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 { 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 { SpotStateT } from './types';\nimport { StateT } from '../models';\n\nexport const selectSpotUpdateRequestStatus = (state: StateT): SpotStateT['requestStatus'] => state.spot.requestStatus;\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 { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const consistentStateMachineRefreshChannel = new ViewEventChannel<{}>();\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","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","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 { 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';\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","// 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';\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","/* eslint-disable max-len */\nimport React from 'react';\nimport { useLocation, Link as RRDLink, LinkProps as RRDLinkProps, 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 & {\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({ path: accountLink, end: false }, location?.pathname)?.pathname;\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({ path: profileLink, end: false }, location?.pathname)?.pathname;\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 { matchPathname, excludeMatchPathname, to, renderIcon, text, exact, testSelector } =\n                            menuLink;\n\n                        let isActive = false;\n                        if (matchPathname) {\n                            isActive = !!matchPath({ path: matchPathname, end: exact ?? false }, location?.pathname);\n                        }\n                        if (isActive && excludeMatchPathname) {\n                            isActive = !matchPath({ path: excludeMatchPathname, end: false }, location?.pathname);\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","// 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 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 * as React from 'react';\nimport UiContext from 'common/contexts/ui-context';\nimport { useSelector } from 'react-redux';\nimport { useLocation } from 'react-router';\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<React.PropsWithChildren<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","// 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 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","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';\nexport const SET_AUTH_REDIRECT = 'common/auth/SET_AUTH_REDIRECT';\nexport const CLEAR_AUTH_REDIRECT = 'common/auth/CLEAR_AUTH_REDIRECT';\n\nexport type AuthRedirectT =\n    | string\n    | {\n          pathname: string;\n          search: string;\n      };\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    redirectUrl: AuthRedirectT | null;\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 SetAuthRedirectActionT = {\n    type: typeof SET_AUTH_REDIRECT;\n    redirectUrl: AuthRedirectT;\n};\n\nexport type ClearAuthRedirectActionT = {\n    type: typeof CLEAR_AUTH_REDIRECT;\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    | SetAuthRedirectActionT\n    | ClearAuthRedirectActionT\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 {\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 * 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 {\"trace-id\":\"TraceIdLabel__trace-id___opiXr\",\"fadeIn\":\"TraceIdLabel__fadeIn___l7gLM\",\"blinking\":\"TraceIdLabel__blinking___i_FgX\"};","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 {\n    CLEAR_AUTH_REDIRECT,\n    AuthRedirectT,\n    ClearAuthRedirectActionT,\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_AUTH_REDIRECT,\n    SetAuthRedirectActionT,\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\nexport const setAuthRedirect = (redirectUrl: AuthRedirectT): SetAuthRedirectActionT => ({\n    type: SET_AUTH_REDIRECT,\n    redirectUrl,\n});\n\nexport const clearAuthRedirect = (): ClearAuthRedirectActionT => ({\n    type: CLEAR_AUTH_REDIRECT,\n});\n","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';\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 { 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 { 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 qs from 'qs';\n\nconst stringifyQuery = (query: Record<string, any>) => {\n    return qs.stringify(query, { indices: false, addQueryPrefix: true });\n};\n\nexport { stringifyQuery };\n","export class NotImplementedError extends Error {\n    constructor() {\n        super('not implemented error');\n    }\n}\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 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","// 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\"};","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 { TendersStatsStateT } from './slice';\nimport { StateT } from 'broker-admin/store/models';\n\nexport const selectTendersStatsRequest = (state: StateT): TendersStatsStateT['fetchRequest'] =>\n    state.tendersStats.fetchRequest;\n\nexport const selectTendersStats = (state: StateT): TendersStatsStateT['stats'] => state.tendersStats.stats;\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","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 {\"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 { 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    showTenders = 'show-tenders',\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 {\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","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","const ROOT_BASEPATH = ''; // or '/#'\n\nexport const createAbsoluteAppUrl = (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","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 { 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 * as React from 'react';\nimport { useLocation } from 'react-router';\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 {\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 { 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 { 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 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","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 { 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","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","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { ApiBrokerRFQStatsT, ApiBrokerRFQStatsQueryT, ApiBrokerRFQStatsDownloadQueryT } from './models';\n\nexport type BrokerRFQStatsStateT = {\n    stats: ApiBrokerRFQStatsT | null;\n    fetchRequest: RequestStatusT;\n    downloadRequest: RequestStatusT;\n};\n\nconst initialState: BrokerRFQStatsStateT = {\n    stats: null,\n    fetchRequest: requestStatus.initial,\n    downloadRequest: requestStatus.initial,\n};\n\nexport const brokerRFQStatsSlice = createSlice({\n    name: 'brokerRFQStats',\n    initialState,\n    reducers: {\n        downloadBrokerRFQStats: (\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<{ query: ApiBrokerRFQStatsDownloadQueryT }>,\n        ) => {\n            // nothing - handled by saga\n        },\n        downloadBrokerRFQStatsBegin: (state) => {\n            state.downloadRequest = requestStatus.loading;\n        },\n        downloadBrokerRFQStatsSuccess: (state) => {\n            state.downloadRequest = requestStatus.ok;\n        },\n        downloadBrokerRFQStatsError: (state, action: PayloadAction<{ error: Error }>) => {\n            state.downloadRequest = requestStatus.setError(action.payload.error);\n        },\n        fetchBrokerRFQStats: (\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<{ query: ApiBrokerRFQStatsQueryT }>,\n        ) => {\n            // nothing - handled by saga\n        },\n        fetchBrokerRFQStatsBegin: (state) => {\n            state.fetchRequest = requestStatus.loading;\n        },\n        fetchBrokerRFQStatsSuccess: (\n            state,\n            action: PayloadAction<{\n                statistics: ApiBrokerRFQStatsT | null;\n            }>,\n        ) => {\n            const { statistics } = action.payload;\n            state.stats = statistics;\n            state.fetchRequest = requestStatus.ok;\n        },\n        fetchBrokerRFQStatsError: (\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    fetchBrokerRFQStats,\n    fetchBrokerRFQStatsBegin,\n    fetchBrokerRFQStatsSuccess,\n    fetchBrokerRFQStatsError,\n    downloadBrokerRFQStats,\n    downloadBrokerRFQStatsBegin,\n    downloadBrokerRFQStatsSuccess,\n    downloadBrokerRFQStatsError,\n} = brokerRFQStatsSlice.actions;\n\nexport default brokerRFQStatsSlice.reducer;\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 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","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 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","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 { 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 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 { createAbsoluteAppUrl } from 'common/utils/url-helpers/app-url';\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: createAbsoluteAppUrl(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 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 { createAbsoluteAppUrl } from 'common/utils/url-helpers/app-url';\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 ? createAbsoluteAppUrl(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","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","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","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 { 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","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 { 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","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 {\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 { FeaturesContextValueT } from 'common/utils/hooks/useFeaturesContextValue';\nimport React from 'react';\n\nconst FeaturesContext = React.createContext<FeaturesContextValueT>({});\n\nexport default FeaturesContext;\n","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 {\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 { 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 {\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 { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const membersRefreshChannel = new ViewEventChannel<{}>();\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 {\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 type { TranslationKeyT } from 'common/locales/translation-key';\nimport { ContactPositionsEnum, RolesEnum, UserRoleT } from 'common/utils/api/models';\n\nexport const USER_ROLE_T_MAP: Record<`${UserRoleT}`, TranslationKeyT<'common'> | ''> = {\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}`, TranslationKeyT<'common'>> = {\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 {\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 { 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 {\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","import { authRoutesEnum } from 'common/constants';\nimport { getCurrentRelativePath } from 'common/utils/url-helpers/app-url';\n\nconst parseAuthReturnUrl = (returnUrl: string | null | undefined) => {\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","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 { 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","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 TenderCalculatorStateT = {\n    downloadRequestStatus: RequestStatusT;\n    importRequestStatus: RequestStatusT;\n    fetchStatusRequestStatus: RequestStatusT;\n    deleteRequestStatus: RequestStatusT;\n    lastStatus: ApiTenderInfoT | null;\n};\n\nconst initialState: TenderCalculatorStateT = {\n    downloadRequestStatus: requestStatus.initial,\n    importRequestStatus: requestStatus.initial,\n    fetchStatusRequestStatus: requestStatus.initial,\n    deleteRequestStatus: requestStatus.initial,\n    lastStatus: null,\n};\n\nexport const tenderCalculatorSlice = createSlice({\n    name: 'tenderCalculator',\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} = tenderCalculatorSlice.actions;\n\nexport default tenderCalculatorSlice.reducer;\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","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 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","// extracted by mini-css-extract-plugin\nexport default {\"icon\":\"TooltipIconTrigger__icon___eRCY4\",\"fadeIn\":\"TooltipIconTrigger__fadeIn___L9ncV\",\"blinking\":\"TooltipIconTrigger__blinking___bo_my\"};","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 { 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 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","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 { 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","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","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 { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const vehicleSchedulesRefreshChannel = new ViewEventChannel<{\n    vehicleId: VehicleIdT;\n}>();\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const companyRefreshChannel = new ViewEventChannel<{}>();\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport { useTranslation } from 'react-i18next';\n\nimport styles from './LoaderTitle.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst LoaderTitle: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n\n    return <div className={cx('loader')} role=\"progressbar\" aria-label={t('common:loading')} />;\n});\n\nexport default LoaderTitle;\n","// extracted by mini-css-extract-plugin\nexport default {\"loader\":\"LoaderTitle__loader___EeJ92\",\"loading\":\"LoaderTitle__loading___JydCr\",\"fadeIn\":\"LoaderTitle__fadeIn___rrn61\",\"blinking\":\"LoaderTitle__blinking___ACmGO\"};","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 { 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 { 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    setAuthRedirect,\n    signUpBegin,\n    signUpError,\n    signUpSuccess,\n    updatePasswordBegin,\n    updatePasswordError,\n    updatePasswordSuccess,\n} from './actions';\nimport { authApi } from 'common/utils/api/auth/factory';\nimport { authRoutesEnum, CommonRoutesEnum, CompanyTypeEnum, externalRoutesSet, QueryKeysEnum } from '../../constants';\n\nimport { getAuthReturnUrl } from 'common/utils/url-helpers/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                yield put(setAuthRedirect(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        yield put(setAuthRedirect(returnUrl || authRoutesEnum.home));\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            yield put(setAuthRedirect(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        yield put(setAuthRedirect(returnUrl || authRoutesEnum.home));\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(window.location.pathname);\n    if (shouldRedirectToSignIn) {\n        authApi.destroySession();\n\n        const continueReturnUrl = getAuthReturnUrl();\n        const signInUrl = authApi.createSignInUrl(continueReturnUrl);\n        yield put(setAuthRedirect(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                yield put(setAuthRedirect(CommonRoutesEnum.accessDenied));\n            } else {\n                yield put(\n                    setAuthRedirect(\n                        authRoutesEnum.selfCreateCompany +\n                            formatQuery({\n                                [QueryKeysEnum.returnUrl]: getAuthReturnUrl(),\n                            }),\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    yield put(destroySession());\n    yield put(setAuthRedirect(authApi.createSignInUrl()));\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","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 { 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 { 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 { 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","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 { 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 { 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 { 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 {\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 { 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 { 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 { 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 { 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","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 { 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 { 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 { 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","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","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 { 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","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const documentsRefreshChannel = new ViewEventChannel<{}>();\n\nexport const partnerDocumentsRefreshChannel = new ViewEventChannel<{}>();\n","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 { 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 { 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 { 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 { 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 { 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 { 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 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","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 {\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 { 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 { 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 { 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 { 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';\nimport { convertAssetsSearchResponse } from './utils/convert-assets-search-response';\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, response]: ReturnApiT<typeof brokerTranziitApi.searchAssetsForAssigmentV2> =\n        yield brokerTranziitApi.searchAssetsForAssigmentV2(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    const vehicles = response ? convertAssetsSearchResponse(response) : [];\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","import { ApiAssignmentAssetV2T, ApiBrokerAssetsSearchResponseT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { ApiAssignmentVehicleT } from 'common/utils/api/models';\n\nexport const convertAssetsSearchResponse = (response: ApiBrokerAssetsSearchResponseT): ApiAssignmentVehicleT[] => {\n    const { assets, assetsIds } = response;\n\n    const convertAsset = (asset: ApiAssignmentAssetV2T) => ({\n        ...asset,\n        id: assetsIds[asset.id],\n        assetsToHook: asset.assetsToHook?.map((index) => assetsIds[index]),\n    });\n\n    return assets.map((vehicle) => ({\n        ...vehicle,\n        truck: vehicle.truck ? convertAsset(vehicle.truck) : undefined,\n        trailer: vehicle.trailer ? convertAsset(vehicle.trailer) : undefined,\n    }));\n};\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","import { MS_IN_SEC } from 'common/utils/time';\n\nexport const VEHICLE_SCHEDULE_TTL = 30 * MS_IN_SEC;\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 { 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 { 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 { 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 { 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","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 { 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 { 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","const getDefaultAdditionalServices = (): number[] => {\n    const services: number[] = [];\n\n    // add additional services by default\n\n    return services;\n};\n\nexport { getDefaultAdditionalServices };\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 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';\nimport { ApiUpdateOrderStopContactRequestT } from './models';\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    updateOrderStopContact = async (\n        stopId: Api2Paths.ApiV2OrderStop$StopIdContactUpdate.Put.Parameters.StopId,\n        data: ApiUpdateOrderStopContactRequestT,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2OrderStop$StopIdContactUpdate.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2OrderStop$StopIdContactUpdate.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/order/stop/${stopId}/contact/update`,\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n}\n\nconst shipperTranziitApi = ShipperTranziitApi.getInstance();\n\nexport default shipperTranziitApi;\n","import { buffers } from 'redux-saga';\nimport { actionChannel, cancel, delay, fork, put, select, take, takeEvery } from 'redux-saga/effects';\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_RFQ_REQUEST,\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} 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    setAllowCreateRFQ,\n    setCreateReserveQuery,\n    setExpectedOffersCount,\n    setPreviewReserveQuery,\n} from './actions';\nimport { CompanyTypeEnum } 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 { logDebug, logWarning } from 'common/utils/logger';\n\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 { 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\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 nextStep = {\n            rfqId,\n            additionalServices: defaultAdditionalServices,\n            dropOffDate: getDateFromISO(apiCreateRFQResult?.selectedDropOffDate),\n            pickUpDate: getDateFromISO(apiCreateRFQResult?.selectedPickupDate),\n            pickUpDatesRange: (apiCreateRFQResult.pickupDates || [])\n                .map((date) => {\n                    return getDateFromISO(date);\n                })\n                .sort(byAlphabetASC),\n            dropOffDatesRange: (apiCreateRFQResult?.dropOffDates || [])\n                .map((date) => {\n                    return getDateFromISO(date);\n                })\n                .sort(byAlphabetASC),\n            shipperId,\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, { createRFQ: nextStep }));\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        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(\n            createPriceOfferWithLaneRequestSuccess(preparedRFQ, lanePriceOffer, {\n                rfqId,\n                offerId,\n                laneId,\n            }),\n        );\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\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(fetchOffers(priceOffers));\n\n        let ensureCreatedRFQNextStep;\n        if (action.shouldPrepareCompleteQuery) {\n            const pickupDatesRange = uniq(priceOffers.map((priceOffer) => priceOffer.pickUpDate)).sort();\n            const dropOffDateRange = uniq(priceOffers.map((priceOffer) => priceOffer.dropOffDate)).sort();\n\n            const firstRFQPoint = preparedRFQ.points[0];\n            const lastRFQPoint = preparedRFQ.points[preparedRFQ.points.length - 1];\n\n            ensureCreatedRFQNextStep = {\n                additionalServices: getDefaultAdditionalServices(),\n                pickUpDate: firstRFQPoint?.fromDate,\n                dropOffDate: lastRFQPoint?.toDate,\n                pickUpDatesRange: pickupDatesRange,\n                dropOffDatesRange: dropOffDateRange,\n            };\n        }\n\n        yield put(\n            createRFQSuccess(preparedRFQ, {\n                ensureCreatedRFQ: ensureCreatedRFQNextStep,\n            }),\n        );\n    };\n}\n\nfunction getCreatedOrderSaga() {\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        } else if (data) {\n            const orderId = data.orderId || null;\n            yield put(createOrderSuccess({ orderId, isCreateNextOrder }));\n            yield put(\n                addAlert(\n                    new CommonAnyAlert({\n                        type: CommonAlertTypeEnum.orderPlaced,\n                        data: {},\n                    }),\n                ),\n            );\n\n            ordersRefreshChannel.emit({});\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\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());\n    yield takeEvery(FETCH_ROUTE, getFetchRouteSaga(isBroker));\n    yield takeEvery(FETCH_SHIPPER_INFO, fetchShipperInfoSaga);\n    yield takeEvery(FETCH_TASK_OFFER, fetchTaskOfferSaga);\n    yield takeEvery(PREVIEW_RESERVE_ERROR, handlePreviewReserveErrorSaga);\n    yield fork(watchSyncChangeReserveQuerySaga, companyType);\n    yield fork(watchPriceOffersExpirationSaga);\n}\n\nexport default orderCreationSaga;\n","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 { 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","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 {\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","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                    outOfServiceTimeWindow: 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                outOfServiceFrom,\n                outOfServiceTo,\n                outOfServiceType,\n            } = timeWindow;\n\n            return {\n                id: timeWindow.id,\n                outOfServiceTimeWindow:\n                    outOfServiceFrom && outOfServiceTo ? { start: outOfServiceFrom, end: outOfServiceTo } : null,\n                outOfServiceType,\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","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 { 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","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 { 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 { put, select, takeEvery } from 'redux-saga/effects';\nimport { FetchBrokerOrderDetailsRequestActionT } from './types';\nimport {\n    fetchBrokerOrderDetails,\n    fetchBrokerOrderDetailsBegin,\n    fetchBrokerOrderDetailsError,\n    fetchBrokerOrderDetailsSuccess,\n    triggerSyncOrderWithBilling,\n    triggerSyncOrderWithBillingBegin,\n    triggerSyncOrderWithBillingSuccess,\n    triggerSyncOrderWithBillingError,\n} from './slice';\nimport { selectBrokerOrderBillingSyncRequestStatus, selectBrokerOrderDetailsRequestStatus } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { brokerOrderDetailsRefreshChannel } from './channels';\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\nexport function* triggerSyncOrderWithBillingSaga(\n    action: ReturnType<typeof triggerSyncOrderWithBilling>,\n): WrapGeneratorT<void> {\n    const { id } = action.payload;\n    const requestStatus: ReReturnT<typeof selectBrokerOrderBillingSyncRequestStatus> = yield select(\n        selectBrokerOrderBillingSyncRequestStatus(id),\n    );\n    if (requestStatus.loading) {\n        return;\n    }\n\n    yield put(triggerSyncOrderWithBillingBegin({ id }));\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.triggerSyncOrderWithBilling> =\n        yield brokerTranziitApi.triggerSyncOrderWithBilling(id);\n\n    if (error) {\n        yield put(triggerSyncOrderWithBillingError({ id, error }));\n    } else {\n        yield put(triggerSyncOrderWithBillingSuccess({ id }));\n    }\n\n    brokerOrderDetailsRefreshChannel.emit({ brokerOrderId: id });\n}\n\nfunction* brokerOrderDetailsSaga(): WrapGeneratorT<void> {\n    yield takeEvery(fetchBrokerOrderDetails.type, fetchBrokerOrderDetailsSaga);\n    yield takeEvery(triggerSyncOrderWithBilling.type, triggerSyncOrderWithBillingSaga);\n}\n\nexport default brokerOrderDetailsSaga;\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","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 { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const brokerToursRefreshChannel = new ViewEventChannel<{}>();\n\nexport const brokerToursPaginationChannel = new ViewEventChannel<{\n    pageNumber: number;\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","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 { put, takeLatest } from 'redux-saga/effects';\nimport {\n    downloadBrokerRFQStats,\n    downloadBrokerRFQStatsBegin,\n    downloadBrokerRFQStatsSuccess,\n    downloadBrokerRFQStatsError,\n    fetchBrokerRFQStats,\n    fetchBrokerRFQStatsBegin,\n    fetchBrokerRFQStatsError,\n    fetchBrokerRFQStatsSuccess,\n} from './slice';\nimport { FetchBrokerRFQStatsActionT, DownloadBrokerRFQStatsActionT } from './types';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\n\nimport downloadFile from 'common/utils/download-file';\nimport { HEADERS, parseContentDispositionFilename } from 'common/utils/download-headers';\n\nfunction* fetchBrokerRFQStatsSaga(action: FetchBrokerRFQStatsActionT): WrapGeneratorT<void> {\n    yield put(fetchBrokerRFQStatsBegin());\n\n    const [error, response]: ReturnApiT<typeof brokerTranziitApi.fetchBrokerRFQStats> =\n        yield brokerTranziitApi.fetchBrokerRFQStats(action.payload.query);\n    if (error) {\n        yield put(fetchBrokerRFQStatsError({ error }));\n        return;\n    }\n\n    yield put(fetchBrokerRFQStatsSuccess({ statistics: response }));\n}\n\nfunction* downloadBrokerRFQStatsSaga(action: DownloadBrokerRFQStatsActionT): WrapGeneratorT<void> {\n    yield put(downloadBrokerRFQStatsBegin());\n\n    const [error, data, rawResponse]: ReturnApiT<typeof brokerTranziitApi.downloadBrokerRFQStats> =\n        yield brokerTranziitApi.downloadBrokerRFQStats(action.payload.query);\n    if (error) {\n        yield put(downloadBrokerRFQStatsError({ error }));\n        return;\n    }\n\n    if (data) {\n        const filename = parseContentDispositionFilename(rawResponse?.headers.get(HEADERS.CONTENT_DISPOSITION) || '');\n        downloadFile({\n            name: filename || `rfq-statistics-${Date.now()}.xlsx`,\n            data,\n            type:\n                rawResponse?.headers.get(HEADERS.CONTENT_TYPE) ||\n                'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n        });\n    }\n\n    yield put(downloadBrokerRFQStatsSuccess());\n}\n\nfunction* brokerRFQStatsSaga(): WrapGeneratorT<void> {\n    yield takeLatest(downloadBrokerRFQStats.type, downloadBrokerRFQStatsSaga);\n    yield takeLatest([fetchBrokerRFQStats.type], fetchBrokerRFQStatsSaga);\n}\n\nexport default brokerRFQStatsSaga;\n","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 { 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 { 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 { 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 { 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 { 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 { 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 { 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_LOST: {\n            const parsedNotification = parseNotificationType<NotificationActionEnum.SPOT_BID_LOST>(apiNotification);\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [parsedNotification.data.spotId, parsedNotification.data.tourId].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","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 { 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 { 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 { 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 { 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 { 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","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","const BROADCAST_CHANNEL_PREFIX = 'tranziit';\n\nexport const createBroadcastChannelName = (channelName: string): string => {\n    return `${BROADCAST_CHANNEL_PREFIX}:${channelName}`;\n};\n","function* notificationsAffectsSaga(): WrapGeneratorT<void> {\n    // nothing\n}\n\nexport default notificationsAffectsSaga;\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","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 { 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 { 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 { MS_IN_SEC } from 'common/utils/time';\n\nexport const UNREAD_GROUPED_NOTIFICATION_COUNTS_TTL = 5 * MS_IN_SEC;\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","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","// eslint-disable-next-line @typescript-eslint/no-empty-function,no-empty-function\nfunction* alertsSaga(): WrapGeneratorT<void> {}\n\nexport default alertsSaga;\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","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 { 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 { 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 { 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 { 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 { 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","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","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 { 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 { 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 { 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 { authApi } from 'common/utils/api/auth/factory';\n\nfunction getCreateCompanySaga(companyType: CompanyTypeEnum) {\n    return function* (action: CreateCompanyRequestActionT): WrapGeneratorT<void> {\n        const { registrationCompanyRequestDraft } = 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}\n\nfunction* createCompanySaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery(createCompanyRequest.type, getCreateCompanySaga(companyType));\n}\n\nexport { createCompanySaga };\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 { 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 { 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        return;\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\nfunction* shipperContractLaneCreationSaga(): WrapGeneratorT<void> {\n    yield takeEvery(calculateCostRequest.type, calculateCostSaga);\n    yield takeEvery(createLaneRequest.type, createLaneSaga);\n}\n\nexport { shipperContractLaneCreationSaga };\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","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 { 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 { 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 { 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","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","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 {\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    SET_AUTH_REDIRECT,\n    CLEAR_AUTH_REDIRECT,\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    redirectUrl: null,\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            case SET_AUTH_REDIRECT: {\n                return {\n                    ...state,\n                    redirectUrl: action.redirectUrl,\n                };\n            }\n\n            case CLEAR_AUTH_REDIRECT: {\n                return {\n                    ...state,\n                    redirectUrl: null,\n                };\n            }\n\n            default:\n                return state;\n        }\n    };\n","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 {\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 { 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","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","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 {\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    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 {\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 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 { 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 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 { 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 {\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 {\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","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 {\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 {\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 { 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","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","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 {\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 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 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    createRFQNextStep: null,\n    ensureCreatedRFQNextStep: null,\n    createPriceOfferWithLaneRequest: requestStatus.initial,\n    createPriceOfferWithLaneNextStep: null,\n    polylines: null,\n    priceOffers: null,\n    rfq: null,\n\n    lanePriceOffer: null,\n\n    createOrderRequest: requestStatus.initial,\n    createOrderNextStep: null,\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                createPriceOfferWithLaneNextStep: null,\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                // Let the view navigate after lane offer creation without coupling the saga to routing.\n                createPriceOfferWithLaneNextStep: action.nextStep,\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                createRFQNextStep: null,\n                ensureCreatedRFQNextStep: null,\n            };\n        }\n\n        case CREATE_RFQ_REQUEST_SUCCESS: {\n            const { rfq, createRFQNextStep, ensureCreatedRFQNextStep } = action;\n\n            return {\n                ...state,\n                rfq,\n                // Let the views handle their next step without coupling the saga to routing or the current URL.\n                createRFQNextStep,\n                ensureCreatedRFQNextStep,\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                createOrderNextStep: null,\n            };\n        }\n\n        case CREATE_ORDER_REQUEST_SUCCESS: {\n            return {\n                ...state,\n                createOrderRequest: requestStatus.ok,\n                // Let the page choose the portal-specific destination after the order is created.\n                createOrderNextStep: action.nextStep,\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","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 {\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 {\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 { 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","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 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","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 {\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 {\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 { 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 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 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","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_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 {\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 {\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 { 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 { 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","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 { 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","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 { MS_IN_MIN } from 'common/utils/time';\n\nexport const ROUTING_GEOMETRY_TTL = 5 * MS_IN_MIN;\n","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 { 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 { 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 {\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 { 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 { 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","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 { 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 { 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 { 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 { 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 { 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 { 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 { 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    while (true) {\n        let action: BufferActionT = yield take(channel);\n        // Compare with the context shown in the form before this batch, including its ferry aliases.\n        const sourceOrderEditContext: ReturnType<typeof selectOrderEditContext> = yield select(selectOrderEditContext);\n\n        yield put(setIsApplyingContextChanges(true));\n\n        while (true) {\n            yield* changeReserveQuerySaga(companyType, action);\n\n            if (buffer.isEmpty()) {\n                break;\n            }\n\n            action = yield take(channel);\n        }\n\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        yield put(setIsApplyingContextChanges(false));\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","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 { 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","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 {\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 { 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","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 { 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 { 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 { 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 { 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 {\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    const tourId = data?.tourId || null;\n\n    yield put(applyContextRequestSuccess({ response: data, tourId }));\n    yield put(\n        addAlert(\n            new BrokerAnyAlert({\n                type: BrokerAlertTypeEnum.deadheadTourPlaced,\n                data: {},\n            }),\n        ),\n    );\n\n    if (!tourId) {\n        logWarning('empty tourId after applying deadhead context');\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","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","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 { 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","/**\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","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 { 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* tenderCalculatorSaga(): 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 tenderCalculatorSaga;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { fetchTendersStats, fetchTendersStatsBegin, fetchTendersStatsError, fetchTendersStatsSuccess } from './slice';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { selectTendersStatsRequest } from './selectors';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\n\nfunction* fetchTendersStatsSaga(action: ReturnType<typeof fetchTendersStats>): WrapGeneratorT<void> {\n    const requestStatus: ReturnType<typeof selectTendersStatsRequest> = yield select(selectTendersStatsRequest);\n\n    const isNeedRequest = checkNeedRequest(requestStatus, action.payload);\n    if (!isNeedRequest) {\n        return;\n    }\n\n    yield put(fetchTendersStatsBegin());\n\n    const [error, response]: ReturnApiT<typeof brokerTranziitApi.getBrokerTendersStatistic> =\n        yield brokerTranziitApi.getBrokerTendersStatistic();\n    if (error) {\n        yield put(fetchTendersStatsError({ error }));\n        return;\n    }\n\n    yield put(fetchTendersStatsSuccess({ statistics: response }));\n}\n\nfunction* tendersStatsSaga(): WrapGeneratorT<void> {\n    yield takeEvery([fetchTendersStats.type], fetchTendersStatsSaga);\n}\n\nexport default tendersStatsSaga;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { FetchTendersPageActionT } from './types';\nimport {\n    fetchTendersPage,\n    fetchTendersPageBegin,\n    fetchTendersPageError,\n    fetchTendersPageSuccess,\n    resetTenders,\n} from './slice';\nimport { selectTendersPages, selectTendersQuery } 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 { tendersPaginationChannel } from 'common/store/tenders/channels';\n\nfunction* fetchTendersSaga(action: FetchTendersPageActionT): WrapGeneratorT<void> {\n    const { pageNumber, query, options } = action.payload;\n\n    const prevQuery: ReturnType<typeof selectTendersQuery> = yield select(selectTendersQuery);\n    const pages: ReturnType<typeof selectTendersPages> = yield select(selectTendersPages);\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(resetTenders({ mutationListOptions: { savingPageNumber: pageNumber } }));\n    }\n\n    yield put(fetchTendersPageBegin({ query, pageNumber }));\n\n    const [error, response]: ReturnApiT<typeof brokerTranziitApi.getBrokerTendersFilter> =\n        yield brokerTranziitApi.getBrokerTendersFilter({\n            ...query,\n            page: pageNumber,\n        });\n\n    if (error) {\n        yield put(fetchTendersPageError({ query, pageNumber, error }));\n        return;\n    }\n\n    yield put(fetchTendersPageSuccess({ query, pageNumber, pageResponse: response }));\n\n    checkShouldEmitChangePage(pageNumber, response, tendersPaginationChannel);\n}\n\nfunction* tendersSaga(): WrapGeneratorT<void> {\n    yield takeEvery(fetchTendersPage.type, fetchTendersSaga);\n}\n\nexport default tendersSaga;\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 brokerRFQStatsSaga from './broker-rfq-stats/sagas';\nimport { brokerRFQStatsSlice } from './broker-rfq-stats/slice';\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 tenderCalculatorSaga from 'broker-admin/store/tender-calculator/sagas';\nimport tenderCalculatorReducer from 'broker-admin/store/tender-calculator/slice';\nimport tendersStatsReducer from 'common/store/tenders-stats/slice';\nimport tendersStatsSaga from 'common/store/tenders-stats/sagas';\nimport tendersReducer from 'common/store/tenders/slice';\nimport tendersSaga from 'common/store/tenders/sagas';\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    brokerRFQStats: brokerRFQStatsSlice.reducer,\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    tenderCalculator: tenderCalculatorReducer,\n    tendersStats: tendersStatsReducer,\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(brokerRFQStatsSaga);\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(tenderCalculatorSaga);\n    yield fork(tendersStatsSaga);\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 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","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","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 { 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 { Navigate } from 'react-router';\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 <Navigate replace 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","// 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\"};","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 { 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 * 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 {\"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';\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","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"ErrorTraceId__content___FP9qH\",\"fadeIn\":\"ErrorTraceId__fadeIn___tWRhm\",\"blinking\":\"ErrorTraceId__blinking___T0JaF\"};","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<React.PropsWithChildren<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","// 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 {\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 * 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","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","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"NotificationCardInnerLayout__inner___QwfXb\",\"fadeIn\":\"NotificationCardInnerLayout__fadeIn___JFmdB\",\"blinking\":\"NotificationCardInnerLayout__blinking___Pggwj\"};","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","// 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 { 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    spotRequestNumber?: string;\n    fromLocation: string;\n    toLocation: string;\n};\n\nexport const SpotBidLostCard: React.FC<PropsT> = ({ spotRequestNumber, fromLocation, toLocation }) => {\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey=\"common:notifications.spot-bid-lost\"\n                components={{\n                    spotRequestNumber: <NotificationEntityLabel text={spotRequestNumber} isBold isUnderline />,\n                    fromLocation: <NotificationEntityLabel text={fromLocation} isBold />,\n                    toLocation: <NotificationEntityLabel text={toLocation} isBold />,\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n};\n","import type { TranslationKeyT } from 'common/locales/translation-key';\nimport * 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, TranslationKeyT<'common'> | 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","// 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 * 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 {\"city\":\"CityName__city___bR8_l\",\"fadeIn\":\"CityName__fadeIn___qItOY\",\"blinking\":\"CityName__blinking___IMkS6\"};","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","// 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 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","// 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';\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 type { TranslationKeyT } from 'common/locales/translation-key';\nimport * 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, TranslationKeyT<'common'>> = {\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 * 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 {\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","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 type { TranslationKeyT } from 'common/locales/translation-key';\nimport * 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<\n    SpotRequestStatusCardPropsT['type'],\n    Extract<TranslationKeyT<'common'>, `common:notifications.spot-request-status.${string}`>\n> = {\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 type { TranslationKeyT } from 'common/locales/translation-key';\nimport * 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<\n    SpotBidStatusCardPropsT['type'],\n    Extract<TranslationKeyT<'common'>, `common:notifications.spot-bid-status.${string}`>\n> = {\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\":\"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';\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 {\"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 './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","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"RevokedPartnerShipperContractCard__inner___KTJuL\",\"fadeIn\":\"RevokedPartnerShipperContractCard__fadeIn___e7PD6\",\"blinking\":\"RevokedPartnerShipperContractCard__blinking___XmpnO\"};","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 {\"inner\":\"ExpiredPartnerShipperContractCard__inner___KTseR\",\"fadeIn\":\"ExpiredPartnerShipperContractCard__fadeIn____3QdN\",\"blinking\":\"ExpiredPartnerShipperContractCard__blinking___eGAjm\"};","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","// 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';\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","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"UpdatedPartnerCarrierContractCard__inner___kqixc\",\"fadeIn\":\"UpdatedPartnerCarrierContractCard__fadeIn___oBQF2\",\"blinking\":\"UpdatedPartnerCarrierContractCard__blinking___VdQ5P\"};","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","// 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 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","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"ExpiredPartnerCarrierContractCard__inner___NgRyc\",\"fadeIn\":\"ExpiredPartnerCarrierContractCard__fadeIn___zP8UC\",\"blinking\":\"ExpiredPartnerCarrierContractCard__blinking___x5slf\"};","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","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"ExpireSoonPartnerCarrierContractCard__inner___ZEXR2\",\"fadeIn\":\"ExpireSoonPartnerCarrierContractCard__fadeIn___Yl4vu\",\"blinking\":\"ExpireSoonPartnerCarrierContractCard__blinking___PmjO1\"};","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\":\"UpdatedPartnerShipperContractCard__inner___BLe6w\",\"fadeIn\":\"UpdatedPartnerShipperContractCard__fadeIn___moUH4\",\"blinking\":\"UpdatedPartnerShipperContractCard__blinking___Hbhol\"};","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","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","// extracted by mini-css-extract-plugin\nexport default {\"contract-name\":\"PartnerName__contract-name___OTaMI\",\"fadeIn\":\"PartnerName__fadeIn___M9XtE\",\"blinking\":\"PartnerName__blinking___OohYZ\"};","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","// 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\"};","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","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"CompletedPartnerShipperContractCard__inner___GyYTC\",\"fadeIn\":\"CompletedPartnerShipperContractCard__fadeIn___fXRWG\",\"blinking\":\"CompletedPartnerShipperContractCard__blinking___FS0EB\"};","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 {\"inner\":\"CompletedPartnerCarrierContractCard__inner___HfGn3\",\"fadeIn\":\"CompletedPartnerCarrierContractCard__fadeIn___QSzV8\",\"blinking\":\"CompletedPartnerCarrierContractCard__blinking___PssfE\"};","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","// extracted by mini-css-extract-plugin\nexport default {\"id\":\"ShipperContractLaneId__id___A_StZ\",\"fadeIn\":\"ShipperContractLaneId__fadeIn___vjWTY\",\"blinking\":\"ShipperContractLaneId__blinking___H72ky\"};","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 {\"inner\":\"UpdatedPartnerShipperLaneContractCard__inner___SsuSv\",\"fadeIn\":\"UpdatedPartnerShipperLaneContractCard__fadeIn___Xbv2B\",\"blinking\":\"UpdatedPartnerShipperLaneContractCard__blinking___dwlFs\"};","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","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"RevokedPartnerShipperLaneContractCard__inner___fkNrb\",\"fadeIn\":\"RevokedPartnerShipperLaneContractCard__fadeIn___QLWEL\",\"blinking\":\"RevokedPartnerShipperLaneContractCard__blinking___fti_C\"};","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","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"ExpiredPartnerShipperLaneContractCard__inner___zDIYn\",\"fadeIn\":\"ExpiredPartnerShipperLaneContractCard__fadeIn___bXl7r\",\"blinking\":\"ExpiredPartnerShipperLaneContractCard__blinking____RCAL\"};","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","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"CompletedPartnerShipperLaneContractCard__inner___kLzuI\",\"fadeIn\":\"CompletedPartnerShipperLaneContractCard__fadeIn___v4UZS\",\"blinking\":\"CompletedPartnerShipperLaneContractCard__blinking___IbNVQ\"};","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 {\"inner\":\"ExpireSoonPartnerShipperLaneContractCard__inner___zFUmF\",\"fadeIn\":\"ExpireSoonPartnerShipperLaneContractCard__fadeIn___jsBkO\",\"blinking\":\"ExpireSoonPartnerShipperLaneContractCard__blinking___czEDn\"};","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","// 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';\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","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"TransportationOrderMileagAndPaymentChangedCard__inner___a73Fe\",\"fadeIn\":\"TransportationOrderMileagAndPaymentChangedCard__fadeIn___N1bOc\",\"blinking\":\"TransportationOrderMileagAndPaymentChangedCard__blinking___wUFX8\"};","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 type { TranslationKeyT } from 'common/locales/translation-key';\nimport * 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, TranslationKeyT<'common'>> = {\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 { 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 * 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","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 type { TranslationKeyT } from 'common/locales/translation-key';\nimport * 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: TranslationKeyT<'common'> = '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 * 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 * 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","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"NotificationVerticalRowsLayout__wrap___Z5Dvj\",\"fadeIn\":\"NotificationVerticalRowsLayout__fadeIn___IJhLA\",\"blinking\":\"NotificationVerticalRowsLayout__blinking___M7na6\"};","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 * 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","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 * 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 {\"team-name\":\"TeamName__team-name___R8C3Y\",\"fadeIn\":\"TeamName__fadeIn___pRN5M\",\"blinking\":\"TeamName__blinking___HxfUs\"};","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","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"InvitedToTeamCard__inner___b7UrF\",\"fadeIn\":\"InvitedToTeamCard__fadeIn___NfQx5\",\"blinking\":\"InvitedToTeamCard__blinking___XFJ5j\"};","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","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"RemovedFromTeamCard__inner___iV_DE\",\"fadeIn\":\"RemovedFromTeamCard__fadeIn___HXk0M\",\"blinking\":\"RemovedFromTeamCard__blinking___Ue9np\"};","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","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"OrderEditedCard__inner___F0p7D\",\"fadeIn\":\"OrderEditedCard__fadeIn___MZEQ1\",\"blinking\":\"OrderEditedCard__blinking___ffgaM\"};","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","// 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 * 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<unknown> = React.memo(() => {\n    const { t } = useTranslation();\n\n    return <NotificationCardInnerLayout>{t('common:notifications.order-was-placed')}</NotificationCardInnerLayout>;\n});\n\nexport default OrderWasPlacedCard;\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<unknown> = React.memo(() => {\n    const { t } = useTranslation();\n\n    return <NotificationCardInnerLayout>{t('common:notifications.order-was-canceled')}</NotificationCardInnerLayout>;\n});\n\nexport default OrderWasCanceledCard;\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 { 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","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","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 { 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 { 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","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 * 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 { 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';\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","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 * 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 * 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","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 { 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 * 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 * 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';\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 * 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 { 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","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 { 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","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 type { TranslationKeyT } from 'common/locales/translation-key';\nimport * 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, TranslationKeyT<'common'>> = {\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 type { TranslationKeyT } from 'common/locales/translation-key';\nimport * 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, TranslationKeyT<'broker-admin'>> = {\n    NAME: 'notifications.business-partner-profile-updated.fields.name',\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: TranslationKeyT<'broker-admin'>;\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","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 * 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 * 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 * 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 {\"inner\":\"ApprovedDocumentCard__inner___qSYbs\"};","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 {\"inner\":\"RejectedDocumentCard__inner___QE71p\"};","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","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"RevokedDocumentCard__inner____qgN5\"};","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","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"UpdatedDocumentCard__inner___ogPtM\"};","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","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"ExpireSoonDocumentCard__inner___aDs2A\"};","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","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"ExpiredDocumentCard__inner___lVAvw\"};","import { SpotBidLostCard } from 'common/components/notification-cards/SpotBidLostCard/SpotBidLostCard';\nimport * 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_LOST: {\n            const { data } = notification;\n\n            return (\n                <SpotBidLostCard\n                    spotRequestNumber={data.spotNumber}\n                    fromLocation={data.cityFrom}\n                    toLocation={data.cityTo}\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_LOST:\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_LOST:\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 {\"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';\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 {\"toast\":\"Toast__toast___xpU6q\",\"toast--is-show\":\"Toast__toast--is-show___Wyp8f\",\"fadeIn\":\"Toast__fadeIn___Lpajr\",\"blinking\":\"Toast__blinking___iIIGS\"};","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","// 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 { useAppNavigate } from 'common/utils/hooks/navigation/useAppNavigate';\nimport * 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 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    const navigate = useAppNavigate();\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                                            navigate(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","// extracted by mini-css-extract-plugin\nexport default {\"notification\":\"NotificationToastsManager__notification___xui_O\",\"fadeIn\":\"NotificationToastsManager__fadeIn___wblog\",\"blinking\":\"NotificationToastsManager__blinking___yNUMt\"};","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';\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 { 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","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 * 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 * 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 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","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","// 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 type { TranslationKeyT } from 'common/locales/translation-key';\nimport * 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                const key = USER_ROLE_T_MAP[role];\n                return key ? t(key).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: TranslationKeyT<'common'> = '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: TranslationKeyT<'common'> = '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, TranslationKeyT<'common'>> = {\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 { 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 * 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","// extracted by mini-css-extract-plugin\nexport default {\"alert\":\"AlertToastsManager__alert___CgblJ\",\"fadeIn\":\"AlertToastsManager__fadeIn___b6AuF\",\"blinking\":\"AlertToastsManager__blinking___AmuKy\"};","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","// extracted by mini-css-extract-plugin\nexport default {};","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 * as React from 'react';\nimport { ErrorInfo } from 'react';\nimport { generateTraceId, logErrorWithTraceId } from 'common/utils/logger';\n\ntype PropsT = {\n    children?: React.ReactNode;\n};\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","import { useMemo } from 'react';\nimport { useLocation, useNavigate } from 'react-router';\nimport { QueryParamAdapter, QueryParamAdapterComponent } from 'use-query-params';\n\nexport const QueryParamRouterAdapter: QueryParamAdapterComponent = ({ children }) => {\n    const location = useLocation();\n    const navigate = useNavigate();\n    const adapter = useMemo<QueryParamAdapter>(\n        () => ({\n            location,\n            push: (nextLocation) => {\n                navigate({ pathname: location.pathname, search: nextLocation.search }, { state: nextLocation.state });\n            },\n            replace: (nextLocation) => {\n                navigate(\n                    { pathname: location.pathname, search: nextLocation.search },\n                    { state: nextLocation.state, replace: true },\n                );\n            },\n        }),\n        [location, navigate],\n    );\n\n    return children(adapter);\n};\n","import React from 'react';\nimport { QueryParamProvider } from 'use-query-params';\nimport { QueryParamRouterAdapter } from 'common/components/QueryParamRouterAdapter/QueryParamRouterAdapter';\n\nconst queryParamOptions = { enableBatching: true };\n\nexport const AppQueryParamProvider: React.FC<React.PropsWithChildren> = ({ children }) => {\n    return (\n        <QueryParamProvider adapter={QueryParamRouterAdapter} options={queryParamOptions}>\n            {children}\n        </QueryParamProvider>\n    );\n};\n","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 * 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 { useAppNavigate } from 'common/utils/hooks/navigation/useAppNavigate';\nimport * as React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { clearAuthRedirect } from 'common/store/auth/actions';\nimport { selectAuthRedirectUrl } from 'common/store/auth/selectors';\nimport { checkIsExternalUrl } from 'common/utils/url-helpers/check-is-external-url';\n\nexport const AuthRedirectWatcher: React.FC = () => {\n    const dispatch = useDispatch();\n    const navigate = useAppNavigate();\n    const redirectUrl = useSelector(selectAuthRedirectUrl);\n\n    // Use a regular effect because the initial redirectUrl may already be set before this watcher mounts.\n    React.useEffect(() => {\n        if (!redirectUrl) {\n            return;\n        }\n\n        // Reset the redirect to allow the same target to trigger again: null -> target -> null -> target.\n        dispatch(clearAuthRedirect());\n\n        if (checkIsExternalUrl(redirectUrl)) {\n            window.location.href = redirectUrl;\n            return;\n        }\n\n        navigate(redirectUrl);\n\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [redirectUrl]);\n\n    return null;\n};\n","import React from 'react';\nimport { BrowserRouter, BrowserRouterProps } from 'react-router';\n\nexport const AppRouter = (props: BrowserRouterProps) => <BrowserRouter {...props} />;\n","import * as React from 'react';\n\nimport Loadable from 'react-loadable';\nimport { Routes, Navigate, Route } from 'react-router';\nimport { Provider } from 'react-redux';\n\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 { AppQueryParamProvider } from 'common/components/AppQueryParamProvider/AppQueryParamProvider';\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';\nimport { AuthRedirectWatcher } from 'common/components/AuthRedirectWatcher/AuthRedirectWatcher';\nimport { AppRouter } from 'common/components/AppRouter/AppRouter';\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                                            <AppRouter>\n                                                <AuthRedirectWatcher />\n                                                <AppQueryParamProvider>\n                                                    <div className={cx('app')}>\n                                                        <AuthLoader>\n                                                            <Routes>\n                                                                <Route\n                                                                    path={`${routesEnum.deprecateSignUp}/*`}\n                                                                    element={\n                                                                        <Navigate\n                                                                            replace\n                                                                            to={{ pathname: routesEnum.home }}\n                                                                        />\n                                                                    }\n                                                                />\n                                                                <Route\n                                                                    path={`${routesEnum.signIn}/*`}\n                                                                    element={<SignInPage />}\n                                                                />\n                                                                <Route\n                                                                    path={`${routesEnum.signUp}/*`}\n                                                                    element={<SignUpPage />}\n                                                                />\n                                                                <Route\n                                                                    path={`${routesEnum.continueSignUp}/*`}\n                                                                    element={<ContinueSignUpPage />}\n                                                                />\n                                                                <Route\n                                                                    path={`${routesEnum.selfCreateCompany}/*`}\n                                                                    element={<SelfCreateCompanyPage />}\n                                                                />\n                                                                <Route\n                                                                    path={`${routesEnum.forgotPassword}/*`}\n                                                                    element={<ForgotPasswordPage />}\n                                                                />\n                                                                <Route\n                                                                    path={`${routesEnum.changePassword}/*`}\n                                                                    element={<ChangePasswordPage />}\n                                                                />\n                                                                <Route\n                                                                    path={`${routesEnum.confirmEmail}/*`}\n                                                                    element={<ConfirmEmailPage />}\n                                                                />\n                                                                <Route\n                                                                    path={`${routesEnum.notFound}/*`}\n                                                                    element={<NotFoundPage />}\n                                                                />\n                                                                <Route\n                                                                    path={`${routesEnum.accessDenied}/*`}\n                                                                    element={<AccessDeniedPage />}\n                                                                />\n                                                                <Route path=\"*\" element={<ClientPage />} />\n                                                            </Routes>\n                                                        </AuthLoader>\n                                                        <OverlaysManager\n                                                            renderAlertToast={renderAlertToast}\n                                                            renderNotification={renderNotification}\n                                                            renderNotificationText={renderNotificationText}\n                                                            getNotificationLink={getNotificationLink}\n                                                        />\n                                                        <ErrorModal />\n                                                    </div>\n                                                </AppQueryParamProvider>\n                                            </AppRouter>\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 App;\n","// extracted by mini-css-extract-plugin\nexport default {\"app\":\"App__app___zuSLr\",\"fadeIn\":\"App__fadeIn___flZPQ\",\"blinking\":\"App__blinking___Nsvlq\"};","import 'common/base';\n\nimport './locales/i18n';\n\nimport * as React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport App from './layouts/App/App';\n\nconst rootNode = document.getElementById('root');\n\nif (rootNode) {\n    createRoot(rootNode).render(<App />);\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","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    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 { 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","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","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 { 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","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 {\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","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 { 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 {\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 { 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 { 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 { 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 {\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 { 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 {\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","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 { 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 const selectAuthRedirectUrl = (state: SharableStateT): AuthStateT['redirectUrl'] => state.auth.redirectUrl;\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            canAddDrivers: [RolesEnum.companyAdmin, RolesEnum.keyAccountManager],\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            canViewBrokerRFQStatistic: [RolesEnum.companyAdmin],\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            canAddDrivers: [AuthProfileTypeEnum.carrier],\n            canEditDrivers: [AuthProfileTypeEnum.carrier],\n\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 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 { 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 {\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","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 { 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","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 './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<React.PropsWithChildren<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","// 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\"};","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 {\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 * 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 { 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 selectCreateRFQNextStep = (state: StateT): OrderCreationStateT['createRFQNextStep'] =>\n    state.orderCreation.createRFQNextStep;\nexport const selectEnsureCreatedRFQNextStep = (state: StateT): OrderCreationStateT['ensureCreatedRFQNextStep'] =>\n    state.orderCreation.ensureCreatedRFQNextStep;\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;\nexport const selectCreatePriceOfferWithLaneNextStep = (\n    state: StateT,\n): OrderCreationStateT['createPriceOfferWithLaneNextStep'] => state.orderCreation.createPriceOfferWithLaneNextStep;\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;\nexport const selectCreateOrderNextStep = (state: StateT): OrderCreationStateT['createOrderNextStep'] =>\n    state.orderCreation.createOrderNextStep;\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","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","import type { TranslationKeyT } from 'common/locales/translation-key';\nimport * 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, TranslationKeyT<'common'>> = {\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","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","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 * 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","// 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 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 { 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","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","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 { 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","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    createdTourId: TourIdT | null;\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    createdTourId: null,\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            state.createdTourId = null;\n        },\n        applyContextRequestSuccess: (\n            state,\n            action: PayloadAction<{\n                response: DeadheadApplyContextResponseT | null;\n                tourId: TourIdT | null;\n            }>,\n        ) => {\n            state.applyContextRequest = requestStatus.ok;\n            state.createdTourId = action.payload.tourId;\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 {\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 { 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","import React from 'react';\n\ntype PropsT = {\n    children?: React.ReactNode;\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 | null>;\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 { 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 { 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 {\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 type { TranslationKeyT } from 'common/locales/translation-key';\nimport * 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<\n    ApiTransportOrderStatusT,\n    TranslationKeyT<'broker-admin' | 'carrier'>\n> = {\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 { 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 { 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","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","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 { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const partnerDetailsRefreshChannel = new ViewEventChannel<{}>();\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","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","import React from 'react';\n\ntype CommonLocationT = {\n    pathname?: string;\n    search?: string;\n    hash?: string;\n    state?: HistoryStateT;\n};\n\nexport type CommonUrlFactoryContextT = {\n    trailerDetails: (partnerId: PartnerIdT, trailerId: TrailerIdT) => CommonLocationT;\n    truckDetails: (partnerId: PartnerIdT, truckId: TruckIdT) => CommonLocationT;\n    transportOrderDetails: (\n        partnerId: PartnerIdT | undefined,\n        transportOrderId: TransportOrderIdT,\n    ) => CommonLocationT | 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 { 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 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 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","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 * 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 {\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 { 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 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","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","import { ViewEventChannel } from 'common/utils/view-event-channel';\nimport { DeadheadCreationContextQueryModifyChannelEventT } from './models';\n\nexport const deadheadCreationQueryModifyChannel =\n    new ViewEventChannel<DeadheadCreationContextQueryModifyChannelEventT>();\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 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","export type QueryT = {\n    [QueryKeysEnum.fromBrokerTour]?: boolean;\n};\n\nexport enum QueryKeysEnum {\n    fromBrokerTour = 'from-broker-tour',\n}\n","import { useCallback } from 'react';\nimport { NavigateOptions, To, useLocation, useNavigate } from 'react-router';\n\nexport type AppNavigationTargetT = string | (Exclude<To, string> & { state?: HistoryStateT });\n\n// URL factories keep their state together with the destination; React Router accepts it separately.\nexport const useAppNavigate = () => {\n    const navigate = useNavigate();\n    const { pathname } = useLocation();\n\n    return useCallback(\n        (target: AppNavigationTargetT, options?: NavigateOptions) => {\n            if (typeof target === 'string') {\n                navigate(target, options);\n            } else {\n                const { state, ...to } = target;\n                navigate({ ...to, pathname: to.pathname ?? pathname }, { state, ...options });\n            }\n        },\n        [navigate, pathname],\n    );\n};\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 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 { 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","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","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","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 { 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","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    brokerTenders: '/tenders',\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 BrokerTendersRoutesEnum {\n    list = '/tenders',\n    newTender = '/tenders/new',\n    details = '/tenders/:tenderId',\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 {\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    CreateOrderNextStepT,\n    CreateOrderSuccessActionT,\n    CreatePriceOfferWithLaneRequestActionT,\n    CreatePriceOfferWithLaneRequestBeginActionT,\n    CreatePriceOfferWithLaneRequestErrorActionT,\n    CreatePriceOfferWithLaneNextStepT,\n    CreatePriceOfferWithLaneRequestSuccessActionT,\n    CreateReserveBeginActionT,\n    CreateReserveErrorActionT,\n    CreateReserveSuccessActionT,\n    CreateRFQActionT,\n    CreateRFQBeginActionT,\n    CreateRFQErrorActionT,\n    CreateRFQNextStepT,\n    CreateRFQSuccessActionT,\n    EnsureCreatedRFQNextStepT,\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    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    nextStep: CreatePriceOfferWithLaneNextStepT,\n): CreatePriceOfferWithLaneRequestSuccessActionT => ({\n    type: CREATE_PRICE_OFFER_WITH_LANE_REQUEST_SUCCESS,\n    rfq,\n    lanePriceOffer,\n    nextStep,\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 = ({\n    rfqId,\n    shouldPrepareCompleteQuery = false,\n}: {\n    rfqId: RFQIdT;\n    shouldPrepareCompleteQuery?: boolean;\n}): EnsureCreatedRFQActionT => ({\n    type: ENSURE_CREATED_RFQ,\n    rfqId,\n    shouldPrepareCompleteQuery,\n});\n\nexport const createRFQSuccess = (\n    rfq: RFQDetailsT,\n    nextSteps: {\n        createRFQ?: CreateRFQNextStepT;\n        ensureCreatedRFQ?: EnsureCreatedRFQNextStepT;\n    } = {},\n): CreateRFQSuccessActionT => ({\n    type: CREATE_RFQ_REQUEST_SUCCESS,\n    rfq,\n    createRFQNextStep: nextSteps.createRFQ || null,\n    ensureCreatedRFQNextStep: nextSteps.ensureCreatedRFQ || null,\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 = (nextStep: CreateOrderNextStepT): CreateOrderSuccessActionT => ({\n    type: CREATE_ORDER_REQUEST_SUCCESS,\n    nextStep,\n});\n\nexport const createOrderError = (error: Error): CreateOrderErrorActionT => ({\n    type: CREATE_ORDER_REQUEST_ERROR,\n    error,\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","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","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 { 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","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    BrokerTendersRoutesEnum,\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    brokerTenders: () => BrokerTendersRoutesEnum.list,\n    brokerTenderCreation: () => ({\n        pathname: generatePath(BrokerTendersRoutesEnum.newTender),\n        state: {\n            rePath: getRePath(),\n        },\n    }),\n    brokerTenderDetails: (tenderId: TenderIdT) => ({\n        pathname: generatePath(BrokerTendersRoutesEnum.details, { tenderId }),\n        state: {\n            rePath: getRePath(),\n        },\n    }),\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 { 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 {\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';\nimport { OrderCreationDetailsWithLaneParamsT, OrderCreationOffersParamsT } from 'common/utils/urls';\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 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 CreatePriceOfferWithLaneNextStepT = OrderCreationDetailsWithLaneParamsT;\n\nexport type CreatePriceOfferWithLaneRequestSuccessActionT = {\n    type: typeof CREATE_PRICE_OFFER_WITH_LANE_REQUEST_SUCCESS;\n    rfq: RFQDetailsT;\n    lanePriceOffer: PriceOfferT | null;\n    nextStep: CreatePriceOfferWithLaneNextStepT;\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 CreateRFQNextStepT = OrderCreationOffersParamsT;\n\nexport type EnsureCreatedRFQNextStepT = {\n    additionalServices: number[];\n    dropOffDate: string | null;\n    pickUpDate: string | null;\n    pickUpDatesRange: Array<string | null>;\n    dropOffDatesRange: Array<string | null>;\n};\n\nexport type CreateRFQSuccessActionT = {\n    type: typeof CREATE_RFQ_REQUEST_SUCCESS;\n    rfq: RFQDetailsT;\n    createRFQNextStep: CreateRFQNextStepT | null;\n    ensureCreatedRFQNextStep: EnsureCreatedRFQNextStepT | null;\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 CreateOrderNextStepT = {\n    orderId: OrderIdT | null;\n    isCreateNextOrder: boolean;\n};\n\nexport type CreateOrderSuccessActionT = {\n    type: typeof CREATE_ORDER_REQUEST_SUCCESS;\n    nextStep: CreateOrderNextStepT;\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    shouldPrepareCompleteQuery: boolean;\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    | 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    createRFQNextStep: CreateRFQNextStepT | null;\n    ensureCreatedRFQNextStep: EnsureCreatedRFQNextStepT | null;\n    createPriceOfferWithLaneRequest: RequestStatusT;\n    createPriceOfferWithLaneNextStep: CreatePriceOfferWithLaneNextStepT | null;\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    createOrderNextStep: CreateOrderNextStepT | null;\n};\n","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","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 { 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 { 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 { 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 { 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 { 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 * 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","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"ControlLoaderWithShadow__wrap___cJBPd\",\"fadeIn\":\"ControlLoaderWithShadow__fadeIn___YQXCQ\",\"blinking\":\"ControlLoaderWithShadow__blinking___Dwafa\"};","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_LOST = 'SPOT_BID_LOST',\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_LOST>\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_LOST]: Api2.Definitions.SpotBidLostNotificationDto;\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 { 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","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 { 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 { 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 { 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 { 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 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 {\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","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 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","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 {\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","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 { 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","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 { 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","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const transportOrderRefreshChannel = new ViewEventChannel<{}>();\n","import { ConsistentStateMachineDescriptorT, StateMachineEntityHashT } from './models';\n\nexport const getStateMachineEntityHash = ({ tourId }: ConsistentStateMachineDescriptorT): StateMachineEntityHashT => {\n    return tourId;\n};\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 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 {\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 { 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 { 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 { 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","export const clientConfig = {\n    isProduction: PRODUCTION,\n    isBrokerProject: IS_BROKER,\n};\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","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","// 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\"};","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 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 { 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","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 { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const tendersRefreshChannel = new ViewEventChannel<{}>();\n\nexport const tendersPaginationChannel = new ViewEventChannel<{\n    pageNumber: number;\n}>();\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","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","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","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 { 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 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 { 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 {\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 { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const carrierContractDetailsRefreshChannel = new ViewEventChannel<{\n    contractId: CarrierContractIdT;\n}>();\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","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 { 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 {\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';\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","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"AlertContainer__container___Vopew\",\"fadeIn\":\"AlertContainer__fadeIn___G3bmd\",\"blinking\":\"AlertContainer__blinking___NvT6u\"};","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","// 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 * 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<React.PropsWithChildren<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","// 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 {\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","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","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    billingSyncRequestStatus: RequestStatusT;\n};\n\nexport type BrokerOrderDetailsByIdStateT = Record<BrokerOrderIdT, BrokerOrderDetailsStateT>;\n\nexport const initialBrokerOrderDetailsState: BrokerOrderDetailsStateT = {\n    details: null,\n    requestStatus: requestStatus.initial,\n    billingSyncRequestStatus: 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        triggerSyncOrderWithBilling: (\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<{ id: BrokerOrderIdT }>,\n        ) => {\n            // nothing - handled by saga\n        },\n        triggerSyncOrderWithBillingBegin: (state, action: PayloadAction<{ id: BrokerOrderIdT }>) => {\n            const { id } = action.payload;\n            const detailsState = state[id] || initialBrokerOrderDetailsState;\n            state[id] = { ...detailsState, billingSyncRequestStatus: requestStatus.loading };\n        },\n        triggerSyncOrderWithBillingSuccess: (state, action: PayloadAction<{ id: BrokerOrderIdT }>) => {\n            const { id } = action.payload;\n            const detailsState = state[id] || initialBrokerOrderDetailsState;\n            state[id] = { ...detailsState, billingSyncRequestStatus: requestStatus.ok };\n        },\n        triggerSyncOrderWithBillingError: (state, action: PayloadAction<{ id: BrokerOrderIdT; error: Error }>) => {\n            const { id, error } = action.payload;\n            const detailsState = state[id] || initialBrokerOrderDetailsState;\n            state[id] = { ...detailsState, billingSyncRequestStatus: requestStatus.setError(error) };\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    triggerSyncOrderWithBilling,\n    triggerSyncOrderWithBillingBegin,\n    triggerSyncOrderWithBillingSuccess,\n    triggerSyncOrderWithBillingError,\n} = brokerOrderDetailsSlice.actions;\n\nexport default brokerOrderDetailsSlice.reducer;\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","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","export const checkIsExternalUrl = (url: unknown): url is string => {\n    return typeof url === 'string' && url.startsWith('http');\n};\n","import type { TranslationKeyT } from 'common/locales/translation-key';\nimport { AuthErrorTypeEnum } from 'common/utils/api/auth/errors/auth-api-error';\nimport { useTranslation } from 'react-i18next';\n\nconst T_MAP: Partial<Record<AuthErrorTypeEnum, TranslationKeyT<'common'>>> = {\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 type { TranslationKeyT } from 'common/locales/translation-key';\nimport * 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, TranslationKeyT<'common'>> = {\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 { 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 { 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","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 { StateMachineEntityDescriptorT, StateMachineEntityHashT } from 'common/store/state-machine/models';\n\nexport const getStateMachineEntityHash = (descriptor: StateMachineEntityDescriptorT): StateMachineEntityHashT => {\n    return `${descriptor.entityType}-${descriptor.entityId}`;\n};\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    AssignToContractRequestActionT,\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 { 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 { 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","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 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","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 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 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 { 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","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { ApiBrokerTendersStatisticT } from 'broker-admin/utils/api/broker-tranziit/models';\n\nexport type TendersStatsStateT = {\n    stats: ApiBrokerTendersStatisticT | null;\n    fetchRequest: RequestStatusT;\n};\n\nconst initialState: TendersStatsStateT = {\n    stats: null,\n    fetchRequest: requestStatus.initial,\n};\n\nexport const tendersStatsSlice = createSlice({\n    name: 'tendersStats',\n    initialState,\n    reducers: {\n        fetchTendersStats: (\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<FetchOptionsT | undefined>,\n        ) => {\n            // nothing - handled by saga\n        },\n        fetchTendersStatsBegin: (state) => {\n            state.fetchRequest = requestStatus.loading;\n        },\n        fetchTendersStatsSuccess: (\n            state,\n            action: PayloadAction<{\n                statistics: ApiBrokerTendersStatisticT | null;\n            }>,\n        ) => {\n            const { statistics } = action.payload;\n            state.stats = statistics;\n            state.fetchRequest = requestStatus.ok;\n        },\n        fetchTendersStatsError: (\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 { fetchTendersStats, fetchTendersStatsBegin, fetchTendersStatsSuccess, fetchTendersStatsError } =\n    tendersStatsSlice.actions;\n\nexport default tendersStatsSlice.reducer;\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 selectCreatedDeadheadTourId = (state: StateT) =>\n    (state.deadheadCreation || initialDeadheadCreationState).createdTourId;\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 type { TranslationKeyT } from 'common/locales/translation-key';\nimport * 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, TranslationKeyT<'common'>> = {\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 {\"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 './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","// 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 partnersRefreshChannel = new ViewEventChannel<{}>();\n\nexport const partnersPaginationChannel = new ViewEventChannel<{\n    pageNumber: number;\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 * 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","// extracted by mini-css-extract-plugin\nexport default {\"money\":\"Money__money___JOTQ1\",\"fadeIn\":\"Money__fadeIn___VlGxi\",\"blinking\":\"Money__blinking___dDhO2\"};","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 * 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","// 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\"};","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","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","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 { 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","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 {\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","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","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","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 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 { 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","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 { 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 { 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","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","// 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 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 {\"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 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","// 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 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 { 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 { 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 { 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 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 {\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 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","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const spotRequestsStatsRefreshChannel = new ViewEventChannel<{}>();\n","export const ANY_TRAILER_TYPE = '__any__';\n","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 { 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 { 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 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 { 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 * 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","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 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 {\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","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","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';\n\nimport { Navigate } from 'react-router';\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 <Navigate replace to={urlFactory.toReturnUrl(returnUrl)} />;\n    }\n\n    return null;\n});\n\nexport default RedirectSignedUser;\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","// 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 { 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","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 { 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 React, { MouseEvent } from 'react';\nimport { Link as RRDLink } from 'react-router';\nimport { AppNavigationTargetT } from 'common/utils/hooks/navigation/useAppNavigate';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './Link.scss';\n\nconst cx = classNames.bind(styles);\n\nexport type LinkToT = AppNavigationTargetT;\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<React.PropsWithChildren<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} state={typeof to === 'object' ? to.state : undefined}>\n            {children}\n        </RRDLink>\n    );\n});\n\nexport default Link;\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 { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const brokerTeamDetailsRefreshChannel = new ViewEventChannel<{\n    teamId: TeamIdT;\n}>();\n","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 { 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\nexport const selectBrokerOrderBillingSyncRequestStatus =\n    (id: BrokerOrderIdT) =>\n    (state: StateT): RequestStatusT =>\n        state.brokerOrderDetails[id]?.billingSyncRequestStatus ||\n        initialBrokerOrderDetailsState.billingSyncRequestStatus;\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 { 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 { 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 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 { TenderT, FetchTendersPageQueryT } from './models';\n\nexport type TendersStateT = PaginationStateT<TenderT, FetchTendersPageQueryT>;\n\nconst initialState: TendersStateT = {\n    pages: [],\n    query: null,\n    total: null,\n    byId: {},\n};\n\nexport const tendersSlice = createSlice({\n    name: 'tenders',\n    initialState,\n    reducers: {\n        fetchTendersPage: (\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: FetchTendersPageQueryT;\n                options?: FetchOptionsT;\n            }>,\n        ) => {\n            // nothing\n        },\n        fetchTendersPageBegin: (\n            state,\n            action: PayloadAction<{\n                query: FetchTendersPageQueryT;\n                pageNumber: PageNumberT;\n            }>,\n        ) => {\n            const { pageNumber, query } = action.payload;\n\n            Object.assign(state, pageBeginReducer(state, pageNumber, query));\n        },\n        fetchTendersPageSuccess: (\n            state,\n            action: PayloadAction<{\n                query: FetchTendersPageQueryT;\n                pageNumber: PageNumberT;\n                pageResponse: PageResponseT<TenderT> | null;\n            }>,\n        ) => {\n            const { query, pageNumber, pageResponse } = action.payload;\n\n            Object.assign(state, pageSuccessReducer(state, pageNumber, query, pageResponse));\n        },\n        fetchTendersPageError: (\n            state,\n            action: PayloadAction<{\n                query: FetchTendersPageQueryT;\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        resetTenders: (\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 { fetchTendersPage, fetchTendersPageBegin, fetchTendersPageSuccess, fetchTendersPageError, resetTenders } =\n    tendersSlice.actions;\n\nexport default tendersSlice.reducer;\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 ApiOutOfServiceTypeT = Api2.Definitions.OutOfServiceType;\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\nexport type ApiBrokerBillingSyncStatusT = Api2.Definitions.BrokerBillingSyncStatus;\n\nexport enum BrokerBillingSyncStatusEnum {\n    pending = 'PENDING',\n    succeeded = 'SUCCEEDED',\n    failed = 'FAILED',\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","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 { createPortal } from 'react-dom';\n\nconst modalRoot = document.getElementById('modal');\n\ntype PropsT = {\n    children?: React.ReactNode;\n};\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 { 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","import {\n    CommonRoutesEnum,\n    OMSRoutesEnum,\n    ProfileDocumentsRoutesEnum,\n    QueryKeysEnum,\n    ShipperContractRoutesEnum,\n    ShipperContractsRoutesEnum,\n} from 'common/constants';\nimport { parseAuthReturnUrl } from './url-helpers/auth-return-url';\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 type OrderCreationOffersParamsT = {\n    rfqId: RFQIdT;\n    additionalServices: number[];\n    dropOffDate: string;\n    pickUpDate: string;\n    pickUpDatesRange: string[];\n    dropOffDatesRange: string[];\n    shipperId: ShipperIdT | null;\n};\n\nexport type OrderCreationDetailsWithLaneParamsT = {\n    rfqId: RFQIdT;\n    offerId: PriceOfferIdT;\n    laneId: ShipperContractLaneIdT;\n};\n\nexport type OrderCreationDetailsParamsT = {\n    rfqId: RFQIdT;\n    offerId: PriceOfferIdT;\n    query: Record<string, unknown>;\n};\n\nexport const getRePath = () => {\n    const query = qs.parse(window.location.search.slice(1));\n\n    return [window.location.pathname, `${query ? `?` : ''}${qs.stringify(query)}`, window.location.hash]\n        .filter(Boolean)\n        .join('');\n};\n\nexport const urlFactory = {\n    home: () => {\n        return CommonRoutesEnum.home;\n    },\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    orderCreationOffers: ({\n        rfqId,\n        additionalServices,\n        dropOffDate,\n        pickUpDate,\n        pickUpDatesRange,\n        dropOffDatesRange,\n        shipperId,\n    }: OrderCreationOffersParamsT) => {\n        return {\n            pathname: generatePath(OMSRoutesEnum.newOrderOffers, {\n                rfqId,\n            }),\n            search: formatQuery({\n                [QueryKeysEnum.orderCreationAdditionalServices]: additionalServices,\n                [QueryKeysEnum.orderCreationDropOffDate]: dropOffDate,\n                [QueryKeysEnum.orderCreationPickUpDate]: pickUpDate,\n                [QueryKeysEnum.orderCreationPickUpDatesRange]: pickUpDatesRange,\n                [QueryKeysEnum.orderCreationDropOffDatesRange]: dropOffDatesRange,\n                [QueryKeysEnum.orderCreationShipperId]: shipperId,\n            }),\n        };\n    },\n    orderCreationDetailsWithLane: ({ rfqId, offerId, laneId }: OrderCreationDetailsWithLaneParamsT) => {\n        return {\n            pathname: generatePath(OMSRoutesEnum.newOrderDetailsWithLane, {\n                rfqId,\n                offerId,\n                laneId,\n            }),\n            search: formatQuery({\n                [QueryKeysEnum.orderCreationAdditionalServices]: [],\n            }),\n        };\n    },\n    orderCreationDetails: ({ rfqId, offerId, query }: OrderCreationDetailsParamsT) => {\n        return {\n            pathname: generatePath(OMSRoutesEnum.newOrderDetails, {\n                rfqId,\n                offerId,\n            }),\n            search: formatQuery({\n                ...query,\n            }),\n        };\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) => {\n        const parsedReturnUrl = parseAuthReturnUrl(returnUrl);\n\n        return parsedReturnUrl;\n    },\n};\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 { ApiReservePointT } from 'common/store/order-creation/models';\n\nexport const createFakeIdFromPoint = (point: Pick<ApiReservePointT, 'id'>) => {\n    return point.id;\n};\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const stateMachineRefreshChannel = new ViewEventChannel<{}>();\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 { 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","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","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const updateSpotRefreshChannel = new ViewEventChannel<{}>();\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","/** 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 { 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 {\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 { ViewEventChannel } from 'common/utils/view-event-channel';\nimport { BrokerOrderDetailsRefreshChannelEventT } from './models';\n\nexport const brokerOrderDetailsRefreshChannel = new ViewEventChannel<BrokerOrderDetailsRefreshChannelEventT>();\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 {\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 {\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    /**\n     *  @deprecated use searchAssetsForAssigmentV2\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    searchAssetsForAssigmentV2 = async (\n        tourId: Api2Paths.ApiV2BrokerTours$TourIdSearchAssetsForAssignment.Post.Parameters.TourId,\n        radiusM: Api2Paths.ApiV2BrokerTours$TourIdSearchAssetsForAssignment.Post.Parameters.Radius,\n        data: Api2Paths.ApiV2BrokerTours$TourIdSearchAssetsForAssignment.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerTours$TourIdSearchAssetsForAssignment.Post.Responses.$200>> => {\n        const query: Api2Paths.ApiV2BrokerTours$TourIdSearchAssetsForAssignment.Post.QueryParameters = {\n            radius: radiusM,\n        };\n\n        return this.doFetch<Api2Paths.ApiV2BrokerTours$TourIdSearchAssetsForAssignment.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/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    triggerSyncOrderWithBilling = async (\n        orderId: Api2Paths.ApiV2BrokerOrder$OrderIdSyncWithBilling.Post.Parameters.OrderId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerOrder$OrderIdSyncWithBilling.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerOrder$OrderIdSyncWithBilling.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/broker/order/${orderId}/sync-with-billing`,\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    fetchBrokerRFQStats = async (\n        query: Api2Paths.ApiV2BrokerRfqsStatistics.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerRfqsStatistics.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerRfqsStatistics.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v2/broker/rfqs/statistics',\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    downloadBrokerRFQStats = async (\n        query: Api2Paths.ApiV2BrokerRfqsStatisticsDownload.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerRfqsStatisticsDownload.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerRfqsStatisticsDownload.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v2/broker/rfqs/statistics/download',\n            query,\n            expectedResponseContentType: 'blob',\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        shipperId: Api2Paths.ApiV2BrokerRfqsCountByShipper$ShipperId.Get.PathParameters['shipperId'],\n        query: Api2Paths.ApiV2BrokerRfqsCountByShipper$ShipperId.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerRfqsCountByShipper$ShipperId.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerRfqsCountByShipper$ShipperId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/rfqs/count-by-shipper/${shipperId}`,\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    getBrokerTendersFilter = async (\n        query?: FixPageableCommonQueryT & Api2Paths.ApiV1BrokerTendersFilter.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerTendersFilter.Get.Responses.$200>> => {\n        // Temporary mock until the backend endpoint is available.\n        return [\n            null,\n            {\n                content: [\n                    {\n                        id: '10000000-0000-4000-8000-000000000001',\n                        name: 'Retail delivery routes',\n                        shipperId: '20000000-0000-4000-8000-000000000001',\n                        shipperName: 'Demo shipper 1',\n                        createdBy: {\n                            id: '30000000-0000-4000-8000-000000000001',\n                            fullName: 'Alex Morgan',\n                        },\n                        createDate: '2026-11-04T12:00:00Z',\n                        status: 'calculated',\n                    },\n                    {\n                        id: '10000000-0000-4000-8000-000000000002',\n                        name: 'Manufacturing transport',\n                        shipperId: '20000000-0000-4000-8000-000000000002',\n                        shipperName: 'Demo shipper 2',\n                        createdBy: {\n                            id: '30000000-0000-4000-8000-000000000001',\n                            fullName: 'Alex Morgan',\n                        },\n                        createDate: '2026-11-03T12:00:00Z',\n                        status: 'parsing',\n                    },\n                    {\n                        id: '10000000-0000-4000-8000-000000000003',\n                        name: 'Distribution network',\n                        shipperId: '20000000-0000-4000-8000-000000000003',\n                        shipperName: 'Demo shipper 3',\n                        createdBy: {\n                            id: '30000000-0000-4000-8000-000000000001',\n                            fullName: 'Alex Morgan',\n                        },\n                        createDate: '2026-11-02T12:00:00Z',\n                        status: 'failed to parse',\n                    },\n                    {\n                        id: '10000000-0000-4000-8000-000000000004',\n                        name: 'Food delivery lanes',\n                        shipperId: '20000000-0000-4000-8000-000000000004',\n                        shipperName: 'Demo shipper 4',\n                        createdBy: {\n                            id: '30000000-0000-4000-8000-000000000001',\n                            fullName: 'Alex Morgan',\n                        },\n                        createDate: '2026-11-01T12:00:00Z',\n                        status: 'parsed',\n                    },\n                    {\n                        id: '10000000-0000-4000-8000-000000000005',\n                        name: 'Regional transport',\n                        shipperId: '20000000-0000-4000-8000-000000000005',\n                        shipperName: 'Demo shipper 5',\n                        createdBy: {\n                            id: '30000000-0000-4000-8000-000000000001',\n                            fullName: 'Alex Morgan',\n                        },\n                        createDate: '2026-10-31T12:00:00Z',\n                        status: 'calculating',\n                    },\n                ],\n                totalElements: 5,\n                totalPages: 1,\n            },\n        ];\n\n        // eslint-disable-next-line no-unreachable\n        return this.doFetch<Api2Paths.ApiV1BrokerTendersFilter.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v1/broker/tenders/filter',\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    getBrokerTendersStatistic = async (): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerTendersStatistic.Get.Responses.$200>\n    > => {\n        // Temporary mock until the backend endpoint is available.\n        return [\n            null,\n            {\n                calculated: 1,\n                parsing: 1,\n                failedToParse: 1,\n                parsed: 1,\n                calculating: 1,\n            },\n        ];\n\n        // eslint-disable-next-line no-unreachable\n        return this.doFetch<Api2Paths.ApiV1BrokerTendersStatistic.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v1/broker/tenders/statistic',\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","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 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';\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 { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const shipperContractLaneDetailsRefreshChannel = new ViewEventChannel<{\n    shipperContractId: ShipperContractIdT;\n    laneId: ShipperContractLaneIdT;\n}>();\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","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","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","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 {\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 {\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","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 { 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 {\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 * 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 { 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 { 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 { v4 as uuidv4 } from 'uuid';\n\nexport const generatePointFakeId = (prefix?: string): string => {\n    return `${prefix ? `${prefix}-` : ''}-fake-id-${uuidv4()}`;\n};\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","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';\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 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 { 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","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","// 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 {\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 * 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 { 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 { 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","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 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 { 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 { 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","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 { ViewEventChannel } from 'common/utils/view-event-channel';\nimport { PapersEditRefreshChannelEventT } from './models';\n\nexport const papersEditRefreshChannel = new ViewEventChannel<PapersEditRefreshChannelEventT>();\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 { TendersStateT } from './slice';\nimport { StateT } from 'broker-admin/store/models';\n\nexport const selectTendersPages = (state: StateT): TendersStateT['pages'] => state.tenders.pages;\n\nexport const selectTendersQuery = (state: StateT): TendersStateT['query'] => state.tenders.query;\n\nexport const selectTendersTotal = (state: StateT): TendersStateT['total'] => state.tenders.total;\n\nexport const selectTendersByIds = (state: StateT): TendersStateT['byId'] => state.tenders.byId;\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 { 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 { 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 {\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 {\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 { 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';\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<React.PropsWithChildren<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 {\"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 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","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","// 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\"};"],"names":["ADD_ALERT","DELETE_ALERT","PartnerContext","partnerId","partnerType","brokerTourDetailsRefreshChannel","selectCompanyState","state","companyId","rfqs","selectRFQsPages","pages","selectRFQsQuery","query","selectRFQsTotal","total","selectRFQsByIds","byId","selectRFQDetails","id","rfqDetails","details","selectRFQSuggestedPriceOffer","suggestedOffer","selectRFQDetailsRequestStatus","requestStatus","selectTendersDownloadRequestStatus","tenderCalculator","downloadRequestStatus","selectTendersImportRequestStatus","importRequestStatus","selectTendersFetchStatusRequestStatus","fetchStatusRequestStatus","selectTendersDeleteRequestStatus","deleteRequestStatus","selectTendersLastStatus","lastStatus","fetchTransportOrdersPage","pageNumber","options","type","fetchTransportOrdersPageBegin","fetchTransportOrdersPageSuccess","pageResponse","fetchTransportOrdersPageError","error","resetTransportOrders","mutationListOptions","fetchDrivers","fetchDriversBegin","fetchDriversSuccess","drivers","fetchDriversError","asyncErrors","asyncFormErrors","setAsyncFormErrors","resetAsyncFormErrors","fieldName","prevAsyncFormErrors","newAsyncFormErrors","carrierContractsRefreshChannel","FETCH_RFQ_DETAILS_REQUEST","FETCH_RFQ_DETAILS_REQUEST_BEGIN","FETCH_RFQ_DETAILS_REQUEST_ERROR","FETCH_RFQ_DETAILS_REQUEST_SUCCESS","PartnerPermissionsContext","LogoIcon","props","className","size","xmlns","width","height","viewBox","fill","fillRule","transform","cx","cy","rx","ry","d","displayName","getHash","carrierId","date","selectAssignmentRequestStatus","driverAssignment","assigmentStatus","initial","selectReAssignmentRequestStatus","reAssigmentStatus","selectStatisticsFetchQuery","statistics","fetchQuery","selectDoneStatisticsStatus","doneRequestStatus","selectDoneStatistics","doneData","selectRejectStatisticsStatus","rejectRequestStatus","selectRejectStatistics","rejectData","isAvailableRemoteLogger","isProduction","generateTraceId","logWarning","message","data","console","warn","captureMessage","logWarningWithTraceId","traceId","logDebug","trace","logError","contextMessage","errorInfo","info","captureException","logErrorWithTraceId","ViewEventChannel","subscribers","subscribe","handler","this","push","unsubscribe","filter","subscriber","emit","event","forEach","selectSpotUpdateRequestStatus","spot","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","consistentStateMachineRefreshChannel","fetchCountriesDict","fetchCountriesDictBegin","fetchCountriesDictSuccess","countriesList","fetchCountriesDictError","selectSettingsStatus","settings","fetchRequest","selectMinWindowSizeMs","value","MIN_WINDOW_SIZE","parsedValue","selectMaxWindowSizeMs","MAX_WINDOW_SIZE","selectOrderCreationMs","ORDER_CREATION_SECONDS","selectIsExternalBusinessPartnerManagement","BUSINESS_PARTNER_MANAGEMENT","DEFAULT_TIME_WINDOW_QUANTUM","selectTimeWindowQuantumMs","QUANTUM_MINUTES","selectBrokerTourEditUpdateRequestStatus","brokerTourId","brokerTourEdit","updateById","selectShipperLaneOrigin","shipperContractLaneCreation","origin","selectShipperLaneDestination","destination","selectPolylines","polylines","selectFetchRouteRequest","fetchRouteRequest","selectCalculateCostRequest","calculateCostRequest","selectAveragePriceOffer","averagePriceOffer","selectCreationRequest","creationRequest","selectMapSettings","mapSettings","isSmall","HelpIcon","BREAKING_POINT_WIDTH","window","devicePixelRatio","TOOLTIP_DELAY","Link","testSelector","rest","MenuAvatar","accountLink","isExpanded","userEmail","userName","companyName","location","isHovered","setHover","hasAccountLinkMatch","path","end","pathname","avatarNode","Avatar","A","hash","large","to","onMouseMove","onMouseLeave","Tooltip","position","centerRight","theme","black","delay","tooltipNode","MenuCompanyLogo","profileLink","hasCompanyLinkMatch","companyLogoNode","CompanyLogo","BadgeTypeEnum","logoLink","menuLinks","badges","isAllowHelpButton","isShowCompanyLogo","t","uiContext","windowSize","setWindowSize","innerWidth","innerHeight","handleResize","addEventListener","removeEventListener","setExpanded","shouldExpand","isActiveCompactMenu","menu","isVisible","helpIcon","helpContent","handleHelp","openZendeskWidget","helpNode","onClick","map","menuLink","matchPathname","excludeMatchPathname","renderIcon","text","exact","isActive","fullTestSelector","badge","badgeText","key","year","NavigationWrap","user","company","profileType","handleClose","broker","fullName","email","name","children","node","setRootNode","Provider","ref","initialShipperSuggestState","ids","action","loading","setError","partners","reduce","acc","partner","ok","fetchVehicleSchedule","params","fetchVehicleScheduleBegin","fetchVehicleScheduleSuccess","schedule","fetchVehicleScheduleError","setUnavailableVehicleRequest","setUnavailableVehicleRequestBegin","setUnavailableVehicleRequestError","setUnavailableVehicleRequestSuccess","cancelUnavailableVehicleRequest","cancelUnavailableVehicleRequestBegin","cancelUnavailableVehicleRequestError","cancelUnavailableVehicleRequestSuccess","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","DESTROY_SESSION","SET_AUTH_REDIRECT","CLEAR_AUTH_REDIRECT","SEND_TO_SPOT_BY_TOUR","CANCEL_SPOT_REQUEST_BY_TOUR","CANCEL_SPOT_REQUEST","UPDATE_REQUEST_BEGIN","UPDATE_REQUEST_ERROR","UPDATE_REQUEST_SUCCESS","fetchUser","fetchUserBegin","fetchUserSuccess","currentUser","fetchUserError","patchUser","authUser","changes","patchUserBegin","patchUserSuccess","currentUserUpdate","patchUserError","initialCompanyTransportOrdersState","initialState","companyState","newPages","splice","companyTransportOrdersState","signIn","password","returnUrl","signInBegin","signInSuccess","userClaims","signInError","resetPassword","resetPasswordBegin","resetPasswordSuccess","resetPasswordError","updatePassword","oobCode","updatePasswordBegin","updatePasswordSuccess","updatePasswordError","continueSignUp","firstName","lastName","phoneNumber","signUp","signUpBegin","signUpSuccess","signUpError","setUser","signOut","signOutBegin","signOutSuccess","signOutError","emailVerification","code","emailVerificationBegin","emailVerificationSuccess","emailVerificationError","destroySession","setAuthRedirect","redirectUrl","clearAuthRedirect","FIND_SHIPPERS_REQUEST_BY_QUERY","FIND_SHIPPERS_REQUEST_BY_ID","FIND_SHIPPERS_REQUEST_BEGIN","FIND_SHIPPERS_REQUEST_ERROR","FIND_SHIPPERS_REQUEST_SUCCESS","LockIcon","fillColor","tomatoRed","accessDeniedToApi","response","accessDeniedToEntity","couldNotUnLockCompany","test","canNotDowngradeLastAdminInTeam","notFoundCompany","requestConfig","httpStatusCode","alreadyAssignedDrivers","notFoundUser","canNotDeleteHimself","phoneAlreadyExist","emailAlreadyExist","notAuthorizedUser","successorHasNotActiveStatus","orderCreationExpiredRFQ","orderCreation_ExpiredPriceOffer","orderCreation_AlreadyCompletedRFQ","firebaseTooManyResendInviteRequests","expiredContextPreviewReserve","failedArchiveInTransitDriver","assignmentSelfCostPrediction","reason","noRouteFound","orderCreation_FailedCompleteRFQ_CapacityExcess","method","faultCode","orderCreation_FailedCompleteRFQ_Overweight","orderCreation_FailedPreviewRoute_ProhibitedCountry","orderCreation_FailedPreviewRoute_RouteNotFound","orderCreation_FailedPreviewRoute_RouteWaypointNotLinkable","orderCreation_ShipperNotAllowedToHaveNewOrders","orderCreation_ShipperNotAvailable","brokerOrderEdit_ExpirationContext","brokerDeadheadCreation_ExpirationContext","evidenceOfTaxDetails_WrongVat","deadheadCreation_InvalidVehicle","manualRateRuleCreation_InvalidZipsFrom","manualRateRuleUpdate_InvalidZipsFrom","manualRateRuleCreation_InvalidZipsTo","manualRateRuleUpdate_InvalidZipsTo","tenderJobNotFound","tenderJobNotInProcessingState","documents_unsupportedFileType","attachedPapers_unsupportedFileType","tryParseJson","logAdditionalData","JSON","parse","config","controller","AbortController","timeoutId","setTimeout","abort","timeout","headers","signal","FormData","isRawData","body","stringify","url","basepath","indices","addQueryPrefix","fetch","clearTimeout","status","rawResponseText","fetchError","expectedResponseContentType","badRequest","responseContentType","includes","parseResponseContentType","get","blob","errorMessage","toLowerCase","timeoutError","networkError","NotImplementedError","Error","constructor","super","time","Promise","resolve","DEFAULT_RETRY_COUNT","throwNotImplementedError","authApi","baseRequestConfig","checkIsValidConfig","waitValidConfig","setBasePath","getHeaders","authHeaders","getAuthHeaders","getAuthToken","token","doFetch","result","rawResponse","subTypes","Object","values","i","length","subType","parseError","checkIsRetryableError","getRetryDelayMs","attempt","baseDelayMs","factor","maxDelayMs","delayMs","Math","min","doFetchWithRetry","retryCount","retryDelayMs","actions","actionIndex","Button","isFullWidth","isCenterContent","initialTeamEditState","updateRequest","deleteRequest","createRequest","createdTeam","brokerTeamEditSlice","reducers","createTeam","createTeamBegin","createTeamSuccess","payload","createTeamError","updateTeam","updateTeamBegin","teamId","teamEditState","updateTeamSuccess","updateTeamError","deleteTeam","deleteTeamBegin","deleteTeamSuccess","deleteTeamError","resetBrokerTeamEdit","extraReducers","builder","addCase","selectTendersStatsRequest","tendersStats","selectTendersStats","stats","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","rightNode","placeholder","onChange","onBlur","onFocus","onKeyUp","onKeyDown","renderLeftIcon","renderRightIcon","hasError","hasWarning","hasSuccess","autoFocus","isLoading","isDisabled","isFocused","isForceFocused","formatter","mask","guide","hasChanges","autoComplete","isHighlighted","isTransparent","hasClearControl","testSelectorPrefix","spaces","setFocused","setHovered","isEmpty","useTestSelector","resetControlTestSelector","inputProps","sourceValue","currentTarget","formattedValue","disabled","showClearControl","hasValue","ClickInterceptorLabel","TransparentTrigger","leftIcon","CloseIcon","reflectionTheme","halfTransparentLight","ControlLoaderIcon","brandAccent","ClientFeatureEnum","LOCAL_STORAGE_KEY","saveClientFeaturesConfig","localStorage","setItem","getRawClientFeaturesConfig","getItem","setRawClientFeaturesConfig","rawValue","clearClientFeaturesConfig","removeItem","defaultConfig","showTraceId","errorDetails","partnerInvoices","partnerDrivers","getClientFeaturesConfig","parsedConfig","initialTransportOrderDetailsState","transportOrderDetailsState","transportOrderDetails","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","createAbsoluteAppUrl","relativePath","getCurrentRelativePath","replace","TranziitApiRequestErrorSubTypeEnum","tranziitApiRequestErrorSubTypeEnum","Set","TranziitApiRequestError","apiRequestError","setPrototypeOf","prototype","checkIsTranziitApiRequestError","errorSubType","has","extractApiRequestErrorTraceId","traceID","FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST","FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_BEGIN","FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_SUCCESS","FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_ERROR","search","initialCompanyDocumentsState","idsByType","uploadRequest","uploadingDictDocumentId","updatingDocumentId","fetchDocumentsRequest","downloadDocumentRequest","evidenceOfTaxDetails","fetchEvidenceOfTaxDetailsRequest","updateEvidenceOfTaxDetailsRequest","companyDocumentsState","documentIdsByType","documentsList","document","dictDocumentId","documentId","FETCH_RFQS_PAGE_REQUEST","FETCH_RFQS_PAGE_REQUEST_BEGIN","FETCH_RFQS_PAGE_REQUEST_ERROR","FETCH_RFQS_PAGE_REQUEST_SUCCESS","RESET_RFQS","reserveQueryModifyChannel","reserveLockChannel","selectCountriesDict","countriesDict","countriesState","allCodes","byCode","selectCountriesDictRequest","request","selectCountriesAllCodes","selectCountriesByCode","selectCountriesAllLangCodes","allLangCodes","selectCountriesByLangCode","byLangCode","selectCountriesCount","XLSIcon","charcoal","opacity","restProps","fillOpacity","attributeName","dur","from","repeatCount","ControlLoaderIconProps","getFetchDataProps","useChannelSubscribe","channel","useEffect","fetchPartnerDetails","fetchPartnerDetailsBegin","fetchPartnerDetailsSuccess","partnerDetails","fetchPartnerDetailsError","updatePartnerDetails","partnerDetailsChanges","externalBusinessPartnerId","mainContactChanges","teams","updatePartnerDetailsBegin","UP","updatePartnerDetailsSuccess","updatePartnerDetailsError","verifyPartnerDetails","addressType","isVerify","unVerifyPartnerDetails","verifyPartnerDetailsBegin","verifyPartnerDetailsSuccess","verifyPartnerDetailsError","unlockPartner","isLock","lockPartner","lockPartnerBegin","lockPartnerSuccess","lockPartnerError","linkWithExternalPlatformPartner","businessPartnerId","internalCompanyId","unlinkWithExternalPlatformPartner","linkExternalPlatformPartnerBegin","linkExternalPlatformPartnerSuccess","linkExternalPlatformPartnerError","DocIcon","strokeColor","gray","downloadRequest","brokerRFQStatsSlice","downloadBrokerRFQStats","downloadBrokerRFQStatsBegin","downloadBrokerRFQStatsSuccess","downloadBrokerRFQStatsError","fetchBrokerRFQStats","fetchBrokerRFQStatsBegin","fetchBrokerRFQStatsSuccess","fetchBrokerRFQStatsError","fetchSystemSettings","fetchSystemSettingsBegin","fetchSystemSettingsSuccess","fetchSystemSettingsError","updateSystemSettings","settingsChanges","updateSystemSettingsBegin","updateSystemSettingsSuccess","updateSystemSettingsError","pushSidebarsArray","array","slice","createOpenSidebarHook","queryKey","sidebarsData","setSidebarsData","useQueryParam","meta","newSidebarsData","createCloseSidebarHook","sidebarIndex","findIndex","createToggleSidebarHook","useOpenSidebar","useCloseSidebar","openSidebar","closeSidebar","isOpened","useCheckOpenedSidebar","toggle","useOpenedSidebar","leftSidebarsData","leftSidebar","rightSidebarsData","rightSidebar","find","useOpenLeftSidebar","getSubjectLogsKey","subjectType","subjectId","ensureItem","assetId","assetsSlice","validateAssetTeleport","validateAssetTeleportBegin","validateTeleportStatus","validateAssetTeleportSuccess","item","validateTeleport","validateAssetTeleportError","executeAssetTeleport","executeAssetTeleportBegin","executeTeleportStatus","executeAssetTeleportSuccess","executeAssetTeleportError","resetAssetTeleportItem","BaseSecurityAuthApi","BaseAuthService","AuthApiTypeEnum","INIT_REDIRECT_MODE_QUERY_KEY","KeycloakInitRedirectModeEnum","TOKEN_KEY","REFRESH_TOKEN_KEY","KeycloakAuthService","initRedirectMode","isInitialized","authStateChangedCallback","isRedirectingToSignIn","checkAllowedAnonymouslyUserCreation","waitInitialization","keycloak","isTokenExpired","updateToken","redirectToSignIn","Authorization","doSignOut","logout","redirectUri","href","unknown","signInWithEmailAndPassword","getAuthUserClaims","tokenParsed","roles","getAccountUrls","changeCreds","iss","clientId","verificationEmail","onReady","authenticated","userInfo","emitStateChange","isAnonymous","onAuthError","errorData","onAuthRefreshError","createLoginUrl","onAuthSuccess","refreshToken","loadUserProfile","onAuthStateChanged","createAnonymouslyUser","reauthenticateWithCredential","changePassword","updateProfile","checkIsContinueSignInRedirect","createSignInUrl","undefined","createSignInUrlAfterChangePassword","forceRefreshToken","refreshed","Infinity","createAccountUrl","createSignUpUrl","createRegisterUrl","createForgotPasswordUrl","createChangePasswordUrl","init","onLoad","checkLoginIframe","register","login","AuthApiFactory","createAuthAPI","keycloakConfig","STRINGIFIED_KEYCLOAK_CONFIG","tryParseKeycloakConfig","URL","searchParams","GPStatusEnum","ratesRefreshChannel","ratesPaginationChannel","invoicesRefreshChannel","invoicesPaginationChannel","TRUCKS_DICT_REQUEST","TRUCKS_DICT_REQUEST_BEGIN","TRUCKS_DICT_REQUEST_SUCCESS","TRUCKS_DICT_REQUEST_ERROR","CarrierTranziitApi","fetchAssetTracksByTransportOrder","transportationOrderId","apiFetchOrdersRequest","fetchTrailersPage","apiFetchTrailersRequest","addTrailer","deleteTrailer","trailerId","assignTruckToContract","assignTrailersToContract","changeRateTrucks","changeRateTrailers","activateTrailers","archiveTrailers","fetchTrailerDetails","fetchTrailersActiveFleetCount","updateTrailer","fetchActiveTrucksByIdPlateNumber","plateNumber","apiFetchTrucksRequest","archived","fetchTrucksPage","addTruck","activateTrucks","updateTruck","truckId","archiveTrucks","fetchTruckDetails","fetchTrucksActiveFleetCount","deleteTruck","getAvailableDrivers","driverName","assignDrivers","reAssignDrivers","fetchCarrierContracts","fetchCarrierApprovedContracts","fetchCarrierContractDetails","contractId","getTransportOrderDetails","fetchDriverDetails","driverId","updateDriver","newDriverData","activateDriver","archiveDriver","deleteDriver","inviteDriver","addDriver","vehicleId","fetchVehicleScheduleAroundDate","dateOfInterest","fetchDriversPage","statuses","content","searchDriver","checkTrailerGPSStatus","checkTruckGPSStatus","addVehicleScheduleEvent","cancelVehicleScheduleEvent","findTrucksForTourByPlateNumber","findTrailersForTourByPlateNumber","assignVehiclesToTransportOrder","unAssignVehicles","fetchCarrierContract","uploadCarrierContract","file","formData","append","importXLSTrailers","importXLSTrucks","exportXLSTrailers","exportXLSTrucks","attachPaperToShipment","shipmentId","attachPaperToTour","tourId","deleteAttachedPaper","paperId","getInstance","instance","carrierTranziitApi","selectBrokerTeamsPages","brokerTeams","selectBrokerTeamsQuery","selectBrokerTeamsTotal","selectBrokerTeamsByIds","fetchDriversPageBegin","fetchDriversPageSuccess","fetchDriversPageError","resetDrivers","newDriver","inviteDriverBegin","inviteDriverSuccess","inviteDriverError","addDriverBegin","addDriverSuccess","addDriverError","deleteDriverBegin","deleteDriverSuccess","deleteDriverError","driverChanges","cancelDriverInvite","driverUserId","updateDriverBegin","updateDriverSuccess","updateDriverError","fetchOptions","fetchDriverDetailsBegin","fetchDriverDetailsSuccess","fetchDriverDetailsError","fetchSpotRequestsStats","fetchSpotRequestsBegin","fetchSpotRequestsStatsSuccess","fetchSpotRequestsStatsError","FeaturesContext","newNotificationsChannel","fetchSpotRequestsPage","fetchSpotRequestsPageBegin","fetchSpotRequestsPageSuccess","fetchSpotRequestsPageError","resetSpotRequests","partnerSuggestSlice","partnerSuggestRequest","partnerSuggestRequestBegin","partnerSuggestRequestSuccess","partnerSuggestRequestError","FETCH_RFQS_STATS_REQUEST","FETCH_RFQS_STATS_REQUEST_BEGIN","FETCH_RFQS_STATS_REQUEST_ERROR","FETCH_RFQS_STATS_REQUEST_SUCCESS","fetchTracksByTransportOrders","transportOrderIds","fetchTrackBegin","fetchTrackSuccess","points","fetchTrackError","membersRefreshChannel","selectFetchDispatchersRequest","dispatchers","selectDispatchersAllIds","allIds","selectDispatchersById","fetchDocuments","fetchDocumentsBegin","fetchDocumentsSuccess","fetchDocumentsError","uploadDocument","uploadDocumentBegin","uploadDocumentSuccess","uploadDocumentError","downloadDocument","downloadDocumentBegin","downloadDocumentSuccess","downloadDocumentError","approveDocument","validTill","approveEvidenceOfTaxDocument","detailsChanges","rejectDocument","revokeDocument","updateEvidenceOfTaxDetails","updateEvidenceOfTaxDetailsBegin","updateEvidenceOfTaxDetailsSuccess","updateEvidenceOfTaxDetailsError","updateDocument","detailChanges","updateDocumentBegin","updateDocumentSuccess","updateDocumentError","fetchEvidenceOfTaxDetails","fetchEvidenceOfTaxDetailsBegin","fetchEvidenceOfTaxDetailsSuccess","fetchEvidenceOfTaxDetailsError","USER_ROLE_T_MAP","CUSTOMER_SERVICE","serviceUser","companyAdmin","driver","keyAccountManager","dispatcher","USER_POSITIONS_T_MAP","operator","management","sales","owner","it","checkIsCarrierAdditionalService","serviceType","carrier","checkIsBrokerAdditionalService","findAdditionalServiceByType","additionalServices","items","additionalService","M_IN_KM","convertToKm","meters","round","selectVehicleState","aroundDate","vehicleSchedules","byHash","selectVehicleSchedule","selectFetchScheduleRequest","fetchRequestStatus","selectSetUnavailableVehicleRequestStatus","setUnavailableRequest","selectCancelUnavailableVehicleRequestStatus","cancelUnavailableRequest","fetchRatesPage","fetchRatesPageBegin","fetchRatesPageSuccess","fetchRatesPageError","updateRates","strategy","updateRatesBegin","updateRatesSuccess","updateRatesError","resetRates","uploadCSVFile","uploadCSVFileBegin","uploadCSVFileSuccess","uploadCSVFailError","parseAuthReturnUrl","home","split","getAuthReturnUrl","getDefaultState","Date","now","InfoIcon","FETCH_SYSTEM_SETTINGS_REQUEST","FETCH_SYSTEM_SETTINGS_REQUEST_BEGIN","FETCH_SYSTEM_SETTINGS_REQUEST_ERROR","FETCH_SYSTEM_SETTINGS_REQUEST_SUCCESS","UPDATE_SYSTEM_SETTINGS_REQUEST","UPDATE_SYSTEM_SETTINGS_REQUEST_BEGIN","UPDATE_SYSTEM_SETTINGS_REQUEST_ERROR","UPDATE_SYSTEM_SETTINGS_REQUEST_SUCCESS","tenderCalculatorSlice","downloadTenderXLSFile","downloadTenderXLSFileBegin","downloadTenderXLSFileSuccess","downloadTenderXLSFileError","importTenderXLSFile","importTenderXLSFileBegin","importTenderXLSFileSuccess","importTenderXLSFileError","fetchTenderStatus","fetchTenderStatusBegin","fetchTenderStatusSuccess","fetchTenderStatusError","deleteTender","deleteTenderBegin","deleteTenderSuccess","deleteTenderError","useContext","FETCH_SPOT_REQUESTS_STATS_REQUEST","FETCH_SPOT_REQUESTS_STATS_REQUEST_BEGIN","FETCH_SPOT_REQUESTS_STATS_REQUEST_ERROR","FETCH_SPOT_REQUESTS_STATS_REQUEST_SUCCESS","isShow","activeFillColor","light","selectBrokerTeamEditCreateRequestStatus","brokerTeamEdit","selectBrokerTeamEditCreatedTeam","selectBrokerTeamEditUpdateRequestStatus","selectBrokerTeamEditDeleteRequestStatus","selectSystemSettings","priceSettings","systemSettings","selectSystemSettingsFetchRequest","selectSystemSettingsUpdateRequest","brokerTourStatsSlice","fetchBrokerTourStats","fetchBrokerTourStatsBegin","fetchBrokerTourStatsSuccess","fetchBrokerTourStatsError","AsyncDictCountryNameLabel","memo","countryCode","dispatch","countryByCode","country","userLangDisplayName","selectPartnersPages","selectPartnersQuery","selectPartnersTotal","selectPartnersByIds","selectPartnerCreationRequest","createPartnerRequest","AnyAlert","selectAvailableVehiclesQuery","brokerOrderAssigment","availableVehicles","selectUserSelection","userSelection","selectAvailableVehiclesRequest","selectFetchAssignDetailsRequest","fetchAssignDetailsStatus","selectAvailableVehicles","list","selectVehicleLinks","links","selectAvailableCarriersRequest","availableCarriers","selectAvailableCarriers","carriers","selectAvailableCarriersById","selectTruckSuggestQuery","truckSuggest","selectTruckSuggestRequestStatus","selectTruckSuggestIds","selectTruckAssignmentInfoById","truckById","selectTrailerSuggestQuery","trailerSuggest","selectTrailerSuggestRequestStatus","selectTrailerSuggestIds","selectTrailerAssignmentInfoById","trailerById","selectSelfCostPredictionQuery","selfCostPrediction","selectSelfCostPrediction","selectSelfCostPredictionRequestStatus","selectScheduleAssetById","scheduleAssetById","selectShowSelectedAssetSchedules","isShowSelectedAssetSchedules","selectSelectedScheduleEventId","selectedScheduleEventId","vehicleSchedulesRefreshChannel","companyRefreshChannel","role","getAbbreviation","Boolean","join","toUpperCase","getFullName","prepareUser","apiUser","abbreviation","surname","fetchUserSaga","fetchCurrentUser","addUserInfo","language","patchUserSaga","currentPassword","newPassword","reAuthError","newUser","authUserClaims","changePasswordError","newDisplayName","updateProfileError","patchedUser","phone","patchedApiUserUpdate","convertToApiUserUpdate","userPatchError","companyTypes","continueSignInErrorSaga","protectedSignInSaga","companyType","signInResult","userClaimsError","userClaimsResult","wrongRole","authUserStateChangeChannel","reAuthSaga","anonymouslyUser","continueReturnUrl","signInUrl","signOutSaga","rawClientFeaturesConfig","clear","sessionStorage","apiError","resetPasswordSaga","protocol","hostname","forgotPassword","updatePasswordSaga","emailVerificationSaga","signInApiError","accessDenied","getSignInSaga","isRegisteredUser","checkPasswordError","checkPasswordSaga","verificationError","currentUserError","completeUserRegistration","forceRefreshCurrentUserSaga","getContinueSignInSaga","createUser","timezone","utcOffset","address","city","street1","zipCode","getSignUpSaga","userChannel","isNotValidRole","selfCreateCompany","getAuthWatch","DEFAULT_REQUEST_TTL","DEFAULT_ERROR_TTL","requestOkTTL","requestErrorTTL","isForceUpdate","isUnauthorizedError","errorTTL","ttl","checkIsExpiredError","okTTL","checkIsExpiredRequest","fetchCompanySaga","currentCompany","fetchCurrentCompany","updateCompanySaga","companyChanges","patchCompany","profileUpdated","semaphoreSaga","actionType","handleSaga","expanding","fetchTrailersDictSaga","trailersDict","getTrailersDict","Blob","saveAs","fetchTrailersSaga","prevQuery","isSameQuery","isNeedRequest","savingPageNumber","page","refreshTrailerDetailsIfNeedSaga","addTrailerSaga","addPartnerTrailer","trailerAdded","deleteTrailersSaga","trailerIds","activateTrailersSaga","activateTrailersRequest","allCount","invalidAssetsMap","invalidAssets","failedTrailerIds","failedCount","successfulCount","trailer","trailerFailedActivate","invalidAssetsPlateNumbers","trailersFailedActivate","plateNumbers","trailerSuccessfullyActivated","trailersSuccessfullyActivated","count","assignToContractSaga","contractName","changeContractRequest","trailerFailedUpdateContract","trailersFailedUpdateContract","trailerSuccessfullyUpdatedContract","trailersSuccessfullyUpdatedContract","changeRateTrailersSaga","changeRateVehiclesRequest","trailerFailedUpdateRate","trailersFailedUpdateRate","trailerSuccessfullyUpdatedRate","trailersSuccessfullyUpdatedRate","archiveTrailersSaga","comment","failedTrailerId","trailerFailedArchivedHasFutureAssignment","trailerFailedArchived","trailersFailedArchived","trailerSuccessfullyArchived","trailersSuccessfullyArchived","fetchTrailersStatsSaga","fetchStatsRequestStatus","resultError","actualTotalCount","fetchTrailerDetailsSaga","updateTrailerSaga","trailerSuccessfullyEdited","importXLSTrailersSaga","importPartnerXLSTrailers","trailerSuccessfullyXLSImport","exportXLSTrailersSaga","exportPartnerXLSTrailers","format","fetchTrucksDictSaga","apiTrucksDict","getTrucksDict","trucksDict","fetchTrucksSaga","refreshTruckDetailsIfNeedSaga","addTruckSaga","addPartnerTruck","truckAdded","deleteTrucksSaga","truckIds","activateTrucksSaga","activateTrucksRequest","failedTruckIds","truck","truckFailedActivate","trucksFailedActivate","truckSuccessfullyActivated","trucksSuccessfullyActivated","archiveTrucksSaga","failedTruckId","truckFailedArchivedHasFutureAssignment","truckFailedArchived","trucksFailedArchived","truckSuccessfullyArchived","trucksSuccessfullyArchived","assignTruckToContractSaga","truckFailedUpdateContract","trucksFailedUpdateContract","truckSuccessfullyUpdatedContract","trucksSuccessfullyUpdatedContract","changeRateTrucksSaga","truckFailedUpdateRate","trucksFailedUpdateRate","truckSuccessfullyUpdatedRate","trucksSuccessfullyUpdatedRate","fetchTruckDetailsSaga","fetchPartnerTruckDetails","fetchTrucksStatsSaga","updateTruckSaga","updatePartnerTruck","truckDetails","truckSuccessfullyEdited","importXLSTrucksSaga","importPartnerXLSTrucks","truckSuccessfullyXLSImport","exportXLSTrucksSaga","exportPartnerXLSTrucks","checkError","IGNORE_ACTION_TYPES_SET","IGNORE_API_ERRORS_TYPES_SET","failReauthenticateWithCredential","failUpdatePassword","wrongPassword","IGNORE_API_ERRORS_SUB_TYPES_SET","extractErrorFromAction","anyActionSaga","actionError","networkRequestFailed","fetchPartnersSaga","fetchPartnersPage","invitePartnerSaga","invitePartner","businessPartnerInvited","createPartnerSaga","createPartner","createFromExternalPlatformPartnerSaga","createFromExternalPlatformPartner","fetchPartnersStatsSaga","stat","fetchPartnersStatistics","shippersStat","carrierStat","brokerStat","shipper","fetchManagersSaga","managers","fetchPartnerManagers","fetchDispatchersSaga","fetchPartnerDispatchers","fetchPartnerDetailsSaga","sort","teamA","teamB","localeCompare","normalizePartnerDetails","updatePartnerDetailsSaga","isShowBusinessPartnerUpdatedAlert","currentParentDetails","error1","hasExternalBusinessPartnerChanges","externalBusinessPartnerError","hasMainContactChanges","mainContactId","mainContactInfo","error2","setMainContactForPartner","mainContactChanged","currentTeamIds","team","arr1","arr2","error3","assignTeamsForPartner","billingId","businessPartnerUpdated","verifyPartnerDetailsSaga","verifyPartnerAddress","unVerifyPartnerAddress","businessPartnerAddressVerified","businessPartnerAddressUnverified","lockPartnerDetailsSaga","businessPartnerLocked","businessPartnerUnlocked","linkWithExternalPlatformPartnerSaga","businessPartnerLinkedToExternalProfile","unlinkWithExternalPlatformPartnerSaga","businessPartnerUnlinkedFromExternalProfile","fetchRFQStatsSaga","fromDate","toDate","fetchPartnerRFQCount","fetchCountriesDictSaga","getCountries","sortedCountriesDict","apiDocument","String","documentType","documentsRefreshChannel","partnerDocumentsRefreshChannel","parseContentDispositionFilename","headerValue","match","decodeURIComponent","quotedMatch","unquotedMatch","HEADERS","STATUSES_RANK","waitingForApprove","approved","expired","rejected","revoked","byStatusDesc","documentA","documentB","aRank","fetchDocumentsSaga","documentsByType","documents","preparedDocuments","uploadDocumentSaga","dictDocument","documentUploaded","dictDocumentName","downloadDocumentSaga","fetchDocument","contentDispositionHeader","filename","fileTypeHeader","approveEvidenceOfTaxDocumentSaga","approvePartnerEvidenceOfTax","documentsDictById","documentsById","documentApproved","approveDocumentSaga","approvePartnerDocument","rejectDocumentSaga","rejectPartnerDocument","documentRejected","revokeDocumentSaga","revokePartnerDocument","documentRevoked","updateDocumentSaga","updatePartnerDocument","documentUpdated","updateEvidenceOfTaxDetailsSaga","updateEvidenceOfTax","fetchEvidenceOfTaxDetailsSaga","rawDocument","required","fetchDocumentsDictSaga","currentDocumentsDict","documentDictResult","fetchDocumentsDict","documentsDict","preparedDocumentsDict","fetchRatesSaga","updateRatesSaga","uploadCsvFileSaga","uploadRatesCSVFile","fetchRulesSaga","fetchRulesPage","updateRuleSaga","ruleId","ruleDraft","updateRule","ruleIds","deactivateRulesSaga","deactivateRule","activateRulesSaga","activateRule","deleteRulesSaga","deleteRule","previewRuleSaga","rulePreview","createRuleSaga","createRule","fetchRuleDetailsSaga","ruleDetails","fetchRuleDetails","FETCH_SETTINGS","FETCH_SETTINGS_BEGIN","FETCH_SETTINGS_SUCCESS","FETCH_SETTINGS_ERROR","SpotBrokerTranziitApi","fetchSpotRequests","fetchSpotRequestDetails","cancelSpotRequestByTour","cancelSpotRequest","spotId","assignBidToSpotRequest","spotRequestId","entries","allSpotSystemSettings","fetchSystemSettingsSaga","spotError","spotData","updateSystemSettingsSaga","apiSettingsChanges","apiSpotSettingsChanges","fetchAction","fetchAdditionalServicesSaga","fetchAdditionalServices","normalizedResponse","group","services","serviceA","serviceB","service","groupA","groupB","categoryCompare","category","aTrailerType","trailerType","bTrailerType","normalizeAdditionalServicesResponse","updateAdditionalServiceSaga","updateAdditionalService","checkIsAvailableDropAssetPoints","pointToDropTruck","pointToDropTrailer","countriesSettingsRequest","countriesSettingsByCode","isAvailablePointToDropTrailer","utcOffsetMinutes","isAvailablePointToDropTruck","initUserSelectionSaga","brokerOrderId","excludedCountries","isIgnoreCertificates","isIgnoreEmissionStandard","changeUserSelectionSaga","prevUserSelection","radiusKm","selfCostReserve","isExpiredReserve","expireTime","truckAssignmentInfo","trailerAssignmentInfo","fetchAssignDetailsSaga","fetchTourAssignDetails","fetchAvailableVehiclesSaga","radiusM","carrierIds","selectedAssets","searchAssetsForAssigmentV2","ignoreEmissionStandard","ignoreCertificates","point","longitude","lng","latitude","lat","vehicles","assets","assetsIds","convertAsset","asset","assetsToHook","index","vehicle","convertAssetsSearchResponse","fetchAvailableCarriersSaga","fetchAvailableCarriers","refreshTruckSaga","findTruckSaga","apiTrucksSuggestItems","findTrucksByPlateNumber","limitedTrucksSuggestItems","refreshTrailerSaga","findTrailerSaga","apiTrailersSuggestItems","findTrailersByPlateNumber","limitedTrailersSuggestItems","predictSelfCostSaga","isAvailablePointToDrop","calculateTourCostsForAssets","prohibitedCountries","withPolyLines","addressComponents","street2","preparedResult","secondsToExpire","assignSaga","assignmentContextId","assignOrder","assetsAssignedToTour","fetchAssetScheduleSaga","brokerOrderDetails","tourDetails","tours","firstWaypoint","waypoints","targetDate","correctedDateTimeFrom","originalDateTimeFrom","scheduleResponse","currentScheduleEvent","dateFrom","truckDateFrom","trailerDateFrom","start","dateTo","truckDateTo","trailerDateTo","getCurrentScheduleEvent","currentScheduleEventId","scheduleEvent","eventType","shipment","schedulePolylines","rfqRoutePolylineIds","dropTrailerPolylineId","dropTruckPolylineId","payloadPolylineId","trailerToPickUpPolylineId","truckToTrailerPolylineId","rfqRoutePolylineId","fetchRouteGeometryPlainResponse","fetchRouteGeometryGoogle","polyline","scheduleEventId","resetSaga","initAssignmentSaga","VEHICLE_SCHEDULE_TTL","setUnavailableVehiclesSaga","truckSuccessfullySetUnavailable","trailerSuccessfullySetUnavailable","cancelUnavailableVehiclesSaga","fetchScheduleRequest","getFetchVehicleScheduleSaga","fetchCarriersUtilizationSaga","carriersUtilizationByHash","needIds","utilizations","fetchCarriersUtilization","findCarriersSaga","rawQuery","trim","findCarriersByName","findShippersByQuerySaga","findShippersByName","findShippersByIdSaga","legalAddress","number","legalAddressVerified","billingAddressVerified","documentsVerified","normalizedData","additionalServiceGroups","apiPriceOffer","expirationMs","expiration","firstPoint","lastPoint","dropOffDockingHoursFrom","dropOffDockingHoursTo","pickupDockingHoursFrom","pickupDockingHoursTo","dropOffDate","pickUpDate","isGreenTruck","LOW_EMISSIONS","isUrgentShipment","URGENT_PICKUP","isTeamDrive","teamDriveCost","hasLayover","layover","totalSeconds","layoverSeconds","layoverPaidHours","paidHours","distanceKm","distances","totalDistance","co2","emissionClass","travelSeconds","price","totalPrice","isExpired","brokerInfo","appliedRules","rule","valueType","teamDriveHours","fuelOptionType","fuel","fuelType","priceComponents","lineHaul","toll","totalCost","fuelByCountry","byCountry","additionalServicesItems","tranziitServiceFee","serviceFee","tollByRoadType","byRoadType","totalRate","costOfOperation","apiRFQ","ordersRefreshChannel","ShipperTranziitApi","getRFQSuggestedOffer","rfqId","fetchAssetTracksByOrder","orderId","fetchOrdersPage","filters","fetchShipperInvoicesPage","fetchRFQsPage","fetchRFQDetails","fetchRFQsStats","fetchShipperContractDetails","shipperContractId","fetchShipperContractLaneDetails","laneId","fetchPartnerShipperContracts","fetchShipperContract","fetchShipperContractLanes","getOrderDetails","updateOrderStopContact","stopId","fetchShipperInfoSaga","shipperInfoById","currentRequestStatus","shipperId","fetchOrderReservesShippers","shipperInfo","delayedSyncFetchTaskOffers","unSubscribeTaskOffersSaga","SUBSCRIPTION_INTERVAL","delayedSyncFetchTaskOffersSaga","expectedOffersCount","isComplete","responsePriceOffers","getPriceOffers","apiPriceOffersError","apiPriceOffers","priceOffers","handlePreviewReserveErrorSaga","fetchTaskOfferSaga","offersTasks","createReserveSaga","isBroker","createReserveQuery","countrySettingsByCountryCode","apiCreateReserveQuery","addresses","routeStart","trailerDictId","hasAllAddresses","every","_","pointLocation","countyCode","convertToPointLocation","addressAlias","dictTrailerId","getApiReverseQuery","ship","responseCreateReserve","restApiCreateReserveQuery","createMultipointOrderReservation","reserve","preparedReserve","apiReserve","apiPoints","restApiReserve","apiPoint","defaultFrom","defaultTo","restApiPoint","defaultTimeWindow","correctedPoints","notes","note","orderContextNote","previewReserveSaga","reservePreviewQuery","apiReservePreviewQuery","reserveId","pointsById","timeWindows","timeWindow","brokerWindow","isBrokerTimeWindow","timeWindowFrom","timeWindowTo","getApiPreviewReverseQuery","responsePreviewReserve","previewReserve","apiPreview","preview","apiReservePreview","timeWindowsById","correctedBrokerWindow","correctedTimeWindow","urgentTimeWindow","regularTimeWindow","layoverTimeWindow","brokerAppointmentTimeWindow","outOfServiceTimeWindow","correctedFrom","correctedTo","regularFrom","urgentFrom","layoverStart","latestTo","canDelegateFrom","canDelegateTo","outOfServiceFrom","outOfServiceTo","outOfServiceType","addressAliasByPointId","correctedTimeWindowsByPointId","correctedBrokerWindowByPointId","changeReserveQuerySaga","queryModifyEvent","prevReserveQuery","prevReserveRequest","reverseQueryChanges","queryChanges","fullRouteChange","addressQueryChanges","routePoint","routePointChange","newAddresses","targetIndex","addRoutePoint","beforeAddressAlias","deleteRoutePoint","reserveShipperId","orderCreationUnavailableReasons","Number","firstRoutePoint","defaultPickUpTimeWindowStart","getReverseQueryChanges","currentReserveQuery","isSameReserveRequest","isInitReserveRequest","diff","reserveQueryModifyEvent","reserveQueryCorrection","reserveQuery","some","replacedCoordinate","changeQuery","getReserveQueryCorrection","prevReservePreviewQuery","previewReverseQueryChanges","isAvailableLane","contractLanes","contractLane","isResetChange","prepareRoutePointChanges","prevRoutePointChanges","routePointChanges","prevQueryChangesTimeWindows","isClearAfterEmptyTimeWindows","getPreviewReverseQueryChanges","currentReservePreviewQuery","mergePreviewReverseQuery","newQueryChanges","reservePreviewIndex","setReversePreviewDefaultQuery","correctedReservePreviewQuery","correctionPreviewReverseQueryAfterReserve","queryModifyEventAfterReserve","prevPreviewQuery","isNotAvailableLane","correctedLaneId","getQueryModifyEventAfterReserve","reservePreview","isInitReservePreview","previewReserveQueryModify","previewReserveQueryCorrection","queryTimeWindowsById","queryTimeWindow","getPreviewReserveQueryCorrection","QueryModifyEventsQueue","summaryEvent","addEvent","flush","prevSummaryEvent","emitQueryModifyIfNeed","watchSyncChangeReserveQuerySaga","buffer","fixed","queryModifyEventsQueue","watchPriceOffersExpirationSaga","REFRESH_INTERVAL","expriredOfferIds","offer","actualOrderRequest","apiCreateRFQResponse","createMultipointOrderQuotation","apiCreateRFQError","apiCreateRFQResult","nextStep","selectedDropOffDate","selectedPickupDate","pickUpDatesRange","pickupDates","dropOffDatesRange","dropOffDates","apiRFQDetailsResponse","apiRFQDetailsError","apiRFQDetailsData","preparedRFQ","createRFQ","polylineId","getCreateRFQSaga","apiCreateLaneOrderPriceOfferError","apiCreateLaneOrderPriceOfferResult","apiLanePriceOffers","apiLanePriceOffersError","apiLanePriceOffersResult","apiLanePriceOffer","offerId","lanePriceOffer","getCreatePriceOfferWithLaneSaga","currentRFQ","currentRoute","currentPriceOffers","apiRFQError","apiRFQData","ensureCreatedRFQNextStep","shouldPrepareCompleteQuery","pickupDatesRange","priceOffer","dropOffDateRange","firstRFQPoint","lastRFQPoint","ensureCreatedRFQ","getEnsureCreatedRFQSaga","createOrderRequest","isCreateNextOrder","responseCreateOrder","completeRFQ","orderPlaced","apiRouteError","apiRoute","fetchBrokerOrdersSaga","fetchBrokerOrdersPage","fetchBrokerOrderDetailsSaga","getBrokerOrderDetails","triggerSyncOrderWithBillingSaga","triggerSyncOrderWithBilling","brokerOrderStatsSlice","fetchBrokerOrderStats","fetchBrokerOrderStatsBegin","fetchBrokerOrderStatsSuccess","fetchBrokerOrderStatsError","fetchBrokerOrderStatsSaga","fetchBrokerOrdersStatistics","brokerToursRefreshChannel","brokerToursPaginationChannel","fetchBrokerToursSaga","getBrokerToursFilter","totalElements","totalPages","fetchBrokerTeamsSaga","getTeamsFilter","fetchBrokerRFQStatsSaga","downloadBrokerRFQStatsSaga","fetchBrokerTourStatsSaga","getBrokerToursStatistic","fetchBrokerTourDetailsSaga","getBrokerTourDetails","normalizeTeamDetails","teamDetails","companies","companyA","companyB","users","userA","userB","fetchBrokerTeamDetailsSaga","getTeamDetails","prepareCompanyContactDetails","contactDetails","fetchContactsSaga","fetchCompanyContacts","companyContacts","inviteUserSaga","addUserToCurrentCompany","addUserToPartner","emailInvited","addContactSaga","newContact","addContactToCurrentCompany","addContactToPartner","contactAdded","getContactById","contactId","getContactByUserId","userId","contactIdByUserId","contactById","deleteContactSaga","deleteContact","contact","contactDeleted","deleteUserSaga","deleteUser","userDeactivated","cancelUserInviteSaga","cancelUserInvite","inviteCanceled","restoreUserSaga","restoreUser","userRestored","changeUserRoleSaga","assignUserRole","userRolesChanged","updateContactSaga","contactChanges","updateContact","contactEdited","fetchContactDetails","preparedDetails","getFetchContactDetailsSaga","fetchContactDetailsByUserId","getFetchContactDetailsByUserIdSaga","fetchDriversSaga","inviteDriverSaga","invitePartnerDriver","addDriverSaga","deleteDriverSaga","deletePartnerDriver","updateDriverSaga","updatePartnerDriver","fetchDriverDetailsSaga","fetchPartnerDriverDetails","activateDriverSaga","activatePartnerDriver","cancelDriverInviteSaga","archiveDriverSaga","archivePartnerDriver","convertNotification","apiNotification","baseNotification","SHIPMENT_STATUS_CHANGED","parsedNotification","SHIPMENT_CANCELED","relatedIds","SHIPMENT_MISSED","SHIPMENT_NO_SHOW","SHIPMENT_UPDATED","ORDER_STATUS_CHANGED","ORDER_EDITED","ORDER_PLACED","ORDER_CANCELED","TOUR_STATUS_CHANGED","baseTourStatusNotification","ORDER_ROUTE_UPDATED","TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_ASSETS","TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_DRIVER","TOUR_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER","runningOutOfTimeToAssignCarrier","TOUR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER","runOutOfTimeToAssignCarrier","TOUR_RUN_OUT_OF_TIME_TO_ASSIGN_CARRIER","TOUR_DELAYING","TRANSPORTATION_ORDER_STATUS_CHANGED","TRANSPORTATION_ORDER_DECLINED","TRANSPORTATION_ORDER_CANCELED","TRANSPORTATION_ORDER_UPDATED","TRANSPORTATION_ORDER_MILEAGE_AND_PAYMENT_CHANGED","TRANSPORTATION_ORDER_PLACED","RFQ_ALERT","SPOT_PLACED","SPOT_CANCELLED","SPOT_ASSIGNED","SPOT_EXPIRED","TOUR_SPOT_EXPIRED","SPOT_BID_ACCEPTED","SPOT_BID_EXPIRED","SPOT_BID_LOST","SPOT_BID_MISSED","SPOT_BID_PLACED","DOCUMENT_EXPIRED","SHIPPER_CONTRACT_LANE_EXPIRED","SHIPPER_CONTRACT_EXPIRED","CARRIER_CONTRACT_EXPIRED","DOCUMENT_COMPLETED","SHIPPER_CONTRACT_LANE_COMPLETED","SHIPPER_CONTRACT_COMPLETED","CARRIER_CONTRACT_COMPLETED","DOCUMENT_EXPIRATION_SOON","SHIPPER_CONTRACT_LANE_EXPIRATION_SOON","SHIPPER_CONTRACT_EXPIRATION_SOON","CARRIER_CONTRACT_EXPIRATION_SOON","DOCUMENT_REVOKED","SHIPPER_CONTRACT_LANE_REVOKED","SHIPPER_CONTRACT_REVOKED","CARRIER_CONTRACT_REVOKED","DOCUMENT_UPLOAD","SHIPPER_CONTRACT_UPLOADED","SHIPPER_CONTRACT_LANE_UPLOAD","DOCUMENT_APPROVED","DOCUMENT_REJECTED","DOCUMENT_UPDATED","SHIPPER_CONTRACT_LANE_UPDATED","SHIPPER_CONTRACT_UPDATED","CARRIER_CONTRACT_UPDATED","ERROR_WHEN_CREATE_INVOICE","TEAM_USER_ADDED","TEAM_USER_REMOVED","TEAM_REMOVED","BUSINESS_PARTNER_ADDRESS_VERIFICATION","ASSET_ADDED","ASSET_UPDATED","BROKER_BUSINESS_PARTNER_UPDATED","createVisibilityChangeChannel","emitter","hidden","createIntervalChannel","intervalMs","intervalId","setInterval","clearInterval","jobSaga","visibilityChangeChannel","intervalChannel","lastCallTime","lastIsHidden","visibility","interval","visibleSaga","notificationEmotionMapByAlertLevel","NORMAL","neutral","POSITIVE","positive","ATTENTION","attention","WARNING","negative","UNREAD_NOTIFICATIONS_REFRESH_INTERVAL_MS","otherTabSeenNotificationIds","lastTabFocusTimestamp","rememberTabFocusTimestamp","toISOString","seenNotificationsBroadcastChannel","BroadcastChannel","sendTestNotificationSaga","sendTestNotification","checkIsReadySaga","createFetchUnReadNotificationsSaga","prevLastUnReadNotification","prevUnReadNotificationsRequest","errorApiUnReadNotifications","apiUnReadNotifications","fetchUnReadNotifications","unreadNotifications","apiUnReadNotification","newNotifications","notifications","minTimestamp","isAfterMinTimestamp","notification","timestamp","filterNewNotifications","notSeenNewNotifications","notSeenNewNotificationIds","postMessage","notificationIds","onmessage","messageEvent","notificationId","add","isAll","markAsRead","createMarkAsReadNotificationsSaga","fetchNotificationsPage","newResponse","createFetchNotificationsPageSaga","orderHash","apiAssetsCoordinates","apiAssetCoordinates","tracks","coordinates","coordinate","receivedDate","getFetchTrackByOrderSaga","transportOrderId","transportOrderHash","ge","getFetchTrackByTransportOrdersSaga","fetchCarrierContractsSaga","partnerContracts","updateCarrierContractSaga","contractChanges","fetchDetailsError","contractDetails","patchedPartnerContract","updateCarrierContract","revokeCarrierContractSaga","revokeInfo","revokeCarrierContract","rejectCarrierContractSaga","rejectCarrierContract","approveCarrierContractSaga","approveCarrierContract","uploadCarrierContractSaga","contractUploaded","downloadCarrierContractSaga","fetchTransportOrdersSaga","getFetchTransportOrderDetailsSaga","UNREAD_GROUPED_NOTIFICATION_COUNTS_TTL","fetchGroupedNotificationCountsSaga","fetchUnreadGroupedNotificationCounts","byAction","checkGPSStatusSaga","isSameRequest","assetType","checkPartnerTrailerGPSStatus","checkPartnerTruckGPSStatus","groups","apiSettings","fetchSettings","fetchSettingsError","apiSetting","fetchSettingsSuccess","getFetchSettingsSaga","driversPage","fetchDoneStatisticsSaga","statistic","getDoneStatistics","fetchRejectStatisticsSaga","getRejectStatistics","fetchStatisticsSaga","fetchSpotRequestsSaga","fetchSpotRequestsStatsSaga","assignBidToSpotRequestSaga","bidId","transportOrderAssigned","fetchSpotRequestDetailsSaga","fetchDetailsRequestStatus","cancelSpotSaga","isSpotRequestCancelled","cancelSpotById","spotRequestCancelled","refreshBrokerOrderDetails","refreshSpotRequestDetails","cancelSpotByTourSaga","tourIds","responseError","cancelSpotByTour","sendToSpotByTourSaga","deadline","sentTransportOrderToSpot","tourSentToSpot","spotAssetsAssigned","unassignSaga","spotAssetsUnassigned","driverIds","mainDriverId","teamDriverId","driverAssigned","driversCount","reAssignSaga","driverUnassigned","fetchInvoicesSaga","fetchBrokerInvoicesPage","preparedResponse","random","pagingTokens","hasMore","startingAfter","endingBefore","invoicesSaga","shipperContractsSaga","createCompanySaga","registrationCompanyRequestDraft","createCompany","forceRefreshTokenError","isLocked","getCreateCompanySaga","shipperContractLanesSaga","fetchPartnerShipperContractLanes","calculateCostSaga","skipRules","skipCommission","createShipperContractLaneRFQQuery","createShipperContractLaneRFQ","data2","fetchShipperContractLaneRFQOffersAverage","data3","error4","data4","createLaneSaga","createShipperContractLane","shipperContractLaneAdded","shipperContractLaneCreationSaga","shipperContractLaneDetailsSaga","getFetchShipperContractLaneDetailsSaga","revokeShipperContractLane","shipperContractLaneRevoked","updateShipperContractLane","shipperContractLaneUpdated","fetchCountrySettingsDictSaga","getCountrySettingsDict","countrySettingsDictSaga","consistentStateMachineSaga","descriptor","fetchStateMachineToursAvailableSteps","waypointId","stateMachineToursWaypointsLeft","stateMachineToursWaypointsArrived","stateMachineToursWaypointsUndoLeft","stateMachineToursWaypointsUndoArrived","getFetchRFQsSaga","getFetchRFQsStatsSaga","detailsResponse","rfqDetailsError","rfqDetailsData","suggestedOfferResponse","suggestedOfferError","suggestedOfferData","getFetchRFQDetailsSaga","closeRFQSaga","closeRFQ","rfqSuccessfulClosed","getInitialState","signInRequest","resetPasswordRequest","updatePasswordRequest","signUpRequest","signOutRequest","emailVerificationRequest","currentUserRequest","patchUserRequest","currentCompanyRequest","updateCompanyRequest","CLOSE_ERROR_MODAL","logs","isShowErrorModal","trailersDictRequest","trucksDictRequest","verifyRequest","lockRequest","linkRequestStatus","prevPartnerDetails","rfqStats","uploadCSVRequest","detailsById","fetchDetailsRequest","previewRequest","rates","rules","newList","serviceItem","targetChange","changesItem","itemCost","getAssignmentVehicleLinks","byTruckId","byTrailerId","getTrailerById","prevTrailerById","getTruckById","prevTruckById","initialUserSelectionValues","isShowActualPlace","isShowUnavailableAssets","isShowAssetSchedule","initialAssetSchedule","events","routeById","currentEventId","currentPositionAssetById","shipperInfoRequestStatus","reserveRequest","previewReserveRequest","previewReserveQuery","isAllowCreateRFQ","createRFQRequest","createRFQNextStep","createPriceOfferWithLaneRequest","createPriceOfferWithLaneNextStep","rfq","createOrderNextStep","currentPageNumber","markAsReadRequest","counts","expectedLatitude","expectedLongitude","expectedArrivalDate","currentLatitude","currentLongitude","restTrailer","futurePoint","currentPoint","arrivalDate","restTruck","pagingState","LogRecordActionEnum","subjectLogsSaga","getSubjectLogs","rawLog","apiLogRecord","parsedLogRecord","TOUR_SPOT_PLACED","TOUR_SPOT_CANCELLED","WAYPOINT_UPDATED","TRANSPORTATION_ORDER_ASSETS_ASSIGNED","TRANSPORTATION_ORDER_ASSETS_UNASSIGNED","TRANSPORTATION_ORDER_DRIVER_ASSIGNED","TRANSPORTATION_ORDER_DRIVER_UNASSIGNED","convertLogRecord","fetchCarrierContractDetailsSaga","carrierContractState","shipperContractDetailsSaga","getFetchShipperContractDetailsSaga","uploadShipperContract","shipperContractUploaded","revokeShipperContract","shipperContractRevoked","getDownloadShipperContractDetailsSaga","updateShipperContract","shipperContractUpdated","ROUTING_GEOMETRY_TTL","routingGeometrySaga","polylineIds","stateMachineSaga","fetchStateMachineEntityStatus","entityType","entityId","update","successAlert","updateStateMachineEntityStatus","shouldIgnoreErrorModal","checkIsTruckCantBeOnTimeForNextTourError","truckCantBeOnTimeForNextTour","nextTransportOrderId","nextToId","nextTransportOrderNumber","nextToNumber","checkIsTrailerCantBeOnTimeForNextTourError","trailerCantBeOnTimeForNextTour","byCountryCode","getOrderId","getCorrectedStops","context","stops","flatMap","tour","stop","alias","getAddedStopAliases","prevContext","contextAfterModify","prevStopAliases","getDeletedStopAliases","contextStopAliases","getOrderStopAliases","findContextStopByAlias","routePointAlias","waitFinishAllActionIfNeedOrderContextSaga","waitCreatingFinishIfNeedOrderContextSaga","waitApplyingFinishIfNeedOrderContextSaga","waitDeletingFinishIfNeedOrderContextSaga","sourceOrderEditContext","orderEditBrokerOrderDetails","isShouldAddPoint","contextRoutePointAlias","pointType","routePointType","driveThrough","dropAndHook","beforeContextStop","beforeContextRoutePointAliases","allStops","stopByAlias","targetAlias","findFirstBeforeStop","beforeContextStopIndex","errorAfterAddStop","contextAfterAddStop","editOrderContextAddStop","correctedStops","addedStopAliases","deletedStopAliases","orderStopAliases","targetContextStop","editOrderContextUpdateStop","dateTimeFrom","dateTimeTo","editOrderContextDeleteStop","watchSyncChangeContextQuerySaga","orderEditContextSaga","fakeSessionId","orderEditContext","fetchBrokerOrderError","fetchBrokerOrderResult","editOrderCreateOrGetContext","editOrderDeleteContext","editOrderApplyContext","orderRouteUpdated","updateShipmentSaga","editOrderUpdateShipment","shipmentUpdated","updateStopContactSaga","editOrderUpdateStopContact","updateDockingHoursSaga","updateBrokerWindowAppointment","updateTourShipmentSaga","updateTourStopContactSaga","source","waypointContactUpdated","partnerSuggestSaga","validateDeadheadInitContextQuery","excludedCountriesSet","getDeletedStopFakeIds","previewContext","previewContextAfterModify","prevStopsIds","fakeId","stopsIdsAfterModify","getAddedStopFakeIds","getContextRouteStopAddressHash","getOrderStopFakeIds","applyDeadheadContextSaga","waitFinishIfNeedDeadheadApply","contextId","requestBody","doNotIncludeCostsInTransportOrder","contacts","applyDeadheadContext","deadheadTourPlaced","changeDeadheadQueueWorker","prevDeadheadInitContextQuery","deadheadInitContextQuery","newQuery","resetRoute","contextRouteStopFakeId","initRoute","beforeIndex","beforeContextRouteStopFakeIds","foundIndex","modifyDeadheadInitContextQuery","previewContextBeforeModify","isSameDeadheadInitContextQuery","isEmptyContext","isExpiredContext","isSameContext","rawError","rawData","initDeadheadContext","preparedDate","initDeadheadContextSaga","prevDeadheadPreviewQuery","deadheadPreviewQuery","firstRangeArrivalDateTime","ranges","arrivalDateTime","modifyDeadheadPreviewQuery","isSameDeadheadPreviewQuery","fakeIdByHash","collectFakeIdByHashFromInitContextQuery","validateDeadheadPreviewQuery","chooseDeadheadArrivalDateTime","pickupStopFakeId","previewDeadheadContextSaga","addedStopFakeIds","deletedStopFakeIds","orderStopFakeIds","watchDeadheadQueueSaga","deadheadCreationSaga","fetchTimeZonesSaga","getTimeZones","timeZones","toError","validateAssetTeleportSaga","executeAssetTeleportSaga","teleportLinkedAsset","createTeamSaga","updateTeamSaga","deleteTeamSaga","parseResponseData","responseData","parsed","papersEditSaga","optimisticPaper","afterAttachId","fileName","paperType","paperAttached","getAttachPaperToShipmentSaga","getAttachPaperToTourSaga","paperDeleted","getDeleteAttachedPaperSaga","downloadTenderXLSFileSaga","importTenderXLSFileSaga","fetchTenderStatusSaga","getTenderStatus","deleteTenderSaga","fetchTendersStatsSaga","getBrokerTendersStatistic","fetchTendersSaga","getBrokerTendersFilter","rootReducer","auth","errors","log","isNew","isError","isIgnoreError","checkIgnoreError","checkIsIgnoreErrorModal","trailers","trucksById","trucks","partnersStats","manager","members","countryLanguages","langCode","uniqAllLangCodes","countrySettingsDict","carriersUtilization","utilization","carrierSuggest","shipperSuggest","orderCreation","fullListPriceOffers","bestOffer","isBestPrice","markBestPriceOffers","priceOffersByHashDates","groupOffers","offers","newUniqOffersCount","changesById","additionalServicesDict","brokerOrders","brokerTours","brokerTourStats","brokerRFQStats","reducer","brokerTourDetails","brokerTeamDetails","brokerOrderStats","newUserSelection","trailersSuggestItems","trailersSuggestItem","trucksSuggestItems","trucksSuggestItem","newResult","trailerToPickupPolylineId","assetSchedule","max","oldNotificationsById","newNotificationsById","newById","readAlready","pageNotificationIds","assetTrack","carrierContracts","carrierContractDetails","transportOrders","groupedNotificationCounts","gpsTrackingStatus","alerts","anyAlert","alertId","newIds","driverSearch","spotRequests","spotRequestsStats","open","accepted","expireSoon","newBids","assigned","canceled","spotRequestDetails","spotAssetsAssigment","isPrevSelectedLink","invoices","shipperContracts","shipperContractLanes","shipperContractDetails","shipperContractLaneDetails","routingGeometry","stateMachine","consistentStateMachine","brokerOrderEdit","partnerSuggest","deadheadCreation","papersEdit","tenders","rfqsStats","rfqsChanges","subjectLogs","sagaMiddleware","store","middleware","getDefaultMiddleware","concat","run","FieldsEnum","INITIAL_VALUES","useQuery","validate","initialErrors","formik","validateOnBlur","initialValues","onSubmit","formikHelpers","setTouched","expiredActionCode","invalidActionCode","userNotFound","userDisabled","weakPassword","useAsyncFormErrors","asyncPasswordError","passwordAsyncError","useAsyncFormErrorMessage","RedirectSignedUser","AuthLayout","title","PageTitle","handleSubmit","FormikField","getFieldMeta","label","setFieldValue","setFieldTouched","asyncError","resetAsyncError","Input","primary","selectNewErrorLogs","selectIsShowErrorModal","errorLog","TraceIdLabel","newErrorLogs","featuresContext","isShowErrorDetails","checkActiveClientFeature","firstErrorLog","modalDialogProps","errorAction","defaultOkAction","secondary","defaultWidthPx","icon","BigWarningIcon","isManyDrivers","secondDriver","BigSleepIcon","allowedTypes","supportedFileTypes","transparent","getModalDialogProps","isNotBlockingError","checkIsNotBlockingError","isShowTraceId","ModalDialog","errorIndex","Modal","ModalContent","onClose","shouldCreateAnonymously","LeftMenuLayout","LoaderOverlay","isBold","isUnderline","SpotBidLostCard","spotRequestNumber","fromLocation","toLocation","i18nKey","components","SUBJECT_TYPE_T_MAP","order","transportationOrder","carrierContract","shipperContract","shipperContractLane","businessPartner","isCapitalized","isUppercase","tDocumentSubject","cityName","ActionStatus","actionStatus","Action","subjectNumber","originCity","destinationCity","subjectLink","cityFrom","cityTo","TRANSPORT_ORDER_STATUS_COLOR_MAP","assetsUnassigned","inTransit","done","mediumGreen","declined","color","ColoredStatusLabel","TransportOrderStatus","LOAD_STATUS_T_MAP","awaitingLoading","unloading","delivered","LOAD_STATUS_COLOR_MAP","EMOTION_LOAD_STATUS_MAP","EMOTION_ORDER_STATUS_MAP","placed","inProgress","EMOTION_TOUR_STATUS_MAP","carrierUnassigned","carrierAssigned","finished","EMOTION_TRANSPORTATION_STATUS_MAP","completed","closed","TOUR_STATUS_COLOR_MAP","normal","TourStatus","labelMap","new","won","cancelled","missed","Accent","documentsDictRequest","documentsDictByType","partnerName","documentName","cityA","cityB","shipmentNumber","FIELD_I18N_MAP","DESCRIPTION","PURCHASE_ORDER","ADDRESS","TIME_SLOT","DEADHEAD_MILEAGE_TRUCK","DEADHEAD_MILEAGE_TRAILER","LAYOVER_HOURS","CARRIER_COST_TOTAL","ESTIMATED_TRAVEL_TIME_HOURS","ESTIMATED_CARRIER_COST_TOTAL","SHIPPER_PRICE_TOTAL","COMPANY_NAME","FULL_NAME","PHONE_NUMBER","EMAIL","COMMENTS","MONEY_FIELD_CODES","UNIT_TYPE_BY_FIELD_CODE","kilometersAbbreviation","hoursAbbreviation","formatTimeSlotValue","numericValue","trimmed","isFinite","safeParseNumber","unitType","UnitTypeCount","Money","amount","currency","EUR","oldValue","newValue","hasOldValue","hasNewValue","field","updatedFields","fieldCode","teamName","orderNumber","TransportationOrderNumber","OrderNumber","CarrierName","transportationOrderNumber","carrierName","toNumber","ORDER_STATUS_COLOR_MAP","OrderStatus","isInline","tourNumber","sequenceNumber","stopLabel","updatedStops","stopFieldRows","stopIndex","fieldIndex","isRunOut","spotNumber","formatAssetDetails","truckPlateNumber","truckModel","trailerPlateNumber","trailerDetails","rows","truckLabel","assetDetails","trailerLabel","customTruckDetails","customTrailerDetails","teamDriverName","driverLabel","teamDriverLabel","ADDRESS_TYPE_I18N_MAP","LEGAL","POSTAL","BILLING","verified","NAME","MAIN_CONTACT","LEGAL_ADDRESS","POSTAL_ADDRESS","BILLING_ADDRESS","ADDRESS_FIELDS","requiredToCheckProfile","hasAddressFields","isSelfUpdate","fieldLabels","formattedFields","lastField","fields","assetModel","assetPlateNumber","commonUrlFactory","useCommonUrlFactoryContext","boldBrandDark","fullAddress","usePartnerContext","getAlertLevelOrFallback","fallback","alertLevel","renderLog","base","initiatorType","initiatorName","footer","userFullName","initiatorId","renderLogText","isRunningOut","tourCityFrom","tourCityTo","dictTruckInfo","model","dictTrailerInfo","runOutOfTimeToAssignAssets","runningOutOfTimeToAssignAssets","runOutOfTimeToAssignDriver","runningOutOfTimeToAssignDriver","UNKNOWN_ACTION","renderNotificationText","tztLaneId","renderNotification","common","bodyCommon","header","subjectTypeLabel","originCountryCode","countryFrom","destinationCountryCode","countryTo","emotion","orderCityFrom","orderCountryFrom","orderCityTo","orderCountryTo","emotionStatus","profileName","profileCountryCode","companyCountryCode","getNotificationLink","partnerTransportOrderDetails","partnerDocumentDetails","partnerShipperContactDetails","partnerShipperContractLane","brokerUsersTeam","partnerCarrierContactDetails","renderAlertToast","checkIsBrokerAnyAlert","Alert","RadarIcon","white","transportOrderCancelled","RouteIcon","EditIcon","AddUserIcon","AssetLinkIcon","UnlinkIcon","UnLockIcon","PadIcon","TTL_MS","ttlMs","setShow","closeTimerRef","startTimer","lost","current","closeTimer","lostLimit","rawEmotion","headerNode","footerNode","NotificationCardBody","preventDefault","stopPropagation","slate","navigate","useAppNavigate","setNewNotifications","prevNotifications","handleMarkAsOld","handleMarkAsRead","notificationIndex","notificationView","notificationText","getUnknownNotificationText","link","NotificationCardHead","NotificationCardFooter","SquareInfoIcon","AddAccountDuotineIcon","orange","DeactivateUserIcon","UserSettingsIcon","defaultTimeoutMs","textForClipboard","timeoutMs","copyTimeoutIdRef","isCopied","setIsCopied","copyToClipboard","danger","formatHMRDate","selectNewAlertsIds","selectAlertsById","newAlertIds","alertsById","alertIndex","alert","alertToastView","checkIsCommonAnyAlert","StopWarningIcon","ContactBadgeIcon","CargoUnitIcon","PaperIcon","orderCancelled","DeleteIcon","toLocaleLowerCase","rolesCount","postProcess","userEdited","TrailerIcon","isSameDay","mediumLarge","TruckIcon","nextTransportOrderUrl","nextToLink","boldWhite","paperDownloadFailed","DriverIcon","DoneIcon","carrierSpotLanesUpdateSuccess","carrierSpotLanesDeleteSuccess","notesI18n","NOT_FOUND_APPROVED_FERRY_ON_ROUTE","PRICE_FOR_FERRY_NOT_FOUND","renderCommonAlertToast","getUnknownAlertToast","customTTLMs","small","i18n","lang","setLang","i18nLanguageSwitcher","LanguageSwitcher","isShowCIMCode","overlayPosition","topRight","ErrorBoundary","getDerivedStateFromError","componentDidCatch","setState","render","style","padding","componentStack","QueryParamRouterAdapter","useMemo","nextLocation","queryParamOptions","enableBatching","AppQueryParamProvider","QueryParamProvider","adapter","permissions","RenderLogContextProvider","AuthRedirectWatcher","AppRouter","SignInPage","loader","SignUpPage","ContinueSignUpPage","SelfCreateCompanyPage","ForgotPasswordPage","ConfirmEmailPage","ClientPage","NotFoundPage","AccessDeniedPage","rootNode","getElementById","createRoot","setValue","handleOpen","handleToggle","contextValue","partnerContextValue","notificationBarContextValue","commonUrlFactoryContextValue","featureContextValue","useFeaturesContextValue","deprecateSignUp","element","confirmEmail","notFound","FIND_CARRIERS_REQUEST","FIND_CARRIERS_REQUEST_BEGIN","FIND_CARRIERS_REQUEST_ERROR","FIND_CARRIERS_REQUEST_SUCCESS","initialAssetTrackState","selectAssetTrackRequest","selectAssetTrackPoints","selectAssetTrackSliceState","COUNTRY_SETTINGS_DICT_REQUEST","COUNTRY_SETTINGS_DICT_REQUEST_BEGIN","COUNTRY_SETTINGS_DICT_REQUEST_SUCCESS","COUNTRY_SETTINGS_DICT_REQUEST_ERROR","selectOrderEditCreateContextRequest","createContextRequestStatus","selectOrderEditDeleteContextRequest","deleteContextRequestStatus","selectOrderEditApplyContextRequest","applyContextRequestStatus","selectOrderEditContext","selectOrderEditBrokerOrderDetails","selectIsApplyingContextChanges","isApplyingContextChanges","selectOrderEditFakeSessionId","selectChangeContextError","changeContextError","parseFeaturesConfig","stringifiedConfig","ServerFeatureEnum","ALLOWED_FEATURES_SET","ALLOWED_FEATURES","DEFAULT_ALLOWED_FEATURES_SET","DISABLED_FEATURES_SET","DISABLED_FEATURES","DEFAULT_DISABLED_FEATURES_SET","checkActiveFeature","feature","isAllowed","clientFeatures","setClientFeatures","useState","checkActiveServerFeature","getClientFeatureValue","setClientFeature","newClientFeature","clearClientFeatures","findTrailer","findTrailerBegin","findTrailerSuccess","findTrailerError","findTruck","findTruckBegin","findTruckSuccess","findTruckError","assign","unassign","assignBegin","assignSuccess","assignError","brokerToursSlice","fetchBrokerToursPage","fetchBrokerToursPageBegin","fetchBrokerToursPageSuccess","fetchBrokerToursPageError","resetBrokerTours","selectGPSCheckQuery","selectGPSCheckStatus","selectGPSCheckData","selectGPSIsChecking","selectGPSStatus","hasGps","enabled","unable","initialRFQDetailsState","rfqDetailsState","BrokerAlertTypeEnum","BrokerAnyAlert","selectDocumentsState","selectCompanyDocumentIdsByType","selectCompanyDocumentsById","selectFetchCompanyDocumentsRequest","selectUploadCompanyDocumentsRequest","selectUploadingDictDocumentId","selectUpdateCompanyDocumentsRequest","selectUpdatingDocumentId","selectFetchEvidenceOfTaxDetailsRequest","selectFetchEvidenceOfTaxDetails","selectUpdateEvidenceOfTaxDetailsRequest","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","selectTrailersDict","selectTrailersDictRequest","selectAllTrailersTypes","keys","selectTrailersDictList","selectTrailerDictTypeIds","trailersDictList","selectTrailersDictById","initialPartnerTypeDocumentsState","byType","currentPartnerTypeState","selectTimeZonesRequest","selectTimeZones","fetchSpotRequestDetailsBegin","fetchSpotRequestDetailsSuccess","fetchSpotRequestDetailsError","updateSpotRequestRequestBegin","updateSpotRequestRequestSuccess","updateSpotRequestRequestError","selectSignInRequestStatus","selectUser","selectAllowedCreateAnonymously","selectUserClaims","checkRegisteredUser","selectResetPasswordRequestStatus","selectUpdatePasswordRequestStatus","selectSignUpRequestStatus","selectSignOutRequestStatus","selectEmailVerificationRequestStatus","selectProfileType","selectAuthRedirectUrl","selectPermissions","omitRoles","allRoles","restrictedRoles","canViewPriceSettings","canViewFullStatistic","canCancelOrder","canCreateOrder","canViewTrailers","canImportTrailers","canEditTrailers","canActivateTrailers","canArchiveTrailers","canSetUnavailableTrailers","canViewTrucks","canImportTrucks","canEditTrucks","canActivateTrucks","canArchiveTrucks","canSetUnavailableTrucks","canTeleportAssets","canAddPartner","canDeletePartner","canDownloadDocuments","canUploadDocuments","canVerifyDocuments","canRevokeDocuments","canEditDocuments","canReviewDocuments","canDownloadCarrierContracts","canUploadCarrierContracts","canRevokeCarrierContracts","canEditCarrierContracts","canReviewCarrierContracts","canUploadShipperContracts","canEditShipperContracts","canVerifyPartner","canInviteTeamMembers","canEditTeamMembers","canViewTeamMembers","canAddDrivers","canEditDrivers","canViewDrivers","canViewSpot","canViewInvoices","canDeclineTransportOrders","canEditSpotLanes","canUseBrokerAdminSuggest","canEditPartnerDetails","canAssignmentBrokerOrder","canChangeTourStatusOnBrokerOrder","canChangeShipmentStatusOnBrokerOrder","canCancelShipmentOnBrokerOrder","canChangeTourStatusOnBrokerTour","canChangeShipmentStatusOnBrokerTour","canCancelShipmentOnBrokerTour","canFilterBrokerOrdersByAccountManagerOrDispatcher","canViewBrokerTours","canBrokerToursAddDeadhead","canViewBrokerRFQs","canViewBrokerRFQStatistic","canViewBrokerUsers","canAddBrokerUsersTeams","canEditBrokerUsersTeams","canDeleteBrokerUsersTeams","canEditLineHaulOnOrderCreation","userRolesSet","debugInfo","profileTypeRestrictConfig","necessaryRoles","profileTypeRestriction","getPermissions","selectSpotRequestsStatsRequest","selectSpotRequestsStats","initialCompanyDriversState","inviteRequest","addRequest","brokerTourEditSlice","updateTourShipment","updateTourStopContact","updateBrokerTourBegin","updateBrokerTourSuccess","updateBrokerTourError","resetBrokerTourEdit","selectCountrySettingsDictRequest","selectCountrySettingsByCountryCode","initialRoutingGeometryState","routingGeometrySlice","fetchRoutesPlainGeometry","fetchRoutePlainGeometry","fetchRouteGeometryBegin","routingGeometryState","fetchRouteGeometrySuccess","fetchRouteGeometryError","resetRouteGeometry","onCloseRef","shouldHandleOutsidePress","target","handleKeyDown","escape","OutsideClickHandler","onOutsideClick","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","fetchRFQsStatsBegin","fetchRFQsStatsSuccess","fetchRFQsStatsError","FilledCircleIcon","r","selectCreateRFQRequest","selectCreateRFQNextStep","selectEnsureCreatedRFQNextStep","selectShipperInfoById","selectShipperInfoRequestStatus","selectCreatePriceOfferWithLaneRequest","selectCreatePriceOfferWithLaneNextStep","selectRFQ","selectLanePriceOffer","selectPriceOffers","selectPriceOffersList","selectPriceOffersByHash","selectPriceOffersById","selectCreateOrderRequest","selectCreateOrderNextStep","selectOffersTasks","selectIsPartialLoadingOffers","selectReserve","selectReserveQuery","selectReserveRequest","selectReservePreview","selectReservePreviewQuery","selectIsAllowCreateRFQ","selectReservePreviewRequest","selectBestOffers","bestOffers","bestPrice","urgent","bestPriceOffer","bestUrgentOffer","selectShipperContractDetailsState","selectUpdateShipperContractRequest","TOUR_STATUS_T_MAP","FETCH_DISPATCHERS_REQUEST","FETCH_DISPATCHERS_REQUEST_BEGIN","FETCH_DISPATCHERS_REQUEST_ERROR","FETCH_DISPATCHERS_REQUEST_SUCCESS","selectRatesPages","selectRatesQuery","selectRatesTotal","selectRatesByIds","selectUpdateRatesRequest","selectUploadCSVFileRequest","LOGO_SIZE_PX","markReadNode","medium","initialPartnerShipperContractsState","shipperContractsSlice","fetchShipperContractsPage","fetchShipperContractsPageBegin","partnerState","fetchShipperContractsPageSuccess","fetchShipperContractsPageError","resetShipperContracts","FETCH_VEHICLE_SCHEDULE_REQUEST","FETCH_VEHICLE_SCHEDULE_REQUEST_BEGIN","FETCH_VEHICLE_SCHEDULE_REQUEST_SUCCESS","FETCH_VEHICLE_SCHEDULE_REQUEST_ERROR","SET_UNAVAILABLE_VEHICLE_REQUEST","SET_UNAVAILABLE_VEHICLE_REQUEST_BEGIN","SET_UNAVAILABLE_VEHICLE_REQUEST_ERROR","SET_UNAVAILABLE_VEHICLE_REQUEST_SUCCESS","CANCEL_UNAVAILABLE_VEHICLE_REQUEST","CANCEL_UNAVAILABLE_VEHICLE_REQUEST_BEGIN","CANCEL_UNAVAILABLE_VEHICLE_REQUEST_ERROR","CANCEL_UNAVAILABLE_VEHICLE_REQUEST_SUCCESS","ALL_ROLES_BY_PARTNER_TYPE","AuthProfileTypeEnum","ALL_AUTH_PROFILE_TYPES","selectAdditionalServices","selectUpdateAdditionalServiceRequest","selectFetchAdditionalServicesRequest","FETCH_USER_REQUEST","FETCH_USER_REQUEST_BEGIN","FETCH_USER_REQUEST_ERROR","FETCH_USER_REQUEST_SUCCESS","PATCH_USER_REQUEST","PATCH_USER_REQUEST_BEGIN","PATCH_USER_REQUEST_ERROR","PATCH_USER_REQUEST_SUCCESS","INIT_USER_SELECTION","CHANGE_USER_SELECTION","FETCH_ASSIGN_DETAILS_REQUEST","FETCH_ASSIGN_DETAILS_REQUEST_BEGIN","FETCH_ASSIGN_DETAILS_REQUEST_ERROR","FETCH_ASSIGN_DETAILS_REQUEST_SUCCESS","FETCH_AVAILABLE_VEHICLES_REQUEST","FETCH_AVAILABLE_VEHICLES_REQUEST_BEGIN","FETCH_AVAILABLE_VEHICLES_REQUEST_ERROR","FETCH_AVAILABLE_VEHICLES_REQUEST_SUCCESS","FETCH_AVAILABLE_CARRIERS_REQUEST","FETCH_AVAILABLE_CARRIERS_REQUEST_BEGIN","FETCH_AVAILABLE_CARRIERS_REQUEST_ERROR","FETCH_AVAILABLE_CARRIERS_REQUEST_SUCCESS","SET_INIT_ASSETS_INFO","REFRESH_TRAILER_REQUEST","FIND_TRAILER_REQUEST","FIND_TRAILER_REQUEST_BEGIN","FIND_TRAILER_REQUEST_ERROR","FIND_TRAILER_REQUEST_SUCCESS","REFRESH_TRUCK_REQUEST","FIND_TRUCK_REQUEST","FIND_TRUCK_REQUEST_BEGIN","FIND_TRUCK_REQUEST_ERROR","FIND_TRUCK_REQUEST_SUCCESS","PREDICT_SELF_COST_REQUEST","PREDICT_SELF_COST_REQUEST_BEGIN","PREDICT_SELF_COST_REQUEST_ERROR","PREDICT_SELF_COST_REQUEST_SUCCESS","ASSIGNMENT_REQUEST","ASSIGNMENT_REQUEST_BEGIN","ASSIGNMENT_REQUEST_ERROR","ASSIGNMENT_REQUEST_SUCCESS","FETCH_ASSET_SCHEDULE","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","INIT","initialDeadheadCreationState","contextQuery","contextResponse","contextRequest","previewQuery","previewResponse","applyContextRequest","createdTourId","deadheadCreationSlice","changeDeadheadContext","setContextQuery","initContextRequestBegin","initContextRequestSuccess","initContextRequestError","resetContext","resetPreviewContext","resetPreviewContextQuery","setPreviewQuery","previewContextRequestBegin","previewContextRequestSuccess","previewContextRequestError","applyContextRequestBegin","applyContextRequestSuccess","applyContextRequestError","setIsApplyingContextChanges","resetDeadheadCreation","fetchStatistics","fetchStatisticsBegin","fetchDoneStatisticsBegin","fetchDoneStatisticsSuccess","fetchDoneStatisticsError","fetchRejectStatisticsBegin","fetchRejectStatisticsSuccess","fetchRejectStatisticsError","FETCH_INVOICES_PAGE_REQUEST","FETCH_INVOICES_PAGE_REQUEST_BEGIN","FETCH_INVOICES_PAGE_REQUEST_ERROR","FETCH_INVOICES_PAGE_REQUEST_SUCCESS","RESET_INVOICES","handleClickOutside","wrapperNode","wrapperRef","contains","componentDidMount","componentWillUnmount","trailersRefreshChannel","trailerDetailsRefreshChannel","trailersPaginationChannel","FETCH_SPOT_REQUESTS_PAGE_REQUEST","FETCH_SPOT_REQUESTS_PAGE_REQUEST_BEGIN","FETCH_SPOT_REQUESTS_PAGE_REQUEST_ERROR","FETCH_SPOT_REQUESTS_PAGE_REQUEST_SUCCESS","RESET_SPOT_REQUESTS","changeRFQBegin","changeRFQSuccess","changeRFQError","TRANSPORT_ORDER_STATUS_T_MAP","selectBrokerOrdersPages","selectBrokerOrdersQuery","selectBrokerOrdersTotal","selectBrokerOrdersByIds","CommonAlertTypeEnum","CommonAnyAlert","fetchAdditionalServicesBegin","fetchAdditionalServicesSuccess","fetchAdditionalServicesError","updateAdditionalServiceBegin","updateAdditionalServiceSuccess","updateAdditionalServiceError","brokerTeamsSlice","fetchBrokerTeamsPage","fetchBrokerTeamsPageBegin","fetchBrokerTeamsPageSuccess","fetchBrokerTeamsPageError","resetBrokerTeams","partnerDetailsRefreshChannel","selectFetchRequestStatus","selectCarriersUtilizationByHash","FETCH_DRIVERS_REQUEST","FETCH_DRIVERS_REQUEST_BEGIN","FETCH_DRIVERS_REQUEST_ERROR","FETCH_DRIVERS_REQUEST_SUCCESS","CommonUrlFactoryContext","WAIT_RFQ_ID","editablePointTypeSet","initialCarrierContractState","contracts","fetchContractsRequest","updateContractRequest","uploadContractRequest","downloadContractRequest","updatingContractId","brandDark","CommonTranziitApi","userChanges","fetchTransportOrdersStatistics","fetchOrdersStatistics","period","findCompanyUsersByName","fetchImage","src","userContactId","commonTranziitApi","TruckIconProps","getControlProps","isPressed","getTruckIconProps","preset","fetchTrailersDict","fetchTrailersDictBegin","fetchTrailersDictSuccess","fetchTrailersDictError","brokerTeamsRefreshChannel","brokerTeamsPaginationChannel","initialBrokerTourDetailsState","brokerTourDetailsSlice","fetchBrokerTourDetails","fetchBrokerTourDetailsBegin","brokerTourDetailsState","fetchBrokerTourDetailsSuccess","fetchBrokerTourDetailsError","resetBrokerTourDetails","initialShipperContractDetailsItemState","shipperContractDetailsSlice","fetchShipperContractDetailsBegin","detailsItem","fetchShipperContractDetailsSuccess","fetchShipperContractDetailsError","updateShipperContractDetailsBegin","updateShipperContractDetailsSuccess","updateShipperContractDetailsError","downloadShipperContract","downloadShipperContractDetailsBegin","downloadShipperContractDetailsSuccess","downloadShipperContractDetailsError","deadheadCreationQueryModifyChannel","UiContext","initialStateMachineItemState","availableSubjectStatuses","stateMachineSlice","fetchStateMachineSteps","fetchStateMachineStepsBegin","itemState","fetchStateMachineStepsSuccess","fetchStateMachineStepsError","updateEntityStatus","updateEntityStatusBegin","updateEntityStatusSuccess","updateEntityStatusError","QueryKeysEnum","useCallback","FETCH_MANAGERS_REQUEST","FETCH_MANAGERS_REQUEST_BEGIN","FETCH_MANAGERS_REQUEST_ERROR","FETCH_MANAGERS_REQUEST_SUCCESS","getPages","prevPages","pageSuccessReducer","prevPaginationState","entities","entity","hasDetailChanges","prevIds","hasIdsChanges","pageCount","elementCount","followingPageSuccessReducer","pageErrorReducer","pageBeginReducer","resetPagesCacheReducer","initialPaginationState","initialPages","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","fetchRFQStats","fetchRFQStatsBegin","fetchRFQStatsSuccess","fetchRFQStatsError","resetRFQStats","findShippersByQuery","findShippersById","findShippersBegin","findShippersSuccess","findShippersError","FETCH_SPOT_REQUEST_DETAILS_REQUEST","FETCH_SPOT_REQUEST_DETAILS_REQUEST_BEGIN","FETCH_SPOT_REQUEST_DETAILS_REQUEST_ERROR","FETCH_SPOT_REQUEST_DETAILS_REQUEST_SUCCESS","ASSIGN_BID_TO_SPOT_REQUEST","UPDATE_SPOT_REQUEST_REQUEST_BEGIN","UPDATE_SPOT_REQUEST_REQUEST_ERROR","UPDATE_SPOT_REQUEST_REQUEST_SUCCESS","selectSpotRequestDetails","selectCarrierContractState","selectFetchCarrierContractsRequest","selectUpdateCarrierContractRequest","selectUploadCarrierContractRequest","selectUpdatingCarrierContractId","selectCarrierContracts","selectCarrierContractById","routesEnum","account","brokerRFQs","brokerTenders","orders","shipperLaneDetails","brokerUsers","ShipperContractDetailsEnum","BrokerUsersRoutesEnum","BrokerRFQRoutesEnum","BrokerTendersRoutesEnum","PartnersRoutesEnum","PartnersDocumentsRoutesEnum","OMSRoutesEnum","ShipperContractLaneRoutesEnum","SpotRoutesEnum","BrokerOrdersRoutesEnum","BrokerToursRoutesEnum","SettingsRuleRoutesEnum","SettingsRoutesEnum","AssetRoutesEnum","fetchShipperInfo","fetchShipperInfoBegin","fetchShipperInfoSuccess","fetchShipperInfoError","changeReserveQuery","setAllowCreateRFQ","createPriceOfferWithLaneRequestBegin","createPriceOfferWithLaneRequestSuccess","createPriceOfferWithLaneRequestError","createRFQBegin","createRFQSuccess","nextSteps","fetchRoute","fetchRouteSuccess","fetchRouteError","createRFQError","createOrder","createOrderBegin","createOrderSuccess","createOrderError","fetchOffersError","setExpectedOffersCount","fetchOffers","markOffersExpired","clearOffersTasks","resetOrderCreation","setCreateReserveQuery","createReserveBegin","createReserveSuccess","createReserveError","resetCreateReserveWithQuery","previewReserveBegin","setPreviewReserveQuery","correctPreviewReserveQuery","correctReserveQuery","previewReserveSuccess","previewReserveError","resetReserveAndPreviewReserve","FETCH_CARRIER_CONTRACT_DETAILS_REQUEST","FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_BEGIN","FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_ERROR","FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_SUCCESS","fetchCarrierUtilization","fetchCarrierUtilizationBegin","fetchCarrierUtilizationError","fetchCarrierUtilizationSuccess","resetCarrierUtilization","EMPTY_QUERY","selectTrucksPages","selectTrucksQuery","selectTrucksTotal","selectTrucksByIds","selectTrucksDetailsByIds","selectAddTruckRequestStatus","selectFetchTruckDetailsRequestStatus","selectUpdateTruckRequestStatus","selectFetchTrucksStatsRequestStatus","fetchStatsRequest","selectTrucksStats","selectTrucksExportXLSRequest","exportXLSRequest","selectTrucksImportXLSRequest","importXLSRequest","urlFactory","brokerTenderCreation","newTender","rePath","brokerTenderDetails","tenderId","brokerOrderRouteEdit","brokerOrderDetailsAssignments","fromBrokerTour","brokerOrderAssignment","partnerTrucks","partnerTrailers","partnerTransportOrders","spotRequestsListWithDetails","encode","requiredPartnerDocuments","optionalPartnerDocuments","settingsRuleDetails","settingsRuleCreation","newRule","settingsRules","initIsEditing","partnerCarrierContacts","partnerCarrierContracts","partnerShipperContacts","partnerShipperContracts","partnerShipperContactLanes","lanes","newPartnerShipperContractLane","newLane","laneDetails","brokerTourDeadheadCreation","brokerUsersTeams","editBrokerTeamDetails","brokerRFQDetails","brokerRFQList","transportOrdersRefreshChannel","transportOrdersPaginationChannel","FETCH_SHIPPER_INFO","FETCH_SHIPPER_INFO_BEGIN","FETCH_SHIPPER_INFO_SUCCESS","FETCH_SHIPPER_INFO_ERROR","CHANGE_RESERVE_QUERY","SET_ALLOW_CREATE_RFQ","CREATE_PRICE_OFFER_WITH_LANE_REQUEST","CREATE_PRICE_OFFER_WITH_LANE_REQUEST_BEGIN","CREATE_PRICE_OFFER_WITH_LANE_REQUEST_SUCCESS","CREATE_PRICE_OFFER_WITH_LANE_REQUEST_ERROR","CREATE_RFQ_REQUEST","CREATE_RFQ_REQUEST_BEGIN","CREATE_RFQ_REQUEST_SUCCESS","CREATE_RFQ_REQUEST_ERROR","ENSURE_CREATED_RFQ","CREATE_ORDER_REQUEST","CREATE_ORDER_REQUEST_BEGIN","CREATE_ORDER_REQUEST_SUCCESS","CREATE_ORDER_REQUEST_ERROR","FETCH_ROUTE","FETCH_ROUTE_ERROR","FETCH_ROUTE_SUCCESS","FETCH_OFFERS_ERROR","FETCH_TASK_OFFER","FETCH_OFFERS","MARK_OFFERS_EXPIRED","SET_EXPECTED_OFFERS_COUNT","CLEAR_OFFERS_TASKS","SET_CREATE_RESERVE_QUERY","CREATE_RESERVE_BEGIN","CREATE_RESERVE_SUCCESS","CREATE_RESERVE_ERROR","RESET_CREATE_RESERVE_WITH_QUERY","CORRECT_RESERVE_QUERY","CORRECT_PREVIEW_RESERVE_QUERY","SET_PREVIEW_RESERVE_QUERY","PREVIEW_RESERVE_BEGIN","PREVIEW_RESERVE_SUCCESS","PREVIEW_RESERVE_ERROR","RESET_RESERVE_AND_RESERVE_PREVIEW","initialAssetTeleportItemState","selectBrokerOrderStatsRequest","selectBrokerOrderStats","selectGroupedNotificationCounts","selectGroupedNotificationCountsRequest","selectAdditionalServicesGroupsByTrailerType","byTrailerType","selectAdditionalServicesMap","mapByTrailerType","selectAdditionalServicesDictStatus","FETCH_PARTNERS_STATS_REQUEST","FETCH_PARTNERS_STATS_REQUEST_BEGIN","FETCH_PARTNERS_STATS_REQUEST_ERROR","FETCH_PARTNERS_STATS_REQUEST_SUCCESS","selectShipperContractLaneDetailsState","shipperContractLaneId","selectUpdateShipperContractLaneRequest","shipperContractsRefreshChannel","shipperContractsPaginationChannel","COUNTRIES_DICT_REQUEST","COUNTRIES_DICT_REQUEST_BEGIN","COUNTRIES_DICT_REQUEST_SUCCESS","COUNTRIES_DICT_REQUEST_ERROR","NotificationActionEnum","NotificationEmotionEnum","selectFindShippersQuery","selectFindShippersRequest","selectShippersIds","selectShippersById","checkGPSStatusRequest","checkRequestBegin","checkRequestSuccess","checkRequestError","reset","ApiRequestErrorTypeEnum","ApiRequestError","checkIsApiRequestError","checkIsUnauthorizedError","checkIsForbiddenError","checkIsNetworkError","selectFetchManagersRequest","selectManagersAllIds","selectManagersById","renderCommonNotification","renderUnknownNotification","renderUnknownNotificationText","selectBrokerTourDetails","selectBrokerTourDetailsRequestStatus","calculateCostRequestQuery","creationRequestQuery","shipperContractLaneCreationSlice","setMapSettings","setOriginLocation","setOriginLocationRadius","setDestinationLocation","setDestinationLocationRadius","resetShipperLaneCreation","calculateCostRequestSuccess","calculateCostRequestSetRoute","calculateCostRequestFetchRouteError","calculateCostRequestError","calculateCostRequestBegin","createLaneRequest","createLaneRequestBegin","createLaneRequestSuccess","createLaneRequestError","fetchGroupedNotificationCounts","fetchGroupedNotificationCountsBegin","fetchGroupedNotificationCountsSuccess","fetchGroupedNotificationCountsError","getTruckDictTypeLabel","EMISSION_CLASS_ORDER","EURO_5","EURO_6","sortTrucksDict","aItem","bItem","manufacturerCompare","manufacturer","MAX_SAFE_INTEGER","RenderLogContext","BrokerSidebarsTypeEnum","fetchPartnersPageBegin","fetchPartnersPageSuccess","fetchPartnersPageError","resetPartners","invitePartnerRequest","createPartnerRequestBegin","createPartnerRequestError","createPartnerRequestSuccess","FETCH_TRANSPORT_ORDER_DETAILS_REQUEST","FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_BEGIN","FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_ERROR","FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_SUCCESS","CargoUnitIconProps","brandAccent5","getCargoUnitIconProps","FETCH_TRACK_BY_ORDER","FETCH_TRACK_BY_TRANSPORT_ORDERS","FETCH_TRACK_REQUEST_BEGIN","FETCH_TRACK_REQUEST_ERROR","FETCH_TRACK_REQUEST_SUCCESS","selectBrokerTeamDetails","selectBrokerTeamDetailsRequestStatus","transportOrderRefreshChannel","getStateMachineEntityHash","AuthErrorTypeEnum","AuthApiError","checkIsAuthApiError","BrokerStopChangesSourceEnum","sendToSpotByTour","updateBegin","updateSuccess","updateError","ASSIGN","UNASSIGN","fetchDocumentsDictBegin","fetchDocumentsDictSuccess","fetchDocumentsDictError","selectRulesPages","selectRulesQuery","selectRulesTotal","selectRulesByIds","selectUpdateRulesRequest","selectCreateRuleRequest","selectDeleteRulesRequest","selectFetchRuleDetailsRequest","selectPreviewRuleRequest","selectPreviewRule","selectRuleDetails","findCarriers","findCarriersBegin","findCarriersSuccess","findCarriersError","FETCH_RFQ_STATS_REQUEST","FETCH_RFQ_STATS_REQUEST_BEGIN","FETCH_RFQ_STATS_REQUEST_ERROR","FETCH_RFQ_STATS_REQUEST_SUCCESS","clientConfig","isBrokerProject","selectFetchPartnerDetailsRequest","selectUpdatePartnerDetailsRequest","selectLockPartnerDetailsRequest","selectVerifyPartnerDetailsRequest","selectLinkPartnerRequestStatus","selectPartnerDetailsById","selectPartnerPermissions","partnerDetailsById","enableAssetEditing","hasAccessToDocuments","colorCodingColoredStatusTheme","warning","notImportant","success","focus","isRightIcon","labelClassName","isWithoutVerticalPaddings","HollowCircleIcon","borderColor","selectFindCarriersQuery","selectFindCarriersRequest","selectCarriersIds","selectCarriersById","checkMinValue","minValue","getErrorLabel","preparedValue","isZeroNumber","Array","isArray","limit","valueDate","isValid","isSameOrAfter","isSameOrBefore","disabledDates","isDisableValue","disabledDate","isBetween","minLength","isLessMinLength","maxLength","isMoreMaxLength","checkIsPositiveNumberValue","checkIsPositiveNumberOrZeroValue","maxValue","isValidDate","valueOf","tendersRefreshChannel","tendersPaginationChannel","addAlert","deleteAlert","selectTransportOrderDetails","selectTransportOrderDetailsRequestStatus","FETCH_PARTNERS_PAGE_REQUEST","FETCH_PARTNERS_PAGE_REQUEST_BEGIN","FETCH_PARTNERS_PAGE_REQUEST_ERROR","FETCH_PARTNERS_PAGE_REQUEST_SUCCESS","RESET_PARTNERS","INVITE_PARTNER_REQUEST","CREATE_PARTNER_REQUEST","CREATE_PARTNER_REQUEST_BEGIN","CREATE_PARTNER_REQUEST_ERROR","CREATE_PARTNER_REQUEST_SUCCESS","CREATE_FROM_EXTERNAL_PLATFORM_PARTNER_REQUEST","selectBrokerToursPages","selectBrokerToursQuery","selectBrokerToursTotal","selectBrokerToursByIds","selectShipperContractsPages","selectShipperContractsQuery","selectShipperContractsTotal","selectShipperContractsByIds","checkIsSameQuery","queryA","queryB","convertPageEntities","converter","checkShouldEmitChangePage","currentPage","shipperContractLanesRefreshChannel","shipperContractLanesPaginationChannel","fetchCountrySettingsDict","fetchCountrySettingsDictBegin","fetchCountrySettingsDictSuccess","fetchCountrySettingsDictError","carrierContractDetailsRefreshChannel","fetchDispatchers","fetchDispatchersBegin","fetchDispatchersSuccess","fetchDispatchersError","fetchTrucksDict","fetchTrucksDictBegin","fetchTrucksDictSuccess","fetchTrucksDictError","selectTransportOrdersPages","selectTransportOrdersQuery","selectTransportOrdersTotal","selectTransportOrdersByIds","fetchCompany","fetchCompanyBegin","fetchCompanySuccess","fetchCompanyError","updateCompanyBegin","updateCompanySuccess","updateCompanyError","AlertThemeEnum","AlertEmotionEnum","alertThemeMapByEmotion","AlertSizeEnum","closeIconFillColorMap","onClickAction","actionText","isAlignItemsCenter","controlsNode","closeIconFillColor","transparentDarkAlpha","noPaddings","contentClassName","centerLeft","TooltipIconTrigger","Container","ProgressBar","progress","limitedPercent","fetchRFQsPageBegin","fetchRFQsPageSuccess","fetchRFQsPageError","resetRFQs","xlinkHref","initialBrokerOrderDetailsState","billingSyncRequestStatus","brokerOrderDetailsSlice","fetchBrokerOrderDetails","fetchBrokerOrderDetailsBegin","brokerOrderDetailsState","fetchBrokerOrderDetailsSuccess","fetchBrokerOrderDetailsError","triggerSyncOrderWithBillingBegin","detailsState","triggerSyncOrderWithBillingSuccess","triggerSyncOrderWithBillingError","resetBrokerOrderDetails","selectTrucksDict","selectTrucksDictRequest","selectTrucksDictById","selectTrucksDictList","checkIsAvailableCountryForShip","checkIsAvailableCountryForShipByCode","checkIsAvailableCountryForDropAsset","checkIsAvailableCountryForServiceMaintananceAsset","checkIsExternalUrl","startsWith","T_MAP","errorType","ORDER_STATUS_T_MAP","FETCH_TRAILERS_PAGE_REQUEST","FETCH_TRAILERS_PAGE_REQUEST_BEGIN","FETCH_TRAILERS_PAGE_REQUEST_ERROR","FETCH_TRAILERS_PAGE_REQUEST_SUCCESS","RESET_TRAILERS","ADD_TRAILER_REQUEST","ADD_TRAILER_REQUEST_BEGIN","ADD_TRAILER_REQUEST_ERROR","ADD_TRAILER_REQUEST_SUCCESS","DELETE_TRAILERS_REQUEST","DELETE_TRAILERS_REQUEST_BEGIN","DELETE_TRAILERS_REQUEST_ERROR","DELETE_TRAILERS_REQUEST_SUCCESS","ACTIVATION_TRAILERS_REQUEST","ARCHIVE_TRAILERS_REQUEST","ASSIGN_TO_CONTRACT_TRAILERS_REQUEST","CHANGE_RATE_TRAILERS_REQUEST","UPDATE_TRAILERS_REQUEST","UPDATE_TRAILERS_REQUEST_BEGIN","UPDATE_TRAILERS_REQUEST_ERROR","UPDATE_TRAILERS_REQUEST_SUCCESS","FETCH_TRAILER_DETAILS_REQUEST","FETCH_TRAILER_DETAILS_REQUEST_BEGIN","FETCH_TRAILER_DETAILS_REQUEST_ERROR","FETCH_TRAILER_DETAILS_REQUEST_SUCCESS","FETCH_TRAILERS_STATS_REQUEST","FETCH_TRAILERS_STATS_REQUEST_BEGIN","FETCH_TRAILERS_STATS_REQUEST_ERROR","FETCH_TRAILERS_STATS_REQUEST_SUCCESS","IMPORT_XLS_TRAILERS_REQUEST","IMPORT_XLS_TRAILERS_REQUEST_BEGIN","IMPORT_XLS_TRAILERS_REQUEST_ERROR","IMPORT_XLS_TRAILERS_REQUEST_SUCCESS","EXPORT_XLS_TRAILERS_REQUEST","EXPORT_XLS_TRAILERS_REQUEST_BEGIN","EXPORT_XLS_TRAILERS_REQUEST_ERROR","EXPORT_XLS_TRAILERS_REQUEST_SUCCESS","selectCompanyMembersState","byCompanyId","selectCompanyContacts","companyMembers","contactIds","constantById","selectContactById","selectFetchContactsRequest","fetchContactsRequest","selectAddMemberRequest","addMemberRequest","selectDeleteMemberRequest","deleteMemberRequest","selectUpdateMemberRequest","updateMemberRequest","selectFetchContactDetailsRequest","fetchContactDetailsRequest","selectContactDetailsById","contactDetailsById","selectContactIdByUserId","initialSubjectLogsState","subjectLogsSlice","fetchSubjectLogs","fetchSubjectLogsBegin","fetchSubjectLogsSuccess","fetchSubjectLogsError","subjectLogsReducer","fetchTrucksPageBegin","fetchTrucksPageSuccess","fetchTrucksPageError","resetTrucks","addTruckRequest","addTruckRequestBegin","addTruckRequestError","addTruckRequestSuccess","deleteTrucksRequestBegin","deleteTrucksRequestError","deleteTrucksRequestSuccess","activationTrucksRequest","archiveTrucksRequest","assignToContractRequest","changeRateTrucksRequest","updateTrucksRequestBegin","updateTrucksRequestError","updateTrucksRequestSuccess","fetchTruckDetailsRequestBegin","fetchTruckDetailsRequestError","fetchTruckDetailsRequestSuccess","fetchTrucksStats","fetchTrucksStatsRequestBegin","fetchTrucksStatsRequestError","fetchTrucksStatsRequestSuccess","importXLSTrucksRequestBegin","importXLSTrucksRequestError","importXLSTrucksRequestSuccess","exportXLSTrucksRequestBegin","exportXLSTrucksRequestError","exportXLSTrucksRequestSuccess","orderEditContextQueryModifyChannel","selectCompanyDriversState","selectDriversPages","selectDriversById","selectDriversQuery","selectDriversTotal","selectInviteDriverRequest","selectAddDriverRequest","selectUpdateDriverRequest","selectFetchDriverDetailsRequest","selectDriverDetailsById","createCompanySlice","setCompanyIsLocked","createCompanyRequest","createCompanyRequestBegin","createCompanyRequestSuccess","createCompanyRequestError","DOCUMENTS_DICT_REQUEST","DOCUMENTS_DICT_REQUEST_BEGIN","DOCUMENTS_DICT_REQUEST_SUCCESS","DOCUMENTS_DICT_REQUEST_ERROR","orderEditContextSlice","resetOrderEdit","initOrderEdit","finishOrderEdit","reCreateOrderEditContextRequest","refreshOrderEditContextRequest","createOrderEditContextRequest","createOrderEditContextRequestBegin","createOrderEditContextRequestSuccess","createOrderEditContextRequestError","deleteOrderEditContextRequest","deleteOrderEditContextRequestBegin","deleteOrderEditContextRequestSuccess","deleteOrderEditContextRequestError","applyOrderEditContextRequest","applyOrderEditContextRequestBegin","applyOrderEditContextRequestSuccess","applyOrderEditContextRequestError","changeContext","changeContextSuccess","initialPartnerState","selectCurrentCompanyRequestStatus","selectCurrentCompany","tendersStatsSlice","fetchTendersStats","fetchTendersStatsBegin","fetchTendersStatsSuccess","fetchTendersStatsError","selectDeadheadInitContextQuery","selectDeadheadContextRequest","selectDeadheadContext","selectDeadheadApplyRequest","selectCreatedDeadheadTourId","selectDeadheadPreviewQuery","selectDeadheadPreviewRequest","selectDeadheadPreviewResponse","CURRENCY_TYPE_MAP","euroAbbreviation","euro4SignificantDigitsAbbreviation","CUSTOM_CURRENCY_SETTINGS_MAP","minimumSignificantDigits","checkIsCurrencyUnitType","checkIsSimpleUnitType","SIMPLE_UNIT_MAP","percentsAbbreviation","UNIT_TYPE_T_MAP","eur1Pallets","eur2Pallets","eur6Pallets","other","kilogramsAbbreviation","metersAbbreviation","litersAbbreviation","oneHundredKilometersAbbreviation","days","minutesAbbreviation","milliSecondsAbbreviation","secondsAbbreviation","shipments","kilometersPerHourAbbreviation","hours","fullClassName","types","isRound","partialCurrencySettings","formattedType","ControlLoaderWithShadow","partnersRefreshChannel","partnersPaginationChannel","brokerOrdersRefreshChannel","brokerOrdersPaginationChannel","formatDecimal","sourceDecimalString","thousandSeparator","reverse","formatMoney","roundedAmount","toFixed","decimal","fraction","formattedDecimal","isFirstSymbol","symbol","decimalSeparator","formattedMoney","rulesRefreshChannel","ruleDetailsRefreshChannel","rulesPaginationChannel","ruleDeactivateChannel","FlagIcon","ArrowForwardIcon","selectRFQsStatsRequest","selectRFQsStats","FETCH_PARTNER_DETAILS_REQUEST","FETCH_PARTNER_DETAILS_REQUEST_BEGIN","FETCH_PARTNER_DETAILS_REQUEST_ERROR","FETCH_PARTNER_DETAILS_REQUEST_SUCCESS","UPDATE_PARTNER_DETAILS_REQUEST","UPDATE_PARTNER_DETAILS_REQUEST_BEGIN","UPDATE_PARTNER_DETAILS_REQUEST_ERROR","UPDATE_PARTNER_DETAILS_REQUEST_SUCCESS","VERIFY_PARTNER_DETAILS_REQUEST","VERIFY_PARTNER_DETAILS_REQUEST_BEGIN","VERIFY_PARTNER_DETAILS_REQUEST_ERROR","VERIFY_PARTNER_DETAILS_REQUEST_SUCCESS","LOCK_PARTNER_REQUEST","LOCK_PARTNER_REQUEST_BEGIN","LOCK_PARTNER_REQUEST_ERROR","LOCK_PARTNER_REQUEST_SUCCESS","LINK_WITH_EXTERNAL_PLATFORM_PARTNER_REQUEST","UNLINK_WITH_EXTERNAL_PLATFORM_PARTNER_REQUEST","LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_BEGIN","LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_ERROR","LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_SUCCESS","CLOSE_RFQ","CHANGE_RFQ_REQUEST_BEGIN","CHANGE_RFQ_REQUEST_ERROR","CHANGE_RFQ_REQUEST_SUCCESS","STRINGIFY_QUERY_KEYS","ordersFilters","orderCreationAdditionalServices","ratesFromCountryCodesSearch","ratesToCountryCodesSearch","parseQuery","formatQuery","skipNulls","mergeQueryFilters","prevQueryFilters","newQueryFilters","filteredNewQueryFilters","clearEmptyValues","obj","JSONArrayParam","objArray","strArray","decode","arrayStr","decodedArray","objStr","decodeJson","equals","valueA","valueB","createPageNumberParam","initValue","createJsonParams","SortDirectionEnum","createSortParams","initData","direction","decodedData","fetchRFQDetailsBegin","fetchRFQDetailsSuccess","fetchRFQDetailsError","initialCompanyTrucksState","initialCompanyMembersState","initialShipmentChangesState","optimisticPapers","initialTourChangesState","initialPapersEditByPaperIdState","selectShipmentChangesById","shipmentChangesById","selectTourChangesById","tourChangesById","selectDeleteRequestStatus","selectPapersEditByPaperIdState","driversRefreshChannel","driversPaginationChannel","driverDetailsRefreshChannel","initialCompanyTrailersState","additionalServicesDictSlice","commonGroups","allServices","FETCH_UTILIZATION_REQUEST","FETCH_UTILIZATION_REQUEST_BEGIN","FETCH_UTILIZATION_REQUEST_ERROR","FETCH_UTILIZATION_REQUEST_SUCCESS","CHECK_GPS_STATUS_REQUEST","CHECK_GPS_STATUS_REQUEST_BEGIN","CHECK_GPS_STATUS_REQUEST_ERROR","CHECK_GPS_STATUS_REQUEST_SUCCESS","subLabel","tooltipPosition","topCenter","noteNodes","emptyNoteNode","labelRightNode","isShowFocusError","isAlwaysShowError","isForceShowWarning","submitCount","fieldLabelClassName","withoutLabelAndNotes","withoutLabel","isCheckbox","isShowFormikError","touched","initialValue","childrenProps","papersEditSlice","attachPaperToShipmentBegin","shipmentChangesState","paperState","attachPaperToShipmentSuccess","updatedOptimisticPapers","paper","attachPaperToShipmentError","attachPaperToTourBegin","tourChangesState","attachPaperToTourSuccess","attachPaperToTourError","deleteAttachedPaperBegin","deleteAttachedPaperSuccess","deleteAttachedPaperError","resetPapersEdit","FETCH_CONTACTS_REQUEST","FETCH_CONTACTS_REQUEST_BEGIN","FETCH_CONTACTS_REQUEST_SUCCESS","FETCH_CONTACTS_REQUEST_ERROR","FETCH_CONTACT_DETAILS_BY_USER_ID","FETCH_CONTACT_DETAILS_REQUEST","FETCH_CONTACT_DETAILS_REQUEST_BEGIN","FETCH_CONTACT_DETAILS_REQUEST_SUCCESS","FETCH_CONTACT_DETAILS_REQUEST_ERROR","ADD_CONTACT_REQUEST","INVITE_USER_REQUEST","ADD_MEMBER_REQUEST_BEGIN","ADD_MEMBER_REQUEST_SUCCESS","ADD_MEMBER_REQUEST_ERROR","DELETE_USER","DELETE_CONTACT","DELETE_MEMBER_REQUEST_BEGIN","DELETE_MEMBER_REQUEST_SUCCESS","DELETE_MEMBER_REQUEST_ERROR","RESTORE_USER","CANCEL_INVITE","CHANGE_USER_ROLE","UPDATE_CONTACT","UPDATE_MEMBER_REQUEST_BEGIN","UPDATE_MEMBER_REQUEST_SUCCESS","UPDATE_MEMBER_REQUEST_ERROR","selectUnReadNotificationsCount","selectUnReadNotificationsState","selectUnReadNotificationsRequest","updatedOrderIdsSet","selectLastUnReadNotification","lastNotification","selectCurrentPageNumber","selectNotificationsQuery","selectNotificationsById","selectNotificationsPages","selectNotificationsTotal","selectMarkAsReadRequest","selectTrailersPages","selectTrailersQuery","selectTrailersTotal","selectTrailersByIds","selectAddTrailerRequestStatus","selectFetchTrailerDetailsRequestStatus","selectUpdateTrailersRequestStatus","selectTrailersDetailsByIds","selectFetchTrailersStatsRequestStatus","selectTrailersStats","selectTrailersExportXLSRequest","selectTrailersImportXLSRequest","brokerOrderEditSlice","updateShipment","updateStopContact","updateDockingHours","updateBrokerOrderBegin","updateBrokerOrderSuccess","updateBrokerOrderError","resetBrokerOrderEdit","initUserSelection","changeUserSelection","fetchAvailableVehicles","fetchAvailableVehiclesBegin","fetchAvailableVehiclesSuccess","fetchAvailableVehiclesError","fetchAvailableCarriersBegin","fetchAvailableCarriersSuccess","fetchAvailableCarriersError","setInitAssetsInfo","refreshTrailer","refreshTruck","predictSelfCost","predictSelfCostBegin","predictSelfCostSuccess","predictSelfCostError","fetchAssetSchedule","fetchAssetScheduleBegin","fetchAssetScheduleError","fetchAssetScheduleSuccess","fetchAssignDetails","fetchAssignDetailsBegin","fetchAssignDetailsSuccess","fetchAssignDetailsError","setAssetSchedule","setEventLoadRoute","setShowSelectedAssetSchedule","setSelectedScheduleEventId","initBrokerOrderAssignment","resetBrokerOrderAssignment","initialShipperContractLaneDetailsItemState","shipperContractLaneDetailsSlice","fetchShipperContractLaneDetailsBegin","fetchShipperContractLaneDetailsSuccess","fetchShipperContractLaneDetailsError","updateShipperContractLaneDetailsBegin","updateShipperContractLaneDetailsSuccess","updateShipperContractLaneDetailsError","spotRequestsStatsRefreshChannel","ANY_TRAILER_TYPE","selectStateMachineItemState","RE_ASSIGNMENT_REQUEST","RE_ASSIGNMENT_REQUEST_BEGIN","RE_ASSIGNMENT_REQUEST_ERROR","RE_ASSIGNMENT_REQUEST_SUCCESS","FETCH_DRIVERS_PAGE_REQUEST","FETCH_DRIVERS_PAGE_REQUEST_BEGIN","FETCH_DRIVERS_PAGE_REQUEST_SUCCESS","FETCH_DRIVERS_PAGE_REQUEST_ERROR","RESET_DRIVERS","FETCH_DRIVER_DETAILS_REQUEST","FETCH_DRIVER_DETAILS_REQUEST_BEGIN","FETCH_DRIVER_DETAILS_REQUEST_SUCCESS","FETCH_DRIVER_DETAILS_REQUEST_ERROR","INVITE_DRIVER_REQUEST","INVITE_DRIVER_REQUEST_BEGIN","INVITE_DRIVER_REQUEST_SUCCESS","INVITE_DRIVER_REQUEST_ERROR","ADD_DRIVER_REQUEST","ADD_DRIVER_REQUEST_BEGIN","ADD_DRIVER_REQUEST_SUCCESS","ADD_DRIVER_REQUEST_ERROR","DELETE_DRIVER_REQUEST","DELETE_DRIVER_REQUEST_BEGIN","DELETE_DRIVER_REQUEST_SUCCESS","DELETE_DRIVER_REQUEST_ERROR","ACTIVATE_DRIVER","ARCHIVE_DRIVER","CANCEL_DRIVER_INVITE","UPDATE_DRIVER_REQUEST","UPDATE_DRIVER_REQUEST_BEGIN","UPDATE_DRIVER_REQUEST_SUCCESS","UPDATE_DRIVER_REQUEST_ERROR","NOT_NUMBER_REG_EXP","clearPhoneNumber","rawPhoneNumber","asYouType","formattedPhoneNumber","input","parsePhoneNumber","getCountryCode","getCountryPhoneNumberStart","selectedCountryCode","phoneCode","checkIsPossiblePhoneNumber","checkIsEmptyPhoneNumber","parsedPhoneNumber","initialBrokerTeamDetailsState","brokerTeamDetailsSlice","fetchBrokerTeamDetails","fetchBrokerTeamDetailsBegin","brokerTeamDetailsState","fetchBrokerTeamDetailsSuccess","fetchBrokerTeamDetailsError","resetBrokerTeamDetails","FetchError","checkIsFetchError","fetchPartnersStats","fetchPartnersStatsBegin","fetchPartnersStatsSuccess","TrailerIconProps","getTrailerIconProps","initialConsistentStateMachineItemState","consistentStateMachineSlice","toursWaypointsArrived","toursWaypointsLeft","toursWaypointsUndoArrived","toursWaypointsUndoLeft","timeZonesSlice","fetchTimeZones","fetchTimeZonesBegin","fetchTimeZonesSuccess","fetchTimeZonesError","checkIsTranziitApiErrorResponse","fetchTrailersPageBegin","fetchTrailersPageSuccess","fetchTrailersPageError","resetTrailers","addTrailerRequest","addTrailerRequestBegin","addTrailerRequestError","addTrailerRequestSuccess","deleteTrailersRequestBegin","deleteTrailersRequestError","deleteTrailersRequestSuccess","changeRateTrailersRequest","activationTrailersRequest","archiveTrailersRequest","updateTrailersRequestBegin","updateTrailersRequestError","updateTrailersRequestSuccess","fetchTrailerDetailsRequestBegin","fetchTrailerDetailsRequestError","fetchTrailerDetailsRequestSuccess","fetchTrailersStats","fetchTrailersStatsRequestBegin","fetchTrailersStatsRequestError","fetchTrailersStatsRequestSuccess","importXLSTrailersRequestBegin","importXLSTrailersRequestError","importXLSTrailersRequestSuccess","exportXLSTrailersRequestBegin","exportXLSTrailersRequestError","exportXLSTrailersRequestSuccess","selectDocumentsDict","selectDocumentsDictById","selectDocumentsDictByType","selectDocumentsDictRequest","fetchNotificationsPageBegin","fetchNotificationsPageSuccess","fetchNotificationsError","markAsReadBegin","markAsReadSuccess","markAsReadError","fetchUnreadNotifications","fetchUnreadNotificationsBegin","fetchUnreadNotificationsSuccess","fetchUnreadNotificationsError","resetNotificationPages","toReturnUrl","AvatarSizeEnum","summ","char","charCodeAt","selectConsistentStateMachineItemState","FETCH_ORDERS_PAGE_REQUEST","FETCH_ORDERS_PAGE_REQUEST_BEGIN","FETCH_ORDERS_PAGE_REQUEST_ERROR","FETCH_ORDERS_PAGE_REQUEST_SUCCESS","RESET_ORDERS","TRAILERS_DICT_REQUEST","TRAILERS_DICT_REQUEST_BEGIN","TRAILERS_DICT_REQUEST_SUCCESS","TRAILERS_DICT_REQUEST_ERROR","LinkThemeEnum","LinkSizeEnum","isExternal","linkProps","brokerTeamDetailsRefreshChannel","NotificationSidebarContext","selectBrokerOrderDetails","selectBrokerOrderDetailsRequestStatus","selectBrokerOrderBillingSyncRequestStatus","testSelectors","FETCH_RATES_PAGE_REQUEST","FETCH_RATES_PAGE_REQUEST_BEGIN","FETCH_RATES_PAGE_REQUEST_ERROR","FETCH_RATES_PAGE_REQUEST_SUCCESS","RESET_RATES","UPDATE_RATES_REQUEST","UPDATE_RATES_REQUEST_BEGIN","UPDATE_RATES_REQUEST_ERROR","UPDATE_RATES_REQUEST_SUCCESS","UPLOAD_CSV_FILE_REQUEST","UPLOAD_CSV_FILE_REQUEST_BEGIN","UPLOAD_CSV_FILE_REQUEST_FAIL","UPLOAD_CSV_FILE_REQUEST_SUCCESS","tendersSlice","fetchTendersPage","fetchTendersPageBegin","fetchTendersPageSuccess","fetchTendersPageError","resetTenders","UserStatusEnum","RuleOperatorEnum","PriceRuleTypeEnum","TransportationOrderTypeEnum","ShipperOrdersQuickFilterEnum","ApiOrdersSourceEnum","BrokerOrdersQuickFilterEnum","OrderSourceEnum","OrderStatusEnum","BrokerOrderStatusEnum","SpotBidStatusEnum","TransportOrderQuickFilterEnum","TransportOrderStatusEnum","OrderSortEnum","TransportOrderSortEnum","TransportOrderTypeEnum","TrailerStatusEnum","TruckStatusEnum","ContactPositionsEnum","RolesEnum","PartnerTypeEnum","CarrierContractStatusEnum","DocumentStatusEnum","InvoiceStatusEnum","DocumentTypeEnum","DocumentRequiredEnum","ApiContactFormalEnum","RevokeContractActionEnum","AddressTypeEnum","UpdateRateStrategyEnum","RulesSortEnum","BrokerOrdersSortEnum","StopTypeEnum","TourStatusEnum","ShipmentStatusEnum","SubjectTypeEnum","TollTypeEnum","ALL_TOLL_TYPES","general","marketCorrection","intermodal","mountainPass","bridge","tunnel","ferry","unspecified","VehicleScheduleEventTypeEnum","RFQShipperSourceEnum","RFQBrokerSourceEnum","RFQStatusEnum","RFQsSortEnum","RFQsQuickFilterEnum","ShipperContractsSortEnum","ShipperContractLanesSortEnum","ApiAdditionalServiceTypeEnum","ShipperContractStatusEnum","ShipperContractLaneStatusEnum","OrderWaypointTypeEnum","ShipmentWarningEnum","TruckRateModeEnum","OrderCreationReservePointTypeEnum","NotificationAlertLevelEnum","ShipmentEditUnavailableReasonEnum","EditUnavailableReasonEnum","BrokerBillingSyncStatusEnum","selectShipperContractLanesPages","selectShipperContractLanesQuery","selectShipperContractLanesTotal","selectShipperContractLanesByIds","modalRoot","createElement","appendChild","removeChild","createPortal","getVehicleScheduleHash","getRePath","dropoffDate","pickupDate","newOrderOffers","orderCreationComplete","orderCreationPriceOfferId","orderCreationDropOffDate","orderCreationPickUpDate","newOrder","orderCreationOffers","orderCreationPickUpDatesRange","orderCreationDropOffDatesRange","orderCreationShipperId","orderCreationDetailsWithLane","newOrderDetailsWithLane","orderCreationDetails","newOrderDetails","selectCarrierContractStateById","createFakeIdFromPoint","stateMachineRefreshChannel","selectSpotRequestsPages","selectSpotRequestsQuery","selectSpotRequestsTotal","selectSpotRequestsByIds","selectPartnersStatsRequest","selectPartnersStats","parseStringFormatter","parseSimpleNumber","updateSpotRefreshChannel","initialSpotRequestDetailsState","updateRequestStatus","spotRequestDetailsState","fetchCarrierContractDetailsBegin","fetchCarrierContractDetailsSuccess","fetchCarrierContractDetailsError","FLOATING_UI_PORTAL_SELECTOR","isInsideFloatingUiPortal","Element","closest","selectRoutingGeometryState","selectRoutingGeometryStates","fetchCarrierContractsBegin","fetchCarrierContractsSuccess","fetchCarrierContractsError","updateCarrierContractBegin","updateCarrierContractSuccess","updateCarrierContractError","uploadCarrierContractBegin","uploadCarrierContractSuccess","uploadCarrierContractError","downloadCarrierContract","downloadCarrierContractBegin","downloadCarrierContractSuccess","downloadCarrierContractError","brokerOrderDetailsRefreshChannel","SpotRequestStatusEnum","SpotRequestStatStatusEnum","SpotRequestsSortEnum","initialVehicleState","vehicleState","BrokerTranziitApi","truckUpdate","apiFetchPartnersRequest","evidenceOfTaxDocumentUpdate","searchAssetsForAssigment","radius","includeProfileTypes","fetchBrokerAdminUsers","countriesFrom","countriesTo","apiUpdateRateRequest","newRole","textSearch","findPartnersByName","findPartnerUsersByName","bodyData","shipperName","createdBy","createDate","calculated","parsing","failedToParse","calculating","getDeadheadTrucks","searchExternalBusinessPartners","brokerTranziitApi","getAssetsTrackHashByOrderId","getAssetTrackHashByOrderId","getAssetsTrackHashByTransportOrderId","getAssetTrackHashByTransportOrderId","ContentRootContext","DriverIconProps","shipperContractLaneDetailsRefreshChannel","selectSubjectLogsRequestStatus","selectSubjectLogs","selectCurrentUser","selectUserSignedUp","selectIsPendingUser","pending","selectPatchUserRequestStatus","spotRequestsRefreshChannel","spotRequestsPaginationChannel","fetchTransportOrderDetails","fetchTransportOrderDetailsBegin","fetchTransportOrderDetailsSuccess","fetchTransportOrderDetailsError","fetchInvoicesPage","fetchInvoicesPageBegin","fetchInvoicesPageSuccess","fetchInvoicesPageError","resetInvoices","fetchRuleDetailsBegin","fetchRuleDetailsSuccess","fetchRuleDetailsError","fetchRulesPageBegin","fetchRulesPageSuccess","fetchRulesPageError","updateRules","updateRuleBegin","updateRuleSuccess","updateRuleError","createRuleBegin","createRuleSuccess","createRuleError","deleteRules","deleteRulesBegin","deleteRulesSuccess","deleteRulesError","previewRule","previewRuleBegin","previewRuleSuccess","previewRuleError","previewRuleReset","activateRules","deactivateRules","resetRulePages","resetUpdateRuleRequest","resetCreateRuleRequest","RoutePointTypeEnum","trucksRefreshChannel","truckDetailsRefreshChannel","trucksPaginationChannel","generatePointFakeId","prefix","uppercaseFormatter","uppercaseFirstCharacterFormatter","simpleNumberFormatter","simpleStringFormatter","SEND_TEST_NOTIFICATION","FETCH_UNREAD_NOTIFICATIONS_REQUEST","FETCH_UNREAD_NOTIFICATIONS_REQUEST_BEGIN","FETCH_UNREAD_NOTIFICATIONS_REQUEST_SUCCESS","FETCH_UNREAD_NOTIFICATIONS_REQUEST_ERROR","FETCH_NOTIFICATIONS_PAGE_REQUEST","FETCH_NOTIFICATIONS_PAGE_REQUEST_BEGIN","FETCH_NOTIFICATIONS_PAGE_REQUEST_ERROR","FETCH_NOTIFICATIONS_PAGE_REQUEST_SUCCESS","MARK_AS_READ_REQUEST","MARK_AS_READ_REQUEST_BEGIN","MARK_AS_READ_REQUEST_SUCCESS","MARK_AS_READ_REQUEST_ERROR","RESET_NOTIFICATION_PAGES","CommonSidebarsTypeEnum","SidebarSizeEnum","SideBarPositionEnum","SidebarQueryKeysEnum","SidebarDataDismissEnum","brokerOrdersSlice","fetchBrokerOrdersPageBegin","fetchBrokerOrdersPageSuccess","fetchBrokerOrdersPageError","resetBrokerOrders","selectSearchDriverQuery","selectSearchDriverRequest","selectSearchDriverIds","selectSearchDriverById","openLeftSidebar","formattedDate","initialCompanyRFQsState","AssetLinkIconProps","getAssetLinkIconProps","rfqsRefreshChannel","rfqsPaginationChannel","selectInvoicesPages","selectInvoicesQuery","selectInvoicesByIds","selectInvoicesPagingState","byPriceAsc","priceA","priceB","selectAssetTeleportItem","selectValidateTeleportStatus","selectValidateTeleportData","selectExecuteTeleportStatus","FETCH_TRUCKS_PAGE_REQUEST","FETCH_TRUCKS_PAGE_REQUEST_BEGIN","FETCH_TRUCKS_PAGE_REQUEST_ERROR","FETCH_TRUCKS_PAGE_REQUEST_SUCCESS","RESET_TRUCKS","ADD_TRUCK_REQUEST","ADD_TRUCK_REQUEST_BEGIN","ADD_TRUCK_REQUEST_ERROR","ADD_TRUCK_REQUEST_SUCCESS","DELETE_TRUCKS_REQUEST","DELETE_TRUCKS_REQUEST_BEGIN","DELETE_TRUCKS_REQUEST_ERROR","DELETE_TRUCKS_REQUEST_SUCCESS","ACTIVATION_TRUCKS_REQUEST","ARCHIVE_TRUCKS_REQUEST","ASSIGN_TO_CONTRACT_TRUCKS_REQUEST","CHANGE_RATE_TRUCKS_REQUEST","UPDATE_TRUCK_REQUEST","UPDATE_TRUCKS_REQUEST_BEGIN","UPDATE_TRUCKS_REQUEST_ERROR","UPDATE_TRUCKS_REQUEST_SUCCESS","FETCH_TRUCK_DETAILS_REQUEST","FETCH_TRUCK_DETAILS_REQUEST_BEGIN","FETCH_TRUCK_DETAILS_REQUEST_ERROR","FETCH_TRUCK_DETAILS_REQUEST_SUCCESS","FETCH_TRUCKS_STATS_REQUEST","FETCH_TRUCKS_STATS_REQUEST_BEGIN","FETCH_TRUCKS_STATS_REQUEST_ERROR","FETCH_TRUCKS_STATS_REQUEST_SUCCESS","IMPORT_XLS_TRUCKS_REQUEST","IMPORT_XLS_TRUCKS_REQUEST_BEGIN","IMPORT_XLS_TRUCKS_REQUEST_ERROR","IMPORT_XLS_TRUCKS_REQUEST_SUCCESS","EXPORT_XLS_TRUCKS_REQUEST","EXPORT_XLS_TRUCKS_REQUEST_BEGIN","EXPORT_XLS_TRUCKS_REQUEST_ERROR","EXPORT_XLS_TRUCKS_REQUEST_SUCCESS","formatPartnerTypeParam","apiPartnerType","parsePartnerTypeParam","partnerTypeParams","selectBrokerOrderEditUpdateRequestStatus","papersEditRefreshChannel","reAssign","reAssignBegin","reAssignSuccess","reAssignError","resetDriverAssignment","selectTendersPages","selectTendersQuery","selectTendersTotal","selectTendersByIds","concatTestSelectors","selectBrokerTourStatsRequest","selectBrokerTourStats","fetchContacts","fetchContactsBegin","fetchContactsSuccess","fetchContactsError","addContact","inviteUser","addMemberBegin","addMemberSuccess","addMemberError","cancelInvite","deleteMemberBegin","deleteMemberSuccess","deleteMemberError","changeUserRole","updateMemberBegin","updateMemberSuccess","updateMemberError","fetchContactDetailsBegin","fetchContactDetailsSuccess","fetchContactDetailsError","fetchManagers","fetchManagersBegin","fetchManagersSuccess","fetchManagersError","byAlphabetASC","a","b","getCountryCompByName","comp","countryA","countryB","DEFAULT_MODAL_DIALOG_WIDTH","ModalDialogActions","initialPartnerShipperContractLanesState","shipperContractLanesSlice","fetchShipperContractLanesPage","fetchShipperContractLanesPageBegin","fetchShipperContractLanesPageSuccess","fetchShipperContractLanesPageError","resetShipperContractLanes","CompanyLogoSizeEnum"],"sourceRoot":""}