{"version":3,"file":"js/bundle.main.xxxxxxxx.min.js","mappings":"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sB,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,IAAAA,EAAsB,KAMlC,SAAYC,GACR,cACA,2BACA,6BACA,yBACA,wBACH,CAND,CAAYA,IAAAA,EAAa,KAsBzB,SAAYC,GACR,8BACA,gCACA,2BACH,CAJD,CAAYA,IAAAA,EAAoB,KA4ChC,SAAYC,GACR,iCACA,6BACA,sCACA,oDACA,+BACA,8BACA,6BACA,yBACA,kCACA,+BACA,kCACH,CAZD,CAAYA,IAAAA,EAAY,KAiBxB,S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","sources":["webpack:///./common/store/alerts/types.ts","webpack:///./common/contexts/partner-context.ts","webpack:///./common/store/order-details/channels.ts","webpack:///./common/store/rfqs/selectors.ts","webpack:///./common/store/rfq-details/selectors.ts","webpack:///./common/store/orders/selectors.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/utils/logger.ts","webpack:///./common/utils/view-event-channel.ts","webpack:///./common/store/documents/types.ts","webpack:///./common/store/countries-dict/actions.ts","webpack:///./common/store/settings/selectors.ts","webpack:///./common/store/auth/types.ts","webpack:///./common/store/user/actions.ts","webpack:///./common/components/TraceIdLabel/TraceIdLabel.tsx","webpack:///./common/components/TraceIdLabel/TraceIdLabel.scss?aab3","webpack:///./common/store/orders/actions.ts","webpack:///./common/store/auth/actions.ts","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:///./shipper/store/invoices/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/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/ControlLoaderIcon.tsx","webpack:///./common/utils/hooks/useChannelSubscribe.ts","webpack:///./common/layouts/SideBars/hooks.tsx","webpack:///./common/store/subject-logs/utils.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/trucks-dict/types.ts","webpack:///./carrier/utils/api/carrier-tranziit/api.ts","webpack:///./common/store/orders/types.ts","webpack:///./common/contexts/features.ts","webpack:///./common/store/order-details/reducer.ts","webpack:///./common/store/notifications/channels.ts","webpack:///./shipper/store/invoices/actions.ts","webpack:///./common/store/rfqs-stats/types.ts","webpack:///./common/store/asset-track/actions.ts","webpack:///./common/store/members/channels.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/utils/url-helpers/auth-return-url.ts","webpack:///./common/utils/request-status.ts","webpack:///./common/icons/InfoIcon.tsx","webpack:///./common/utils/hooks/usePartnerContext.ts","webpack:///./design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger.tsx","webpack:///./design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger.scss?1838","webpack:///./common/components/AsyncDictCountryNameLabel/AsyncDictCountryNameLabel.tsx","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/store/order-creation/utils/prepare-price-offer.ts","webpack:///./common/store/order-creation/utils/prepare-rfq.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:///./common/store/order-creation/utils/get-default-additional-services.ts","webpack:///./common/store/additional-services-dict/sagas.ts","webpack:///./common/store/additional-services-dict/utils.ts","webpack:///./common/store/orders/sagas.ts","webpack:///./common/store/orders-stats/types.ts","webpack:///./common/store/orders-stats/sagas.ts","webpack:///./common/store/orders-stats/actions.ts","webpack:///./common/utils/semaphore-saga.ts","webpack:///./common/store/countries-dict/sagas.ts","webpack:///./common/store/trailers-dict/sagas.ts","webpack:///./common/store/trucks-dict/sagas.ts","webpack:///./common/store/order-details/sagas.ts","webpack:///./common/store/errors/utils.ts","webpack:///./common/store/errors/sagas.ts","webpack:///./common/store/members/utils.ts","webpack:///./broker-admin/store/partner/details/channels.ts","webpack:///./common/store/members/sagas.ts","webpack:///./common/store/documents-dict/utils/prepare-dict-document.ts","webpack:///./common/store/documents-dict/sagas.ts","webpack:///./common/store/documents/utils/prepare-document.ts","webpack:///./common/utils/download-file.ts","webpack:///./common/utils/download-headers.ts","webpack:///./common/store/documents/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:///./shipper/store/notifications/sagas.ts","webpack:///./common/store/asset-track/sagas.ts","webpack:///./common/store/grouped-notification-counts/constants.ts","webpack:///./common/store/grouped-notification-counts/sagas.ts","webpack:///./common/store/alerts/sagas.ts","webpack:///./common/store/settings/types.ts","webpack:///./common/store/settings/sagas.ts","webpack:///./common/store/settings/actions.ts","webpack:///./common/store/rfqs/sagas.ts","webpack:///./common/store/rfqs-stats/sagas.ts","webpack:///./common/store/transport-orders/types.ts","webpack:///./common/store/rfq-details/sagas.ts","webpack:///./common/store/rfqs-changes/sagas.ts","webpack:///./common/store/carrier-contracts/sagas.ts","webpack:///./shipper/store/invoices/sagas.ts","webpack:///./common/store/create-company/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/order-creation/reducer.ts","webpack:///./common/store/orders/reducer.ts","webpack:///./common/store/orders-stats/reducer.ts","webpack:///./common/store/countries-dict/reducer.ts","webpack:///./common/store/country-settings-dict/reducer.ts","webpack:///./common/store/trailers-dict/reducer.ts","webpack:///./common/store/trucks-dict/reducer.ts","webpack:///./common/store/notifications/reducer.ts","webpack:///./common/store/grouped-notification-counts/reducer.ts","webpack:///./common/store/alerts/reducer.ts","webpack:///./common/store/settings/reducer.ts","webpack:///./common/store/rfqs-stats/reducer.ts","webpack:///./common/store/rfqs-changes/reducer.ts","webpack:///./shipper/store/invoices/reducer.ts","webpack:///./common/store/shipper-contracts/sagas.ts","webpack:///./common/store/shipper-contract-details/sagas.ts","webpack:///./common/store/shipper-contract-lanes/sagas.ts","webpack:///./common/store/shipper-contract-lane-details/sagas.ts","webpack:///./common/store/state-machine/sagas.ts","webpack:///./common/utils/api/errors/api-request-error-type-guard.ts","webpack:///./common/store/routing-geometry/constants.ts","webpack:///./common/store/routing-geometry/sagas.ts","webpack:///./common/store/country-settings-dict/sagas.ts","webpack:///./common/store/subject-logs/models.ts","webpack:///./common/store/subject-logs/sagas.ts","webpack:///./common/store/subject-logs/converter.ts","webpack:///./shipper/store/order-edit/sagas.ts","webpack:///./shipper/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/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/toasts/utils.tsx","webpack:///./common/components/status/LoadStatus/LoadStatus.tsx","webpack:///./common/components/status-colored/ShipmentColoredStatus/ShipmentColoredStatus.tsx","webpack:///./common/components/status/TourStatus/TourStatus.tsx","webpack:///./common/components/status-colored/TourColoredStatus/TourColoredStatus.tsx","webpack:///./common/components/status/TransportOrderStatus/TransportOrderStatus.tsx","webpack:///./common/components/status-colored/TransportOrderColoredStatus/TransportOrderColoredStatus.tsx","webpack:///./shipper/components/toasts/models.ts","webpack:///./common/components/status-colored/RFQColoredStatus/RFQColoredStatus.tsx","webpack:///./common/components/AsyncDictDocumentNameLabel/AsyncDictDocumentNameLabel.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/ExpiredDocumentCard/ExpiredDocumentCard.tsx","webpack:///./common/components/notification-cards/ExpiredDocumentCard/ExpiredDocumentCard.scss?a2ff","webpack:///./common/components/notification-cards/ExpireSoonDocumentCard/ExpireSoonDocumentCard.tsx","webpack:///./common/components/notification-cards/ExpireSoonDocumentCard/ExpireSoonDocumentCard.scss?5234","webpack:///./common/components/notification-cards/UpdatedDocumentCard/UpdatedDocumentCard.tsx","webpack:///./common/components/notification-cards/UpdatedDocumentCard/UpdatedDocumentCard.scss?3578","webpack:///./common/components/notification-cards/RevokedDocumentCard/RevokedDocumentCard.tsx","webpack:///./common/components/notification-cards/RevokedDocumentCard/RevokedDocumentCard.scss?97aa","webpack:///./common/components/notification-cards/UpdatedContractCard/UpdatedContractCard.tsx","webpack:///./common/components/notification-cards/UpdatedContractCard/UpdatedContractCard.scss?7f4a","webpack:///./common/components/notification-cards/RevokedContractCard/RevokedContractCard.tsx","webpack:///./common/components/notification-cards/RevokedContractCard/RevokedContractCard.scss?b411","webpack:///./common/components/notification-cards/ExpiredContractCard/ExpiredContractCard.tsx","webpack:///./common/components/notification-cards/ExpiredContractCard/ExpiredContractCard.scss?bb0c","webpack:///./common/components/notification-cards/ExpireSoonContractCard/ExpireSoonContractCard.tsx","webpack:///./common/components/notification-cards/ExpireSoonContractCard/ExpireSoonContractCard.scss?eeb6","webpack:///./common/components/notification-cards/CompletedDocumentCard/CompletedDocumentCard.tsx","webpack:///./common/components/notification-cards/CompletedDocumentCard/CompletedDocumentCard.scss?3780","webpack:///./common/components/notification-cards/CompletedContractCard/CompletedContractCard.tsx","webpack:///./common/components/notification-cards/CompletedContractCard/CompletedContractCard.scss?c86f","webpack:///./common/components/notification-cards/entities/Identifier/Identifier.tsx","webpack:///./common/components/notification-cards/entities/Identifier/Identifier.scss?25a6","webpack:///./common/components/notification-cards/UpdatedShipperContractLaneCard/UpdatedShipperContractLaneCard.tsx","webpack:///./common/components/notification-cards/UpdatedShipperContractLaneCard/UpdatedShipperContractLaneCard.scss?f0a3","webpack:///./common/components/notification-cards/RevokedShipperContractLaneCard/RevokedShipperContractLaneCard.tsx","webpack:///./common/components/notification-cards/RevokedShipperContractLaneCard/RevokedShipperContractLaneCard.scss?3919","webpack:///./common/components/notification-cards/ExpiredShipperContractLaneCard/ExpiredShipperContractLaneCard.tsx","webpack:///./common/components/notification-cards/ExpiredShipperContractLaneCard/ExpiredShipperContractLaneCard.scss?cefd","webpack:///./common/components/notification-cards/CompletedShipperContractLaneCard/CompletedShipperContractLaneCard.tsx","webpack:///./common/components/notification-cards/CompletedShipperContractLaneCard/CompletedShipperContractLaneCard.scss?3c2c","webpack:///./common/components/notification-cards/ExpireSoonShipperContractLaneCard/ExpireSoonShipperContractLaneCard.tsx","webpack:///./common/components/notification-cards/ExpireSoonShipperContractLaneCard/ExpireSoonShipperContractLaneCard.scss?7f98","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/UploadShipperContractLaneCard/UploadShipperContractLaneCard.tsx","webpack:///./common/components/notification-cards/UploadShipperContractLaneCard/UploadShipperContractLaneCard.scss?f225","webpack:///./common/components/notification-cards/UploadContractCard/UploadContractCard.tsx","webpack:///./common/components/notification-cards/UploadContractCard/UploadContractCard.scss?d89a","webpack:///./common/components/notification-cards/OrderEditedCard/OrderEditedCard.tsx","webpack:///./common/components/notification-cards/OrderEditedCard/OrderEditedCard.scss?b385","webpack:///./common/components/notification-cards/MissedDeliveryForShipmentCard/MissedDeliveryForShipmentCard.tsx","webpack:///./common/components/notification-cards/CarrierNoShowForShipmentCard/CarrierNoShowForShipmentCard.tsx","webpack:///./common/components/notification-cards/ShipmentWasCanceledCard/ShipmentWasCanceledCard.tsx","webpack:///./common/components/notification-cards/BusinessPartnerProfileUpdatedCard/BusinessPartnerProfileUpdatedCard.tsx","webpack:///./common/components/notification-cards/BusinessPartnerAddressVerificationCard/BusinessPartnerAddressVerificationCard.tsx","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/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/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/WaypointUpdatedCard/WaypointUpdatedCard.tsx","webpack:///./shipper/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/icons/DriverIcon.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/icons/XLSIcon.tsx","webpack:///./common/icons/DocIcon.tsx","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/utils/features/server-features-config.ts","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:///./shipper/layouts/App/App.tsx","webpack:///./shipper/layouts/App/App.scss?7c47","webpack:///./shipper/index.tsx","webpack:///./common/utils/hooks/useMenuVisibility.ts","webpack:///./common/utils/hooks/useFeaturesContextValue.ts","webpack:///./common/components/status/RFQStatus/RFQStatus.tsx","webpack:///./common/store/alerts/models.ts","webpack:///./common/layouts/LeftMenuLayout/LeftMenuLayout.tsx","webpack:///./common/layouts/LeftMenuLayout/LeftMenuLayout.scss?66a2","webpack:///./common/store/company/channels.ts","webpack:///./common/store/asset-track/reducer.ts","webpack:///./common/store/asset-track/selectors.ts","webpack:///./common/store/country-settings-dict/types.ts","webpack:///./common/store/rfq-details/reducer.ts","webpack:///./common/store/documents/selectors.ts","webpack:///./common/store/trailers-dict/selectors.ts","webpack:///./common/store/documents-dict/reducer.ts","webpack:///./common/utils/debug-info.ts","webpack:///./common/store/auth/selectors.ts","webpack:///./common/utils/permissions.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/notifications/NotificationsBarContent/NotificationCardBody/NotificationCardBody.tsx","webpack:///./common/components/notifications/NotificationsBarContent/NotificationCardBody/NotificationCardBody.scss?20be","webpack:///./common/store/shipper-contracts/slice.ts","webpack:///./common/store/orders-stats/selectors.ts","webpack:///./common/store/auth/constants.ts","webpack:///./common/store/user/types.ts","webpack:///./design-system/components/OutsideClickHandler/OutsideClickHandler.tsx","webpack:///./common/store/rfqs-changes/actions.ts","webpack:///./common/components/toasts/AlertToastsManager/models.ts","webpack:///./common/store/order-creation/utils/get-dates-hash.ts","webpack:///./shipper/utils/urls.ts","webpack:///./common/store/order-creation/constants.ts","webpack:///./common/store/carrier-contracts/reducer.ts","webpack:///./common/utils/api/tranziit/common-tranziit-api.ts","webpack:///./common/icons/TruckIcon.tsx","webpack:///./common/store/trailers-dict/actions.ts","webpack:///./common/store/shipper-contract-details/slice.ts","webpack:///./common/contexts/ui-context.ts","webpack:///./common/store/state-machine/slice.ts","webpack:///./common/utils/hooks/navigation/useAppNavigate.ts","webpack:///./common/utils/pagination/reducers.ts","webpack:///./common/store/carrier-contracts/selectors.ts","webpack:///./common/store/order-creation/actions.ts","webpack:///./common/store/order-creation/types.ts","webpack:///./common/store/grouped-notification-counts/selectors.ts","webpack:///./common/store/additional-services-dict/selectors.ts","webpack:///./common/store/shipper-contract-lane-details/selectors.ts","webpack:///./common/store/shipper-contracts/channels.ts","webpack:///./common/contexts/common-url-factory-context.ts","webpack:///./common/utils/hooks/useCommonUrlFactoryContext.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:///./shipper/constants.ts","webpack:///./common/utils/api/errors/api-request-error.ts","webpack:///./common/icons/ContactBadgeIcon.tsx","webpack:///./common/components/notifications/NotificationsBarContent/utils.ts","webpack:///./common/store/grouped-notification-counts/actions.ts","webpack:///./common/store/trucks-dict/utils.ts","webpack:///./common/contexts/render-log-context.ts","webpack:///./common/icons/CargoUnitIcon.tsx","webpack:///./common/store/asset-track/types.ts","webpack:///./common/utils/api/auth/errors/auth-api-error.ts","webpack:///./common/store/documents-dict/actions.ts","webpack:///./common/utils/client-config.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/components/ColoredStatusLabel/ColoredStatusLabel.tsx","webpack:///./common/components/ColoredStatusLabel/ColoredStatusLabel.scss?e46e","webpack:///./common/utils/form-common-validators.ts","webpack:///./common/utils/form-validators.ts","webpack:///./common/utils/validators.ts","webpack:///./common/store/alerts/actions.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:///./common/store/trucks-dict/actions.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/store/trucks-dict/selectors.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/members/selectors.ts","webpack:///./common/store/subject-logs/slice.ts","webpack:///./common/store/state-machine/utils.ts","webpack:///./common/icons/DeleteIcon.tsx","webpack:///./common/store/create-company/slice.ts","webpack:///./common/store/documents-dict/types.ts","webpack:///./common/store/company/selectors.ts","webpack:///./shipper/store/order-edit/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:///./common/components/Money/Money.tsx","webpack:///./common/components/Money/Money.scss?aad2","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:///./common/store/orders/channels.ts","webpack:///./common/store/rfqs-changes/types.ts","webpack:///./common/utils/query.ts","webpack:///./common/store/rfq-details/actions.ts","webpack:///./common/store/members/reducer.ts","webpack:///./common/store/additional-services-dict/slice.ts","webpack:///./common/icons/DoneIcon.tsx","webpack:///./common/store/gps-tracking-status/types.ts","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/shipper-contract-lane-details/slice.ts","webpack:///./common/store/additional-services-dict/constants.ts","webpack:///./common/store/state-machine/selectors.ts","webpack:///./common/store/order-details/selectors.ts","webpack:///./common/utils/phone-number.ts","webpack:///./common/utils/api/errors/fetch-error.ts","webpack:///./common/icons/TrailerIcon.tsx","webpack:///./common/utils/api/tranziit/errors/error-response.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/trailers-dict/types.ts","webpack:///./common/components/Link/Link.tsx","webpack:///./common/components/Link/Link.scss?a557","webpack:///./common/contexts/notification-sidebar-context.ts","webpack:///./common/utils/hooks/useTestSelector.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/utils/urls.ts","webpack:///./common/store/order-creation/utils/create-fake-id-from-point.ts","webpack:///./common/store/state-machine/channels.ts","webpack:///./common/utils/input-parsers.ts","webpack:///./common/icons/HollowCircleIcon.tsx","webpack:///./common/utils/floating-ui.ts","webpack:///./common/store/routing-geometry/selectors.ts","webpack:///./common/store/carrier-contracts/actions.ts","webpack:///./broker-admin/utils/api/broker-tranziit/api.ts","webpack:///./common/store/asset-track/utils.ts","webpack:///./common/layouts/LeftMenuLayout/contexts/content-root-context.ts","webpack:///./common/store/shipper-contract-lane-details/channels.ts","webpack:///./common/store/subject-logs/selectors.ts","webpack:///./common/store/user/selectors.ts","webpack:///./common/store/order-details/types.ts","webpack:///./common/icons/EditIcon.tsx","webpack:///./common/icons/PaperIcon.tsx","webpack:///./shipper/store/invoices/types.ts","webpack:///./common/utils/form-formatters.ts","webpack:///./common/store/notifications/types.ts","webpack:///./common/layouts/SideBars/models.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/store/rfqs/channels.ts","webpack:///./common/store/order-creation/utils/sort-offers.ts","webpack:///./shipper/store/invoices/channels.ts","webpack:///./common/store/order-details/actions.ts","webpack:///./common/utils/test-selectors.ts","webpack:///./common/store/members/actions.ts","webpack:///./common/store/documents/channels.ts","webpack:///./common/utils/sort.ts","webpack:///./common/components/Modal/ModalDialog/ModalDialog.tsx","webpack:///./common/components/Modal/ModalDialog/ModalDialog.scss?d32d","webpack:///./shipper/store/order-edit/slice.ts","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 OrderDetailsRefreshChannelEventT = {\n    orderId: OrderIdT;\n};\n\nexport const orderDetailsRefreshChannel = new ViewEventChannel<OrderDetailsRefreshChannelEventT>();\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 { OrdersStateT } from './types';\nimport { SharableStateT } from '../models';\n\nexport const selectOrdersPages = (state: SharableStateT): OrdersStateT['pages'] => state.orders.pages;\n\nexport const selectOrdersQuery = (state: SharableStateT): OrdersStateT['query'] => state.orders.query;\n\nexport const selectOrdersTotal = (state: SharableStateT): OrdersStateT['total'] => state.orders.total;\n\nexport const selectOrdersByIds = (state: SharableStateT): OrdersStateT['byId'] => state.orders.byId;\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","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 { 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 {\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 { 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 {\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    FETCH_ORDERS_PAGE_REQUEST,\n    FETCH_ORDERS_PAGE_REQUEST_BEGIN,\n    FETCH_ORDERS_PAGE_REQUEST_ERROR,\n    FETCH_ORDERS_PAGE_REQUEST_SUCCESS,\n    FetchOrdersPageActionT,\n    FetchOrdersPageBeginActionT,\n    FetchOrdersPageErrorActionT,\n    FetchOrdersPageSuccessActionT,\n    RESET_ORDERS,\n    ResetOrdersActionT,\n} from './types';\nimport { FetchOrdersPageQueryT, OrderT } from './models';\nimport { PageResponseT } from 'common/utils/pagination/models';\n\nexport const fetchOrdersPage = (\n    pageNumber: PageNumberT,\n    query: FetchOrdersPageQueryT,\n    options?: FetchOptionsT,\n): FetchOrdersPageActionT => ({\n    type: FETCH_ORDERS_PAGE_REQUEST,\n    query,\n    pageNumber,\n    options,\n});\n\nexport const fetchOrdersPageBegin = (\n    query: FetchOrdersPageQueryT,\n    pageNumber: PageNumberT,\n): FetchOrdersPageBeginActionT => ({\n    type: FETCH_ORDERS_PAGE_REQUEST_BEGIN,\n    query,\n    pageNumber,\n});\n\nexport const fetchOrdersPageSuccess = (\n    query: FetchOrdersPageQueryT,\n    pageNumber: PageNumberT,\n    pageResponse: PageResponseT<OrderT> | null,\n): FetchOrdersPageSuccessActionT => ({\n    type: FETCH_ORDERS_PAGE_REQUEST_SUCCESS,\n    query,\n    pageResponse,\n    pageNumber,\n});\n\nexport const fetchOrdersPageError = (\n    query: FetchOrdersPageQueryT,\n    pageNumber: PageNumberT,\n    error: Error,\n): FetchOrdersPageErrorActionT => ({\n    type: FETCH_ORDERS_PAGE_REQUEST_ERROR,\n    query,\n    error,\n    pageNumber,\n});\n\nexport const resetOrders = (mutationListOptions: MutationListOptionsT): ResetOrdersActionT => ({\n    type: RESET_ORDERS,\n    mutationListOptions,\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 { 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 { 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 { 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","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 { 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 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","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","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 { FetchOrdersPageQueryT, OrderT } from './models';\nimport { PageResponseT, PaginationStateT } from 'common/utils/pagination/models';\n\nexport const FETCH_ORDERS_PAGE_REQUEST = 'common/orders/FETCH_ORDERS_PAGE_REQUEST';\nexport const FETCH_ORDERS_PAGE_REQUEST_BEGIN = 'common/orders/FETCH_ORDERS_PAGE_REQUEST_BEGIN';\nexport const FETCH_ORDERS_PAGE_REQUEST_ERROR = 'common/orders/FETCH_ORDERS_PAGE_REQUEST_ERROR';\nexport const FETCH_ORDERS_PAGE_REQUEST_SUCCESS = 'common/orders/FETCH_ORDERS_PAGE_REQUEST_SUCCESS';\nexport const RESET_ORDERS = 'common/orders/RESET_ORDERS';\n\nexport type OrdersStateT = PaginationStateT<OrderT, FetchOrdersPageQueryT>;\n\nexport type FetchOrdersPageActionT = {\n    type: typeof FETCH_ORDERS_PAGE_REQUEST;\n    pageNumber: PageNumberT;\n    query: FetchOrdersPageQueryT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchOrdersPageBeginActionT = {\n    type: typeof FETCH_ORDERS_PAGE_REQUEST_BEGIN;\n    query: FetchOrdersPageQueryT;\n    pageNumber: PageNumberT;\n};\n\nexport type FetchOrdersPageSuccessActionT = {\n    type: typeof FETCH_ORDERS_PAGE_REQUEST_SUCCESS;\n    query: FetchOrdersPageQueryT;\n    pageResponse: PageResponseT<OrderT> | null;\n    pageNumber: PageNumberT;\n};\n\nexport type FetchOrdersPageErrorActionT = {\n    type: typeof FETCH_ORDERS_PAGE_REQUEST_ERROR;\n    query: FetchOrdersPageQueryT;\n    pageNumber: PageNumberT;\n    error: Error;\n};\n\nexport type ResetOrdersActionT = {\n    type: typeof RESET_ORDERS;\n    mutationListOptions: MutationListOptionsT;\n};\n\nexport type OrdersActionT =\n    | FetchOrdersPageActionT\n    | FetchOrdersPageBeginActionT\n    | FetchOrdersPageSuccessActionT\n    | FetchOrdersPageErrorActionT\n    | ResetOrdersActionT;\n","import { FeaturesContextValueT } from 'common/utils/hooks/useFeaturesContextValue';\nimport React from 'react';\n\nconst FeaturesContext = React.createContext<FeaturesContextValueT>({});\n\nexport default FeaturesContext;\n","import {\n    FETCH_ORDER_REQUEST_BEGIN,\n    FETCH_ORDER_REQUEST_ERROR,\n    FETCH_ORDER_REQUEST_SUCCESS,\n    OrderDetailsActionT,\n    OrderDetailsByIdStateT,\n    OrderDetailsStateT,\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: OrderDetailsByIdStateT = {};\n\nexport const initialOrderState: OrderDetailsStateT = {\n    order: null,\n    orderRequestStatus: requestStatus.initial,\n};\n\nexport default (state = initialState, action: OrderDetailsActionT | DestroySessionActionT): OrderDetailsByIdStateT => {\n    switch (action.type) {\n        case FETCH_ORDER_REQUEST_BEGIN: {\n            const { id } = action;\n\n            const orderState = state[id] || initialOrderState;\n\n            return {\n                ...state,\n                [id]: {\n                    ...orderState,\n                    orderRequestStatus: requestStatus.loading,\n                },\n            };\n        }\n\n        case FETCH_ORDER_REQUEST_ERROR: {\n            const { error, id } = action;\n\n            const orderState = state[id] || initialOrderState;\n\n            return {\n                ...state,\n                [id]: {\n                    ...orderState,\n                    orderRequestStatus: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case FETCH_ORDER_REQUEST_SUCCESS: {\n            const { order, id } = action;\n\n            const orderState = state[id] || initialOrderState;\n\n            return {\n                ...state,\n                [id]: {\n                    ...orderState,\n                    orderRequestStatus: requestStatus.ok,\n                    order: isEqual(order, orderState.order) ? orderState.order : order,\n                },\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default: {\n            return state;\n        }\n    }\n};\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_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 { DepreactedPagingStateT, FetchInvoicesPageQueryT, ShipperInvoiceT } 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<ShipperInvoiceT> | 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 { 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 {\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 { 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 { 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 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 * as React from 'react';\nimport { memo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { selectCountriesByCode, selectCountriesDictRequest } from 'common/store/countries-dict/selectors';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\nimport { CountryCodeT } from 'common/utils/api/models';\n\nexport type PropsT = {\n    className?: string;\n    countryCode: CountryCodeT | null | undefined;\n};\n\nconst AsyncDictCountryNameLabel: React.FC<PropsT> = memo((props) => {\n    const { className, countryCode } = props;\n\n    const dispatch = useDispatch();\n\n    const countryByCode = useSelector(selectCountriesByCode);\n    const requestStatus = useSelector(selectCountriesDictRequest);\n\n    React.useEffect(() => {\n        dispatch(fetchCountriesDict());\n    }, [dispatch]);\n\n    const country = countryByCode[countryCode as CountryCodeT] || null;\n\n    if (requestStatus.loading) {\n        return <ControlLoaderIcon fillColor={StyleGuideColorsEnum.gray} size={DEFAULT_ICON_SIZE} />;\n    }\n\n    return <span className={className}>{country?.userLangDisplayName}</span>;\n});\n\nexport default AsyncDictCountryNameLabel;\n","import * as React from 'react';\nimport 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 { 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","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","const getDefaultAdditionalServices = (): number[] => {\n    const services: number[] = [];\n\n    // add additional services by default\n\n    return services;\n};\n\nexport { getDefaultAdditionalServices };\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 { put, select, takeEvery } from 'redux-saga/effects';\nimport { FETCH_ORDERS_PAGE_REQUEST, FetchOrdersPageActionT } from './types';\nimport { fetchOrdersPageBegin, fetchOrdersPageError, fetchOrdersPageSuccess, resetOrders } from './actions';\nimport { selectOrdersPages, selectOrdersQuery } from 'common/store/orders/selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport shipperTranziitApi from 'shipper/utils/api/shipper-tranziit/api';\nimport { checkIsSameQuery, checkShouldEmitChangePage } from 'common/utils/pagination/utils';\nimport { ordersPaginationChannel } from 'common/store/orders/channels';\n\nfunction* fetchOrdersSaga(action: FetchOrdersPageActionT): WrapGeneratorT<void> {\n    const { pageNumber, query: rawQuery, options } = action;\n\n    const query: typeof rawQuery = {\n        ...rawQuery,\n    };\n\n    const prevQuery: ReturnType<typeof selectOrdersQuery> = yield select(selectOrdersQuery);\n    const pages: ReturnType<typeof selectOrdersPages> = yield select(selectOrdersPages);\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(resetOrders({ savingPageNumber: pageNumber }));\n    }\n\n    yield put(fetchOrdersPageBegin(query, pageNumber));\n    const [error, response]: ReturnApiT<typeof shipperTranziitApi.fetchOrdersPage> =\n        yield shipperTranziitApi.fetchOrdersPage({\n            ...query,\n            page: pageNumber,\n        });\n\n    if (error) {\n        yield put(fetchOrdersPageError(query, pageNumber, error));\n        return;\n    }\n\n    yield put(fetchOrdersPageSuccess(query, pageNumber, response));\n\n    checkShouldEmitChangePage(pageNumber, response, ordersPaginationChannel);\n}\n\nfunction* ordersSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_ORDERS_PAGE_REQUEST, fetchOrdersSaga);\n}\n\nexport default ordersSaga;\n","import { OrdersStatsT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport const FETCH_ORDERS_STATS_REQUEST = 'common/orders-stats/FETCH_ORDERS_STATS_REQUEST';\nexport const FETCH_ORDERS_STATS_REQUEST_BEGIN = 'common/orders-stats/FETCH_ORDERS_STATS_REQUEST_BEGIN';\nexport const FETCH_ORDERS_STATS_REQUEST_ERROR = 'common/orders-stats/FETCH_ORDERS_STATS_REQUEST_ERROR';\nexport const FETCH_ORDERS_STATS_REQUEST_SUCCESS = 'common/orders-stats/FETCH_ORDERS_STATS_REQUEST_SUCCESS';\n\nexport type OrdersStatsStateT = {\n    stats: OrdersStatsT | null;\n    fetchRequest: RequestStatusT;\n};\n\nexport type FetchOrdersStatsActionT = {\n    type: typeof FETCH_ORDERS_STATS_REQUEST;\n};\n\nexport type FetchOrdersStatsBeginActionT = {\n    type: typeof FETCH_ORDERS_STATS_REQUEST_BEGIN;\n};\n\nexport type FetchOrdersStatsSuccessActionT = {\n    type: typeof FETCH_ORDERS_STATS_REQUEST_SUCCESS;\n    statistics: OrdersStatsT | null;\n};\n\nexport type FetchOrdersStatsErrorActionT = {\n    type: typeof FETCH_ORDERS_STATS_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type OrdersStatsActionT =\n    | FetchOrdersStatsActionT\n    | FetchOrdersStatsBeginActionT\n    | FetchOrdersStatsSuccessActionT\n    | FetchOrdersStatsErrorActionT;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { fetchOrdersStatsBegin, fetchOrdersStatsError, fetchOrdersStatsSuccess } from './actions';\nimport { FETCH_ORDERS_STATS_REQUEST } from './types';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { selectOrdersStatsRequest } from './selectors';\nimport { FETCH_ORDERS_PAGE_REQUEST } from 'common/store/orders/types';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\n\nfunction* fetchOrdersStatsSaga(): WrapGeneratorT<void> {\n    const requestStatus: ReturnType<typeof selectOrdersStatsRequest> = yield select(selectOrdersStatsRequest);\n\n    const isNeedRequest = checkNeedRequest(requestStatus);\n    if (!isNeedRequest) {\n        return;\n    }\n\n    yield put(fetchOrdersStatsBegin());\n\n    const [error, response]: ReturnApiT<typeof commonTranziitApi.fetchOrdersStatistics> =\n        yield commonTranziitApi.fetchOrdersStatistics();\n    if (error) {\n        yield put(fetchOrdersStatsError(error));\n        return;\n    }\n\n    yield put(fetchOrdersStatsSuccess(response));\n}\n\nfunction* ordersStatsSaga(): WrapGeneratorT<void> {\n    yield takeEvery([FETCH_ORDERS_STATS_REQUEST, FETCH_ORDERS_PAGE_REQUEST], fetchOrdersStatsSaga);\n}\n\nexport default ordersStatsSaga;\n","import {\n    FETCH_ORDERS_STATS_REQUEST,\n    FETCH_ORDERS_STATS_REQUEST_BEGIN,\n    FETCH_ORDERS_STATS_REQUEST_ERROR,\n    FETCH_ORDERS_STATS_REQUEST_SUCCESS,\n    FetchOrdersStatsActionT,\n    FetchOrdersStatsBeginActionT,\n    FetchOrdersStatsErrorActionT,\n    FetchOrdersStatsSuccessActionT,\n} from './types';\nimport { OrdersStatsT } from './models';\n\nexport const fetchOrdersStats = (): FetchOrdersStatsActionT => ({\n    type: FETCH_ORDERS_STATS_REQUEST,\n});\n\nexport const fetchOrdersStatsBegin = (): FetchOrdersStatsBeginActionT => ({\n    type: FETCH_ORDERS_STATS_REQUEST_BEGIN,\n});\n\nexport const fetchOrdersStatsSuccess = (statistics: OrdersStatsT | null): FetchOrdersStatsSuccessActionT => ({\n    type: FETCH_ORDERS_STATS_REQUEST_SUCCESS,\n    statistics,\n});\n\nexport const fetchOrdersStatsError = (error: Error): FetchOrdersStatsErrorActionT => ({\n    type: FETCH_ORDERS_STATS_REQUEST_ERROR,\n    error,\n});\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 { 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 { 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 { 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 { put, select, takeEvery } from 'redux-saga/effects';\nimport { FETCH_ORDER_REQUEST, FetchOrderRequestActionT } from './types';\nimport { fetchOrderBegin, fetchOrderError, fetchOrderSuccess } from './actions';\nimport { selectOrderRequestStatus } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport shipperTranziitApi from 'shipper/utils/api/shipper-tranziit/api';\n\nfunction* fetchOrderSaga(action: FetchOrderRequestActionT): WrapGeneratorT<void> {\n    const { id, options } = action;\n\n    const requestStatus: ReReturnT<typeof selectOrderRequestStatus> = yield select(selectOrderRequestStatus(id));\n    if (!checkNeedRequest(requestStatus, options)) {\n        return;\n    }\n\n    yield put(fetchOrderBegin(id));\n\n    const [error, order]: ReturnApiT<typeof shipperTranziitApi.getOrderDetails> =\n        yield shipperTranziitApi.getOrderDetails(id);\n    if (error) {\n        yield put(fetchOrderError(id, error));\n    } else {\n        yield put(fetchOrderSuccess(id, order));\n    }\n}\n\nfunction* orderDetailsSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_ORDER_REQUEST, fetchOrderSaga);\n}\n\nexport default orderDetailsSaga;\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 { 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 { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const partnerDetailsRefreshChannel = new ViewEventChannel<{}>();\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 { 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 { 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 { 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","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 { 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 { 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","// eslint-disable-next-line @typescript-eslint/no-empty-function,no-empty-function\nfunction* alertsSaga(): WrapGeneratorT<void> {}\n\nexport default alertsSaga;\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 { 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 {\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 { 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 { 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 { 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 { 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_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 shipperTranziitApi from 'shipper/utils/api/shipper-tranziit/api';\nimport { checkIsSameQuery, checkShouldEmitChangePage } from 'common/utils/pagination/utils';\nimport { invoicesPaginationChannel } from './channels';\nimport { PageResponseT } from 'common/utils/pagination/models';\nimport { DepreactedPagingStateT, ShipperInvoiceT } 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 shipperTranziitApi.fetchShipperInvoicesPage> =\n        yield shipperTranziitApi.fetchShipperInvoicesPage({\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<ShipperInvoiceT> = {\n        content: items.map((item): ShipperInvoiceT => {\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, 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 {\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 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_ORDERS_PAGE_REQUEST_BEGIN,\n    FETCH_ORDERS_PAGE_REQUEST_ERROR,\n    FETCH_ORDERS_PAGE_REQUEST_SUCCESS,\n    OrdersActionT,\n    OrdersStateT,\n    RESET_ORDERS,\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: OrdersStateT = {\n    pages: [],\n    query: null,\n    total: null,\n    byId: {},\n};\n\nexport default (state = initialState, action: OrdersActionT | DestroySessionActionT): OrdersStateT => {\n    switch (action.type) {\n        case FETCH_ORDERS_PAGE_REQUEST_BEGIN: {\n            const { pageNumber, query } = action;\n\n            return {\n                ...state,\n                ...pageBeginReducer(state, pageNumber, query),\n            };\n        }\n\n        case FETCH_ORDERS_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_ORDERS_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_ORDERS: {\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    OrdersStatsActionT,\n    OrdersStatsStateT,\n    FETCH_ORDERS_STATS_REQUEST_BEGIN,\n    FETCH_ORDERS_STATS_REQUEST_ERROR,\n    FETCH_ORDERS_STATS_REQUEST_SUCCESS,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: OrdersStatsStateT = {\n    stats: null,\n    fetchRequest: requestStatus.initial,\n};\n\nexport default (state = initialState, action: OrdersStatsActionT | DestroySessionActionT): OrdersStatsStateT => {\n    switch (action.type) {\n        case FETCH_ORDERS_STATS_REQUEST_BEGIN: {\n            return {\n                ...state,\n                fetchRequest: requestStatus.loading,\n            };\n        }\n\n        case FETCH_ORDERS_STATS_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                fetchRequest: requestStatus.setError(error),\n            };\n        }\n\n        case FETCH_ORDERS_STATS_REQUEST_SUCCESS: {\n            const { statistics } = action;\n\n            return {\n                ...state,\n                stats: statistics,\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 {\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    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 {\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    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 { 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 {\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 {\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 { 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, 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 { 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 {\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, 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 { 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 } 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 { 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 {\n    updateOrderStopContact,\n    updateOrderStopContactBegin,\n    updateOrderStopContactError,\n    updateOrderStopContactSuccess,\n} from './slice';\nimport { selectOrderStopContactRequestStatus } from './selectors';\nimport { orderDetailsRefreshChannel } from 'common/store/order-details/channels';\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';\n\nexport function* updateOrderStopContactSaga(action: ReturnType<typeof updateOrderStopContact>): WrapGeneratorT<void> {\n    const { orderId, stopId, data } = action.payload;\n    const status: ReturnType<ReturnType<typeof selectOrderStopContactRequestStatus>> = yield select(\n        selectOrderStopContactRequestStatus(orderId),\n    );\n    if (status.loading) {\n        return;\n    }\n\n    yield put(updateOrderStopContactBegin({ orderId }));\n    const [error]: ReturnApiT<typeof shipperTranziitApi.updateOrderStopContact> =\n        yield shipperTranziitApi.updateOrderStopContact(stopId, data);\n    if (error) {\n        yield put(updateOrderStopContactError({ orderId, error }));\n        return;\n    }\n\n    yield put(updateOrderStopContactSuccess({ orderId }));\n    yield put(addAlert(new CommonAnyAlert({ type: CommonAlertTypeEnum.waypointContactUpdated, data: {} })));\n    orderDetailsRefreshChannel.emit({ orderId });\n}\n\nexport function* orderEditSaga(): WrapGeneratorT<void> {\n    yield takeEvery(updateOrderStopContact.type, updateOrderStopContactSaga);\n}\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 orderCreationSaga from 'common/store/order-creation/sagas';\nimport additionalServicesDictSaga from 'common/store/additional-services-dict/sagas';\nimport ordersSaga from 'common/store/orders/sagas';\nimport ordersStatsSaga from 'common/store/orders-stats/sagas';\nimport countriesDictSaga from 'common/store/countries-dict/sagas';\nimport trailersDictSaga from 'common/store/trailers-dict/sagas';\nimport trucksDictSaga from 'common/store/trucks-dict/sagas';\nimport orderDetailsSaga from 'common/store/order-details/sagas';\nimport errorsSaga from 'common/store/errors/sagas';\nimport membersSaga from 'common/store/members/sagas';\nimport documentsDictSaga from 'common/store/documents-dict/sagas';\nimport documentsSaga from 'common/store/documents/sagas';\nimport notificationsSaga from 'common/store/notifications/sagas';\nimport notificationsAffectsSaga from './notifications/sagas';\nimport assetTrackSaga from 'common/store/asset-track/sagas';\nimport groupedNotificationCountsSaga from 'common/store/grouped-notification-counts/sagas';\nimport alertsSaga from 'common/store/alerts/sagas';\nimport settingsSaga from 'common/store/settings/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';\nimport carrierContractsSaga from 'common/store/carrier-contracts/sagas';\nimport { invoicesSaga } from './invoices/sagas';\nimport { createCompanySaga } from 'common/store/create-company/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 orderCreationReducer from 'common/store/order-creation/reducer';\nimport additionalServicesDictReducer from 'common/store/additional-services-dict/slice';\nimport ordersReducer from 'common/store/orders/reducer';\nimport ordersStatsReducer from 'common/store/orders-stats/reducer';\nimport countriesDictReducer from 'common/store/countries-dict/reducer';\nimport countrySettingsDictReducer from 'common/store/country-settings-dict/reducer';\nimport trailersDictReducer from 'common/store/trailers-dict/reducer';\nimport trucksDictReducer from 'common/store/trucks-dict/reducer';\nimport orderDetailsReducer from 'common/store/order-details/reducer';\nimport membersReducer from 'common/store/members/reducer';\nimport documentsDictReducer from 'common/store/documents-dict/reducer';\nimport documentsReducer from 'common/store/documents/reducer';\nimport notificationsReducer from 'common/store/notifications/reducer';\nimport assetTrackReducer from 'common/store/asset-track/reducer';\nimport groupedNotificationCountsReducer from 'common/store/grouped-notification-counts/reducer';\nimport alertsReducer from 'common/store/alerts/reducer';\nimport settingsReducer from 'common/store/settings/reducer';\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 carrierContractsReducer from 'common/store/carrier-contracts/reducer';\nimport shipperContractLanesReducer from 'common/store/shipper-contract-lanes/slice';\nimport shipperContractLaneDetailsReducer from 'common/store/shipper-contract-lane-details/slice';\nimport routingGeometryReducer from 'common/store/routing-geometry/slice';\nimport stateMachineReducer from 'common/store/state-machine/slice';\nimport invoicesReducer from './invoices/reducer';\nimport createCompanyReducer from 'common/store/create-company/slice';\n\nimport { CompanyTypeEnum } from 'common/constants';\nimport { AuthProfileTypeEnum } from 'common/store/auth/constants';\nimport shipperContractsReducer from 'common/store/shipper-contracts/slice';\nimport shipperContractDetailsReducer from 'common/store/shipper-contract-details/slice';\nimport { shipperContractsSaga } from 'common/store/shipper-contracts/sagas';\nimport { shipperContractDetailsSaga } from 'common/store/shipper-contract-details/sagas';\nimport { shipperContractLanesSaga } from 'common/store/shipper-contract-lanes/sagas';\nimport { shipperContractLaneDetailsSaga } from 'common/store/shipper-contract-lane-details/sagas';\nimport { stateMachineSaga } from 'common/store/state-machine/sagas';\nimport { routingGeometrySaga } from 'common/store/routing-geometry/sagas';\nimport { countrySettingsDictSaga } from 'common/store/country-settings-dict/sagas';\nimport papersEditReducer from 'common/store/papers-edit/slice';\nimport { subjectLogsReducer } from 'common/store/subject-logs/slice';\nimport { subjectLogsSaga } from 'common/store/subject-logs/sagas';\nimport { logError } from 'common/utils/logger';\n\nimport { orderEditSlice } from './order-edit/slice';\nimport { orderEditSaga } from './order-edit/sagas';\n\nconst rootReducer = combineReducers({\n    auth: authReducer(AuthProfileTypeEnum.shipper),\n    user: userReducer,\n    company: companyReducer,\n    errors: errorsReducer,\n    // shipper has not contracts, but only selectors\n    carrierContracts: carrierContractsReducer,\n    orderCreation: orderCreationReducer,\n    additionalServicesDict: additionalServicesDictReducer,\n    orders: ordersReducer,\n    ordersStats: ordersStatsReducer,\n    countriesDict: countriesDictReducer,\n    countrySettingsDict: countrySettingsDictReducer,\n    trailersDict: trailersDictReducer,\n    trucksDict: trucksDictReducer,\n    orderDetails: orderDetailsReducer,\n    orderEdit: orderEditSlice.reducer,\n    members: membersReducer,\n    documentsDict: documentsDictReducer,\n    documents: documentsReducer,\n    notifications: notificationsReducer,\n    assetTrack: assetTrackReducer,\n    groupedNotificationCounts: groupedNotificationCountsReducer,\n    alerts: alertsReducer,\n    settings: settingsReducer,\n    rfqs: rfqsReducer,\n    rfqsStats: rfqsStatsReducer,\n    rfqDetails: rfqDetailsReducer,\n    rfqsChanges: rfqsChangesReducer,\n    invoices: invoicesReducer,\n    shipperContracts: shipperContractsReducer,\n    shipperContractDetails: shipperContractDetailsReducer,\n    createCompany: createCompanyReducer,\n    shipperContractLanes: shipperContractLanesReducer,\n    shipperContractLaneDetails: shipperContractLaneDetailsReducer,\n    routingGeometry: routingGeometryReducer,\n    stateMachine: stateMachineReducer,\n    papersEdit: papersEditReducer,\n    subjectLogs: subjectLogsReducer,\n});\n\nexport type RootStateT = ReturnType<typeof rootReducer>;\n\nfunction* rootSaga(): Generator<ForkEffect<TODO>, void, TODO> {\n    yield fork(orderEditSaga);\n    yield fork(authSaga, CompanyTypeEnum.shipper);\n    yield fork(userSaga);\n    yield fork(companySaga);\n    yield fork(orderCreationSaga, CompanyTypeEnum.shipper);\n    yield fork(additionalServicesDictSaga);\n    yield fork(ordersSaga);\n    yield fork(ordersStatsSaga);\n    yield fork(countriesDictSaga);\n    yield fork(countrySettingsDictSaga);\n    yield fork(trailersDictSaga);\n    yield fork(trucksDictSaga);\n    yield fork(orderDetailsSaga);\n    yield fork(errorsSaga);\n    yield fork(membersSaga, CompanyTypeEnum.shipper);\n    yield fork(documentsDictSaga);\n    yield fork(documentsSaga);\n    yield fork(notificationsSaga, CompanyTypeEnum.shipper);\n    yield fork(notificationsAffectsSaga);\n    yield fork(assetTrackSaga, CompanyTypeEnum.shipper);\n    yield fork(groupedNotificationCountsSaga);\n    yield fork(alertsSaga);\n    yield fork(settingsSaga, CompanyTypeEnum.shipper);\n    yield fork(rfqsSaga, CompanyTypeEnum.shipper);\n    yield fork(rfqsStatsSaga, CompanyTypeEnum.shipper);\n    yield fork(rfqDetailsSaga, CompanyTypeEnum.shipper);\n    yield fork(rfqsChangesSaga);\n    // shipper has not contracts, but only selectors\n    yield fork(carrierContractsSaga);\n    yield fork(invoicesSaga);\n    yield fork(createCompanySaga, CompanyTypeEnum.shipper);\n    yield fork(shipperContractsSaga, CompanyTypeEnum.shipper);\n    yield fork(shipperContractDetailsSaga, CompanyTypeEnum.shipper);\n    yield fork(shipperContractLanesSaga, CompanyTypeEnum.shipper);\n    yield fork(shipperContractLaneDetailsSaga, CompanyTypeEnum.shipper);\n    yield fork(routingGeometrySaga, CompanyTypeEnum.shipper);\n    yield fork(stateMachineSaga, CompanyTypeEnum.shipper);\n    yield fork(subjectLogsSaga, CompanyTypeEnum.shipper);\n}\n\nconst sagaMiddleware = createSagaMiddleware({\n    onError: (error) => {\n        logError('[redux-saga] uncatched error', error);\n    },\n});\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 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 {\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 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 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 * 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';\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 * 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 { AnyAlert, AnyAlertPayloadT } from 'common/store/alerts/models';\n\nexport enum ShipperAlertTypeEnum {\n    unknown = 'unknown',\n}\n\nexport type ShipperAnyAlertPayloadT = AnyAlertPayloadT<\n    ShipperAlertTypeEnum.unknown,\n    {\n        // TODO\n    }\n>;\n\nexport class ShipperAnyAlert extends AnyAlert<ShipperAnyAlertPayloadT> {}\n","import * as React from 'react';\nimport { ApiRFQStatusT, RFQStatusEnum } from 'common/utils/api/models';\nimport ColoredStatusLabel, {\n    PropsT as ColoredStatusLabelPropsT,\n} from 'common/components/ColoredStatusLabel/ColoredStatusLabel';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport RFQStatus from 'common/components/status/RFQStatus/RFQStatus';\n\ntype PropsT = Omit<ColoredStatusLabelPropsT, 'label' | 'color'> & {\n    status: ApiRFQStatusT | null | undefined;\n};\n\nexport const RFQ_STATUS_COLOR_MAP: Record<ApiRFQStatusT, StyleGuideColorsEnum> = {\n    [RFQStatusEnum.open]: StyleGuideColorsEnum.charcoal,\n    [RFQStatusEnum.expireSoon]: StyleGuideColorsEnum.orange,\n    [RFQStatusEnum.expired]: StyleGuideColorsEnum.charcoal,\n    [RFQStatusEnum.completed]: StyleGuideColorsEnum.charcoal,\n    [RFQStatusEnum.closed]: StyleGuideColorsEnum.charcoal,\n};\n\nconst RFQColoredStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status, ...restProps } = props;\n\n    if (!status) {\n        return null;\n    }\n\n    const color = RFQ_STATUS_COLOR_MAP[status];\n\n    return <ColoredStatusLabel {...restProps} label={<RFQStatus status={status} />} color={color} />;\n});\n\nexport default RFQColoredStatus;\n","import * as React from 'react';\nimport { memo, useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectDocumentsDictByType, selectDocumentsDictRequest } from 'common/store/documents-dict/selectors';\nimport { fetchDocumentsDict } from 'common/store/documents-dict/actions';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { ApiDocumentTypeT, ApiPartnerTypeT } from 'common/utils/api/models';\n\nexport type PropsT = {\n    className?: string;\n    documentType?: ApiDocumentTypeT;\n    partnerType: ApiPartnerTypeT | null;\n};\n\nconst AsyncDictDocumentNameLabel: React.FC<PropsT> = memo((props) => {\n    const { className, documentType, partnerType } = props;\n    const dispatch = useDispatch();\n\n    const documentsDictRequest = useSelector(selectDocumentsDictRequest(partnerType));\n    const documentsDictByType = useSelector(selectDocumentsDictByType(partnerType));\n\n    useEffect(() => {\n        dispatch(fetchDocumentsDict(partnerType));\n    }, [dispatch, partnerType]);\n\n    const dictDocument = documentsDictByType[documentType as ApiDocumentTypeT] || null;\n\n    if (documentsDictRequest.loading) {\n        return <ControlLoaderIcon fillColor={StyleGuideColorsEnum.gray} size={DEFAULT_ICON_SIZE} />;\n    }\n\n    return <span className={className}>{dictDocument?.name || documentType}</span>;\n});\n\nexport default AsyncDictDocumentNameLabel;\n","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 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 * 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';\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';\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 './UpdatedContractCard.scss';\nimport { useTranslation } from 'react-i18next';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    contractName: string;\n};\n\nconst UpdatedContractCard: React.FC<PropsT> = React.memo((props) => {\n    const { contractName } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <div className={cx('inner')}>\n            {t('common:notifications.contract-updated', {\n                contractName,\n            })}\n        </div>\n    );\n});\n\nexport default UpdatedContractCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"UpdatedContractCard__inner___lgw1q\",\"fadeIn\":\"UpdatedContractCard__fadeIn___Jg1pq\",\"blinking\":\"UpdatedContractCard__blinking___G3EDE\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './RevokedContractCard.scss';\nimport { useTranslation } from 'react-i18next';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    contractName: string;\n};\n\nconst RevokedContractCard: React.FC<PropsT> = React.memo((props) => {\n    const { contractName } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <div className={cx('inner')}>\n            {t('common:notifications.contract-revoked', {\n                contractName,\n            })}\n        </div>\n    );\n});\n\nexport default RevokedContractCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"RevokedContractCard__inner___Suf8r\",\"fadeIn\":\"RevokedContractCard__fadeIn___IGhe_\",\"blinking\":\"RevokedContractCard__blinking___psNi2\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ExpiredContractCard.scss';\nimport { useTranslation } from 'react-i18next';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    contractName: string;\n};\n\nconst ExpiredContractCard: React.FC<PropsT> = React.memo((props) => {\n    const { contractName } = props;\n\n    const { t } = useTranslation();\n\n    return <div className={cx('inner')}>{t('common:notifications.contract-expired', { contractName })}</div>;\n});\n\nexport default ExpiredContractCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"ExpiredContractCard__inner___s0EaK\",\"fadeIn\":\"ExpiredContractCard__fadeIn___MAQWa\",\"blinking\":\"ExpiredContractCard__blinking___kr4Np\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ExpireSoonContractCard.scss';\nimport { useTranslation } from 'react-i18next';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    contractName: string;\n};\n\nconst ExpireSoonContractCard: React.FC<PropsT> = React.memo((props) => {\n    const { contractName } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <div className={cx('inner')}>\n            {t('common:notifications.contract-expire-soon', {\n                contractName,\n            })}\n        </div>\n    );\n});\n\nexport default ExpireSoonContractCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"ExpireSoonContractCard__inner___R0f8m\",\"fadeIn\":\"ExpireSoonContractCard__fadeIn___Os_mX\",\"blinking\":\"ExpireSoonContractCard__blinking___e3nsT\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './CompletedDocumentCard.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';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    documentType: ApiDocumentTypeT;\n};\n\nconst CompletedDocumentCard: React.FC<PropsT> = React.memo((props) => {\n    const { documentType } = props;\n\n    const { partnerType } = usePartnerContext();\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"common:notifications.document-completed\"\n                components={{\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 CompletedDocumentCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"CompletedDocumentCard__inner___LmzKi\",\"document-name\":\"CompletedDocumentCard__document-name___N7uqi\",\"fadeIn\":\"CompletedDocumentCard__fadeIn___aMVh8\",\"blinking\":\"CompletedDocumentCard__blinking___LB0l_\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './CompletedContractCard.scss';\nimport { useTranslation } from 'react-i18next';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    contractName: string;\n};\n\nconst CompletedContractCard: React.FC<PropsT> = React.memo((props) => {\n    const { contractName } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <div className={cx('inner')}>\n            {t('common:notifications.contract-completed', {\n                contractName,\n            })}\n        </div>\n    );\n});\n\nexport default CompletedContractCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"CompletedContractCard__inner___bWzIR\",\"fadeIn\":\"CompletedContractCard__fadeIn___AlkMB\",\"blinking\":\"CompletedContractCard__blinking___dCnni\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './Identifier.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    id: React.ReactNode;\n};\n\nconst Identifier: React.FC<PropsT> = React.memo((props) => {\n    const { id } = props;\n\n    return <span className={cx('identifier')}>{id}</span>;\n});\n\nexport default Identifier;\n","// extracted by mini-css-extract-plugin\nexport default {\"identifier\":\"Identifier__identifier___MVUmW\",\"fadeIn\":\"Identifier__fadeIn___pgvlX\",\"blinking\":\"Identifier__blinking___uXGRM\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './UpdatedShipperContractLaneCard.scss';\nimport { Trans } from 'react-i18next';\nimport Identifier from 'common/components/notification-cards/entities/Identifier/Identifier';\nimport CityName from 'common/components/notification-cards/entities/CityName/CityName';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    id: string | null;\n    cityFrom: string;\n    cityTo: string;\n};\n\nconst UpdatedShipperContractLaneCard: React.FC<PropsT> = React.memo((props) => {\n    const { id, cityFrom, cityTo } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"common:notifications.shipper-contract-lane-updated\"\n                components={{\n                    id: <Identifier id={id} />,\n                    cityFrom: <CityName cityName={cityFrom} />,\n                    cityTo: <CityName cityName={cityTo} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default UpdatedShipperContractLaneCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"UpdatedShipperContractLaneCard__inner___zF_io\",\"fadeIn\":\"UpdatedShipperContractLaneCard__fadeIn___xH0Hw\",\"blinking\":\"UpdatedShipperContractLaneCard__blinking___FqZa5\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './RevokedShipperContractLaneCard.scss';\nimport { Trans } from 'react-i18next';\nimport Identifier from 'common/components/notification-cards/entities/Identifier/Identifier';\nimport CityName from 'common/components/notification-cards/entities/CityName/CityName';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    id: string | null;\n    cityFrom: string;\n    cityTo: string;\n};\n\nconst RevokedShipperContractLaneCard: React.FC<PropsT> = React.memo((props) => {\n    const { id, cityFrom, cityTo } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"common:notifications.shipper-contract-lane-revoked\"\n                components={{\n                    id: <Identifier id={id} />,\n                    cityFrom: <CityName cityName={cityFrom} />,\n                    cityTo: <CityName cityName={cityTo} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default RevokedShipperContractLaneCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"RevokedShipperContractLaneCard__inner___cOHRc\",\"fadeIn\":\"RevokedShipperContractLaneCard__fadeIn___heUGt\",\"blinking\":\"RevokedShipperContractLaneCard__blinking___IIPgz\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ExpiredShipperContractLaneCard.scss';\nimport { useTranslation } from 'react-i18next';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    id: string | null;\n};\n\nconst ExpiredShipperContractLaneCard: React.FC<PropsT> = React.memo((props) => {\n    const { id } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <div className={cx('inner')}>\n            {t('common:notifications.contract-lane-expired', {\n                id: id || '',\n            })}\n        </div>\n    );\n});\n\nexport default ExpiredShipperContractLaneCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"ExpiredShipperContractLaneCard__inner___ZbI8Q\",\"fadeIn\":\"ExpiredShipperContractLaneCard__fadeIn___YXYh3\",\"blinking\":\"ExpiredShipperContractLaneCard__blinking___TRQJm\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './CompletedShipperContractLaneCard.scss';\nimport { useTranslation } from 'react-i18next';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    id: string | null;\n};\n\nconst CompletedShipperContractLaneCard: React.FC<PropsT> = React.memo((props) => {\n    const { id } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <div className={cx('inner')}>\n            {t('common:notifications.contract-lane-completed', {\n                id: id || '',\n            })}\n        </div>\n    );\n});\n\nexport default CompletedShipperContractLaneCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"CompletedShipperContractLaneCard__inner___suYeM\",\"fadeIn\":\"CompletedShipperContractLaneCard__fadeIn___i0vMJ\",\"blinking\":\"CompletedShipperContractLaneCard__blinking___swCD8\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ExpireSoonShipperContractLaneCard.scss';\nimport { useTranslation } from 'react-i18next';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    id: string | null;\n};\n\nconst ExpireSoonShipperContractLaneCard: React.FC<PropsT> = React.memo((props) => {\n    const { id } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <div className={cx('inner')}>\n            {t('common:notifications.contract-lane-expire-soon', {\n                id: id || '',\n            })}\n        </div>\n    );\n});\n\nexport default ExpireSoonShipperContractLaneCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"ExpireSoonShipperContractLaneCard__inner___B2Unf\",\"fadeIn\":\"ExpireSoonShipperContractLaneCard__fadeIn____NlMT\",\"blinking\":\"ExpireSoonShipperContractLaneCard__blinking____3liq\"};","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 './UploadShipperContractLaneCard.scss';\nimport { Trans } from 'react-i18next';\nimport CityName from 'common/components/notification-cards/entities/CityName/CityName';\nimport Identifier from 'common/components/notification-cards/entities/Identifier/Identifier';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    id: string | null;\n    cityFrom: string | null;\n    cityTo: string | null;\n};\n\nconst UploadShipperContractLaneCard: React.FC<PropsT> = React.memo((props) => {\n    const { id, cityFrom, cityTo } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"common:notifications.shipper-contract-lane-upload\"\n                components={{\n                    id: <Identifier id={id} />,\n                    cityFrom: <CityName cityName={cityFrom} />,\n                    cityTo: <CityName cityName={cityTo} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default UploadShipperContractLaneCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"UploadShipperContractLaneCard__inner___EkT5G\",\"fadeIn\":\"UploadShipperContractLaneCard__fadeIn___QzBsK\",\"blinking\":\"UploadShipperContractLaneCard__blinking___dboOi\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './UploadContractCard.scss';\nimport { Trans } from 'react-i18next';\nimport SubjectLink from 'common/components/notification-cards/entities/SubjectLink/SubjectLink';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    contractName: string;\n};\n\nconst UploadContractCard: React.FC<PropsT> = React.memo((props) => {\n    const { contractName } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"common:notifications.contract-uploaded\"\n                components={{\n                    contractName: <SubjectLink number={contractName} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default UploadContractCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"UploadContractCard__inner___C4uHM\",\"fadeIn\":\"UploadContractCard__fadeIn___J8JHf\",\"blinking\":\"UploadContractCard__blinking___cxc6y\"};","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';\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';\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 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 { 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';\n\ntype PropsT = {\n    updatedFields?: Api2.Definitions.UpdatedBusinessPartnerFields[];\n};\n\nconst FIELD_I18N_MAP: Record<Api2.Definitions.UpdatedBusinessPartnerFields, TranslationKeyT<'common'>> = {\n    NAME: 'common:notifications.business-partner-profile-updated.fields.name',\n    MAIN_CONTACT: 'common:notifications.business-partner-profile-updated.fields.main-contact',\n    LEGAL_ADDRESS: 'common:notifications.business-partner-profile-updated.fields.legal-address',\n    POSTAL_ADDRESS: 'common:notifications.business-partner-profile-updated.fields.postal-address',\n    BILLING_ADDRESS: 'common:notifications.business-partner-profile-updated.fields.billing-address',\n};\n\nconst BusinessPartnerProfileUpdatedCard: React.FC<PropsT> = React.memo((props) => {\n    const { updatedFields = [] } = props;\n    const { t } = useTranslation();\n\n    const formattedFields = updatedFields.map((field) => t(FIELD_I18N_MAP[field])).join(', ');\n\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey=\"common:notifications.business-partner-profile-updated.updated\"\n                components={{\n                    fields: <NotificationEntityLabel text={formattedFields} isBold />,\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default BusinessPartnerProfileUpdatedCard;\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 * 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 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';\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';\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';\n\nimport { NotificationTextRendererT } from 'common/components/toasts/NotificationToastsManager/models';\nimport {\n    NotificationLinkFactoryT,\n    NotificationRendererT,\n} from 'common/components/notifications/NotificationsBarContent/models';\nimport { NotificationActionEnum, NotificationEmotionEnum } from 'common/store/notifications/models';\nimport StatusChangedCard from 'common/components/notification-cards/StatusChangedCard/StatusChangedCard';\nimport { ApiNotificationAlertLevelT, ApiOrderStatusT, ApiTourStatusT, SubjectTypeEnum } from 'common/utils/api/models';\nimport {\n    EMOTION_LOAD_STATUS_MAP,\n    EMOTION_ORDER_DRAFT_STATUS_MAP,\n    EMOTION_ORDER_STATUS_MAP,\n    EMOTION_TOUR_STATUS_MAP,\n    EMOTION_TRANSPORTATION_STATUS_MAP,\n} from 'common/components/toasts/utils';\nimport ShipmentColoredStatus from 'common/components/status-colored/ShipmentColoredStatus/ShipmentColoredStatus';\nimport TourColoredStatus from 'common/components/status-colored/TourColoredStatus/TourColoredStatus';\nimport TransportOrderColoredStatus from 'common/components/status-colored/TransportOrderColoredStatus/TransportOrderColoredStatus';\nimport { urlFactory } from 'shipper/utils/urls';\nimport { urlFactory as commonURLFactory } from 'common/utils/urls';\nimport { AlertToastRendererT } from 'common/components/toasts/AlertToastsManager/models';\nimport { AnyAlert } from 'common/store/alerts/models';\nimport { ShipperAnyAlert } from './models';\nimport RFQColoredStatus from 'common/components/status-colored/RFQColoredStatus/RFQColoredStatus';\nimport ExpiredDocumentCard from 'common/components/notification-cards/ExpiredDocumentCard/ExpiredDocumentCard';\nimport ExpireSoonDocumentCard from 'common/components/notification-cards/ExpireSoonDocumentCard/ExpireSoonDocumentCard';\nimport UpdatedDocumentCard from 'common/components/notification-cards/UpdatedDocumentCard/UpdatedDocumentCard';\nimport RevokedDocumentCard from 'common/components/notification-cards/RevokedDocumentCard/RevokedDocumentCard';\nimport UpdatedContractCard from 'common/components/notification-cards/UpdatedContractCard/UpdatedContractCard';\nimport RevokedContractCard from 'common/components/notification-cards/RevokedContractCard/RevokedContractCard';\nimport ExpiredContractCard from 'common/components/notification-cards/ExpiredContractCard/ExpiredContractCard';\nimport ExpireSoonContractCard from 'common/components/notification-cards/ExpireSoonContractCard/ExpireSoonContractCard';\nimport CompletedDocumentCard from 'common/components/notification-cards/CompletedDocumentCard/CompletedDocumentCard';\nimport CompletedContractCard from 'common/components/notification-cards/CompletedContractCard/CompletedContractCard';\nimport UpdatedShipperContractLaneCard from 'common/components/notification-cards/UpdatedShipperContractLaneCard/UpdatedShipperContractLaneCard';\nimport RevokedShipperContractLaneCard from 'common/components/notification-cards/RevokedShipperContractLaneCard/RevokedShipperContractLaneCard';\nimport ExpiredShipperContractLaneCard from 'common/components/notification-cards/ExpiredShipperContractLaneCard/ExpiredShipperContractLaneCard';\nimport CompletedShipperContractLaneCard from 'common/components/notification-cards/CompletedShipperContractLaneCard/CompletedShipperContractLaneCard';\nimport ExpireSoonShipperContractLaneCard from 'common/components/notification-cards/ExpireSoonShipperContractLaneCard/ExpireSoonShipperContractLaneCard';\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 UploadShipperContractLaneCard from 'common/components/notification-cards/UploadShipperContractLaneCard/UploadShipperContractLaneCard';\nimport UploadContractCard from 'common/components/notification-cards/UploadContractCard/UploadContractCard';\nimport OrderEditedCard from 'common/components/notification-cards/OrderEditedCard/OrderEditedCard';\nimport { notificationEmotionMapByAlertLevel } from 'common/store/notifications/constants';\nimport MissedDeliveryForShipmentCard from 'common/components/notification-cards/MissedDeliveryForShipmentCard/MissedDeliveryForShipmentCard';\nimport CarrierNoShowForShipmentCard from 'common/components/notification-cards/CarrierNoShowForShipmentCard/CarrierNoShowForShipmentCard';\nimport ShipmentWasCanceledCard from 'common/components/notification-cards/ShipmentWasCanceledCard/ShipmentWasCanceledCard';\n\nimport BusinessPartnerProfileUpdatedCard from 'common/components/notification-cards/BusinessPartnerProfileUpdatedCard/BusinessPartnerProfileUpdatedCard';\nimport BusinessPartnerAddressVerificationCard from 'common/components/notification-cards/BusinessPartnerAddressVerificationCard/BusinessPartnerAddressVerificationCard';\nimport { logWarning } from 'common/utils/logger';\nimport { LogTextRendererT, LogViewRendererT, LogViewT } from 'common/components/logs/models';\nimport { LogRecordActionEnum } from 'common/store/subject-logs/models';\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 ShipmentWasUpdatedCard from 'common/components/notification-cards/ShipmentWasUpdatedCard/ShipmentWasUpdatedCard';\nimport OrderRouteWasUpdatedCard from 'common/components/notification-cards/OrderRouteWasUpdatedCard/OrderRouteWasUpdatedCard';\nimport NotificationSubjectType from 'common/components/notification-cards/entities/NotificationSubjectType/NotificationSubjectType';\nimport WaypointUpdatedCard from 'common/components/notification-cards/WaypointUpdatedCard/WaypointUpdatedCard';\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.initiatorType === 'USER' ? log.initiatorId : null,\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.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 (\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 as ApiTourStatusT} />}\n                />\n            );\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.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                <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        case LogRecordActionEnum.TRANSPORTATION_ORDER_PLACED: {\n            return null;\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_UPDATED: {\n            const { data } = log;\n\n            return <ShipmentWasUpdatedCard shipmentNumber={data.shipmentNumber} updatedFields={data.updatedFields} />;\n        }\n        case LogRecordActionEnum.WAYPOINT_UPDATED: {\n            const { data } = log;\n\n            return <WaypointUpdatedCard fullAddress={data.fullAddress} updatedFields={data.updatedFields} />;\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={notification.subjectNumber}\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={notification.subjectNumber}\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\n        case NotificationActionEnum.TRANSPORTATION_ORDER_STATUS_CHANGED: {\n            const { data } = notification;\n\n            return (\n                <StatusChangedCard\n                    subjectType={SubjectTypeEnum.order}\n                    subjectNumber={notification.subjectNumber}\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.RFQ_ALERT: {\n            const { data } = notification;\n\n            return (\n                <StatusChangedCard\n                    subjectType={SubjectTypeEnum.rfq}\n                    subjectNumber={notification.subjectNumber}\n                    originCity={data.cityFrom}\n                    destinationCity={data.cityTo}\n                    actionType={SubjectTypeEnum.rfq}\n                    actionStatus={<RFQColoredStatus status={data.status} />}\n                />\n            );\n        }\n\n        case NotificationActionEnum.DOCUMENT_UPLOAD: {\n            const { data } = notification;\n\n            return <UploadDocumentCard documentType={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_UPDATED: {\n            const { data } = notification;\n\n            return <UpdatedDocumentCard documentType={data.documentType} />;\n        }\n        case NotificationActionEnum.DOCUMENT_REVOKED: {\n            const { data } = notification;\n\n            return <RevokedDocumentCard documentType={data.documentType} />;\n        }\n        case NotificationActionEnum.DOCUMENT_EXPIRED: {\n            const { data } = notification;\n\n            return <ExpiredDocumentCard documentType={data.documentType} />;\n        }\n        case NotificationActionEnum.DOCUMENT_COMPLETED: {\n            const { data } = notification;\n\n            return <CompletedDocumentCard documentType={data.documentType} />;\n        }\n        case NotificationActionEnum.DOCUMENT_EXPIRATION_SOON: {\n            const { data } = notification;\n\n            return <ExpireSoonDocumentCard documentType={data.documentType} />;\n        }\n\n        case NotificationActionEnum.SHIPPER_CONTRACT_UPLOADED: {\n            const { data } = notification;\n\n            return <UploadContractCard contractName={data.contractName || ''} />;\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_UPDATED: {\n            const { data } = notification;\n\n            return <UpdatedContractCard contractName={data.contractName || ''} />;\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_REVOKED: {\n            const { data } = notification;\n\n            return <RevokedContractCard contractName={data.contractName || ''} />;\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_EXPIRED: {\n            const { data } = notification;\n\n            return <ExpiredContractCard contractName={data.contractName || ''} />;\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_COMPLETED: {\n            const { data } = notification;\n\n            return <CompletedContractCard contractName={data.contractName || ''} />;\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_EXPIRATION_SOON: {\n            const { data } = notification;\n\n            return <ExpireSoonContractCard contractName={data.contractName || ''} />;\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_UPLOAD: {\n            const { data } = notification;\n\n            return (\n                <UploadShipperContractLaneCard\n                    id={data.tztLaneId || null}\n                    cityTo={data.cityTo || ''}\n                    cityFrom={data.cityFrom || ''}\n                />\n            );\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_UPDATED: {\n            const { data } = notification;\n\n            return (\n                <UpdatedShipperContractLaneCard\n                    id={data.tztLaneId || null}\n                    cityFrom={data.cityFrom || ''}\n                    cityTo={data.cityTo || ''}\n                />\n            );\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_REVOKED: {\n            const { data } = notification;\n\n            return (\n                <RevokedShipperContractLaneCard\n                    id={data.tztLaneId || null}\n                    cityFrom={data.cityFrom || ''}\n                    cityTo={data.cityTo || ''}\n                />\n            );\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_EXPIRED: {\n            const { data } = notification;\n\n            return <ExpiredShipperContractLaneCard id={data.tztLaneId || null} />;\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_COMPLETED: {\n            const { data } = notification;\n\n            return <CompletedShipperContractLaneCard id={data.tztLaneId || null} />;\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_EXPIRATION_SOON: {\n            const { data } = notification;\n\n            return <ExpireSoonShipperContractLaneCard id={data.tztLaneId || null} />;\n        }\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 <BusinessPartnerProfileUpdatedCard updatedFields={data.updatedFields} />;\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.initiatorType === 'USER' ? notification.initiatorId : null,\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.attention),\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.attention),\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.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_STATUS_CHANGED: {\n            const { data } = notification;\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.RFQ_ALERT: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(\n                        notification,\n                        data.status ? EMOTION_ORDER_DRAFT_STATUS_MAP[data.status] : NotificationEmotionEnum.neutral,\n                    ),\n                },\n            };\n        }\n\n        case NotificationActionEnum.DOCUMENT_EXPIRED: {\n            return {\n                ...common,\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            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n        case NotificationActionEnum.DOCUMENT_REVOKED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.negative),\n                },\n            };\n        }\n        case NotificationActionEnum.DOCUMENT_UPDATED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n        case NotificationActionEnum.DOCUMENT_UPLOAD: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.positive),\n                },\n            };\n        }\n        case NotificationActionEnum.DOCUMENT_APPROVED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.positive),\n                },\n            };\n        }\n        case NotificationActionEnum.DOCUMENT_REJECTED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.negative),\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_COMPLETED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\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_REVOKED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_UPLOADED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.positive),\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\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_COMPLETED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\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_REVOKED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_UPLOAD: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.positive),\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\n        case NotificationActionEnum.BUSINESS_PARTNER_ADDRESS_VERIFICATION:\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\n        default: {\n            return null;\n        }\n    }\n};\n\nexport const getNotificationLink: NotificationLinkFactoryT = (notification) => {\n    switch (notification.action) {\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        case NotificationActionEnum.TRANSPORTATION_ORDER_STATUS_CHANGED:\n        case NotificationActionEnum.ORDER_STATUS_CHANGED:\n        case NotificationActionEnum.TOUR_STATUS_CHANGED:\n        case NotificationActionEnum.ORDER_ROUTE_UPDATED:\n        case NotificationActionEnum.ORDER_EDITED:\n        case NotificationActionEnum.ORDER_PLACED:\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.orderDetails(notification.data.orderId);\n        }\n        case NotificationActionEnum.RFQ_ALERT: {\n            if (!notification.data.rfqId) {\n                logWarning(`Empty rfqId for notification`, { notification });\n                return null;\n            }\n\n            return urlFactory.rfqDetails(notification.data.rfqId);\n        }\n        case NotificationActionEnum.DOCUMENT_UPLOAD:\n        case NotificationActionEnum.DOCUMENT_APPROVED:\n        case NotificationActionEnum.DOCUMENT_REJECTED:\n        case NotificationActionEnum.DOCUMENT_UPDATED:\n        case NotificationActionEnum.DOCUMENT_REVOKED:\n        case NotificationActionEnum.DOCUMENT_EXPIRED:\n        case NotificationActionEnum.DOCUMENT_COMPLETED:\n        case NotificationActionEnum.DOCUMENT_EXPIRATION_SOON: {\n            return urlFactory.documentDetails(notification.data.documentType);\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_UPLOADED:\n        case NotificationActionEnum.SHIPPER_CONTRACT_UPDATED:\n        case NotificationActionEnum.SHIPPER_CONTRACT_REVOKED:\n        case NotificationActionEnum.SHIPPER_CONTRACT_EXPIRED:\n        case NotificationActionEnum.SHIPPER_CONTRACT_COMPLETED:\n        case NotificationActionEnum.SHIPPER_CONTRACT_EXPIRATION_SOON: {\n            if (!notification.data.contractId) {\n                logWarning(`Empty contractId for notification`, { notification });\n                return null;\n            }\n\n            return commonURLFactory.shipperContractDetails({\n                shipperContractId: notification.data.contractId,\n            });\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_UPLOAD:\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_UPDATED:\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_REVOKED:\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_EXPIRED:\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_COMPLETED:\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_EXPIRATION_SOON: {\n            if (!notification.data.contractId) {\n                logWarning(`Empty contractId for notification`, { notification });\n                return null;\n            }\n\n            if (!notification.data.laneId) {\n                logWarning(`Empty laneId for notification`, { notification });\n                return null;\n            }\n\n            return commonURLFactory.shipperContractLaneDetails({\n                shipperContractId: notification.data.contractId,\n                shipperContractLaneId: notification.data.laneId,\n            });\n        }\n        case NotificationActionEnum.BUSINESS_PARTNER_ADDRESS_VERIFICATION:\n        case NotificationActionEnum.BROKER_BUSINESS_PARTNER_UPDATED: {\n            return urlFactory.profileBasic();\n        }\n        default: {\n            return null;\n        }\n    }\n};\n\nconst checkIsShipperAnyAlert = (anyAlert: AnyAlert | null | undefined): anyAlert is ShipperAnyAlert => {\n    return anyAlert instanceof ShipperAnyAlert;\n};\n\nexport const renderAlertToast: AlertToastRendererT = (t, anyAlert) => {\n    if (!checkIsShipperAnyAlert(anyAlert)) {\n        return null;\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 { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    fillOpacity?: number;\n    fillColor: StyleGuideColorsEnum;\n};\n\nconst DriverIcon: React.FC<PropsT> = (props) => {\n    const { size, fillColor, fillOpacity, ...rest } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\" {...rest}>\n            <path\n                fill={fillColor}\n                fillOpacity={fillOpacity || 1}\n                fillRule=\"evenodd\"\n                d=\"M10 2a8 8 0 100 16 8 8 0 000-16zm0 2a5.94 5.94 0 014.465 2.022A6.086 6.086 0 0115.633 8H4.367c.26-.727.653-1.39 1.151-1.959A5.942 5.942 0 0110 4zm0 7a1 1 0 110-2 1 1 0 110 2zm-6-1c2.732 0 4.945 2.633 4.992 5.899C6.164 15.414 4 12.963 4 10zm7.008 5.899C11.055 12.633 13.268 10 16 10c0 2.963-2.164 5.414-4.992 5.899z\"\n            />\n        </svg>\n    );\n};\n\nDriverIcon.displayName = 'DriverIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n};\n\nexport { storyProps };\nexport default DriverIcon;\n\nexport const DriverIconProps = {\n    getControlProps: ({\n        isDisabled,\n        isFocused,\n        hasError,\n        hasWarning,\n        hasSuccess,\n        hasValue,\n    }: {\n        isDisabled?: boolean;\n        isFocused?: boolean;\n        hasError?: boolean;\n        hasWarning?: boolean;\n        hasSuccess?: boolean;\n        hasValue?: boolean;\n    }): PropsT => {\n        if (hasError) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.tomatoRed,\n            };\n        }\n\n        if (hasWarning) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.orange,\n            };\n        }\n\n        if (hasSuccess) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n\n        if (isDisabled) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.slate,\n            };\n        }\n\n        return {\n            size: DEFAULT_ICON_SIZE,\n            fillColor: hasValue || isFocused ? StyleGuideColorsEnum.brandDark : StyleGuideColorsEnum.light,\n        };\n    },\n};\n\n/**\n *  @deprecated create/use ...Props class\n * */\nexport const getDriverIconProps = (preset: 'default' | 'selected'): Pick<PropsT, 'fillColor'> => {\n    switch (preset) {\n        case 'selected': {\n            return {\n                fillColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        default: {\n            return {\n                fillColor: StyleGuideColorsEnum.slate,\n            };\n        }\n    }\n};\n","import * as React from 'react';\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 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 * 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 { 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 { 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 * 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';\nimport UiContext from 'common/contexts/ui-context';\n\nimport Loader from 'common/components/LoaderTitle/LoaderTitle';\nimport { routesEnum } from '../../constants';\n\nimport store from 'shipper/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 useMenuVisibility from 'common/utils/hooks/useMenuVisibility';\nimport ErrorModal from 'common/components/ErrorModal/ErrorModal';\nimport AuthLoader from 'common/layouts/AuthLoader/AuthLoader';\nimport {\n    renderAlertToast,\n    renderNotification,\n    renderNotificationText,\n    renderLog,\n    getNotificationLink,\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 { PartnerTypeEnum } from 'common/utils/api/models';\nimport { DEFAULT_SHIPPER_COMPANY_ID } from 'common/constants';\nimport PartnerContext from 'common/contexts/partner-context';\nimport NotificationSidebarContext from 'common/contexts/notification-sidebar-context';\nimport FeaturesContext from 'common/contexts/features';\nimport { useFeaturesContextValue } from 'common/utils/hooks/useFeaturesContextValue';\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 ClientPage = Loadable({\n    loader: () => import(/* webpackChunkName: \"ClientPage\" */ '../ClientPage/ClientPage'),\n    loading() {\n        return <Loader />;\n    },\n});\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 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.shipper,\n            partnerId: DEFAULT_SHIPPER_COMPANY_ID,\n        };\n    }, []);\n\n    const notificationBarContextValue = React.useMemo(() => {\n        return {\n            renderNotification,\n            getNotificationLink,\n            renderNotificationText,\n        };\n    }, []);\n\n    const featureContextValue = useFeaturesContextValue();\n\n    return (\n        <ErrorBoundary>\n            <FeaturesContext.Provider value={featureContextValue}>\n                <UiContext.Provider value={contextValue}>\n                    <PartnerContext.Provider value={partnerContextValue}>\n                        <NotificationSidebarContext.Provider value={notificationBarContextValue}>\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                                                </div>\n                                                <OverlaysManager\n                                                    renderAlertToast={renderAlertToast}\n                                                    renderNotification={renderNotification}\n                                                    renderNotificationText={renderNotificationText}\n                                                    getNotificationLink={getNotificationLink}\n                                                />\n                                                <ErrorModal />\n                                            </AppQueryParamProvider>\n                                        </AppRouter>\n                                    </PartnerPermissionsContextProvider>\n                                </Provider>\n                            </RenderLogContextProvider>\n                        </NotificationSidebarContext.Provider>\n                    </PartnerContext.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___lGZMh\",\"fadeIn\":\"App__fadeIn___y6AC4\",\"blinking\":\"App__blinking___ZdhQH\"};","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 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 type { TranslationKeyT } from 'common/locales/translation-key';\nimport * as React from 'react';\nimport { ApiRFQStatusT, RFQStatusEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    status: ApiRFQStatusT | null | undefined;\n};\n\nexport const RFQ_STATUS_T_MAP: Record<ApiRFQStatusT, TranslationKeyT<'common'>> = {\n    [RFQStatusEnum.open]: 'common:rfq-status.OPEN',\n    [RFQStatusEnum.expireSoon]: 'common:rfq-status.EXPIRE_SOON',\n    [RFQStatusEnum.expired]: 'common:rfq-status.EXPIRED',\n    [RFQStatusEnum.completed]: 'common:rfq-status.COMPLETED',\n    [RFQStatusEnum.closed]: 'common:rfq-status.CLOSED',\n};\n\nconst RFQStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return null;\n    }\n\n    return t(RFQ_STATUS_T_MAP[status]);\n});\n\nexport default RFQStatus;\n","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 * 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 { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const companyRefreshChannel = new ViewEventChannel<{}>();\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 {\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 { 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 { 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","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 { 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 * 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 { OrdersStatsStateT } from './types';\nimport { SharableStateT } from '../models';\n\nexport const selectOrdersStatsRequest = (state: SharableStateT): OrdersStatsStateT['fetchRequest'] =>\n    state.ordersStats.fetchRequest;\n\nexport const selectOrdersStats = (state: SharableStateT): OrdersStatsStateT['stats'] => state.ordersStats.stats;\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 { RequestStatusT } from 'common/utils/request-status';\n\nimport { UserChangesT, UserT } from './models';\nimport { ApiUserT, ApiUserUpdateT } from 'common/utils/api/models';\nimport { AuthUserT } from 'common/utils/api/auth/base-auth-service';\n\nexport const FETCH_USER_REQUEST = 'common/user/FETCH_USER_REQUEST';\nexport const FETCH_USER_REQUEST_BEGIN = 'common/user/FETCH_USER_REQUEST_BEGIN';\nexport const FETCH_USER_REQUEST_ERROR = 'common/user/FETCH_USER_REQUEST_ERROR';\nexport const FETCH_USER_REQUEST_SUCCESS = 'common/user/FETCH_USER_REQUEST_SUCCESS';\n\nexport const PATCH_USER_REQUEST = 'common/user/PATCH_USER_REQUEST';\nexport const PATCH_USER_REQUEST_BEGIN = 'common/user/PATCH_USER_REQUEST_BEGIN';\nexport const PATCH_USER_REQUEST_ERROR = 'common/user/PATCH_USER_REQUEST_ERROR';\nexport const PATCH_USER_REQUEST_SUCCESS = 'common/user/PATCH_USER_REQUEST_SUCCESS';\n\nexport type UserStateT = {\n    currentUserRequest: RequestStatusT;\n    currentUser: UserT | null;\n    patchUserRequest: RequestStatusT;\n};\n\nexport type FetchUserActionT = {\n    type: typeof FETCH_USER_REQUEST;\n};\n\nexport type FetchUserBeginActionT = {\n    type: typeof FETCH_USER_REQUEST_BEGIN;\n};\n\nexport type FetchUserSuccessActionT = {\n    type: typeof FETCH_USER_REQUEST_SUCCESS;\n    currentUser: ApiUserT;\n};\n\nexport type FetchUserErrorActionT = {\n    type: typeof FETCH_USER_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type PatchUserActionT = {\n    type: typeof PATCH_USER_REQUEST;\n    user: UserT | null;\n    authUser: AuthUserT | null;\n    changes: UserChangesT;\n};\n\nexport type PatchUserBeginActionT = {\n    type: typeof PATCH_USER_REQUEST_BEGIN;\n};\n\nexport type PatchUserSuccessActionT = {\n    type: typeof PATCH_USER_REQUEST_SUCCESS;\n    currentUser: ApiUserT;\n    currentUserUpdate: ApiUserUpdateT;\n};\n\nexport type PatchUserErrorActionT = {\n    type: typeof PATCH_USER_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type UserActionT =\n    | FetchUserActionT\n    | FetchUserBeginActionT\n    | FetchUserSuccessActionT\n    | FetchUserErrorActionT\n    | PatchUserActionT\n    | PatchUserBeginActionT\n    | PatchUserSuccessActionT\n    | PatchUserErrorActionT;\n","import React from 'react';\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 {\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 { 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 { generatePath } from 'react-router';\n\nimport { OMSRoutesEnum, ProfileRoutesEnum, ProfileDocumentsRoutesEnum, CommonRoutesEnum } from 'common/constants';\nimport { RFQRoutesEnum } from 'shipper/constants';\nimport { ApiDocumentTypeT } from 'common/utils/api/models';\nimport qs from 'qs';\nimport { CommonSidebarsTypeEnum, SidebarQueryKeysEnum } from 'common/layouts/SideBars/models';\nimport { JSONArrayParam } from 'common/utils/query';\nimport { DocumentDetailsSidebarDataT } from 'common/layouts/SideBars/contents/DocumentDetailsSidebarContent/models';\nimport { getRePath, RePathOptionsT } from 'common/utils/urls';\n\nexport const urlFactory = {\n    orderList: () => {\n        return CommonRoutesEnum.orders;\n    },\n    orderDetails: (orderId: OrderIdT, options?: RePathOptionsT) => {\n        return {\n            pathname: generatePath(OMSRoutesEnum.orderDetails, {\n                orderId,\n            }),\n            state: {\n                rePath: options?.rePath ?? getRePath(),\n            },\n        };\n    },\n    rfqDetails: (rfqId: RFQIdT) => {\n        return {\n            pathname: generatePath(RFQRoutesEnum.details, {\n                rfqId,\n            }),\n            state: {\n                rePath: getRePath(),\n            },\n        };\n    },\n    rfqList: () => {\n        return RFQRoutesEnum.list;\n    },\n    profileBasic: () => {\n        return ProfileRoutesEnum.basic;\n    },\n    profileDocuments: () => {\n        return ProfileRoutesEnum.documents;\n    },\n    optionalDocuments: () => {\n        return ProfileDocumentsRoutesEnum.optionalDocuments;\n    },\n    shipperContracts: () => {\n        return ProfileDocumentsRoutesEnum.shipperContracts;\n    },\n    documentDetails: (documentType: ApiDocumentTypeT) => {\n        return `${ProfileDocumentsRoutesEnum.requiredDocuments}?${qs.stringify({\n            [SidebarQueryKeysEnum.leftSidebar]: JSONArrayParam.encode<DocumentDetailsSidebarDataT>([\n                {\n                    type: CommonSidebarsTypeEnum.document,\n                    documentType,\n                    initIsEditing: false,\n                },\n            ]),\n        })}`;\n    },\n};\n","import { 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 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    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 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 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","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 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 { 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 {\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 {\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 { 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 { 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 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 { 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 { 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 { authRoutesEnum, CommonRoutesEnum } from 'common/constants';\n\nexport const routesEnum = {\n    home: authRoutesEnum.home,\n    signIn: authRoutesEnum.signIn,\n    signUp: authRoutesEnum.signUp,\n    deprecateSignUp: authRoutesEnum.deprecateSignUp,\n    continueSignUp: authRoutesEnum.continueSignUp,\n    forgotPassword: authRoutesEnum.forgotPassword,\n    changePassword: authRoutesEnum.changePassword,\n    confirmEmail: authRoutesEnum.confirmEmail,\n    selfCreateCompany: authRoutesEnum.selfCreateCompany,\n\n    accessDenied: CommonRoutesEnum.accessDenied,\n    notFound: CommonRoutesEnum.notFound,\n    profile: CommonRoutesEnum.profile,\n    team: CommonRoutesEnum.team,\n    account: CommonRoutesEnum.account,\n\n    rfqs: '/rfqs',\n    archive: '/archive',\n    orders: CommonRoutesEnum.orders,\n    invoices: '/invoices',\n\n    shipperContracts: '/profile/shipper-contracts',\n};\n\nexport enum RFQRoutesEnum {\n    list = '/rfqs',\n    details = '/rfqs/:rfqId/details',\n}\n\nexport default {};\n","import { 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 { 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 {\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","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","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 {\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","export const clientConfig = {\n    isProduction: PRODUCTION,\n    isBrokerProject: IS_BROKER,\n};\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';\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 * 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 { 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 { 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    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 {\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 { SharableStateT } from '../models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { TrucksDictT } from './models';\nimport flatten from 'lodash/flatten';\nimport keyBy from 'lodash/keyBy';\nimport { ApiTruckDictTypeT } from 'common/utils/api/models';\n\nexport const selectTrucksDict = (state: SharableStateT): TrucksDictT | null => state.trucksDict.trucksDict;\n\nexport const selectTrucksDictRequest = (state: SharableStateT): RequestStatusT => state.trucksDict.trucksDictRequest;\n\nexport const selectTrucksDictList = (state: SharableStateT): Array<ApiTruckDictTypeT> => {\n    return flatten(Object.values(state?.trucksDict?.trucksDict || {}));\n};\n\nexport const selectTrucksDictById = (state: SharableStateT): Record<string, ApiTruckDictTypeT> => {\n    const list = selectTrucksDictList(state);\n\n    return keyBy(list, 'id');\n};\n","export 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 { 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 * 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 { 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 { RootStateT } from 'shipper/store';\nimport requestStatus from 'common/utils/request-status';\n\nexport const selectOrderStopContactRequestStatus = (orderId: OrderIdT) => (state: RootStateT) =>\n    state.orderEdit[orderId] || requestStatus.initial;\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 * 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 * 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 { 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 { 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_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 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 * 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 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 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","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 { SharableStateT } from 'common/store/models';\nimport { OrderDetailsStateT } from './types';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { initialOrderState } from './reducer';\n\nexport const selectOrder =\n    (id: OrderIdT) =>\n    (state: SharableStateT): OrderDetailsStateT['order'] =>\n        state.orderDetails[id]?.order || initialOrderState.order;\n\nexport const selectOrderRequestStatus =\n    (id: OrderIdT) =>\n    (state: SharableStateT): RequestStatusT =>\n        state.orderDetails[id]?.orderRequestStatus || initialOrderState.orderRequestStatus;\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 { 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 * 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 {\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 { 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 { 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 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 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 { 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 {\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 { 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 { 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 * 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","/** 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 {\n    ApiSystemSettingsT,\n    DocumentTypeEnum,\n    FixPageableCommonQueryT,\n    OverwritePageRequestT,\n    OverwritePageRequestWithSortQueryT,\n    OverwritePageRequestWithSortT,\n    PartnerTypeEnum,\n    ApiPartnerTypeT,\n    UpdateRateStrategyEnum,\n} from 'common/utils/api/models';\nimport BaseTranziitApi, {\n    throwNotImplementedError,\n    TranziitApiResultT,\n} from 'common/utils/api/tranziit/base-tranziit-api';\nimport { authApi } from 'common/utils/api/auth/factory';\nimport { MS_IN_MIN } from 'common/utils/time';\nimport { isNonNil } from 'common/utils';\n\nclass BrokerTranziitApi extends BaseTranziitApi {\n    private static instance: BrokerTranziitApi;\n\n    private constructor() {\n        super(authApi, {\n            basepath: '/api',\n            timeout: MS_IN_MIN,\n        });\n    }\n\n    public static getInstance(): BrokerTranziitApi {\n        if (!BrokerTranziitApi.instance) {\n            BrokerTranziitApi.instance = new BrokerTranziitApi();\n        }\n\n        return BrokerTranziitApi.instance;\n    }\n\n    getRFQSuggestedOffer = async (\n        rfqId: Api2Paths.ApiV2Rfqs$RfqIdOffersSuggested.Get.Parameters.RfqId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2Rfqs$RfqIdOffersSuggested.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2Rfqs$RfqIdOffersSuggested.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/rfqs/${rfqId}/offers/suggested`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchAssetTracksByTransportOrder = async (\n        transportationOrderId: Api2Paths.ApiV2BrokerOrders$TransportationOrderIdAssetsCoordinates.Get.Parameters.TransportationOrderId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerOrders$TransportationOrderIdAssetsCoordinates.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2BrokerOrders$TransportationOrderIdAssetsCoordinates.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/orders/${transportationOrderId}/assets-coordinates`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchTransportOrdersPage = async (\n        carrierId: Api2Paths.ApiV2BrokerTransportationOrders$CarrierId.Get.Parameters.CarrierId,\n        apiFetchOrdersRequest: OverwritePageRequestWithSortT<Api2Paths.ApiV2BrokerTransportationOrders$CarrierId.Get.QueryParameters>,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerTransportationOrders$CarrierId.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerTransportationOrders$CarrierId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/transportation-orders/${carrierId}`,\n            query: apiFetchOrdersRequest,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchShipperContractDetails = async (\n        partnerId: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractId.Get.Parameters.ShipperId,\n        shipperContractId: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractId.Get.Parameters.ContractId,\n    ): Promise<\n        TranziitApiResultT<ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractId.Get.Responses.$200>\n    > => {\n        return this.doFetch<ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/companies/${partnerId}/shipper-contracts/${shipperContractId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchShipperContractLaneDetails = async (\n        partnerId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Get.Parameters.ShipperId,\n        shipperContractId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Get.Parameters.ContractId,\n        laneId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Get.Parameters.LaneId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Get.Responses.$200>(\n            {\n                method: 'GET',\n                path: `/v1/broker/companies/${partnerId}/shipper-contracts/${shipperContractId}/lanes/${laneId}`,\n                expectedResponseContentType: 'json',\n            },\n        );\n    };\n\n    uploadShipperContract = async (\n        partnerId: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts.Post.Parameters.ShipperId,\n        query: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts.Post.QueryParameters,\n        file: File,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts.Post.Responses.$201>> => {\n        const formData = new FormData();\n        formData.append('file', file);\n\n        return this.doFetch<ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts.Post.Responses.$201>({\n            headers: {\n                'Content-Type': 'multipart/form-data',\n            },\n            method: 'POST',\n            path: `/v1/broker/companies/${partnerId}/shipper-contracts`,\n            query,\n            data: formData,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    updateShipperContract = async (\n        partnerId: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractId.Put.Parameters.ShipperId,\n        contractId: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractId.Put.Parameters.ContractId,\n        query: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractId.Put.QueryParameters,\n        file: File | null,\n    ): Promise<\n        TranziitApiResultT<ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractId.Put.Responses.$200>\n    > => {\n        const formData = new FormData();\n\n        if (file) {\n            formData.append('file', file);\n        }\n\n        return this.doFetch<ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractId.Put.Responses.$200>({\n            headers: {\n                'Content-Type': 'multipart/form-data',\n            },\n            method: 'PUT',\n            path: `/v1/broker/companies/${partnerId}/shipper-contracts/${contractId}`,\n            query,\n            data: formData,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    updateShipperContractLane = async (\n        companyId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Put.Parameters.ShipperId,\n        contractId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Put.Parameters.ContractId,\n        laneId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Put.Parameters.LaneId,\n        data: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Put.RequestBody,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Put.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Put.Responses.$200>(\n            {\n                method: 'PUT',\n                path: `/v1/broker/companies/${companyId}/shipper-contracts/${contractId}/lanes/${laneId}`,\n                data,\n                expectedResponseContentType: 'unknown',\n            },\n        );\n    };\n\n    revokeShipperContractLane = async (\n        companyId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneIdRevoke.Put.Parameters.ShipperId,\n        contractId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneIdRevoke.Put.Parameters.ContractId,\n        laneId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneIdRevoke.Put.Parameters.LaneId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneIdRevoke.Put.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneIdRevoke.Put.Responses.$200>(\n            {\n                method: 'PUT',\n                path: `/v1/broker/companies/${companyId}/shipper-contracts/${contractId}/lanes/${laneId}/revoke`,\n                expectedResponseContentType: 'unknown',\n            },\n        );\n    };\n\n    revokeShipperContract = async (\n        partnerId: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdRevoke.Put.Parameters.ShipperId,\n        contractId: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdRevoke.Put.Parameters.ContractId,\n        reason: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdRevoke.Put.Parameters.Reason,\n    ): Promise<\n        TranziitApiResultT<ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdRevoke.Put.Responses.$200>\n    > => {\n        const query: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdRevoke.Put.QueryParameters = {};\n        if (reason) {\n            query.reason = reason;\n        }\n\n        return this.doFetch<ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdRevoke.Put.Responses.$200>(\n            {\n                method: 'PUT',\n                path: `/v1/broker/companies/${partnerId}/shipper-contracts/${contractId}/revoke`,\n                query,\n                expectedResponseContentType: 'unknown',\n            },\n        );\n    };\n\n    fetchTrailersPage = async (\n        apiFetchTrailersRequest: OverwritePageRequestWithSortT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers.Get.QueryParameters>,\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers.Get.Parameters.CarrierId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/companies/${carrierId}/trailers`,\n            query: apiFetchTrailersRequest,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    addPartnerTrailer = async (\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers.Post.RequestBody,\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers.Post.Parameters.CarrierId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers.Post.Responses.$201>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers.Post.Responses.$201>({\n            data,\n            method: 'POST',\n            path: `/v2/broker/companies/${carrierId}/trailers`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    deleteTrailer = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Delete.Parameters.CarrierId,\n        trailerId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Delete.Parameters.Id,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Delete.Responses.$204>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Delete.Responses.$204>({\n            method: 'DELETE',\n            path: `/v2/broker/companies/${carrierId}/trailers/${trailerId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    assignTruckToContract = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksChangeContract.Post.Parameters.CarrierId,\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksChangeContract.Post.RequestBody,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksChangeContract.Post.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksChangeContract.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/broker/companies/${carrierId}/trucks/change-contract`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    assignTrailersToContract = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersChangeContract.Post.Parameters.CarrierId,\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersChangeContract.Post.RequestBody,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersChangeContract.Post.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersChangeContract.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/broker/companies/${carrierId}/trailers/change-contract`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    changeRateTrailers = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersChangeRate.Post.Parameters.CarrierId,\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersChangeRate.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersChangeRate.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersChangeRate.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/broker/companies/${carrierId}/trailers/change-rate`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    changeRateTrucks = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksChangeRate.Post.Parameters.CarrierId,\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksChangeRate.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksChangeRate.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksChangeRate.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/broker/companies/${carrierId}/trucks/change-rate`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    activateTrailers = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersActivate.Put.Parameters.CarrierId,\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersActivate.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersActivate.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersActivate.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/broker/companies/${carrierId}/trailers/activate`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    archiveTrailers = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersArchive.Put.Parameters.CarrierId,\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersArchive.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersArchive.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersArchive.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/broker/companies/${carrierId}/trailers/archive`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchTrailerDetails = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Get.Parameters.CarrierId,\n        trailerId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Get.Parameters.Id,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/companies/${carrierId}/trailers/${trailerId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchTrailersActiveFleetCount = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersActiveFleetCount.Get.Parameters.CarrierId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersActiveFleetCount.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersActiveFleetCount.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/companies/${carrierId}/trailers/active-fleet-count`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    updateTrailer = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Put.Parameters.CarrierId,\n        trailerId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Put.Parameters.Id,\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Put.Responses.$200>({\n            data,\n            method: 'PUT',\n            path: `/v2/broker/companies/${carrierId}/trailers/${trailerId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    fetchActiveTrucksByIdPlateNumber = async (\n        plateNumber: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Get.Parameters.PlateNumber,\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Get.Parameters.CarrierId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Get.Responses.$200>> => {\n        const apiFetchTrucksRequest: OverwritePageRequestWithSortQueryT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Get.QueryParameters> =\n            {\n                plateNumber,\n                archived: false,\n            };\n\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/companies/${carrierId}/trucks`,\n            query: apiFetchTrucksRequest,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchTrucksPage = async (\n        apiFetchTrucksRequest: OverwritePageRequestWithSortT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Get.QueryParameters>,\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Get.Parameters.CarrierId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/companies/${carrierId}/trucks`,\n            query: apiFetchTrucksRequest,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    addPartnerTruck = async (\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Post.RequestBody,\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Post.Parameters.CarrierId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Post.Responses.$201>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Post.Responses.$201>({\n            method: 'POST',\n            path: `/v2/broker/companies/${carrierId}/trucks`,\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    activateTrucks = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActivate.Put.Parameters.CarrierId,\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActivate.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActivate.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActivate.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/broker/companies/${carrierId}/trucks/activate`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    updatePartnerTruck = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Put.Parameters.CarrierId,\n        truckId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Put.Parameters.Id,\n        truckUpdate: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/broker/companies/${carrierId}/trucks/${truckId}`,\n            data: truckUpdate,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    archiveTrucks = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActivate.Put.Parameters.CarrierId,\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActivate.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActivate.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActivate.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/broker/companies/${carrierId}/trucks/archive`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchPartnerTruckDetails = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Get.Parameters.CarrierId,\n        truckId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Get.Parameters.Id,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/companies/${carrierId}/trucks/${truckId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchTrucksActiveFleetCount = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActiveFleetCount.Get.Parameters.CarrierId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActiveFleetCount.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActiveFleetCount.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/companies/${carrierId}/trucks/active-fleet-count`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    deleteTruck = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Delete.Parameters.Id,\n        truckId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Delete.Parameters.Id,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Delete.Responses.$204>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Delete.Responses.$204>({\n            method: 'DELETE',\n            path: `/v2/broker/companies/${carrierId}/trucks/${truckId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    fetchCompanyContacts = async (\n        companyId: Api2Paths.ApiV2BrokerCompany$CompanyIdContacts.Get.Parameters.CompanyId,\n        query?: Api2Paths.ApiV2BrokerCompany$CompanyIdContacts.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompany$CompanyIdContacts.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompany$CompanyIdContacts.Get.Responses.$200>({\n            method: 'GET',\n            query,\n            path: `/v2/broker/company/${companyId}/contacts`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    addUserToPartner = async (\n        newUser: Api2Paths.ApiV2BrokerCompany$CompanyIdRegistrationUserInvite.Post.RequestBody,\n        companyId: Api2Paths.ApiV2BrokerCompany$CompanyIdRegistrationUserInvite.Post.Parameters.CompanyId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerCompany$CompanyIdRegistrationUserInvite.Post.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompany$CompanyIdRegistrationUserInvite.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/broker/company/${companyId}/registration/user/invite`,\n            data: newUser,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    addContactToPartner = async (): Promise<TranziitApiResultT<unknown>> => {\n        return throwNotImplementedError();\n    };\n\n    fetchPartnersPage = async (\n        apiFetchPartnersRequest: FixPageableCommonQueryT & Api2Paths.ApiV2BrokerCompanyFilter.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyFilter.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyFilter.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v2/broker/company/filter',\n            query: apiFetchPartnersRequest,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchPartnersStatistics = async (): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyNotVerifiedCount.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyNotVerifiedCount.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v2/broker/company/not-verified-count',\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchPartnerDetails = async (\n        companyId: Api2Paths.ApiV2BrokerCompany$CompanyId.Get.Parameters.CompanyId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompany$CompanyId.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompany$CompanyId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/company/${companyId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    verifyPartnerAddress = async (\n        companyId: Api2Paths.ApiV2BrokerCompanyVerifyAddress$CompanyId.Put.Parameters.CompanyId,\n        addressType: Api2Paths.ApiV2BrokerCompanyVerifyAddress$CompanyId.Put.Parameters.AddressType,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyVerifyAddress$CompanyId.Put.Responses.$204>> => {\n        const query: Api2Paths.ApiV2BrokerCompanyVerifyAddress$CompanyId.Put.QueryParameters = {\n            addressType,\n        };\n\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyVerifyAddress$CompanyId.Put.Responses.$204>({\n            method: 'PUT',\n            path: `/v2/broker/company/verify-address/${companyId}`,\n            query,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    unVerifyPartnerAddress = async (\n        companyId: Api2Paths.ApiV2BrokerCompanyUnVerifyAddress$CompanyId.Put.Parameters.CompanyId,\n        addressType: Api2Paths.ApiV2BrokerCompanyUnVerifyAddress$CompanyId.Put.Parameters.AddressType,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyUnVerifyAddress$CompanyId.Put.Responses.$204>> => {\n        const query: Api2Paths.ApiV2BrokerCompanyUnVerifyAddress$CompanyId.Put.QueryParameters = {\n            addressType,\n        };\n\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyUnVerifyAddress$CompanyId.Put.Responses.$204>({\n            method: 'PUT',\n            path: `/v2/broker/company/un-verify-address/${companyId}`,\n            query,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    lockPartner = async (\n        companyId: Api2Paths.ApiV2BrokerCompanyLock$CompanyId.Post.Parameters.CompanyId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyLock$CompanyId.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyLock$CompanyId.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/broker/company/lock/${companyId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    unlockPartner = async (\n        companyId: Api2Paths.ApiV2BrokerCompanyUnlock$CompanyId.Post.Parameters.CompanyId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyUnlock$CompanyId.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyUnlock$CompanyId.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/broker/company/unlock/${companyId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    linkWithExternalPlatformPartner = async ({\n        businessPartnerId,\n        internalCompanyId,\n    }: {\n        businessPartnerId: Api2Paths.ApiV2BrokerCompanyLinkWithExternalPlatform$BusinessPartnerId.Post.Parameters.BusinessPartnerId;\n        internalCompanyId: Api2Paths.ApiV2BrokerCompanyLinkWithExternalPlatform$BusinessPartnerId.Post.Parameters.InternalCompanyId;\n    }): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyLinkWithExternalPlatform$BusinessPartnerId.Post.Responses.$200>\n    > => {\n        const query: Api2Paths.ApiV2BrokerCompanyLinkWithExternalPlatform$BusinessPartnerId.Post.QueryParameters = {\n            internalCompanyId,\n        };\n\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyLinkWithExternalPlatform$BusinessPartnerId.Post.Responses.$200>(\n            {\n                method: 'POST',\n                path: `/v2/broker/company/link-with-external-platform/${businessPartnerId}`,\n                expectedResponseContentType: 'unknown',\n                query,\n            },\n        );\n    };\n\n    unlinkWithExternalPlatformPartner = async (\n        internalCompanyId: Api2Paths.ApiV2BrokerCompanyUnlinkFromExternalPlatform$InternalCompanyId.Post.Parameters.InternalCompanyId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyUnlinkFromExternalPlatform$InternalCompanyId.Post.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyUnlinkFromExternalPlatform$InternalCompanyId.Post.Responses.$200>(\n            {\n                method: 'POST',\n                path: `/v2/broker/company/unlink-from-external-platform/${internalCompanyId}`,\n                expectedResponseContentType: 'unknown',\n            },\n        );\n    };\n\n    updatePartnerDetails = async (\n        companyId: Api2Paths.ApiV2BrokerCompanyUpdate$CompanyId.Put.Parameters.CompanyId,\n        partnerDetails: Api2Paths.ApiV2BrokerCompanyUpdate$CompanyId.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyUpdate$CompanyId.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyUpdate$CompanyId.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/broker/company/update/${companyId}`,\n            data: partnerDetails,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    assignTeamsForPartner = async (\n        companyId: Api2Paths.ApiV2BrokerCompanyAssignTeams$CompanyId.Post.Parameters.CompanyId,\n        data: Api2Paths.ApiV2BrokerCompanyAssignTeams$CompanyId.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyAssignTeams$CompanyId.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyAssignTeams$CompanyId.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/broker/company/assign-teams/${companyId}`,\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    updateEvidenceOfTax = async (\n        documentId: ApiPaths.ApiV1BrokerDocument$DocumentIdUpdateEvidenceOfTax.Post.Parameters.DocumentId,\n        evidenceOfTaxDocumentUpdate: ApiPaths.ApiV1BrokerDocument$DocumentIdUpdateEvidenceOfTax.Post.RequestBody,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerDocument$DocumentIdUpdateEvidenceOfTax.Post.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1BrokerDocument$DocumentIdUpdateEvidenceOfTax.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/broker/document/${documentId}/update-evidence-of-tax`,\n            data: evidenceOfTaxDocumentUpdate,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    searchAssetsForAssigment = async (\n        tourId: Api2Paths.ApiV1BrokerTours$TourIdSearchAssetsForAssignment.Post.Parameters.TourId,\n        radiusM: Api2Paths.ApiV1BrokerTours$TourIdSearchAssetsForAssignment.Post.Parameters.Radius,\n        data: Api2Paths.ApiV1BrokerTours$TourIdSearchAssetsForAssignment.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerTours$TourIdSearchAssetsForAssignment.Post.Responses.$200>> => {\n        const query: Api2Paths.ApiV1BrokerTours$TourIdSearchAssetsForAssignment.Post.QueryParameters = {\n            radius: radiusM,\n        };\n\n        return this.doFetch<Api2Paths.ApiV1BrokerTours$TourIdSearchAssetsForAssignment.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/broker/tours/${tourId}/search-assets-for-assignment`,\n            query,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    findTrailersByPlateNumber = async (\n        tourId: Api2Paths.ApiV1BrokerTours$TourIdSearchTrailersForAssignment.Post.Parameters.TourId,\n        query: Api2Paths.ApiV1BrokerTours$TourIdSearchTrailersForAssignment.Post.QueryParameters,\n        data: Api2Paths.ApiV1BrokerTours$TourIdSearchTrailersForAssignment.Post.RequestBody,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerTours$TourIdSearchTrailersForAssignment.Post.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerTours$TourIdSearchTrailersForAssignment.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/broker/tours/${tourId}/search-trailers-for-assignment`,\n            query,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    calculateTourCostsForAssets = async (\n        tourId: Api2Paths.ApiV1BrokerTours$TourIdCalculateTourCostsForAssets.Post.Parameters.TourId,\n        query: Api2Paths.ApiV1BrokerTours$TourIdCalculateTourCostsForAssets.Post.QueryParameters,\n        data: Api2Paths.ApiV1BrokerTours$TourIdCalculateTourCostsForAssets.Post.RequestBody,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerTours$TourIdCalculateTourCostsForAssets.Post.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerTours$TourIdCalculateTourCostsForAssets.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/broker/tours/${tourId}/calculate-tour-costs-for-assets`,\n            query,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchTourAssignDetails = async (\n        tourId: Api2Paths.ApiV1BrokerTours$TourIdAssignDetails.Get.Parameters.TourId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerTours$TourIdAssignDetails.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerTours$TourIdAssignDetails.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/tours/${tourId}/assign/details`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    findTrucksByPlateNumber = async (\n        tourId: Api2Paths.ApiV1BrokerTours$TourIdSearchTrucksForAssignment.Post.Parameters.TourId,\n        query: Api2Paths.ApiV1BrokerTours$TourIdSearchTrucksForAssignment.Post.QueryParameters,\n        data: Api2Paths.ApiV1BrokerTours$TourIdSearchTrucksForAssignment.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerTours$TourIdSearchTrucksForAssignment.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerTours$TourIdSearchTrucksForAssignment.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/broker/tours/${tourId}/search-trucks-for-assignment`,\n            query,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    assignOrder = async (\n        tourId: Api2Paths.ApiV1BrokerTours$TourIdAssign$AssignmentContextId.Put.Parameters.TourId,\n        assignmentContextId: Api2Paths.ApiV1BrokerTours$TourIdAssign$AssignmentContextId.Put.Parameters.AssignmentContextId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerTours$TourIdAssign$AssignmentContextId.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerTours$TourIdAssign$AssignmentContextId.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v1/broker/tours/${tourId}/assign/${assignmentContextId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    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 React from 'react';\n\nconst ContentRootContext = React.createContext<HTMLDivElement | null>(null);\n\nexport default ContentRootContext;\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 { 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 { OrderDetailsT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport const FETCH_ORDER_REQUEST = 'common/order-details/FETCH_ORDER_REQUEST';\nexport const FETCH_ORDER_REQUEST_BEGIN = 'common/order-details/FETCH_ORDER_REQUEST_BEGIN';\nexport const FETCH_ORDER_REQUEST_ERROR = 'common/order-details/FETCH_ORDER_REQUEST_ERROR';\nexport const FETCH_ORDER_REQUEST_SUCCESS = 'common/order-details/FETCH_ORDER_REQUEST_SUCCESS';\n\nexport type OrderDetailsStateT = {\n    order: OrderDetailsT | null;\n    orderRequestStatus: RequestStatusT;\n};\n\nexport type OrderDetailsByIdStateT = Record<OrderIdT, OrderDetailsStateT>;\n\nexport type FetchOrderRequestActionT = {\n    type: typeof FETCH_ORDER_REQUEST;\n    id: OrderIdT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchOrderRequestBeginActionT = {\n    type: typeof FETCH_ORDER_REQUEST_BEGIN;\n    id: OrderIdT;\n};\n\nexport type FetchOrderRequestErrorActionT = {\n    type: typeof FETCH_ORDER_REQUEST_ERROR;\n    error: Error;\n    id: OrderIdT;\n};\n\nexport type FetchOrderRequestSuccessActionT = {\n    type: typeof FETCH_ORDER_REQUEST_SUCCESS;\n    order: OrderDetailsT | null;\n    id: OrderIdT;\n};\n\nexport type OrderDetailsActionT =\n    | FetchOrderRequestActionT\n    | FetchOrderRequestBeginActionT\n    | FetchOrderRequestErrorActionT\n    | FetchOrderRequestSuccessActionT;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    strokeColor: StyleGuideColorsEnum;\n    fillColor: StyleGuideColorsEnum;\n    size: number;\n};\n\nconst EditIcon: React.FC<PropsT> = (props) => {\n    const { strokeColor, fillColor, size } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path fill={fillColor} fillOpacity=\"0.3\" d=\"M4.75 14.56v.69h.69l6.795-6.795-.69-.69z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M16.533 6.28a.748.748 0 000-1.058l-1.755-1.755c-.15-.15-.338-.217-.533-.217s-.382.075-.525.217L12.347 4.84l2.813 2.813 1.373-1.373zM3.25 13.937v2.813h2.813l8.294-8.295-2.812-2.813-8.295 8.296zm2.19 1.313h-.69v-.69l6.795-6.795.69.69L5.44 15.25z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nEditIcon.displayName = 'EditIcon';\n\nconst storyProps: PropsT = {\n    size: 20,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n};\n\nexport { storyProps };\nexport default EditIcon;\n","import * as React from 'react';\nimport { 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 { DepreactedPagingStateT, FetchInvoicesPageQueryT, ShipperInvoiceT } from './models';\nimport { PageResponseT, PaginationStateT } from 'common/utils/pagination/models';\n\nexport const FETCH_INVOICES_PAGE_REQUEST = 'shipper/invoices/FETCH_INVOICES_PAGE_REQUEST';\nexport const FETCH_INVOICES_PAGE_REQUEST_BEGIN = 'shipper/invoices/FETCH_INVOICES_PAGE_REQUEST_BEGIN';\nexport const FETCH_INVOICES_PAGE_REQUEST_ERROR = 'shipper/invoices/FETCH_INVOICES_PAGE_REQUEST_ERROR';\nexport const FETCH_INVOICES_PAGE_REQUEST_SUCCESS = 'shipper/invoices/FETCH_INVOICES_PAGE_REQUEST_SUCCESS';\nexport const RESET_INVOICES = 'shipper/invoices/RESET_INVOICES';\n\nexport type InvoicesStateT = PaginationStateT<ShipperInvoiceT, 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<ShipperInvoiceT> | 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 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 * 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 { 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 { 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 { 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 {\n    FETCH_ORDER_REQUEST,\n    FETCH_ORDER_REQUEST_BEGIN,\n    FETCH_ORDER_REQUEST_ERROR,\n    FETCH_ORDER_REQUEST_SUCCESS,\n    FetchOrderRequestActionT,\n    FetchOrderRequestBeginActionT,\n    FetchOrderRequestErrorActionT,\n    FetchOrderRequestSuccessActionT,\n} from './types';\nimport { OrderDetailsT } from './models';\n\nexport const fetchOrder = (id: OrderIdT, options?: FetchOptionsT): FetchOrderRequestActionT => ({\n    type: FETCH_ORDER_REQUEST,\n    id,\n    options,\n});\n\nexport const fetchOrderBegin = (id: OrderIdT): FetchOrderRequestBeginActionT => ({\n    type: FETCH_ORDER_REQUEST_BEGIN,\n    id,\n});\n\nexport const fetchOrderSuccess = (id: OrderIdT, order: OrderDetailsT | null): FetchOrderRequestSuccessActionT => ({\n    type: FETCH_ORDER_REQUEST_SUCCESS,\n    order,\n    id,\n});\n\nexport const fetchOrderError = (id: OrderIdT, error: Error): FetchOrderRequestErrorActionT => ({\n    type: FETCH_ORDER_REQUEST_ERROR,\n    error,\n    id,\n});\n","const concatTestSelectors = (testSelectors: Array<string | null | undefined>): string => {\n    let result = '';\n\n    testSelectors.forEach((testSelector) => {\n        if (testSelector) {\n            result += `${result ? '_' : ''}${testSelector}`;\n        }\n    });\n\n    return result;\n};\n\nexport { concatTestSelectors };\n","import {\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 { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const documentsRefreshChannel = new ViewEventChannel<{}>();\n\nexport const partnerDocumentsRefreshChannel = new ViewEventChannel<{}>();\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 { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { ApiUpdateOrderStopContactRequestT } from 'shipper/utils/api/shipper-tranziit/models';\n\nexport type UpdateOrderStopContactT = {\n    orderId: OrderIdT;\n    stopId: string;\n    data: ApiUpdateOrderStopContactRequestT;\n};\n\nconst initialState: Record<OrderIdT, RequestStatusT> = {};\n\nexport const orderEditSlice = createSlice({\n    name: 'orderEdit',\n    initialState,\n    reducers: {\n        updateOrderStopContact: (\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<UpdateOrderStopContactT>,\n        ) => {\n            // Handled by saga.\n        },\n        updateOrderStopContactBegin: (state, action: PayloadAction<{ orderId: OrderIdT }>) => {\n            state[action.payload.orderId] = requestStatus.loading;\n        },\n        updateOrderStopContactSuccess: (state, action: PayloadAction<{ orderId: OrderIdT }>) => {\n            state[action.payload.orderId] = requestStatus.ok;\n        },\n        updateOrderStopContactError: (state, action: PayloadAction<{ orderId: OrderIdT; error: Error }>) => {\n            state[action.payload.orderId] = requestStatus.setError(action.payload.error);\n        },\n        resetOrderStopContact: (state, action: PayloadAction<{ orderId: OrderIdT }>) => {\n            delete state[action.payload.orderId];\n        },\n    },\n    extraReducers: (builder) => {\n        builder.addCase('auth/destroySession', () => initialState);\n    },\n});\n\nexport const {\n    updateOrderStopContact,\n    updateOrderStopContactBegin,\n    updateOrderStopContactSuccess,\n    updateOrderStopContactError,\n    resetOrderStopContact,\n} = orderEditSlice.actions;\n","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport { PageResponseT, PaginationStateT } from 'common/utils/pagination/models';\nimport {\n    pageBeginReducer,\n    pageErrorReducer,\n    pageSuccessReducer,\n    resetPagesCacheReducer,\n} from 'common/utils/pagination/reducers';\nimport { FetchShipperContractLanesPageQueryT, ShipperContractLaneT } from './models';\n\nexport type PartnerShipperContractLanesStateT = PaginationStateT<\n    ShipperContractLaneT,\n    FetchShipperContractLanesPageQueryT\n>;\n\nexport const initialPartnerShipperContractLanesState: PartnerShipperContractLanesStateT = {\n    pages: [],\n    query: null,\n    total: null,\n    byId: {},\n};\n\nexport type ShipperContractLanesStateT = Record<\n    PartnerIdT,\n    Record<ShipperContractIdT, PartnerShipperContractLanesStateT>\n>;\n\nconst initialState: ShipperContractLanesStateT = {};\n\nexport const shipperContractLanesSlice = createSlice({\n    name: 'shipperContractLanes',\n    initialState,\n    reducers: {\n        fetchShipperContractLanesPage: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                pageNumber: PageNumberT;\n                query: FetchShipperContractLanesPageQueryT;\n                partnerId: PartnerIdT;\n                contractId: ShipperContractIdT;\n                options?: FetchOptionsT;\n            }>,\n        ) => {\n            // nothing\n        },\n        fetchShipperContractLanesPageBegin: (\n            state,\n            action: PayloadAction<{\n                query: FetchShipperContractLanesPageQueryT;\n                pageNumber: PageNumberT;\n                partnerId: PartnerIdT;\n                contractId: ShipperContractIdT;\n            }>,\n        ) => {\n            const { partnerId, contractId, pageNumber, query } = action.payload;\n            const partnerState = state[partnerId]?.[contractId] || initialPartnerShipperContractLanesState;\n\n            if (!state[partnerId]) {\n                state[partnerId] = {};\n            }\n\n            state[partnerId][contractId] = {\n                ...partnerState,\n                ...pageBeginReducer(partnerState, pageNumber, query),\n            };\n        },\n        fetchShipperContractLanesPageSuccess: (\n            state,\n            action: PayloadAction<{\n                query: FetchShipperContractLanesPageQueryT;\n                pageNumber: PageNumberT;\n                response: PageResponseT<ShipperContractLaneT> | null;\n                partnerId: PartnerIdT;\n                contractId: ShipperContractIdT;\n            }>,\n        ) => {\n            const { partnerId, contractId, pageNumber, query, response } = action.payload;\n            const partnerState = state[partnerId]?.[contractId] || initialPartnerShipperContractLanesState;\n\n            if (!state[partnerId]) {\n                state[partnerId] = {};\n            }\n\n            state[partnerId][contractId] = {\n                ...partnerState,\n                ...pageSuccessReducer(partnerState, pageNumber, query, response),\n            };\n        },\n        fetchShipperContractLanesPageError: (\n            state,\n            action: PayloadAction<{\n                query: FetchShipperContractLanesPageQueryT;\n                pageNumber: PageNumberT;\n                error: Error;\n                partnerId: PartnerIdT;\n                contractId: ShipperContractIdT;\n            }>,\n        ) => {\n            const { partnerId, contractId, pageNumber, query, error } = action.payload;\n            const partnerState = state[partnerId]?.[contractId] || initialPartnerShipperContractLanesState;\n\n            if (!state[partnerId]) {\n                state[partnerId] = {};\n            }\n\n            state[partnerId][contractId] = {\n                ...partnerState,\n                ...pageErrorReducer(partnerState, pageNumber, query, error),\n            };\n        },\n        resetShipperContractLanes: (\n            state,\n            action: PayloadAction<{\n                partnerId: PartnerIdT;\n                contractId: ShipperContractIdT;\n                mutationListOptions: MutationListOptionsT;\n            }>,\n        ) => {\n            const { partnerId, contractId, mutationListOptions } = action.payload;\n            const partnerState = state[partnerId]?.[contractId] || initialPartnerShipperContractLanesState;\n\n            if (!state[partnerId]) {\n                state[partnerId] = {};\n            }\n\n            state[partnerId][contractId] = {\n                ...partnerState,\n                ...resetPagesCacheReducer(initialPartnerShipperContractLanesState, partnerState, mutationListOptions),\n            };\n        },\n    },\n});\n\nexport const {\n    fetchShipperContractLanesPage,\n    fetchShipperContractLanesPageBegin,\n    fetchShipperContractLanesPageSuccess,\n    fetchShipperContractLanesPageError,\n    resetShipperContractLanes,\n} = shipperContractLanesSlice.actions;\n\nexport default shipperContractLanesSlice.reducer;\n","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","orderDetailsRefreshChannel","selectCompanyState","state","companyId","rfqs","selectRFQsPages","pages","selectRFQsQuery","query","selectRFQsTotal","total","selectRFQsByIds","byId","selectRFQDetails","id","rfqDetails","details","selectRFQSuggestedPriceOffer","suggestedOffer","selectRFQDetailsRequestStatus","requestStatus","selectOrdersPages","orders","selectOrdersQuery","selectOrdersTotal","selectOrdersByIds","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","isAvailableRemoteLogger","isProduction","generateTraceId","logWarning","message","data","console","warn","captureMessage","logWarningWithTraceId","traceId","logDebug","trace","logError","contextMessage","error","errorInfo","info","captureException","logErrorWithTraceId","ViewEventChannel","subscribers","subscribe","handler","this","push","unsubscribe","filter","subscriber","emit","event","forEach","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","fetchCountriesDict","type","fetchCountriesDictBegin","fetchCountriesDictSuccess","countriesList","fetchCountriesDictError","selectSettingsStatus","settings","fetchRequest","selectMinWindowSizeMs","value","MIN_WINDOW_SIZE","parsedValue","selectMaxWindowSizeMs","MAX_WINDOW_SIZE","selectOrderCreationMs","ORDER_CREATION_SECONDS","DEFAULT_TIME_WINDOW_QUANTUM","selectTimeWindowQuantumMs","QUANTUM_MINUTES","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","fetchUser","fetchUserBegin","fetchUserSuccess","user","currentUser","fetchUserError","patchUser","authUser","changes","patchUserBegin","patchUserSuccess","currentUserUpdate","patchUserError","fetchOrdersPage","pageNumber","options","fetchOrdersPageBegin","fetchOrdersPageSuccess","pageResponse","fetchOrdersPageError","resetOrders","mutationListOptions","signIn","email","password","returnUrl","signInBegin","signInSuccess","userClaims","signInError","resetPassword","resetPasswordBegin","resetPasswordSuccess","resetPasswordError","updatePassword","oobCode","updatePasswordBegin","updatePasswordSuccess","updatePasswordError","continueSignUp","firstName","lastName","phoneNumber","signUp","params","signUpBegin","signUpSuccess","signUpError","setUser","signOut","signOutBegin","signOutSuccess","signOutError","emailVerification","code","emailVerificationBegin","emailVerificationSuccess","emailVerificationError","destroySession","setAuthRedirect","redirectUrl","clearAuthRedirect","accessDeniedToApi","response","accessDeniedToEntity","couldNotUnLockCompany","test","canNotDowngradeLastAdminInTeam","notFoundCompany","requestConfig","path","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","text","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","delay","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","map","action","actionIndex","Button","key","isFullWidth","isCenterContent","selectInvoicesPages","invoices","selectInvoicesQuery","selectInvoicesByIds","selectInvoicesPagingState","pagingState","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","name","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","isHovered","setHovered","isEmpty","testSelector","useTestSelector","resetControlTestSelector","inputProps","sourceValue","currentTarget","formattedValue","disabled","showClearControl","onMouseMove","onMouseLeave","hasValue","ClickInterceptorLabel","TransparentTrigger","onClick","leftIcon","CloseIcon","fillColor","reflectionTheme","halfTransparentLight","ControlLoaderIcon","brandAccent","ClientFeatureEnum","LOCAL_STORAGE_KEY","saveClientFeaturesConfig","localStorage","setItem","getRawClientFeaturesConfig","getItem","setRawClientFeaturesConfig","rawValue","clearClientFeaturesConfig","removeItem","defaultConfig","showTraceId","errorDetails","partnerInvoices","partnerDrivers","getClientFeaturesConfig","parsedConfig","createAbsoluteAppUrl","relativePath","window","location","origin","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","ids","uploadRequest","initial","uploadingDictDocumentId","updateRequest","updatingDocumentId","fetchDocumentsRequest","downloadDocumentRequest","evidenceOfTaxDetails","fetchEvidenceOfTaxDetailsRequest","updateEvidenceOfTaxDetailsRequest","initialState","companyDocumentsState","loading","setError","documentIdsByType","documentsList","document","ok","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","opacity","restProps","fillOpacity","attributeName","dur","from","repeatCount","to","ControlLoaderIconProps","getFetchDataProps","useChannelSubscribe","channel","useEffect","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","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","TRUCKS_DICT_REQUEST","TRUCKS_DICT_REQUEST_BEGIN","TRUCKS_DICT_REQUEST_SUCCESS","TRUCKS_DICT_REQUEST_ERROR","CarrierTranziitApi","fetchAssetTracksByTransportOrder","transportationOrderId","fetchTransportOrdersPage","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","fetchVehicleSchedule","vehicleId","fetchVehicleScheduleAroundDate","date","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","FETCH_ORDERS_PAGE_REQUEST","FETCH_ORDERS_PAGE_REQUEST_BEGIN","FETCH_ORDERS_PAGE_REQUEST_ERROR","FETCH_ORDERS_PAGE_REQUEST_SUCCESS","RESET_ORDERS","FeaturesContext","initialOrderState","order","orderRequestStatus","orderState","newNotificationsChannel","fetchInvoicesPage","fetchInvoicesPageBegin","fetchInvoicesPageSuccess","fetchInvoicesPageError","resetInvoices","FETCH_RFQS_STATS_REQUEST","FETCH_RFQS_STATS_REQUEST_BEGIN","FETCH_RFQS_STATS_REQUEST_ERROR","FETCH_RFQS_STATS_REQUEST_SUCCESS","fetchTracksByOrder","orderId","fetchTrackBegin","hash","fetchTrackSuccess","points","fetchTrackError","membersRefreshChannel","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","broker","findAdditionalServiceByType","additionalServices","items","additionalService","M_IN_KM","convertToKm","meters","round","parseAuthReturnUrl","pathname","home","split","getAuthReturnUrl","getDefaultState","Date","now","InfoIcon","useContext","isShow","activeFillColor","charcoal","light","AsyncDictCountryNameLabel","memo","countryCode","dispatch","countryByCode","country","gray","userLangDisplayName","t","role","getAbbreviation","Boolean","join","toUpperCase","getFullName","prepareUser","apiUser","abbreviation","surname","fullName","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","companyName","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","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","expireTime","secondsToExpire","point","fromDate","toDate","ShipperTranziitApi","getRFQSuggestedOffer","rfqId","fetchAssetTracksByOrder","filters","page","fetchShipperInvoicesPage","fetchRFQsPage","fetchRFQDetails","fetchRFQsStats","fetchShipperContractDetails","shipperContractId","fetchShipperContractLaneDetails","laneId","fetchPartnerShipperContracts","fetchShipperContract","fetchShipperContractLanes","getOrderDetails","updateOrderStopContact","stopId","fetchShipperInfoSaga","shipperInfoById","currentRequestStatus","shipperId","fetchOrderReservesShippers","shipperInfo","shipper","delayedSyncFetchTaskOffers","unSubscribeTaskOffersSaga","SUBSCRIPTION_INTERVAL","delayedSyncFetchTaskOffersSaga","expectedOffersCount","isComplete","responsePriceOffers","getPriceOffers","apiPriceOffersError","apiPriceOffers","priceOffers","handlePreviewReserveErrorSaga","fetchTaskOfferSaga","offersTasks","count","createReserveSaga","isBroker","createReserveQuery","countrySettingsByCountryCode","apiCreateReserveQuery","addresses","prohibitedCountries","routeStart","trailerDictId","hasAllAddresses","every","_","index","reduce","acc","pointLocation","countyCode","latitude","longitude","street2","convertToPointLocation","addressAlias","dictTrailerId","getApiReverseQuery","ship","responseCreateReserve","restApiCreateReserveQuery","createMultipointOrderReservation","reserve","preparedReserve","apiReserve","apiPoints","restApiReserve","apiPoint","defaultFrom","defaultTo","restApiPoint","defaultTimeWindow","start","end","correctedPoints","notes","note","orderContextNote","previewReserveSaga","reservePreviewQuery","apiReservePreviewQuery","reserveId","pointsById","timeWindows","timeWindow","brokerWindow","isBrokerTimeWindow","timeWindowFrom","timeWindowTo","shipment","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","splice","deleteRoutePoint","reserveShipperId","orderCreationUnavailableReasons","Number","excludedCountries","firstRoutePoint","defaultPickUpTimeWindowStart","getReverseQueryChanges","currentReserveQuery","prevQuery","isSameReserveRequest","isExpiredReserve","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","sort","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","fetchRouteGeometryGoogle","polylines","fetchAdditionalServicesSaga","fetchAdditionalServices","normalizedData","group","services","serviceA","serviceB","service","localeCompare","groupA","groupB","categoryCompare","category","aTrailerType","trailerType","bTrailerType","additionalServiceGroups","fetchOrdersSaga","rawQuery","isSameQuery","isNeedRequest","savingPageNumber","FETCH_ORDERS_STATS_REQUEST_BEGIN","FETCH_ORDERS_STATS_REQUEST_ERROR","FETCH_ORDERS_STATS_REQUEST_SUCCESS","fetchOrdersStatsSaga","fetchOrdersStatistics","statistics","fetchOrdersStatsError","semaphoreSaga","actionType","handleSaga","expanding","fetchCountriesDictSaga","getCountries","sortedCountriesDict","fetchTrailersDictSaga","trailersDict","getTrailersDict","fetchTrucksDictSaga","apiTrucksDict","getTrucksDict","trucksDict","fetchOrderSaga","checkError","IGNORE_ACTION_TYPES_SET","IGNORE_API_ERRORS_TYPES_SET","failReauthenticateWithCredential","failUpdatePassword","wrongPassword","IGNORE_API_ERRORS_SUB_TYPES_SET","extractErrorFromAction","payload","anyActionSaga","actionError","networkRequestFailed","prepareCompanyContactDetails","contactDetails","partnerDetailsRefreshChannel","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","rawDocument","String","documentType","required","fetchDocumentsDictSaga","profileType","currentDocumentsDict","documentDictResult","fetchDocumentsDict","documentsDict","preparedDocumentsDict","apiDocument","Blob","saveAs","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","fetchPartnerDetails","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","spotId","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","addEventListener","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","assetId","tracks","coordinates","coordinate","receivedDate","lat","lng","getFetchTrackByOrderSaga","transportOrderIds","transportOrderId","transportOrderHash","ge","getFetchTrackByTransportOrdersSaga","UNREAD_GROUPED_NOTIFICATION_COUNTS_TTL","fetchGroupedNotificationCountsSaga","fetchUnreadGroupedNotificationCounts","byAction","FETCH_SETTINGS_BEGIN","FETCH_SETTINGS_SUCCESS","FETCH_SETTINGS_ERROR","groups","apiSettings","fetchSettings","fetchSettingsError","apiSetting","fetchSettingsSuccess","getFetchSettingsSaga","getFetchRFQsSaga","getFetchRFQsStatsSaga","detailsResponse","rfqDetailsError","rfqDetailsData","suggestedOfferResponse","suggestedOfferError","suggestedOfferData","getFetchRFQDetailsSaga","closeRFQSaga","closeRFQ","rfqSuccessfulClosed","fetchCarrierContractsSaga","partnerContracts","updateCarrierContractSaga","contractChanges","fetchDetailsError","contractDetails","patchedPartnerContract","updateCarrierContract","revokeCarrierContractSaga","revokeInfo","revokeCarrierContract","rejectCarrierContractSaga","rejectCarrierContract","approveCarrierContractSaga","approveCarrierContract","uploadCarrierContractSaga","contractUploaded","downloadCarrierContractSaga","fetchInvoicesSaga","preparedResponse","item","random","totalPages","totalElements","pagingTokens","hasMore","startingAfter","endingBefore","invoicesSaga","createCompanySaga","registrationCompanyRequestDraft","createCompany","forceRefreshTokenError","isLocked","getCreateCompanySaga","getInitialState","signInRequest","resetPasswordRequest","updatePasswordRequest","signUpRequest","signOutRequest","emailVerificationRequest","currentUserRequest","patchUserRequest","currentCompanyRequest","updateCompanyRequest","CLOSE_ERROR_MODAL","logs","isShowErrorModal","shipperInfoRequestStatus","reserveRequest","previewReserveRequest","previewReserveQuery","isAllowCreateRFQ","createRFQRequest","createRFQNextStep","createPriceOfferWithLaneRequest","createPriceOfferWithLaneNextStep","rfq","createOrderNextStep","stats","list","byCountryCode","trailersDictRequest","trucksDictRequest","currentPageNumber","markAsReadRequest","counts","shipperContractsSaga","shipperContractDetailsSaga","getFetchShipperContractDetailsSaga","uploadShipperContract","shipperContractUploaded","revokeShipperContract","shipperContractRevoked","getDownloadShipperContractDetailsSaga","updateShipperContract","shipperContractUpdated","shipperContractLanesSaga","fetchPartnerShipperContractLanes","shipperContractLaneDetailsSaga","getFetchShipperContractLaneDetailsSaga","revokeShipperContractLane","shipperContractLaneRevoked","updateShipperContractLane","shipperContractLaneUpdated","stateMachineSaga","descriptor","fetchStateMachineEntityStatus","entityType","entityId","update","successAlert","updateStateMachineEntityStatus","shouldIgnoreErrorModal","checkIsTruckCantBeOnTimeForNextTourError","truckCantBeOnTimeForNextTour","nextTransportOrderId","nextToId","nextTransportOrderNumber","nextToNumber","carrierId","checkIsTrailerCantBeOnTimeForNextTourError","trailerCantBeOnTimeForNextTour","ROUTING_GEOMETRY_TTL","routingGeometrySaga","polylineIds","fetchCountrySettingsDictSaga","getCountrySettingsDict","countrySettingsDictSaga","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","updateOrderStopContactSaga","waypointContactUpdated","orderEditSaga","rootReducer","auth","company","errors","log","isNew","isError","isIgnoreError","checkIgnoreError","checkIsIgnoreErrorModal","carrierContracts","orderCreation","fullListPriceOffers","bestOffer","isBestPrice","markBestPriceOffers","priceOffersByHashDates","groupOffers","offers","newUniqOffersCount","byHash","changesById","additionalServicesDict","ordersStats","countryLanguages","langCode","uniqAllLangCodes","countrySettingsDict","trucksById","orderDetails","orderEdit","reducer","members","max","oldNotificationsById","newNotificationsById","newById","readAlready","pageNotificationIds","assetTrack","groupedNotificationCounts","alerts","anyAlert","alertId","newIds","rfqsStats","rfqsChanges","shipperContracts","shipperContractDetails","shipperContractLanes","shipperContractLaneDetails","routingGeometry","stateMachine","papersEdit","subjectLogs","sagaMiddleware","onError","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","A","title","PageTitle","handleSubmit","FormikField","getFieldMeta","label","setFieldValue","setFieldTouched","asyncError","resetAsyncError","Input","theme","primary","selectNewErrorLogs","selectIsShowErrorModal","errorLog","TraceIdLabel","newErrorLogs","featuresContext","isShowErrorDetails","checkActiveClientFeature","handleClose","firstErrorLog","modalDialogProps","errorAction","defaultOkAction","children","secondary","defaultWidthPx","icon","BigWarningIcon","isManyDrivers","secondDriver","BigSleepIcon","allowedTypes","supportedFileTypes","transparent","openZendeskWidget","getModalDialogProps","isNotBlockingError","checkIsNotBlockingError","isShowTraceId","ModalDialog","errorIndex","Modal","ModalContent","onClose","shouldCreateAnonymously","LeftMenuLayout","menuLinks","accountLink","logoLink","badges","LoaderOverlay","SUBJECT_TYPE_T_MAP","tour","transportationOrder","carrierContract","shipperContract","shipperContractLane","trailer","truck","team","businessPartner","isCapitalized","isUppercase","tDocumentSubject","cityName","number","ActionStatus","actionStatus","Action","subjectNumber","originCity","destinationCity","i18nKey","components","subjectLink","cityFrom","cityTo","EMOTION_LOAD_STATUS_MAP","awaitingLoading","inTransit","unloading","delivered","canceled","EMOTION_ORDER_STATUS_MAP","placed","inProgress","done","EMOTION_TOUR_STATUS_MAP","carrierUnassigned","carrierAssigned","finished","EMOTION_TRANSPORTATION_STATUS_MAP","assetsUnassigned","driverUnassigned","assigned","declined","EMOTION_ORDER_DRAFT_STATUS_MAP","open","expireSoon","completed","closed","LOAD_STATUS_T_MAP","LOAD_STATUS_COLOR_MAP","mediumGreen","color","ColoredStatusLabel","TOUR_STATUS_T_MAP","TOUR_STATUS_COLOR_MAP","normal","TRANSPORT_ORDER_STATUS_T_MAP","TRANSPORT_ORDER_STATUS_COLOR_MAP","tomatoRed","ShipperAlertTypeEnum","RFQ_STATUS_COLOR_MAP","orange","RFQStatus","documentsDictRequest","documentsDictByType","isBold","isUnderline","usePartnerContext","documentName","contractName","orderNumber","shipmentNumber","FIELD_I18N_MAP","NAME","MAIN_CONTACT","LEGAL_ADDRESS","POSTAL_ADDRESS","BILLING_ADDRESS","updatedFields","formattedFields","field","fields","ADDRESS_TYPE_I18N_MAP","LEGAL","POSTAL","BILLING","addressType","verified","TransportationOrderNumber","OrderNumber","CarrierName","transportationOrderNumber","carrierName","toNumber","ORDER_STATUS_COLOR_MAP","OrderStatus","isInline","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","trim","isFinite","safeParseNumber","unitType","UnitTypeCount","Money","amount","currency","EUR","oldValue","newValue","hasOldValue","hasNewValue","fieldCode","sequenceNumber","stop","stopLabel","updatedStops","stopFieldRows","flatMap","stopIndex","fieldIndex","fullAddress","getAlertLevelOrFallback","fallback","alertLevel","renderLog","base","initiatorType","initiatorName","footer","userFullName","initiatorId","renderLogText","UNKNOWN_ACTION","renderNotificationText","tztLaneId","renderNotification","common","bodyCommon","header","subjectTypeLabel","originCountryCode","countryFrom","destinationCountryCode","countryTo","emotion","emotionStatus","getNotificationLink","documentDetails","shipperContractLaneId","profileBasic","renderAlertToast","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","DeactivateUserIcon","UserSettingsIcon","DriverIcon","rest","defaultTimeoutMs","textForClipboard","timeoutMs","copyTimeoutIdRef","isCopied","setIsCopied","copyToClipboard","plateNumbers","danger","XLSIcon","DocIcon","strokeColor","formatHMRDate","format","selectNewAlertsIds","selectAlertsById","newAlertIds","alertsById","commonUrlFactory","useCommonUrlFactoryContext","alertIndex","alert","alertToastView","checkIsCommonAnyAlert","Alert","white","StopWarningIcon","ContactBadgeIcon","shipmentUpdated","CargoUnitIcon","paperAttached","PaperIcon","paperDeleted","EditIcon","orderCancelled","DeleteIcon","toLocaleLowerCase","rolesCount","postProcess","mainContactChanged","userEdited","trailerAdded","TrailerIcon","trailerSuccessfullyActivated","trailerSuccessfullyXLSImport","trailerSuccessfullyArchived","trailersSuccessfullyActivated","trailerSuccessfullyEdited","trailerSuccessfullySetUnavailable","isSameDay","trailersSuccessfullyArchived","trailersFailedActivate","successfulCount","allCount","mediumLarge","trailerFailedActivate","trailersFailedArchived","trailerFailedArchived","trailerFailedArchivedHasFutureAssignment","trailerSuccessfullyUpdatedContract","trailersSuccessfullyUpdatedContract","trailersFailedUpdateContract","trailerFailedUpdateContract","trailerSuccessfullyUpdatedRate","trailersSuccessfullyUpdatedRate","trailersFailedUpdateRate","trailerFailedUpdateRate","truckAdded","TruckIcon","truckSuccessfullyActivated","truckSuccessfullyArchived","trucksSuccessfullyActivated","truckSuccessfullyEdited","truckSuccessfullySetUnavailable","trucksSuccessfullyArchived","trucksFailedActivate","truckFailedActivate","trucksFailedArchived","truckFailedArchived","truckFailedArchivedHasFutureAssignment","nextTransportOrderUrl","transportOrderDetails","nextToLink","Link","boldWhite","truckSuccessfullyUpdatedContract","trucksSuccessfullyUpdatedContract","trucksFailedUpdateContract","truckFailedUpdateContract","truckSuccessfullyUpdatedRate","trucksSuccessfullyUpdatedRate","trucksFailedUpdateRate","truckFailedUpdateRate","truckSuccessfullyXLSImport","paperDownloadFailed","driverAssigned","driversCount","spotAssetsAssigned","spotAssetsUnassigned","DoneIcon","carrierSpotLanesUpdateSuccess","carrierSpotLanesDeleteSuccess","shipperContractLaneAdded","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","parseFeaturesConfig","stringifiedConfig","ServerFeatureEnum","ALLOWED_FEATURES_SET","ALLOWED_FEATURES","DEFAULT_ALLOWED_FEATURES_SET","spot","DISABLED_FEATURES_SET","DISABLED_FEATURES","DEFAULT_DISABLED_FEATURES_SET","checkActiveFeature","feature","isAllowed","permissions","Provider","RenderLogContextProvider","AuthRedirectWatcher","AppRouter","ClientPage","loader","SignInPage","SignUpPage","ContinueSignUpPage","SelfCreateCompanyPage","ForgotPasswordPage","ConfirmEmailPage","NotFoundPage","AccessDeniedPage","rootNode","getElementById","createRoot","menu","setValue","isVisible","handleOpen","handleToggle","contextValue","partnerContextValue","notificationBarContextValue","featureContextValue","clientFeatures","setClientFeatures","useState","checkActiveServerFeature","getClientFeatureValue","setClientFeature","newClientFeature","clearClientFeatures","useFeaturesContextValue","deprecateSignUp","element","confirmEmail","notFound","RFQ_STATUS_T_MAP","AnyAlert","NavigationWrap","isAllowHelpButton","uiContext","Navigation","isShowCompanyLogo","userName","userEmail","node","setRootNode","ref","companyRefreshChannel","initialAssetTrackState","selectAssetTrackRequest","selectAssetTrackPoints","COUNTRY_SETTINGS_DICT_REQUEST","COUNTRY_SETTINGS_DICT_REQUEST_BEGIN","COUNTRY_SETTINGS_DICT_REQUEST_SUCCESS","COUNTRY_SETTINGS_DICT_REQUEST_ERROR","initialRFQDetailsState","rfqDetailsState","selectDocumentsState","selectCompanyDocumentIdsByType","selectCompanyDocumentsById","selectFetchCompanyDocumentsRequest","selectUploadCompanyDocumentsRequest","selectUploadingDictDocumentId","selectUpdateCompanyDocumentsRequest","selectUpdatingDocumentId","selectFetchEvidenceOfTaxDetailsRequest","selectFetchEvidenceOfTaxDetails","selectUpdateEvidenceOfTaxDetailsRequest","selectTrailersDict","selectTrailersDictRequest","selectTrailersDictList","keys","selectTrailersDictById","trailersDictList","initialPartnerTypeDocumentsState","byType","currentPartnerTypeState","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","selectCountrySettingsDictRequest","selectCountrySettingsByCountryCode","initialRoutingGeometryState","routingGeometrySlice","reducers","fetchRoutesPlainGeometry","fetchRoutePlainGeometry","fetchRouteGeometryBegin","routingGeometryState","fetchRouteGeometrySuccess","fetchRouteGeometryError","resetRouteGeometry","onCloseRef","shouldHandleOutsidePress","target","handleKeyDown","escape","removeEventListener","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","selectPolylines","selectPriceOffers","selectPriceOffersList","selectPriceOffersByHash","selectPriceOffersById","selectCreateOrderRequest","selectCreateOrderNextStep","selectOffersTasks","selectIsPartialLoadingOffers","selectReserve","selectReserveQuery","selectReserveRequest","selectReservePreview","selectReservePreviewQuery","selectIsAllowCreateRFQ","selectReservePreviewRequest","selectBestOffers","bestOffers","bestPrice","urgent","bestPriceOffer","bestUrgentOffer","selectShipperContractDetailsState","detailsById","selectUpdateShipperContractRequest","LOGO_SIZE_PX","markReadNode","CompanyLogo","medium","Avatar","initialPartnerShipperContractsState","shipperContractsSlice","fetchShipperContractsPage","fetchShipperContractsPageBegin","partnerState","fetchShipperContractsPageSuccess","fetchShipperContractsPageError","resetShipperContracts","selectOrdersStatsRequest","selectOrdersStats","ALL_ROLES_BY_PARTNER_TYPE","AuthProfileTypeEnum","ALL_AUTH_PROFILE_TYPES","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","handleClickOutside","wrapperNode","wrapperRef","contains","componentDidMount","componentWillUnmount","changeRFQBegin","changeRFQSuccess","changeRFQError","CommonAlertTypeEnum","CommonAnyAlert","urlFactory","orderList","rePath","rfqList","basic","profileDocuments","optionalDocuments","requiredDocuments","encode","initIsEditing","WAIT_RFQ_ID","editablePointTypeSet","driveThrough","initialCarrierContractState","contracts","fetchContractsRequest","updateContractRequest","uploadContractRequest","downloadContractRequest","updatingContractId","carrierContractState","CommonTranziitApi","userChanges","fetchTransportOrdersStatistics","fetchCarriersUtilization","carrierIds","period","findCompanyUsersByName","fetchImage","src","fetchStateMachineToursAvailableSteps","stateMachineToursWaypointsArrived","waypointId","stateMachineToursWaypointsLeft","stateMachineToursWaypointsUndoArrived","stateMachineToursWaypointsUndoLeft","getTimeZones","setMainContactForPartner","userContactId","commonTranziitApi","brandDark","TruckIconProps","getControlProps","isPressed","fetchTrailersDict","fetchTrailersDictBegin","fetchTrailersDictSuccess","fetchTrailersDictError","initialShipperContractDetailsItemState","downloadRequest","shipperContractDetailsSlice","fetchShipperContractDetailsBegin","detailsItem","fetchShipperContractDetailsSuccess","fetchShipperContractDetailsError","updateShipperContractDetailsBegin","updateShipperContractDetailsSuccess","updateShipperContractDetailsError","downloadShipperContract","downloadShipperContractDetailsBegin","downloadShipperContractDetailsSuccess","downloadShipperContractDetailsError","UiContext","initialStateMachineItemState","availableSubjectStatuses","stateMachineSlice","fetchStateMachineSteps","fetchStateMachineStepsBegin","itemState","fetchStateMachineStepsSuccess","fetchStateMachineStepsError","updateEntityStatus","updateEntityStatusBegin","updateEntityStatusSuccess","updateEntityStatusError","useCallback","getPages","prevPages","pageSuccessReducer","prevPaginationState","entities","entity","hasDetailChanges","prevIds","hasIdsChanges","pageCount","elementCount","followingPageSuccessReducer","pageErrorReducer","pageBeginReducer","resetPagesCacheReducer","initialPaginationState","initialPages","selectCarrierContractState","selectFetchCarrierContractsRequest","selectUpdateCarrierContractRequest","selectUploadCarrierContractRequest","selectUpdatingCarrierContractId","selectCarrierContracts","selectCarrierContractById","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_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","selectGroupedNotificationCounts","selectGroupedNotificationCountsRequest","selectAdditionalServicesGroupsByTrailerType","byTrailerType","selectAdditionalServicesMap","mapByTrailerType","selectAdditionalServicesDictStatus","selectShipperContractLaneDetailsState","selectUpdateShipperContractLaneRequest","shipperContractsRefreshChannel","shipperContractsPaginationChannel","trailerDetails","truckDetails","COUNTRIES_DICT_REQUEST","COUNTRIES_DICT_REQUEST_BEGIN","COUNTRIES_DICT_REQUEST_SUCCESS","COUNTRIES_DICT_REQUEST_ERROR","NotificationActionEnum","NotificationEmotionEnum","routesEnum","profile","account","archive","RFQRoutesEnum","ApiRequestErrorTypeEnum","ApiRequestError","checkIsApiRequestError","checkIsUnauthorizedError","checkIsForbiddenError","checkIsNetworkError","renderCommonNotification","renderUnknownNotification","renderUnknownNotificationText","fetchGroupedNotificationCounts","fetchGroupedNotificationCountsBegin","fetchGroupedNotificationCountsSuccess","fetchGroupedNotificationCountsError","getTruckDictTypeLabel","model","EMISSION_CLASS_ORDER","EURO_5","EURO_6","sortTrucksDict","aItem","bItem","manufacturerCompare","manufacturer","MAX_SAFE_INTEGER","RenderLogContext","CargoUnitIconProps","brandAccent5","FETCH_TRACK_BY_ORDER","FETCH_TRACK_BY_TRANSPORT_ORDERS","FETCH_TRACK_REQUEST_BEGIN","FETCH_TRACK_REQUEST_ERROR","FETCH_TRACK_REQUEST_SUCCESS","AuthErrorTypeEnum","AuthApiError","checkIsAuthApiError","fetchDocumentsDictBegin","fetchDocumentsDictSuccess","fetchDocumentsDictError","clientConfig","isBrokerProject","isSmall","HelpIcon","BREAKING_POINT_WIDTH","devicePixelRatio","TOOLTIP_DELAY","MenuAvatar","isExpanded","setHover","hasAccountLinkMatch","avatarNode","large","Tooltip","position","centerRight","black","tooltipNode","MenuCompanyLogo","profileLink","hasCompanyLinkMatch","companyLogoNode","BadgeTypeEnum","windowSize","setWindowSize","innerWidth","innerHeight","handleResize","setExpanded","shouldExpand","isActiveCompactMenu","helpIcon","helpContent","handleHelp","helpNode","menuLink","matchPathname","excludeMatchPathname","renderIcon","exact","isActive","fullTestSelector","badge","badgeText","year","colorCodingColoredStatusTheme","warning","notImportant","success","focus","isRightIcon","labelClassName","isWithoutVerticalPaddings","HollowCircleIcon","borderColor","checkMinValue","minValue","getErrorLabel","preparedValue","isZeroNumber","Array","isArray","disabledDates","isDisableValue","disabledDate","isBetween","minLength","isLessMinLength","maxLength","isMoreMaxLength","checkIsPositiveNumberValue","checkIsPositiveNumberOrZeroValue","maxValue","isValidDate","isValid","valueOf","addAlert","deleteAlert","selectShipperContractsPages","selectShipperContractsQuery","selectShipperContractsTotal","selectShipperContractsByIds","checkIsSameQuery","queryA","queryB","convertPageEntities","converter","checkShouldEmitChangePage","currentPage","shipperContractLanesRefreshChannel","shipperContractLanesPaginationChannel","fetchCountrySettingsDict","fetchCountrySettingsDictBegin","fetchCountrySettingsDictSuccess","fetchCountrySettingsDictError","carrierContractDetailsRefreshChannel","fetchTrucksDict","fetchTrucksDictBegin","fetchTrucksDictSuccess","fetchTrucksDictError","fetchCompany","fetchCompanyBegin","fetchCompanySuccess","fetchCompanyError","updateCompany","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","selectTrucksDict","selectTrucksDictRequest","selectTrucksDictById","selectTrucksDictList","checkIsExternalUrl","startsWith","T_MAP","errorType","ORDER_STATUS_T_MAP","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","extraReducers","builder","addCase","subjectLogsReducer","getStateMachineEntityHash","createCompanySlice","setCompanyIsLocked","createCompanyRequest","createCompanyRequestBegin","createCompanyRequestSuccess","createCompanyRequestError","DOCUMENTS_DICT_REQUEST","DOCUMENTS_DICT_REQUEST_BEGIN","DOCUMENTS_DICT_REQUEST_SUCCESS","DOCUMENTS_DICT_REQUEST_ERROR","selectCurrentCompanyRequestStatus","selectCurrentCompany","selectUpdateCompanyRequestStatus","selectOrderStopContactRequestStatus","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","formatMoney","roundedAmount","toFixed","decimal","fraction","formattedDecimal","sourceDecimalString","thousandSeparator","reverse","isFirstSymbol","symbol","decimalSeparator","formattedMoney","profileName","profileCountryCode","FlagIcon","ArrowForwardIcon","selectRFQsStatsRequest","selectRFQsStats","ordersRefreshChannel","ordersPaginationChannel","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","initialCompanyMembersState","companyState","additionalServicesDictSlice","fetchAdditionalServicesBegin","fetchAdditionalServicesSuccess","commonGroups","allServices","fetchAdditionalServicesError","CHECK_GPS_STATUS_REQUEST","CHECK_GPS_STATUS_REQUEST_ERROR","subLabel","tooltipPosition","topCenter","noteNodes","emptyNoteNode","labelRightNode","isShowFocusError","isAlwaysShowError","isForceShowWarning","submitCount","fieldLabelClassName","withoutLabelAndNotes","withoutLabel","isCheckbox","isShowFormikError","touched","initialValue","childrenProps","initialShipmentChangesState","optimisticPapers","initialTourChangesState","initialPapersEditByPaperIdState","deleteRequest","shipmentChangesById","tourChangesById","papersEditSlice","attachPaperToShipmentBegin","optimisticPaper","shipmentChangesState","paperState","fakeId","attachPaperToShipmentSuccess","afterAttachId","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","selectRelatedIdsSet","updatedOrderIdsSet","selectUnReadNotificationsRequest","selectLastUnReadNotification","lastNotification","selectCurrentPageNumber","selectNotificationsQuery","selectNotificationsById","selectNotificationsPages","selectNotificationsTotal","selectMarkAsReadRequest","initialShipperContractLaneDetailsItemState","shipperContractLaneDetailsSlice","fetchShipperContractLaneDetailsBegin","fetchShipperContractLaneDetailsSuccess","fetchShipperContractLaneDetailsError","updateShipperContractLaneDetailsBegin","updateShipperContractLaneDetailsSuccess","updateShipperContractLaneDetailsError","ANY_TRAILER_TYPE","selectStateMachineItemState","selectOrder","selectOrderRequestStatus","NOT_NUMBER_REG_EXP","clearPhoneNumber","rawPhoneNumber","asYouType","formattedPhoneNumber","input","parsePhoneNumber","getCountryCode","getCountryPhoneNumberStart","selectedCountryCode","phoneCode","checkIsPossiblePhoneNumber","checkIsEmptyPhoneNumber","parsedPhoneNumber","FetchError","checkIsFetchError","TrailerIconProps","checkIsTranziitApiErrorResponse","selectDocumentsDict","selectDocumentsDictById","selectDocumentsDictByType","selectDocumentsDictRequest","fetchNotificationsPageBegin","fetchNotificationsPageSuccess","fetchNotificationsError","markAsReadBegin","markAsReadSuccess","markAsReadError","fetchUnreadNotifications","fetchUnreadNotificationsBegin","fetchUnreadNotificationsSuccess","fetchUnreadNotificationsError","resetNotificationPages","toReturnUrl","AvatarSizeEnum","summ","char","charCodeAt","TRAILERS_DICT_REQUEST","TRAILERS_DICT_REQUEST_BEGIN","TRAILERS_DICT_REQUEST_SUCCESS","TRAILERS_DICT_REQUEST_ERROR","LinkThemeEnum","LinkSizeEnum","isExternal","linkProps","NotificationSidebarContext","testSelectors","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","getRePath","dropoffDate","pickupDate","newOrderOffers","orderCreationComplete","orderCreationPriceOfferId","orderCreationDropOffDate","orderCreationPickUpDate","newOrder","orderCreationOffers","orderCreationPickUpDatesRange","orderCreationDropOffDatesRange","orderCreationShipperId","orderCreationDetailsWithLane","newOrderDetailsWithLane","orderCreationDetails","newOrderDetails","createFakeIdFromPoint","stateMachineRefreshChannel","parseStringFormatter","parseSimpleNumber","FLOATING_UI_PORTAL_SELECTOR","isInsideFloatingUiPortal","Element","closest","selectRoutingGeometryState","selectRoutingGeometryStates","fetchCarrierContractsBegin","fetchCarrierContractsSuccess","fetchCarrierContractsError","updateCarrierContractBegin","updateCarrierContractSuccess","updateCarrierContractError","uploadCarrierContractBegin","uploadCarrierContractSuccess","uploadCarrierContractError","downloadCarrierContract","downloadCarrierContractBegin","downloadCarrierContractSuccess","downloadCarrierContractError","BrokerTranziitApi","addPartnerTrailer","addPartnerTruck","updatePartnerTruck","truckUpdate","fetchPartnerTruckDetails","fetchPartnersPage","apiFetchPartnersRequest","fetchPartnersStatistics","verifyPartnerAddress","unVerifyPartnerAddress","lockPartner","unlockPartner","linkWithExternalPlatformPartner","businessPartnerId","internalCompanyId","unlinkWithExternalPlatformPartner","updatePartnerDetails","partnerDetails","assignTeamsForPartner","evidenceOfTaxDocumentUpdate","searchAssetsForAssigment","radiusM","radius","findTrailersByPlateNumber","calculateTourCostsForAssets","fetchTourAssignDetails","findTrucksByPlateNumber","assignOrder","assignmentContextId","triggerSyncOrderWithBilling","updateBrokerWindowAppointment","fetchAvailableCarriers","includeProfileTypes","fetchBrokerAdminUsers","fetchPartnerDispatchers","fetchPartnerManagers","createPartner","createFromExternalPlatformPartner","fetchRatesPage","countriesFrom","countriesTo","updateRates","strategy","apiUpdateRateRequest","uploadRatesCSVFile","fetchRulesPage","fetchRuleDetails","ruleId","updateRule","ruleDraft","activateRule","deactivateRule","deleteRule","rulePreview","createRule","fetchSystemSettings","updateSystemSettings","settingsChanges","entries","fetchBrokerOrdersPage","getBrokerOrderDetails","getDoneStatistics","getRejectStatistics","newRole","findCarriersByName","textSearch","findShippersByName","findPartnersByName","findPartnerUsersByName","fetchBrokerRFQStats","downloadBrokerRFQStats","invitePartnerDriver","newDriver","deletePartnerDriver","archivePartnerDriver","activatePartnerDriver","updatePartnerDriver","driverChanges","fetchPartnerDriverDetails","invitePartner","fetchBrokerOrdersStatistics","updateAdditionalService","bodyData","checkPartnerTrailerGPSStatus","checkPartnerTruckGPSStatus","fetchPartnerRFQCount","sentTransportOrderToSpot","fetchBrokerInvoicesPage","createShipperContractLaneRFQ","fetchShipperContractLaneRFQOffersAverage","createShipperContractLane","importPartnerXLSTrailers","importPartnerXLSTrucks","exportPartnerXLSTrailers","exportPartnerXLSTrucks","editOrderCreateOrGetContext","editOrderContextAddStop","editOrderContextUpdateStop","alias","editOrderContextDeleteStop","editOrderApplyContext","editOrderDeleteContext","editOrderUpdateShipment","editOrderUpdateStopContact","getBrokerTourDetails","getBrokerTendersFilter","shipperName","createdBy","createDate","getBrokerTendersStatistic","calculated","parsing","failedToParse","parsed","calculating","getBrokerToursFilter","getBrokerToursStatistic","getDeadheadTrucks","initDeadheadContext","chooseDeadheadArrivalDateTime","contextId","applyDeadheadContext","createTeam","updateTeam","teamId","getTeamsFilter","getTeamDetails","deleteTeam","importTenderXLSFile","getTenderStatus","deleteTender","downloadTenderXLSFile","validateAssetTeleport","executeAssetTeleport","teleportLinkedAsset","searchExternalBusinessPartners","brokerTranziitApi","getAssetsTrackHashByOrderId","getAssetTrackHashByOrderId","getAssetsTrackHashByTransportOrderId","getAssetTrackHashByTransportOrderId","ContentRootContext","shipperContractLaneDetailsRefreshChannel","selectSubjectLogsRequestStatus","selectSubjectLogs","selectCurrentUser","selectUserSignedUp","selectIsPendingUser","pending","selectPatchUserRequestStatus","FETCH_ORDER_REQUEST","FETCH_ORDER_REQUEST_BEGIN","FETCH_ORDER_REQUEST_ERROR","FETCH_ORDER_REQUEST_SUCCESS","FETCH_INVOICES_PAGE_REQUEST","FETCH_INVOICES_PAGE_REQUEST_BEGIN","FETCH_INVOICES_PAGE_REQUEST_ERROR","FETCH_INVOICES_PAGE_REQUEST_SUCCESS","RESET_INVOICES","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","openLeftSidebar","formattedDate","boldBrandDark","initialCompanyRFQsState","newPages","rfqsRefreshChannel","rfqsPaginationChannel","byPriceAsc","priceA","priceB","invoicesRefreshChannel","invoicesPaginationChannel","fetchOrder","fetchOrderBegin","fetchOrderSuccess","fetchOrderError","concatTestSelectors","fetchContacts","fetchContactsBegin","fetchContactsSuccess","fetchContactsError","addContact","inviteUser","addMemberBegin","addMemberSuccess","addMemberError","cancelInvite","deleteMemberBegin","deleteMemberSuccess","deleteMemberError","changeUserRole","updateMemberBegin","updateMemberSuccess","updateMemberError","fetchContactDetailsBegin","fetchContactDetailsSuccess","fetchContactDetailsError","documentsRefreshChannel","partnerDocumentsRefreshChannel","byAlphabetASC","a","b","getCountryCompByName","comp","countryA","countryB","DEFAULT_MODAL_DIALOG_WIDTH","ModalDialogActions","orderEditSlice","_state","_action","updateOrderStopContactBegin","updateOrderStopContactSuccess","updateOrderStopContactError","resetOrderStopContact","initialPartnerShipperContractLanesState","shipperContractLanesSlice","fetchShipperContractLanesPage","fetchShipperContractLanesPageBegin","fetchShipperContractLanesPageSuccess","fetchShipperContractLanesPageError","resetShipperContractLanes","CompanyLogoSizeEnum"],"sourceRoot":""}