{"version":3,"sources":["viewModels/chargeManagement/chargeManagementEdit/chargeManagementContactViewModel.ts","models/vehicle.ts","utils/fileUtils.ts","services/initialization/basicInitializationService.ts","models/paymentResult.ts","viewModels/paymentValidation/paymentValidationViewModel.ts","models/vignette.ts","viewModels/chargeManagement/chargeManagementViewModel.ts","entities/transferPaymentRestrictionsResponse.ts","entities/paymentRestrictionsResponse.ts","entities/purchasedChargeVehicleRegistrationResponse.ts","entities/chargeProposedPurchaseResponse.ts","utils/isErrorResponse.ts","entities/chargesRequest.ts","entities/notificationPreferencesRequest.ts","entities/chargeOrderRequest.ts","entities/chargeResponse.ts","entities/chargeOrderResponse.ts","repositories/chargeOrderRepository.ts","viewModels/tradingPlaces/tradingPlacesViewModel.ts","entities/chargeOrderInstructionType.ts","entities/fuelTypeLimitationReasonOrder.ts","viewModels/multiEshop/orderRecapViewModel.ts","controls/loadingPane.tsx","viewModels/notice/components/documentsUploadedViewModel.ts","viewModels/common/vehicleInfoViewModel.ts","viewModels/common/payment/singleBankTransferViewModel.ts","viewModels/eshop/order/steps/chargeTypeViewModel.ts","viewModels/eshop/order/steps/contactViewModel.ts","viewModels/common/turnstileViewModel.ts","viewModels/common/payment/singlePaymentRetryViewModel.ts","viewModels/common/payment/multiPaymentRetryViewModel.ts","entities/customerRefundApplicationOrderSourceType.ts","viewModels/eshop/order/steps/fuelTypeViewModel.ts","viewModels/eshop/order/steps/recapViewModel.ts","entities/chargeOverlapType.ts","entities/chargeValidityInstructionGroupResponse.ts","entities/chargeValidityOverlapInstructionsGroupResponse.ts","entities/chargeValidityInstructionGroupsResponse.ts","entities/chargeOrderInstructionGroupResponse.ts","entities/chargeOrderInstructionGroupsResponse.ts","entities/vehicleChargingInstructionsResponse.ts","repositories/vehicleRepository.ts","models/googlePayInitPaymentResponse.ts","models/isdsResponse.ts","viewModels/common/priceListViewModel.ts","viewModels/multiEshop/summaryMultiEshopViewModel.ts","viewModels/notice/exemption/exemptionNoticeViewModel.ts","views/common/payment/bankTransfer.module.scss","utils/analytics.ts","widgetsES6.tsx","viewModels/notice/licensePlateChange/licensePlateChangeNoticeViewModel.ts","viewModels/notice/omission/omissionNoticeViewModel.ts","viewModels/notice/refundRequest/refundRequestNoticeViewModel.ts","views/priceList/priceListView.module.scss","entities/vehicleRegistrationResponse.ts","viewModels/outages/outagesWidgetViewModel.ts","viewModels/chargeTypes/chargeTypesViewModel.ts","entities/InputEmail.ts","viewModels/alertViewModel.ts","viewModels/common/outagesViewModel.ts","viewModels/eshop/order/components/gdprInfoViewModel.ts","viewModels/common/gdpr/GDPRViewModel.ts","viewModels/common/payment/orderSummaryViewModel.ts","viewModels/common/orderOutage/orderOutageViewModel.ts","entities/tradingPlaceType.ts","services/priceService.ts","services/gaService.ts","entities/chargeOrderInstructionsResponse.ts","services/localeProvider.ts","services/ISDS/isdsService.ts","entities/customerRatingScore.ts","views/tradingPlaces/components/mobileFilter.module.scss","viewModels/common/contactViewModel.ts","viewModels/tradingPlaces/kioskViewModel.ts","viewModels/tradingPlaces/roadMapViewModel.ts","viewModels/chargeManagement/chargeManagementEdit/codeChangedAlertViewModel.ts","viewModels/chargeManagement/chargeManagementEdit/common/emailInputViewModel.ts","models/chargeValidity.ts","entities/chargePermittedActionResponse.ts","entities/emailAddressChangePermittedActionResponse.ts","entities/notificationPreferencesChangePermittedActionResponse.ts","entities/obtainingPaymentConfirmationPermittedActionResponse.ts","entities/chargePermittedActionsResponse.ts","entities/counterpartyBankAccountResponse.ts","entities/chargeRefundResponse.ts","entities/chargeDetailResponse.ts","repositories/chargeRepository.ts","utils/dateUtils.ts","viewModels/common/payment/selectPaymentMethodViewModel.ts","viewModels/eshop/order/components/termAgreementViewModel.ts","viewModels/common/chargeTypeSelectViewModel.ts","viewModels/eshop/order/components/validitySelectViewModel.ts","viewModels/common/fuelTypeSelectViewModel.ts","utils/externalServiceUtils.ts","utils/iOS.ts","models/chargeOrderItem.ts","entities/chargeVehicleWarningReasonOrder.ts","viewModels/notice/exemption/exemptionDocumentsUploadedViewModel.ts","viewModels/notice/licensePlateChange/licensePlateChangeDocumentsUploadedViewModel.ts","viewModels/notice/omission/omissionDocumentsUploadedViewModel.ts","viewModels/notice/refundRequest/refundRequestDocumentsUploadedViewModel.ts","services/initialization/lazyInitializationService.ts","viewModels/notice/components/applicantPersonViewModel.ts","entities/exemptionReason.ts","models/exemption.ts","utils/localizationUtils.ts","services/localizationService.ts","views/tradingPlaces/components/roadLayerSelection.module.scss","entities/proposedChargeValidityResponse.ts","entities/chargeValidityInstructionsResponse.ts","viewModels/rootViewModel.ts","viewModels/multiEshop/contactMultiEshopViewModel.ts","viewModels/multiEshop/paymentMultiEshopViewModel.ts","models/chargeOrderLicenseItem.ts","viewModels/notice/components/niaViewModel.ts","models/eshopError.ts","viewModels/eshop/order/components/paymentViewModel.ts","viewModels/eshop/order/components/orderRecapitulationViewModel.ts","viewModels/eshop/order/components/notificationPreferencesRecapViewModel.ts","repositories/chargeOrderStorageRepository/chargeOrderStorageRepository.ts","viewModels/eshop/order/components/chargeViewModel.ts","viewModels/eshop/order/components/fuelViewModel.ts","viewModels/notice/components/operator/legalPersonViewModel.ts","viewModels/notice/components/operator/naturalPersonViewModel.ts","models/omission.ts","viewModels/notice/components/operator/operatorViewModel.ts","entities/sourceType.ts","entities/notificationPreferencesResponse.ts","entities/fuelTypeLimitationResponse.ts","services/requestRecoveryService.ts","models/niaResponse.ts","utils/serializeNotice.ts","viewModels/notice/noticeViewModel.ts","viewModels/multiEshop/multiEshopStatusSteps.ts","viewModels/chargeManagement/chargeManagementEdit/chargeManagementEditPartViewModel.ts","config.ts","viewModels/chargeManagement/chargeManagementEdit/receiptEmailModalViewModel.ts","entities/chargeVehicleWarningReason.ts","data/indexedDbConnector.ts","services/turnstileServise.ts","models/person.ts","entities/customerRefundApplicationReason.ts","entities/fuelTypeResponse.ts","models/licensePlateChange.ts","utils/validationPatch.ts","models/refundRequestNotice.ts","views/common/electricVehicleExemptionAlert/electricVehicleExemptionAlert.module.scss","services/NIA/niaService.ts","viewModels/utils/index.ts","entities/chargeOverlapResponse.ts","entities/requestedChargeValidityResponse.ts","viewModels/notice/components/personViewModel.ts","viewModels/chargeManagement/chargeManagementEdit/chargeManagementLicensePlateChangeViewModel.ts","viewModels/utils/exemptionKeys.ts","models/naturalPerson.ts","models/legalPerson.ts","views/tradingPlaces/components/popupView.module.scss","views/tradingPlaces/components/tradingPlacesAutosuggest.module.scss","utils/scrollTo.ts","models/chargeOrder.ts","entities/serverTimeResponse.ts","utils/base64.ts","entities/openingHoursKind.ts","entities/domesticTransferPaymentResponse.ts","entities/sepaTransferPaymentResponse.ts","entities/transferPaymentInstructionsResponse.ts","entities/systemComponentOutageLocalizationResponse.ts","entities/systemComponentOutageResponse.ts","views/tradingPlaces/components/tradingPlacesFilter.module.scss","entities/chargePriceListsResponse.ts","services/chargeOrderService.ts","utils/copyChargeOrderDeep.ts","entities/chargeChangeRejectionReason.ts","models/enum.ts","entities/domesticBankAccountResponse.ts","entities/chargeValidityRequest.ts","entities/proposedAfterPurchaseRedirectResponse.ts","models/googlePayMetadata.ts","utils/browserHistory.ts","models/languageCode.ts","entities/systemComponentOutagesResponse.ts","models/vehicleChangeDuringValidityRequest.ts","services/enumService.ts","entities/chargeTypeResponse.ts","models/chargeOrderChargeItem.ts","models/chargeOrderFuelItem.ts","entities/fuelTypeLimitationReason.ts","models/chargeOrderContactItem.ts","views/boxWidgetView.tsx","validators/licensePlateChangeValidator.ts","views/eshop/order/components/toolboxView.module.scss","entities/timeSpan.ts","entities/openingHoursIntervalResponse.ts","entities/openingHoursWeekResponse.ts","entities/chargePriceListItemResponse.ts","entities/chargePriceListResponse.ts","entities/registeredChargeResponse.ts","entities/chargeRegistrationsResponse.ts","models/payment.ts","services/chargeTypesService.ts","entities/chargeValidity.ts","views/chargeTypes/chargeTypesView.module.scss","views/eshop/order/components/googlePay3DSecureModal.module.scss","services/appRouter.ts","viewModels/common/payment/paymentRetryViewModel.ts","models/vehicleOperator.ts","models/notice.ts","models/validChargeResponse.ts","models/orderItem.ts","services/timeService.ts","views/alertView.tsx","views/common/loadingModal/loadingModal.tsx","views/common/loadingModal/extendedLoadingModal.tsx","views/common/alertWithInfoIcon/alertWithInfoIcon.tsx","views/common/collapsible/collapsible.tsx","controls/tooltip.tsx","views/chargeManagement/chargeManagementEdit/chargeEditForm.tsx","views/chargeManagement/chargeManagementEdit/chargeInfo.tsx","views/chargeManagement/chargeManagementEdit/chargeManagementHeader.tsx","views/chargeManagement/chargeManagementEdit/chargeRefund.tsx","views/chargeManagement/chargeManagementEdit/chargeManagementEditView.tsx","views/chargeManagement/chargeManagementEdit/chargeReceipt.tsx","controls/datePickerBox/utils.ts","controls/datePickerBox/datePickerBox.tsx","views/chargeManagement/chargeManagementEdit/chargeValidityForm.tsx","views/chargeManagement/chargeManagementEdit/codeChangedAlertView.tsx","controls/advancedInput.tsx","views/common/emailInput/emailInput.tsx","views/chargeManagement/chargeManagementEdit/common/emailInputView.tsx","views/chargeManagement/chargeManagementEdit/licensePlateChangeView.tsx","views/chargeManagement/chargeManagementEdit/receiptEmailModalView.tsx","views/common/error/errorCard.tsx","views/common/authCodeInput/authCodeInput.tsx","views/chargeManagement/chargeManagementView.tsx","views/common/dotLoader/index.tsx","utils/chargeTypeIcon/index.ts","utils/chargeTypeIcon/vignetteAssets.ts","utils/chargeTypeIcon/vignetteAssetsEN.ts","views/chargeTypes/chargeTypesView.tsx","views/common/chargeTypeSelect/chargeTypeSelectView.tsx","data-test-constants.ts","views/common/contact/contactView.tsx","views/common/fuelTypeSelect/fuelTypeSelect.tsx","utils/replaceLinkHost.ts","views/common/gdpr/gdprSection.tsx","views/common/orderOutage/orderOutageView.tsx","views/common/outages/outagesView.tsx","views/common/payment/sepaInstructions.tsx","controls/radioArray.tsx","views/common/payment/instructionAssets.ts","views/common/payment/instructionCard.tsx","views/common/payment/instructionSelect.tsx","views/common/payment/domesticInstructions.tsx","views/common/payment/bankTransfer.tsx","views/common/payment/orderSummary.tsx","views/common/idleModal/idleModal.tsx","utils/formatMilisecondsToTime.ts","views/eshop/order/components/googlePayButton.tsx","views/common/payment/paymentRetryView.tsx","views/common/payment/paymentStatus.tsx","views/eshop/order/components/paymentMethodIcon/paymentMethodIcon.tsx","views/eshop/test-ids-constants.ts","views/eshop/order/components/paymentMethodIcon/assets/ic-google-pay.ts","utils/icons/speedometerFast.ts","views/common/payment/selectPaymentMethod.tsx","views/eshop/order/components/paymentMethodIcon/assets/ic-visa.png","views/eshop/order/components/paymentMethodIcon/assets/ic-master-card.png","views/eshop/order/components/paymentMethodIcon/assets/ic-apple-pay.png","utils/icons/speedometerSlow.ts","entities/enumTurnstileCodes.ts","views/common/turnstile/turnstileView.tsx","controls/asyncSelect.tsx","views/common/countryIdInput/countryIdInput.tsx","views/common/countryIdInput/countryIdInputWithConfirmation.tsx","controls/licensePlateBaseInput/config.ts","controls/licensePlateBaseInput/licensePlateBaseInput.tsx","controls/licensePlateBaseInput/assets/licensePlateAssets.ts","controls/licensePlateCharacterWiseInput.tsx","views/common/licensePlateInput/licensePlateInput.tsx","views/common/licensePlateInput/licensePlateInputWithConfirmation.tsx","views/common/vehicleInfo/vehicleInfoView.tsx","utils/ratingTypeIcon/ratingAssets.ts","utils/ratingTypeIcon/index.ts","views/customerReview/customerReviewView.tsx","views/eshop/eshopView.tsx","views/eshop/order/components/chargeView/chargeTypeView.tsx","utils/fuelEcoIcon/fuelAssets.ts","utils/fuelEcoIcon/index.ts","views/eshop/order/components/fuelView/fuelTypeView.tsx","views/eshop/order/components/gdprInfoView.tsx","views/eshop/order/components/notificationPreferencesRecapView.tsx","views/eshop/order/components/orderRecapitulationView.tsx","views/eshop/order/components/payment.tsx","views/eshop/order/components/termAgreementView.tsx","views/eshop/order/components/stepper.tsx","views/eshop/order/components/googlePay3DSecureModal.tsx","views/common/error/paymentError.tsx","views/common/success/successAlert.tsx","views/eshop/order/orderWizardView.tsx","views/eshop/order/components/validitySelect.tsx","views/eshop/order/components/stepsNavigationButtons.tsx","views/eshop/order/steps/chargeTypeView.tsx","views/eshop/order/steps/contactView.tsx","views/common/textWithLink/textWithLink.tsx","views/eshop/order/components/chargeTypeVehicleInfo.tsx","views/eshop/order/steps/fuelTypeView.tsx","views/common/electricVehicleExemptionAlert/electricVehicleExemptionAlert.tsx","views/common/electricVehicleExemptionAlert/electricCarAsset.ts","views/eshop/order/steps/licenseView.tsx","views/eshop/order/steps/recapView.tsx","views/multiEshop/components/status.tsx","views/multiEshop/batchOrderItemView.tsx","views/multiEshop/batchOrderView.tsx","views/multiEshop/contactMultiEshopView.tsx","views/multiEshop/multiEshopView.tsx","views/multiEshop/components/recommendationAlert.tsx","views/multiEshop/orderRecapView.tsx","views/multiEshop/paymentMultiEshopView.tsx","views/multiEshop/summaryMultiEshopView.tsx","views/notice/components/common/personInput.tsx","views/notice/components/common/addressInput.tsx","views/notice/components/common/contactInput.tsx","views/notice/components/applicantView.tsx","views/notice/components/toolbox/index.tsx","views/notice/components/documentsUploadedView.tsx","views/notice/components/niaView.tsx","views/notice/components/operator/legalPersonView.tsx","views/notice/components/operator/naturalPersonView.tsx","views/notice/components/operator/representativeTypeSelect.tsx","views/notice/components/operator/operatorView.tsx","controls/advancedSelect.tsx","views/notice/exemption/notice/exemptionReasonView.tsx","views/notice/exemption/notice/index.tsx","views/notice/components/methodOfSignature/index.tsx","views/notice/components/documentUploader/filesList.tsx","views/notice/components/documentUploader/rejectedFiles.tsx","views/notice/components/documentUploader/index.tsx","views/notice/exemption/exemptionView.tsx","views/notice/licensePlateChange/notice/index.tsx","views/notice/licensePlateChange/licensePlateChangeView.tsx","views/notice/noticeView.tsx","views/notice/omission/omissionView.tsx","views/notice/refundRequest/refundReasonView.tsx","views/notice/refundRequest/orderSourceTypeView.tsx","views/notice/refundRequest/refundRequestView.tsx","views/outages/outagesWidgetView.tsx","views/paymentValidation/paymentValidationView.tsx","views/paymentValidation/validationCard.tsx","views/paymentValidation/chargeCard.tsx","views/paymentValidation/exemptionCard.tsx","views/paymentValidation/noRegistrationCard.tsx","views/paymentValidation/validationSummaryView.tsx","views/priceList/priceListView.tsx","views/rootView.tsx","views/tradingPlaces/components/popupView.tsx","views/tradingPlaces/components/tradingPlaceHeaderView.tsx","views/tradingPlaces/components/tradingPlaceSalesTimeView.tsx","utils/phoneNumberUtils.ts","views/tradingPlaces/components/tradingPlaceContactView.tsx","views/tradingPlaces/components/tradingPlaceInfoView.tsx","views/tradingPlaces/components/tradingPlacesFilter.tsx","views/tradingPlaces/components/tradingPlacesAutosuggest.tsx","views/tradingPlaces/components/roadLayerSelection.tsx","views/tradingPlaces/components/roadMapTooltip.tsx","views/tradingPlaces/components/mobileFilter.tsx","views/tradingPlaces/tradingPlacesView.tsx","views/multiEshop/summaryMultiEshopView.module.scss","serviceWorker.ts","utils/urlAdapterPath.ts","utils/sentryUtils.ts","entities/chargeRefundationStatus.ts","entities/customerRefundPaymentType.ts","viewModels/chargeManagement/chargeManagementEdit/chargeManagementEditViewModel.ts","viewModels/multiEshop/batchOrderViewModel.ts","widgets/widget.ts","viewModels/multiEshop/multiEshopViewModel.ts","models/outage.ts","views/common/payment/selectPaymentMethod.module.scss","repositories/repositoryBase.ts","services/authorizationService.ts","data/backendConnector.ts","data/deserializingRequestBuilder.ts","data/eshopRequestBuilder.ts","repositories/chargePriceListStorageRepository/chargePriceListStorageRepository.ts","models/exemptionRegistrationResponse.ts","entities/possibleExemptionRegistrationResponse.ts","models/chargeRegistrationReport.ts","models/vehicleRegistrationsResponse.ts","repositories/chargeRegistrationRepository.ts","repositories/chargeTypesStorageRepository/chargeTypesStorageRepository.ts","entities/customerRating.ts","repositories/customerReviewStorageRepository/customerReviewStorageRepository.ts","repositories/enumRepository.ts","entities/exemptionApplicationProductionResponse.ts","repositories/exemptionRepository.ts","entities/isdsMessageDeliveryStatusResponse.ts","repositories/isdsRepository.ts","entities/vehicleChangeApplicationProductionResponse.ts","repositories/licensePlateChangeRepository.ts","repositories/localizationRepository.ts","models/redirect.ts","repositories/niaRepository.ts","entities/exemptionCancellationApplicationProductionResponse.ts","repositories/omissionRepository.ts","models/contact.ts","models/order.ts","repositories/order/orderRepository.ts","repositories/outageRepository.ts","repositories/paymentRepository.ts","entities/customerRefundApplicationProductionResponse.ts","repositories/refundRequestRepository.ts","repositories/systemRepository.ts","entities/tradingPlaceResponse.ts","entities/tradingPlacesResponse.ts","entities/openingHoursResponse.ts","entities/salespointResponse.ts","entities/shutdownIntervalResponse.ts","entities/tradingPlaceDetailResponse.ts","repositories/tradingPlaceRepository.ts","services/exemptionService.ts","services/licensePlateChangeService.ts","services/refundRequestService.ts","models/validity.ts","models/WSError.ts","services/signalR/notification/constants.ts","entities/putChargeContactResult.ts","services/signalR/notification/signalRNotificationService.ts","services/tradingPlaceService.ts","validators/isBankAccountNumber.ts","validators/isBankPrefixNumber.ts","validators/isLength.ts","validators/hasValidCharacters.ts","services/validationService.ts","services/vehicleService.ts","viewModels/multiEshop/batchOrderItemViewModel.ts","di.config.ts","di.registry.ts","di.decorators.ts","views/makeWidget.tsx","viewModels/makeWidgetFor.ts","entities/possibleExemptionRegistrationMethod.ts","viewModels/notice/exemption/exemptionViewModel.ts","repositories/order/constants.ts","services/eventBus.ts","viewModels/eshop/eshopViewModel.ts","services/outageService.ts","viewModels/eshop/order/orderWizardModel.ts","viewModels/eshop/order/components/orderStatusSteps.ts","widgets/eshop/index.tsx","widgets/multiEshop/index.tsx","widgets/exemption/index.tsx","widgets/chargeManagement/index.tsx","widgets/chargeTypes/index.tsx","widgets/priceList/index.tsx","widgets/customerReview/index.tsx","widgets/notice/index.tsx","widgets/omission/index.tsx","widgets/paymentValidation/index.tsx","widgets/tradingPlaces/index.tsx","entities/classifiedFuelType.ts","viewModels/eshop/order/steps/licenseViewModel.ts","widgets/kiosk/index.tsx","widgets/tollRoads/index.tsx","widgets/outages/index.tsx","widgets/refundRequest/index.tsx","services/chargeManagementService.ts","../node_modules/@edaz/utils/cookies/index.js","services/chargeRegistrationService.ts","models/notificationPreferences.ts","services/omissionService.ts","entities/fuelType.ts","viewModels/common/payment/bankTransferViewModel.ts","services/notificationService.ts","viewModels/notice/refundRequest/refundRequestViewModel.ts","viewModels/common/payment/statusViewModel.ts","viewModels/paymentValidation/validationSummaryViewModel.ts","viewModels/notice/licensePlateChange/licensePlateChangeViewModel.ts","viewModels/chargeManagement/chargeManagementEdit/chargeManagementReceiptViewModel.ts","entities/chargeOrderCustomerRatingRequest.ts","viewModels/customerReview/customerReviewViewModel.ts","services/payment/payGateLanguageCode.enum.ts","services/payment/constants.ts","services/payment/paymentService.ts","models/payGatePaymentResponse.ts","viewModels/notice/omission/omissionViewModel.ts","viewModels/chargeManagement/chargeManagementEdit/chargeManagementActiveChargeLicensePlateChangeViewModel.ts","viewModels/chargeManagement/chargeManagementEdit/chargeManagementValidityViewModel.ts","services/initialization/initializationWithOutagesService.ts","viewModels/common/payment/singleStatusViewModel.ts","viewModels/chargeManagement/chargeManagementEdit/chargeManagementBeforeValidChargeLicensePlateChangeViewModel.ts"],"names":["ChargeManagementContactViewModel","_dec","action","bound","_dec2","_dec3","_dec4","_dec5","_dec6","_dec7","_dec8","_dec9","_dec0","_dec1","_class","ChargeManagementEditPartViewModel","canSubmit","salespointCanSubmit","this","charge","chargeOrderSourceType","SourceType","Kiosk","Salespoint","includes","notificationPreferences","emailAddress","initialEmailAddress","_notificationEnabled","eshopCanSubmit","undefined","length","_emailAddressNotification","initialEmailAddressNotification","phoneNumber","initialPhoneNumberNotification","notificationEnabled","initialNotificationEnabled","constructor","localizationService","chargeManagementService","chargeOrderService","eventBus","enumService","signalRNotificationService","chargeTypesService","router","turnstileViewModelFactory","super","unsubscriptions","turnstileViewModel","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_descriptor4","_descriptor5","navigationName","push","subscribe","putChargeContactFailure","putChargeContactSuccess","attachValidators","onInitialize","reaction","_isNotificationEmailSame","onSameNotificationEmailChanged","onEmailAddressNotificationChanged","onEmailAdressChanged","onPhoneNumberChanged","onNotificationEnabled","onActivate","_this$charge","_this$charge2","_this$charge3","_this$charge4","_this$charge5","_this$charge6","_this$charge14","_this$charge15","_this$charge16","_this$charge7","_this$charge8","_this$charge9","_this$charge0","_this$charge1","_this$charge10","_this$charge11","_this$charge12","_this$charge13","emailNotificationEnabled","smsNotificationEnabled","_emailConfirmation","notificationEnabledInfo","onDeactivate","isClosing","forEach","unsubscribe","defaultPrefixNumber","phoneNumberChanged","allowedRemoveEmail","canEdit","_this$charge17","success","permittedActions","emailAddressChange","isAllowed","emailNotificationPreferencesChange","smsNotificationPreferencesChange","canCheckNotif","canEditEmailNotif","canEditSmsNotif","hasSecondStep","_ref","_this$charge18","NotificationPreferences","_this$charge19","showNotificationPreferences","isNotificationEmailSame","customInfoMessage","message","_this$permittedAction","_this$permittedAction2","_this$permittedAction3","rejectionReason","chargeType","getPriceListItemChargeType","priceListItemId","validFor","ChargeValidity","SingleDay","translate","replace","description","concat","_this$notificationPre","tg","code","translateGeneral","notifyDaysBefore","chargeOrder","charges","validForToNotificationDays","attachAutomaticBlurValidator","NotificationValidationRules","NotificationSalespointKiosValidationRules","isEmailNotificationSet","isPhoneNumberSet","data","_data$payload$notific","_data$payload$notific2","_data$payload$notific3","_data$payload$notific4","payload","triggerer","clearAfterAsyncAction","_canBeChanged","authCode","Object","assign","navigate","ChargeManagementEditViewModel","countryId","vehicle","licensePlate","setErrorMessageBasedOnType","type","ta","translateAttribute","submit","_this","_asyncToGenerator","errorMessage","validate","turnstileToken","isLoading","editContact","scrollToFirstError","formElement","_applyDecoratedDescriptor","prototype","observable","configurable","enumerable","writable","initializer","computed","getOwnPropertyDescriptor","watchBusy","Vehicle","_descriptor6","_descriptor7","_descriptor8","_descriptor9","_descriptor0","CountryIdConfirmationValidationRules","_countryIdConfirmation","equalWith","property","fileFormat","base64","split","persistedBlobToISDSFormat","persistedBlob","base64Parts","File","fileName","parseFileNameFromHeaderResponse","string","match","createFileFromBlob","file","blob","Blob","url","window","URL","createObjectURL","a","document","createElement","href","download","style","display","body","appendChild","click","revokeObjectURL","saveFileFromURL","urlGetter","sourceIdentifier","extra","isIOSSafari","removeChild","Sentry","Error","_objectSpread","target","setAttribute","_x","_x2","_x3","apply","arguments","BasicInitializationService","localeProvider","validationService","authorizationService","isInitialized","initialize","defaultLanguage","validatorsRepository","availableLocales","Promise","all","runInAction","PaymentResult","PaymentResultFailureOrigin","PaymentResultFailureType","PaymentValidationModuleNavigationName","PaymentValidationViewModel","Router","registerRoute","route","name","Self","children","ValidationSummaryViewModel","_class2","ConductorSingleChild","validationSummaryViewModelFactory","vehicleInfoViewModelFactory","chargeRegistrationService","vehicleInfoViewModel","validationSummaryViewModel","busyWatcher","BusyWatcher","nameValue","czechID","attachValidator","breakpoint","_superprop_getOnInitialize","startInitialization","values","call","closeChild","child","forceClose","reset","subPath","params","_superprop_getNavigate","_this2","ValidationSummaryNavigationName","getChargeRegistration","chargeRegistrationsResponse","innerWidth","scrollToElement","childElement","e","findNavigationChild","_this3","AuthCodeValidationRules","isAuthCode","Vignette","Type","ChargeManagementModuleNavigationName","ChargeManagementViewModel","ConductorOneChildActive","chargeManagementEditViewModelFactory","chargeManagementEditViewModel","turnstileRef","React","createRef","vm","vignette","fixedLicensePlateSize","loadCountriesOnInit","chargeValidationFailed","validationFailed","translateTurnstile","resolve","_yield$_this$enumServ","countryCode","lazyValues","find","country","_country$code","toLowerCase","id","LicensePlateValidationRules","verifyCharge","validateAll","actionVerifyCharge","result","getCharge","then","response","EshopError","error","CHARGE_NOT_FOUND","TransferPaymentRestrictionsResponse","Date","PaymentRestrictionsResponse","PurchasedChargeVehicleRegistrationResponse","ChargeProposedPurchaseResponse","NotificationPreferencesResponse","RequestedChargeValidityResponse","isErrorResponse","status","ChargesRequest","ChargeValidityRequest","NotificationPreferencesRequest","ChargeOrderRequest","ChargeResponse","VehicleRegistrationResponse","ChargeOrderResponse","TransferPaymentInstructionsResponse","ProposedAfterPurchaseRedirectResponse","ChargeOrderRepository","RepositoryBase","apiFactory","handleEmptyResponse","ok","plainToClass","json","getAll","callApi","api","get","orderId","apiVersion","one","item","getProposedPurchase","_ref2","chargeId","postProposedPurchaseRequest","_ref3","proposedPurchaseRequestID","post","proposedPurchaseRequestId","getTransferPaymentRestrictions","connectionId","_postOrder$charges","postOrder","toJS","map","validity","validSinceDate","dateToIsoString","utcToCZZonedTime","validSince","postCustomerRating","customerRating","clearPost","_ref4","getPayGatePayment","getPaymentConfirmation","redirected","publish","paymentConfirmationAvailable","paymentConfirmationError","catch","TradingPlacesModuleNavigationName","dayNames","TradingPlacesViewModel","ScreenBase","tradingPlacesService","geocoderService","maxResultsCount","searchCache","Map","closureDateRegexp","closureSinceRegexp","closureUntilRegexp","roadMapYears","availableRoadMaps","free","Free2026","paid","Paid2026","_descriptor1","_descriptor10","_descriptor11","_descriptor12","_descriptor13","openingTimeRange","day","from","to","holidayDay","openingHour","week","getDay","closureInfo","closure","validUntil","since","formatDate","until","onGoogleApiLoaded","maps","ref","google","Geocoder","loadRoadsForYear","visibleRoads","year","setVisibleRoads","addListener","event","tooltipMessage","road","feature","getProperty","roadType","tooltipPosition","x","domEvent","y","showTooltip","_descriptor14","_descriptor15","_descriptor16","_descriptor17","_descriptor18","findTradingPlacesNearToLocation","locations","radiusInMeters","places","location","locationPlaces","filter","place","insideCircle","lat","latitude","lng","longitude","sort","b","distanceTo","debouncedSearchTradingPlaces","debounce","searchTradingPlaces","leading","tradingPlaceSelected","tradingPlace","choosePlace","mapButtonTitle","visibleTradingPlaces","kiosk","salesPoint","handleRoadVisibilityChange","onShowMapClick","showMap","closePopover","itemDetail","_this$tradingPlacesSe","_this$tradingPlacesSe2","tradingPlaces","items","isAvailable","placesCoords","_this$places","TradingPlaceType","coords","open","closures","_this$place","_this$place$salespoin","salespoint","openingHours","kind","OpeningHoursKind","Closure","allTradingPlacesVisible","allValue","keys","key","value","toogleMobileSalesPoint","mobileHideSalesPoint","mobileFilterOpen","_this$map","remove","addGeoJson","setStyle","strokeColor","strokeWeight","visible","_this4","query","has","geocode","address","region","componentRestrictions","results","GeocoderStatus","OK","geometry","types","take","ZERO_RESULTS","set","suggestedPlaces","ChargeOrderInstructionType","FuelTypeLimitationReasonOrder","DERIVED_FROM_VEHICLE_REGISTER_DATA","VEHICLE_NOT_FOUND_IN_VEHICLE_REGISTER","INVALID_VEHICLE_STATUS_IN_VEHICLE_REGISTER","MISSING_OR_INVALID_VEHICLE_FUEL_TYPE_IN_VEHICLE_REGISTER","MISSING_OR_INVALID_VEHICLE_EMISSIONS_IN_VEHICLE_REGISTER","OrderRecapViewModelNavigationName","OverlayValidity","OrderRecapViewModel","_dec10","_dec11","_dec12","_dec13","_dec14","_dec15","_dec16","_dec17","_dec18","_dec19","_dec20","_dec21","_dec22","_dec23","_dec24","_dec25","_dec26","_dec27","_dec28","_dec29","_dec30","_dec31","_dec32","_dec33","_dec34","_dec35","_dec36","_dec37","_dec38","_dec39","_dec40","_dec41","_dec42","_dec43","timeService","vehicleService","summaryViewModelFactory","unsubscription","shouldProcessFuelTypeLimitations","statusNavigation","getStatusSteps","subscriptions","_descriptor19","_descriptor20","_descriptor21","_descriptor22","_descriptor23","_descriptor24","vehicleChargeOrderInstructions","vehicleChargeValidityInstructions","loading","summaryViewModel","onContinue","onBack","_superprop_getOnActivate","isMobile","stepper","onLoadingChange","isChargesModified","some","_isModified","resetObservables","persistChargeOrder","loadVehicleInformation","goBackIfNeeded","flatMap","licensePlates","BatchOrderViewModel","getElementById","emptyState","isDifferentTimeZone","isFetched","isServerTimeSame","serverTime","currentServerTime","chargeOrderCharges","translateVehicleCount","translateChargeLabel","chargeLabel","exemptionRecommendationVisible","exemptionLicensePlates","possibleExemptionVisible","possibleExemption","overlayExemptionVisible","_this$overlapsExempti","exemptions","instructionType","VehicleRegisterFuelTypeBasedExemption","overlapsExemption","overlayExemptionRecommendationHidden","overlayVisible","overlays","exemption","_this$overlapsExempti2","_this$overlapsExempti3","_exemption$vehicles$m","_exemption$vehicles","_exemption$vehicles2","overlapVehicles","o","existingPlates","Set","vehicles","v","uniqueOverlapVehicles","unverifiedExemption","VehicleUnverifiedWithVehicleRegister","disabledExemption","VehicleRegisterVerificationDisabled","_unverifiedExemption$","_unverifiedExemption$2","_disabledExemption$ve","_unverifiedExemption$3","uniqueDisabledVehicles","exemptionIdentifiedPossibleLicensePlate","exemptionsIdentifiedPossible","possibleExemptions","overlaysRemoveDisabled","overlay","selected","countRecommendation","overlayRecommendationVisible","overlayLicensePlates","overlayRecommendationHidden","possibleExemptionIds","allOverlaysSelected","getMappedExemptions","instructions","IdentifiedPossibleExemption","i","possibleExemptionId","Math","random","toString","possibleExemptionReason","exemptionReasonWarning","possibleExemptionReasonIds","translateFuelTypeLimitationLink","FuelTypeLimitationReason","DerivedFromVehicleRegisterData","text","translateWithLink","link","translateFuelTypeLimitation","secondCode","getMappedPossibleExemptions","_i$fuelTypeLimitation","_i$fuelTypeLimitation2","fuelTypeLimitation","limitationReason","fuelTypeLable","translateFuelLabel","allowedFuelTypeId","formatPrice","price","fuelTypeId","_fuelTypes$find","fuelType","t","sessionStorage","removeItem","showDetail","index","detail","detailIndex","selectAllOverlays","idOverlay","possibleExemptionReasonId","matchingReason","exemptionReason","groupByOverlapTypes","reduce","acc","obj","overlapTypes","groupByInstructionTypeType","groupByPossibleExemptionReason","groupByCountry","filterByInstructionType","groupedInstructions","isFuelTypeLimitation","IdentifiedFuelTypeLimitation","filterIdentifiedPossible","isIdentifiedPossible","_data$payload$chargeO","chargeOrderInstructionGroups","exemptionsMapped","exemptionsMappedIdentifiedPossible","possibleExemptionsMapped","ChargeVehicleWarningReasonOrder","_a$fuelTypeLimitation","_a$fuelTypeLimitation2","processFuelTypeLimitations","_this$possibleExempti","vehiclesToMove","_loop","_exemption$fuelTypeLi","_loop4","originalCharge","vehiclesByOriginalCharge","vehiclesToMoveToNewCharge","_loop2","allSameFuelType","every","_this4$chargeTypesSer","_originalCharge$_pric","_originalCharge$_pric2","_originalCharge$_pric3","_fuelTypeId","_priceListItems","chargePriceList","chargeTypeId","newChargesMap","_loop3","_originalCharge","_originalCharge$licen","validSinceKey","_hasImmediateValidity","dateToIsoDate","targetKey","targetCharge","storedCharge","_originalCharge$valid","_originalCharge$valid2","_storedCharge$validSi","_storedCharge$validit","originalValidSince","storedValidSince","l","_originalCharge$valid3","_originalCharge$valid4","_originalCharge$_vali","_originalCharge$valid5","_originalCharge$_vali2","_originalCharge$valid6","_this4$chargeTypesSer2","_newCharge$_priceList","_newCharge$_priceList2","_newCharge$_priceList3","newCharge","addChargeOrderItem","hasImmediateValidity","_validUntilDate","_validUntil","_validUntilOverlap","_chargeTypeId","_allowedDelete","persistStoredChargeOrder","_this5","chargeValidityInstructionGroups","validities","setChargeValidityByInstructions","overlaps","groupedOverlaps","overlapsCharge","ChargeOverlapType","ChargeOverlap","ExemptionOverlap","requestedValidity","isSamePragueDay","overlappingCharges","overlapPeriod","_o$vehicle$licensePla","state","VALID","expiration","_this6","_loop5","nowOrSince","getCurrentServerTime","endOfCzechDay","nowTime","resetChargeOrder","chargePrice","formatValidFrom","formatDateTime","formatValidTo","formatExpiration","date","formatOverlayState","getCountry","summary","exemptionToHide","ex","_this7","_charge$licensePlates","_this7$chargeOrderSer","_this7$overlays","_this7$overlapsExempt","_this7$exemptions","_this7$possibleExempt","orderItem","_ex$vehicles","_vehicle$licensePlate","_ex$vehicles2","_ex$vehicles3","_vehicle$licensePlate2","_ex$vehicles4","_this8","_exemption$vehicles3","_this8$chargeOrderSer","_this8$overlays","_this8$overlapsExempt","_this8$exemptions","_this8$exemptions2","_this8$exemptionsIden","_ex$vehicles5","_vehicle$licensePlate3","_ex$vehicles6","_ex$vehicles7","_vehicle$licensePlate4","_ex$vehicles8","_this9","identifiedPossible","_identifiedPossible$v","_this9$chargeOrderSer","_this9$overlays","_this9$overlapsExempt","_this9$exemptions","_this9$exemptionsIden","_ex$vehicles9","_vehicle$licensePlate5","_ex$vehicles0","_this0","_this0$overlays","_this0$overlays2","_this0$overlapsExempt","_this0$exemptions","_this0$exemptionsIden","selectedLicensePlates","s","_ex$vehicles1","_vehicle$licensePlate6","_ex$vehicles10","_ex$vehicles11","_vehicle$licensePlate7","_ex$vehicles12","_this1","_this1$overlapsExempt","_this1$overlays","_this1$overlapsExempt2","_this1$exemptions","_this1$exemptionsIden","_ex$vehicles13","_vehicle$licensePlate8","_ex$vehicles14","_ex$vehicles15","_vehicle$licensePlate9","_ex$vehicles16","_this10","_ref6","shouldProcess","getChargeOrderInstructions","getChargeValidityInstructions","_x4","chargeOrderItem","_visible","LoadingPane","_jsx","className","role","DocumentsUploadedViewModel","notice","titleRegExp","RegExp","descriptionRegExp","Notice","REFUND_REQUEST","noticeTitle","noticeType","EXEMPTION","OMISSION","LICENSE_PLATE_CHANGE","getFile","base64ToFile","documentUrl","title","canProceedToExternalService","isContinueDisabled","canPrintNotice","canSaveNoticePDF","canCancelNotice","cancel","savePDF","getDocumentURL","promise","printPDF","printJS","continue","Factory","container","LocalizationService","VehicleInfoViewModel","config","showCountryWarning","CountryIdValidationRules","ChargeOrderLicenseItem","_showCountryWarning","initByLocalization","languageCode","_this$countries$find","countries","isDisabled","context","defaultCountries","isEnumLoaded","label","deactivate","close","loadCountries","inputValue","oldCountry","_this$defaultCountrie","oldLicensePlate","VehicleChangeDuringValidityRequest","_originalLicensePlate","EnumService","SingleBankTransferNavigationName","SingleBankTransferViewModel","BankTransferViewModel","ChargeTypeViewNavigationName","ChargeTypeViewModel","chargeOrderChargeItem","vehicleRepository","chargeSelectViewModelFactory","validSinceSelectVMFactory","_this$timeService$cur","chargeSelectViewModel","validSinceSelectViewModel","debouncedCheckProposedValidity","checkProposedValidity","lastResolveGetProposedValidity","onlyResolvesLast","getProposedValidity","manualValidator","ManualEntityValidator","getPostponedValidityMaxDays","preselectChargeType","checkPriceListItem","proposedPurchageCharge","handleProposedPurchase","ChargeTypeIdValidationRules","required","manualValidation","proposedValidityExist","updateDateRangeValidation","proposedValidityReaction","proposedValidityExistReaction","checkWarnings","_chargeOrderItem$_pri","_this2$timeService$cu","priceListItem","validSinceString","updateChargeOrderItem","_chargeOrderItem$_pri2","_chargeOrderItem$_pri3","checkServerTime","_data$payload$date","_proposedPurchase$val","_this3$timeService$cu","proposedPurchase","_this4$chargeOrderSer","earliestPossibleDate","_earliestPossibleValidSinceDate","earliestPossibleValidSinceDate","isSingleCharTypeToday","findChargeType","isBeforePosibble","isBefore","startOfCzechDay","validSinceDaysBefore","dateStringWithServerZone","proposedValiditySetAlready","showExemptionOverlap","showChargeOverlap","_this$chargeTypesServ","_chargeOrderItem$_pri4","_chargeOrderItem$_pri5","updatedProposed","zonedCZTimeToUtc","_proposedValidityExist","_singleChargeType","validSinceDateString","proposedValidity","proposedValidityFlag","checkingProposedValidity","isNow","ChargeValidityInstructionsResponse","setProposedValidity","validChargesResponse","_validChargesResponse","_validChargesResponse2","_validChargesResponse3","_validChargesResponse4","isSameOrBeforePragueDay","ContactViewModel","FuelTypeViewModel","isValid","_this$validSinceSelec","removeError","dateFormat","minDate","format","maxDate","maxValidSince","postponedValidityRule","postponedValidityMaxDays","addError","setVisitedProperty","_this$validSinceSelec2","removeDateRangeValidationErrors","objectsForValidation","ChargeOrderService","ChargeTypesService","TimeService","AppRouter","VehicleRepository","ChargeTypeSelectViewModel","ValiditySelectViewModel","EventBus","repeatIfFailed","ContactViewNavigationName","chargeOrderContactItem","contactViewModelFactory","gdprInfoViewModelFactory","contactViewModel","gdprInfoViewModel","EmailValidationRules","EmailConfirmationValidationRules","EmailNotificationValidationRules","onEmailAddressNotification","checkStoredNotificationPreferences","isSingleChargeType","isSmartRedirect","isEmailSet","resetNotificationPreferences","RecapViewModel","ContactViewModelCommon","GdprInfoViewModel","TurnstileViewModel","turnstileService","shareToken","token","turnstileInfo","info","turnstileError","showInteractive","resetError","setError","resetToken","setInstance","instance","current","TurnstileService","setToken","setInfo","SinglePaymentRetryNavigationName","PaymentRetryNavigationName","SinglePaymentRetryViewModel","PaymentRetryViewModel","MultiPaymentRetryNavigationName","MultiPaymentRetryViewModel","CustomerRefundApplicationOrderSourceType","FuelTypeViewNavigationName","chargeOrderFuelItem","fuelTypeSelectViewModelFactory","fuelTypeSelectViewModel","FuelTypeValidationRules","addEventListener","clickOutside","checkFuelTypeLimitation","checkFuelType","removeEventListener","_this$chargeOrderFuel","_fuelTypeLimitation","_fuelTypes$find$name","showInfoAboutVehicles","_this$chargeOrderFuel2","isCzech","translateInfoAboutVehicle","LicenseViewModel","FuelTypeSelectViewModel","RecapViewNavigationName","payOrder","repository","paymentService","storage","paymentViewModelFactory","termsAgreementViewModelFactory","orderRecapitulationViewModelFactory","notificationPreferencesRecapViewModelFactory","paymentViewModel","termsAgreementViewModel","orderRecapitulationViewModel","notificationPreferencesRecapViewModel","ChargeOrderValidationRules","paymentType","getGooglePayMetadata","getGooglePayMetadataSuccess","receivedGooglePayMetadata","getGooglePayMetadataFailure","googlePayMetadataFetchFailure","submitGooglePayPaymentFailure","googlePayPaymentFailure","submitGooglePayPaymentBrowserFingerprint","googlePayPaymentBrowserFingerprint","paymentEmailAddressInvalid","onPaymentEmailAddressInvalid","_termsAgreement","isRequestBlocked","checkRecapStoreData","PaymentType","PayGate","Transfer","transferDisabled","activate","onOrderIsCompleteCheck","paymentCompleteAlert","isOrderComplete","chargeOrderStatus","ChargeOrderStatus","Paid","PaidBankTransfer","isAfter","_this$chargeOrderServ","isChecked","isTransferPayment","buttonTextKey","locale","isGooglePayMetadataReady","isFetchingGooglePayMetadata","googlePayMetadata","isGooglePayPaymentMethodSelected","GooglePay","shouldShowNotificationPreferences","getOrderStatus","order","resetTermsAgreement","googlePayPaymentFingerprint","googlePayFingerprintProcessed","validateOrder","payment","isChargeOrderValid","isNotificationPreferencesValid","PaymentService","ChargeOrderStorageRepository","PaymentViewModel","TermsAgreementViewModel","OrderRecapitulationViewModel","NotificationPreferencesRecapViewModel","googlePayPaymentBrowserFingerprintLoaded","ChargeValidityInstructionGroupResponse","ChargeValidityOverlapInstructionsGroupResponse","ChargeOverlapResponse","ChargeValidityInstructionGroupsResponse","ChargeOrderInstructionGroupResponse","FuelTypeLimitationResponse","ChargeOrderInstructionGroupsResponse","VehicleChargingInstructionsResponse","GET_VEHICLE_REGISTRATIONS_REQUEST_FAILURE","getChargeOrderInstruction","ChargeOrderInstructionsResponse","postCharges","getChargingInstruction","reqObject","has_immediate_validity","price_list_item_id","valid_since_date","charge_id","clearGet","PayGateCommonPaymentStatus","IsdsResponse","conceptIdent","PriceListModuleNavigationName","PriceListViewModel","_this$chargeTypesServ2","isCSLocale","fuelTypes","sortedFuelTypes","getAvailableFuelTypesSorted","FuelType","Electromobile","isDeleted","translateTitle","translateFuelType","fuelTypeDescription","NaturalGas","PhevWithLimitedCo2","isDescriptionTooLong","chargeTypesWithPrices","validChargeTypes","validityDays","hasPrices","getPricesWithFuelTypes","SummaryMultiEshopViewModel","isFinal","disabledButton","priceService","statusOrder","chargeRegex","priceRegex","tp","multiEshopPaymentUpdate","onPaymentDataUpdated","paymentMultiEmailAddressInvalid","termsAgreement","showGooglePaymentButton","_this$statusOrder","validateMultiOrder","unsubsribe","_this$statusOrder2","vehicleCountForChargeType","count","chargeTypeTotal","uniqueCharges","arr","encoder","JSON","stringify","decoder","parse","Array","unique","d","grandTotal","total","PriceService","ExemptionModuleNavigationName","ExemptionNoticeViewModel","ExemptionViewModel","ExemptionDocumentsUploadedViewModel","documentsVMFactory","exemptionViewModel","tryActivateChild","childToActivate","segments","splitUrlSegments","ExemptionDocumentsUploadedViewModelNavigationName","ExemptionNoticeNavigationName","canNavigate","onChildNavigated","_superprop_getFindNavigationChild","noticeString","getItem","_noticeBase64","module","exports","ReactGA","gaId","debug","gaDebug","plugin","require","initializeSentry","monkeyPatchValidationControlBase","monkeyPatchHashNavigationAdapter","querySelectorAll","root","componentId","dataset","reactComponent","Component","getWidgetById","ReactDOM","render","areAnalyticsCookiesEnabled","registerOnAllowCookieCallback","serviceWorker","LicensePlateChangeModuleNavigationName","LicensePlateChangeNoticeViewModel","LicensePlateChangeViewModel","LicensePlateChangeDocumentsUploadedViewModel","licensePlateChangeViewModel","LicensePlateChangeDocumentsUploadedViewModelNavigationName","LicensePlateChangeNoticeNavigationName","OmissionModuleNavigationName","OmissionNoticeViewModel","OmissionViewModel","OmissionDocumentsUploadedViewModel","omissionViewModel","OmissionDocumentsUploadedViewModelNavigationName","OmissionNoticeNavigationName","RefundModuleNavigationName","RefundRequestNoticeViewModel","RefundRequestViewModel","RefundRequestDocumentsUploadedViewModel","refundRequestViewModel","RefundRequestDocumentsUploadedViewModelNavigationName","RefundRequestNavigationName","OutagesWidgetViewModel","outagesViewModelFactory","outagesViewModel","SystemComponent","OTHER","ChargeTypesModuleNavigationName","ChargeTypesViewModel","currency","chargeTypes","populatePrices","eshopUrl","chargeTypeDescription","formatEcoPriceRange","minPrice","maxPrice","LanguageCode","En","formatNumber","email","isEmail","emailConfirmation","InputEmail","AlertVariant","AlertViewModel","notification","variant","onClose","canBeNavigationActiveScreen","OutagesViewModel","allowToClose","hasAnyActiveOutage","outages","outage","outageService","getOutageStatus","OutageStatus","ACTIVE","PAY_GATE","eshopActiveOutage","payGateVisibleOutages","ISDS","isdsVisibleOutages","ESHOP","otherVisibleOutages","outageMessage","getMessage","closeOutage","OutageService","toggle","isExpanded","gdprLinkUrl","text2WithLink","GDPRViewModel","show","gdprVisible","OrderSummaryViewModel","chargeService","chargeTa","fuelTa","summaryTg","vehicleInfo","authorizationCode","displayAuthCode","_status","Deferred","openRedirectLink","_this$chargeOrder$_pr","_this$chargeOrder$_pr2","_proposedAfterPurchaseRedirect","redirectUrl","getPriceListItemFuelType","_item$validity","_item$validity2","_item$validity3","_item$validity4","OrderOutageViewModel","_document$getElementB","classList","add","_document$getElementB2","chargeTypeService","_this$chargeTypeServi","_this$chargeTypeServi2","_this$chargeTypeServi3","chargeOrderItemTotal","_item$licensePlates","_chargeOrder$charges","GaService","sendOrderInfo","chargeOrderData","toFixed","valid","product","execute","sku","quantity","revenue","affiliation","LocaleProvider","ClientLocaleProvider","changeLocale","localeChanged","SESSION_STORAGE_ISDS_REQUEST_SOURCE_KEY","ISDS_CALLBACK_DESTINATION_PATH","ISDS_CONCEPT_CHECK_FAILURE","ConceptStatus","ISDSService","isdsRepository","publishConceptSuccess","exemptionISDSConceptStatusCheckSuccess","omissionISDSConceptStatusCheckSuccess","licensePlateChangeISDSConceptStatusCheckSuccess","refundRequestISDSConceptStatusCheckSuccess","publishConceptError","scope","setTag","setExtras","exemptionISDSConceptStatusCheckFailure","omissionISDSConceptStatusCheckFailure","licensePlateChangeISDSConceptStatusCheckFailure","refundRequestISDSConceptStatusCheckFailure","generateISDSRedirectURL","redirect","ISDSUrl","searchParams","append","ISDSAtsId","generateISDSConceptRedirectURL","redirectToISDS","persistCallbackDestination","setItem","redirectToISDSConcept","conceptStatus","sessionId","statusCode","Success","DeclinedByUser","CustomerRatingScore","gdprVMFactory","isSingleEshop","isMultiEshop","gdprViewModel","GDPR","storedEmailNotification","storedSmsNotification","chargeOrderItems","_origin","_this$chargeService$f","notificationInfoMulti","notificationInfoSingle","disableUnbreakableRules","translateMulti","translateNotification","KioskNavigationName","KioskViewModel","mapButtonContainerClassName","RoadMapNavigationName","RoadMapViewModel","mapButtonClassName","CodeChangedAlertViewModel","onHide","requestClose","EmailInputViewModel","inputEmail","emailUsageInfo","attribute","again","translateConfirmation","ChargePermittedActionResponse","EmailAddressChangePermittedActionResponse","NotificationPreferencesChangePermittedActionResponse","ObtainingPaymentConfirmationPermittedActionResponse","ChargePermittedActionsResponse","CounterpartyBankAccountResponse","ChargeRefundResponse","ChargeDetailResponse","ChargeRepository","includeInvalid","include_invalid","version","ChargePriceListsResponse","chargeValidity","queryValidSince","valid_since","formatISO","turnstileToke","editChargeValidity","request","clearPut","_ref5","_x5","editVehicle","newCountryId","newLicensePlate","_x6","editActiveChargeVehicle","_ref7","_x7","_ref8","_x8","sendChargePaymentConfirmationEmail","_ref9","_x9","downloadPaymentConfirmation","_ref0","_x0","isSafari9OrLess","localTime","getTime","czechTimeZoneDiff","utcToZonedTime","czechTimeZone","zonedTimeToUtc","czechDate","dateString","z","timeZone","isBeforePragueDay","dataDate","getFullYear","m","String","getMonth","padStart","getDate","tzOffsetMin","getTimezoneOffset","sign","absMin","abs","hh","floor","mm","iso","addSeconds","subDays","getTimeZoneLabel","formatted","Intl","DateTimeFormat","timeZoneName","edazAddDays","amount","dateToAddDays","setDate","addDays","czechTodayDate","disabledDaysRange","before","paidDate","maxValidAmount","after","minValidSince","SelectPaymentMethodViewModel","dateRegexp","linkRegexp","_this$chargeOrderServ2","payGateDisabled","payGateActiveOutage","chargeTypeSelectionUrl","paymentTypeLabel","czechEarliestBankTransferDate","czechDisplayDate","enableGooglePay","navigateToChargeTypeSelection","documentPathRegex","onAgreementChanged","termAgreementError","getValidationMessage","translateTermsAgreement","termsAgreementDocumentPath","CSTermsAgreementDocumentPath","DETermsAgreementDocumentPath","ENTermsAgreementDocumentPath","chargeOrderChargeItemId","chargeViewModelFactory","chargeTypeViewModels","includedChargeTypeIds","chargeA","chargeB","showLabel","chargeTypeError","handleIdle","counter","IDLE_PROMPT_TIMEOUT","intervalId","setInterval","_this$serverTime","chargeValidityRules","clearTimeoutInterval","clearInterval","IDLE_TIMER_TIMEOUT","IDLE_TIMER_DEBOUNCE","_this2$serverTime","earliestPossibleValidSinceDaysBefore","filteredChargeValidityRules","rule","validUntilDate","fuelTypeViewModelFactory","fuelTypeViewModels","displayTooltip","includedFuelTypeIds","fuelTypeError","SESSION_STORAGE_EXTERNAL_SERVICE_CALLBACK_DESTINATION_URL","host","origin","path","pathname","isIOS","isSafari","parseFloat","browserVersion","ChargeOrderItem","ChargeOrderItemValidationRules","hasRequiredLength","min","max","isLicensePlate","_licensePlateConfirmation","ChargeOrderItemBatchValidationRules","VEHICLE_CATEGORY_WITHOUT_CHARGE_OBLIGATION","IDENTIFIED_POSSIBLE_EXEMPTION","MULTIPLE_VEHICLES_FOUND_IN_VEHICLE_REGISTER","CHARGE_WAS_NOT_PURCHASED_BEFORE","UNUSED_CHARACTERS_IN_LICENSE_PLATE","VEHICLE_UNVERIFIED_WITH_VEHICLE_REGISTER","VEHICLE_REGISTER_VERIFICATION_DISABLED","LazyInitializationService","ApplicantPersonViewModel","PersonViewModel","person","showBirthdate","GDPRMessage","_validateBirthDate","ExemptionReason","defaultExemptionReason","foreignExemptionReasons","NoticePowerOfAttorneyRules","_powerOfAttorneyFilesBase64","requiredIf","condition","entity","_signatureType","SignatureType","DataBox","vehicleOperator","naturalPerson","isRepresentedByProxy","isLegalPerson","customMessage","NoticeTechnicalLicenseRules","_technicalLicenseFilesBase64","_entity$vehicle","Exemption","rules","exemptionReasonId","unbreakableSpaces","regExp","unbreakableHyphenWords","formatTextWithUnbreakableRules","unbreakableSingleSyllableWords","BaseLocalizationService","localizationProvider","substring","toUpperCase","size","translateError","errorCode","translateUploader","drag","or","select","datePickerLocalization","days","getDays","strings","months","month","weekdaysLong","weekdaysShort","firstDayOfWeek","indexOf","fromDate","toDate","todayButton","model","options","formatTime","time","num","currencyCode","Number","priceLocaleCode","breakableHyphenWords","_parts$find","_parts$find2","formatter","NumberFormat","currencyDisplay","currencySign","minimumFractionDigits","parts","formatToParts","currencyPart","part","startsWith","numberOnly","trim","ProposedChargeValidityResponse","ChargeManagementModuleDeeplink","RootViewModel","EshopViewModel","MultiEshopViewModel","CustomerReviewViewModel","notificationService","appRouter","urlAdapter","HashNavigationAdapter","start","NotificationService","activeChild","language","languages","locales","alerts","notifications","permanent","NotificationType","ERROR","DANGER","INFO","SUCCESS","WARNING","ContactMultiEshopViewModelNavigationName","ContactMultiEshopViewModel","ConductorAllChildrenActive","clear","resetRedirect","isTransferDisabled","onlySingleChargeType","singleCharges","SummaryViewModel","PaymentMultiEshopViewModelNavigationName","PaymentMultiEshopViewModel","selectPaymentMethodViewModelFactory","idleIntervalId","paymentFailed","paymentValidSinceInvalid","handlePopState","initChildren","submitGooglePayPaymentSuccess","googlePayPaymentSuccess","submitGooglePayPaymentDeferred","googlePayPaymentDeferred","googlePayPayment3DSecureLoaded","googlePayPaymentStatusChanged","_superprop_getOnDeactivate","isWholeOrderValid","selectPaymentMethodViewModel","NOTIFICATION_SERVICE_INIT_FAILURE","NOTIFICATION_SERVICE_CONNECTION_ID_UNDEFINED","NOTIFICATION_SERVICE_START_FAILURE","NOTIFICATION_SERVICE_STOP_FAILURE","OUTAGE_ACTIVATED","scrollToTop","paymentLoadingModalToggle","currentOrder","Failed","showGooglePay3DSecureModal","googlePay3DSecureUrl","_payGatePayment$permi","_payGatePayment$permi2","payGatePayment","paymentRetry","PayGatePaymentStatus","IN_PROGRESS","StatusViewModel","DEFERRED","_unused","confirmGooglePayPayment","finalizeGooglePayPayment","handleRetryOnIdle","showIdleModal","idleCounter","onRetryIdleTimeout","closeRetryIdleModal","paymentData","showPaymentLoadingModal","updateOrder","payGateRedirect","MultiEshopModuleNavigationName","orderPaidByBankTransfer","submitGooglePayment","LicensePlateConfirmationValidationRules","ChargeOrderLicenseItemValidationRules","NiaViewModel","niaService","SESSION_STORAGE_NIA_REQUEST_SOURCE_KEY","requestId","initCountriesEnum","afterValidityStart","vehicleSummaryInfo","validitySinceInfo","validityUntilInfo","_this$chargeOrderItem","emailInfo","fuelTypeInfo","markSummaryInfo","priceSummaryInfo","_this$chargeOrderItem2","_this$chargeOrderItem3","hasFuelTypeLimitation","_this$chargeOrderItem4","canEditFuelType","smartRedirectFuelTypeLocked","navigateToStep","step","navigateToFuelType","isNavigating","onNotificationCheckboxChanged","isNotificationEnabled","notificationEmail","notificationPhone","emailValidationError","phoneValidationError","hasValidationError","notificationInfoText","daysWithCount","prefillNotificationEmailIfNeeded","_this$notificationPre2","_this$notificationPre3","enabled","confirmationEmail","navigateToContact","SESSION_STORAGE_CHARGE_ORDERS_KEY","SESSION_STORAGE_CHARGE_ORDER_STATUS_KEY","getLastChargeOrder","getChargeOrders","chargeOrder1","chargeOrder2","_createdAt","shift","getChargeOrder","addChargeOrder","uuidv4","chargeOrders","ordersString","updateChargeOrder","plainNew","isArray","raw","idx","findIndex","ChargeOrder","removeChargeOrder","storeChargeOrders","clearChargeOrders","storeChargeStatus","clearChargeStatus","getChargeStatus","chargeTypeCode","_this$chargeType$_sta","storageItem","_standardPrice","validFuelType","Other","validChargeType","ChargeTypeResponse","FuelViewModel","fuelTypeItem","chargeFuelType","isOtherType","isTypeWithDescription","isDisabledFuelType","closeTooltip","FuelTypeResponse","LegalPersonViewModel","legalPerson","NaturalPersonViewModel","Omission","OperatorViewModel","isRepresentedAsProxy","operator","_isRepresentedByProxy","NaturalPerson","mailingAddress","fullName","birthDate","applicant","naturalPersonViewModel","naturalPersonInputVMFactory","legalPersonViewModel","legalPersonInputVMFactory","LegalPerson","activateProperChildren","isLegal","persistNotice","onApplicantChange","fireImmediately","_this$operator$natura","_this$operator$natura2","_this$operator$natura3","_this$operator$legalP","_this$operator$legalP2","_this$operator$legalP3","companyName","companyRegistrationNumber","companyAddress","isPhoneNumber","requestRecoveryService","_RequestRecoveryService","RequestRecoveryService","runningTimeouts","plannedActions","onBecomeOnline","cancelTask","addTask","performTask","failedCounter","navigator","onLine","MAX_TRIES","delete","setTimeout","TIMEOUT_BETWEEN_STEPS","clearTimeout","propertyKey","descriptor","originalFunction","_len","args","_key","NiaAddress","houseNumber","streetName","postalCode","municipality","NiaResponse","dateOfBirth","firstName","lastName","serializeNotice","classToPlain","excludePrefixes","NoticeViewModel","addFile","allowedFileTypes","isdsHasActiveOutage","isdsActiveOutage","isdsService","service","errorCodeRegexp","UNKNOWN_ERROR_CODE","formatAddress","NIARedirectFailure","niaOperationFailed","loadFiles","number","createChildren","_this3$notice$vehicle","_this3$notice$vehicle2","isNoticeValid","onISDSOutageChanged","rejectedPowerOfAttorneyFiles","rejectedTechnicalLicenseFiles","ISDSSessionIdHandler","creationLoadingModalToggle","uploadDocuments","NiaResponseHandler","niaResponse","word","join","filesSizeErrorMessage","isErrorsVisible","totalFilesSize","fileSize","hasValidation","__validation","documentsUploadEnabled","MAX_FILE_SIZE_IN_BYTES","validateNotice","validVehicleOperator","validNotice","validAttachmentsSizeLimit","validationResult","_validation","_validation2","_validation3","_validation4","isVehicleValid","isApplicantValid","isAttachmentsValid","isVehicleOperatorValid","generalOperationFailed","isdsOperationFailed","isdsConceptFailure","isdsUploadOperationSuccess","isdsConceptStatusCheck","paymentError","showLoadingModal","ElectronicSignature","hasToUploadPowerOfAttorney","hasToUploadTechnicalLicense","isVehicleRegisteredAbroad","powerOfAttorneyErrorMessage","technicalLicenseErrorMessage","redirectToNia","createNotice","_this7$createNotice","ISDSSessionId","files","_this8$createNotice","fetchUrl","_noticeURL","_noticeBlob","fetch","now","blobToBase64","_this$notice$vehicle","OfficiallyVerifiedSignature","processAcceptedFiles","acceptedFiles","fileBase64","processFileRejections","fileRejections","fileRejection","errors","addPowerOfAttorneyFiles","addTechnicalLicenseFiles","setFile","removeFile","deleteFile","currentPowerOfAttorneyFilesBase64","powerOfAttorneyFile","currentTechnicalLicenseFilesBase64","technicalLicenseFile","setDefaultCountryId","onRecapchaBeforeInteractive","translateWarningReason","translateOverlapReason","translateOverlappingCharge","chargeOverlap","collapsed","resetSecondStep","showSecondStep","hideConfirmChangeButton","secondStepErrorMessage","warningMessages","setEmailAddress","WEBSOCKET_CONNECTION_FAILURE","websocketError","CHANGE_NOT_ALLOWED_ANOTHER_CHARGE_FOR_VEHICLE_WITH_VALIDITY_OVERLAP_EXISTS","changeNotAllowedAnotherChargeForVehicleWithValidityOverlapExistsError","genericError","emailInputRequired","serviceStop","ENV_PRODUCTION","parent","_window","edazConfig","tokenUrl","REACT_APP_TOKEN_URL","process","grantType","REACT_APP_FLOW","clientId","REACT_APP_CLIENT_ID","clientSecret","REACT_APP_CLIENT_SECRET","REACT_APP_SCOPE","eshopPaymentAPIScope","REACT_APP_ESHOP_PAYMENT_API_SCOPE","accessTokenKey","accessTokenStoreTimestamp","sentryDSN","REACT_APP_SENTRY_DSN","environment","REACT_APP_ENVIRONMENT","notificationWsHub","REACT_APP_NOTIFICATION_WS_HUB","paymentGateway","REACT_APP_PAYMENT_GATEWAY","REACT_APP_CZECH_ID","apiUrl","REACT_APP_API_URL","REACT_APP_API_ENDPOINT","REACT_APP_ISDS_URL","REACT_APP_ISDS_ATS_ID","START_OF_SALE","REACT_APP_START_OF_SALE","ORDER_ITEM_MAX_COUNT","linkHost","REACT_APP_GDPR_LINK_HOST","REACT_APP_TERMS_AGREEMENT_DOCUMENT_PATH_CS","REACT_APP_TERMS_AGREEMENT_DOCUMENT_PATH_EN","REACT_APP_TERMS_AGREEMENT_DOCUMENT_PATH_DE","googleMapsApiKey","REACT_APP_GOOGLE_MAPS_API_KEY","turnstileSiteKey","REACT_APP_TURNSTILE_SITE_KEY","REACT_APP_GA_ID","REACT_APP_GA_DEBUG","ReceiptEmailModalViewModel","emailInputViewModelFactory","onCustomSubmit","onSubmit","sendChargePaymentConfirmationEmailModalClosed","ChargeManagementService","ChargeVehicleWarningReason","_getFile","localForage","_setFile","_deleteFile","_isInitialized","_instance","_token","_error","_info","_context","console","warn","FullNameValidationRules","prohibitedCharacters","isLength","BirthDateValidationRules","dateRange","addYears","AddressValidationRules","EmailAddressValidationRules","PhoneNumberValidationRules","Person","CustomerRefundApplicationReason","Enum","fuelTypeOrder","Biomethane","LicensePlateChange","BlurAutomaticEntityValidator","AutomaticEntityValidator","hasBlurValidation","propertyName","visitedProperties","entityValidationRules","errorsImmediatelyVisible","typedTarget","defineProperty","ValidationControlBase","_this$props","props","onValueChanged","noValidation","onBlur","otherProps","_objectWithoutProperties","_excluded","modifiedOnBlur","getValidationError","EdazPhoneInput","__proto__","TaggedInput","RefundRequestNotice","reason","otherReasonText","bankAccount","Eshop","NiaService","niaRedirect","getTooltipPosition","ChargeManagementLicensePlateChangeViewModel","exemptionInfo","_exemptionState","ExemptionState","Exempted","C","O","P","registrationState","exemptionKeys","validChargesInfo","_validCharges","validCharge","untilRegex","sinceRegex","vehicleChangeBeforeValidity","vehicleChangeDuringValidity","isSameVehicle","_this$newVehicle","_this$newVehicle2","newVehicle","putChargeVehicleFailure","putChargeVehicleSuccess","vehicleRegistration","vehicleHasValidCharges","emailUpdated","onEmailUpdated","originalVehicleInfoViewModel","_this$newVehicle3","removeSameVehicleErrors","_this$newVehicle4","_this$newVehicle5","_this$newVehicle6","_this$newVehicle7","sameVehicleCheck","checkRsvValidity","_this$newVehicle8","_this$newVehicle9","_this$overlappingChar","secondStepLoading","chargeOrderInstructionsResponse","chargeValidityInstructionsResponse","getSecondStepErrorMessage","_chargeOrderInstructi","newMessages","warningReasons","_chargeValidityInstru","_chargeValidityInstru2","_chargeOrderInstructi2","_chargeValidityInstru3","overlap","_this$isDifferentTime","hasVehicleRegisterExemption","exemptionOverlapMessage","isSuccessful","emailInputViewModel","source","validCharges","RequestSource","NewLicensePlate","isGivenExemption","_this2$chargeTypesSer","_priceListItem$find","_matchingFuelType$nam","getPriceItemList","_this2$charge","matchingFuelType","validateFullName","validateAddress","validateBirthDate","validateNaturalPerson","CompanyNameValidationRules","CompanyAddressValidationRules","CompanyRegistrationNumberValidationRules","validateCompanyName","validateCompanyRegistrationNumber","validateLegalPerson","scrollTo","documentElement","left","top","offset","el","rect","getBoundingClientRect","scrollLeft","pageXOffset","scrollTop","pageYOffset","behavior","targetElement","rootElement","invalidElements","getElementsByClassName","topOffsets","invalidElement","Open","isTrue","ServerTimeResponse","lastModifiedDate","slice","reader","FileReader","readAsDataURL","onloadend","DomesticTransferPaymentResponse","DomesticBankAccountResponse","SepaTransferPaymentResponse","SystemComponentOutageLocalizationResponse","SystemComponentOutageResponse","ChargePriceListResponse","isMulti","chargeOrderRepository","countRegex","indexRegex","postChargeOrder","orderItemTotal","attachOrderValidators","createNewChargeOrder","eshopOutage","payGateOutage","areOrderItemsValid","itemValidation","orderIsEmptyOrIncomplete","isOrderValid","isNotificationPreferences","formatOrder","serverDate","startOrderCreationProcess","serviceStart","POST_CHARGE_ORDER_FAILURE","setChargeOrderStatus","getChargeOrderStatus","clearChargeOrderStatus","_isProposedPurchase","genericInfo","infoKey","translateNotificationInfo","reopenOrder","_wasReopen","daysValidFor","setChargeTypes","prefillPremadeOrder","_proposedPurchase$veh","_proposedPurchase$veh2","_proposedPurchase$val2","_proposedPurchase$val3","_proposedPurchase$val4","_proposedPurchase$ema","_proposedPurchase$ema2","_proposedPurchase$ema3","_proposedPurchase$veh3","_proposedPurchase$veh4","_this3$chargeTypeServ","allChargeTypes","proposedChargeTypeId","invalidPrefilledChargeType","closestValidCharge","_orderItem$_priceList","proposedChargeType","isSingleDayCharge","_proposedPurchase$not","_proposedPurchase$not2","_proposedPurchase$not3","_proposedPurchase$not4","_proposedPurchase$not5","_proposedPurchase$not6","_proposedPurchase$not7","_proposedPurchase$not8","smartRedirectRequiresReset","validateSmartRedirectVehicle","_orderItem$validity","_orderItem$_hasImmedi","_orderItem$validity2","orderInstructions","_orderInstructions$fu","hasRequiredValidityData","_orderItem$validity3","validityInstructions","_orderItem$validity4","filterEmptyChargeOrderCharges","noneEmptyOrderItems","chargeValidFor","isSingleOrder","completion","subscribeToPostChargeOrderResult","VALID_SINCE_INVALID","FUEL_TYPE_NOT_ALLOWED","paymentFuelTypeNotAllowed","CHARGE_ORDER_REQUEST_PROCESSING_FAILED","PERSISTENCE_ORDER_UPDATE_FAILURE","paymentMultiFuelTypeNotAllowed","updatePaymentMethod","transferPaymentInstructions","newOrder","copyChargeOrderDeep","proposedAfterPurchaseRedirect","silent","hasValidItems","orderIsInvalid","multiOrderIsInvalid","chargeOrderId","getStoredChargeOrder","stored","clearValidation","isEqual","plain","removeChargeOrderItem","splice","updateChargeOrderStatus","paymentResult","remoteOrder","FAILURE","_res$transferPayment","_res$transferPayment2","_res$transferPayment3","_res$transferPayment4","res","transferPayment","_earliestPossibleValidSinceDaysBefore","object","ChargeChangeRejectionReason","GooglePayMetadata","apiVersionMinor","paymentMethodType","allowedCardNetworks","allowedCardAuthMethods","tokenizationSpecificationType","gateway","gatewayMerchantId","googlePayMerchantId","merchantName","clearSearchParameters","history","replaceState","hash","SystemComponentOutagesResponse","VehicleChangeDuringValidity","BaseEnumService","enumCache","initializationInProgress","when","fetchEnum","enumName","enums","hasOwnProperty","getEnumAPIVersionByName","currentlyFetchingEnums","enumValues","getEnum","lazyValue","_superprop_getValue","ChargeOrderChargeItem","ChargeOrderFuelItem","ChargeOrderContactItem","BoxWidgetContext","createContext","BoxWidgetView","init","identifier","viewModel","setViewModel","useState","useEffect","widget","release","REACT_APP_VERSION","outagesWidget","View","useLifecycle","fallback","Alert","compareStringsWithIndexes","aArray","bArray","differentCharacterIndexes","character","licensePlateChangeValidator","originalLicensePlate","originalProperty","sameLength","differentCharacters","constraints","invalidLicensePlateChange","TimeSpan","hours","milliseconds","microseconds","nanoseconds","minutes","seconds","totalDays","totalHours","totalMilliseconds","totalMicroseconds","totalNanoseconds","totalMinutes","totalSeconds","OpeningHoursIntervalResponse","OpeningHoursWeekResponse","ChargePriceListItemResponse","RegisteredChargeResponse","ChargeRegistrationsResponse","Payment","variableSymbol","specificSymbol","paymentAmount","iban","dueDate","priceListStorage","chargeTypesStorage","getUntilValidity","getValidity","priceLists","_chargePriceListItemsFlattened","_chargePriceList","addPriceList","_chargeTypes","_fuelTypes","addChargeTypes","_arguments","getChargeTypes","generateMockChargeType","Annual","Days10","Days30","_this$_chargePriceLis","getPriceList","_this$chargePriceList","isMockChargeType","_this$chargePriceList2","_this$chargePriceList3","_prices$find","prices","standardFuelType","standardPrice","ecoPrices","_ecoPriceMin","_ecoPriceMax","getPrice","_this$getPriceItemLis","_this$getPriceItemLis2","_this$getPriceItemLis3","_this$_fuelTypes$find","chargePriceListItem","_this$getPriceItemLis4","_this$chargePriceList4","fuelPrices","fuelTypePrices","matchingFuelPrice","availableFuelTypeIds","RETRY_CONSUMED_PREFIX","performance","getEntriesByType","nav","isLangChange","k","_unused2","retryIdx","clearRetryConsumed","_unused3","markRetryConsumed","_unused4","_unused5","isRetryBlocked","_unused6","baseHash","dispatchEvent","Event","onRetryPayment","onBackToPurchase","onPaymentSucceeded","onPaymentInProgress","onRetryGooglePayPayment","onIdleTimeoutCallback","IDLE_TIMER_DELAY","ensureInitialized","googlePayFingerprintReset","onSubmitGooglePayPaymentSuccess","onSubmitGooglePayPaymentDeferred","isGooglePayAllowed","allowed","ensureGooglePayMetadata","payGatePaymentResponse","fetchPayGatePayment","onPageHide","_unused7","onPageShow","persisted","currentHash","retryPath","_unused8","u","isMultiple","isRetryAllowed","_this$payGatePaymentR","_this$payGatePaymentR2","_this$payGatePaymentR3","_this$payGatePaymentR4","isPaymentInProgress","_this$payGatePaymentR5","allowedPaymentTypes","_this$payGatePaymentR6","_this$payGatePaymentR7","_this$payGatePaymentR8","_this$payGatePaymentR9","allowedPayGatePaymentTypes","retryBlocked","PayGatePaymentType","GOOGLE_PAY","isCardPayAllowed","STANDARD","grandTotalRawForGooglePay","_this$chargeOrder$cha","sum","_item$chargeTypeId","_item$fuelTypeId","_this$chargeOrder$cha2","_item$licensePlates2","_item$licensePlate","c","plate","_this$chargeOrder$cha3","_chargeType$descripti","_chargeType","isSingleDay","_this$chargeOrder$cha4","_chargeType2","_this$chargeOrder$cha5","_item$_fuelTypeId","_this$chargeOrder$cha6","_this$chargeOrder$cha7","_this$chargeOrder$cha8","_this$chargeOrder$cha9","_this$chargeOrder$cha0","_this$chargeOrder$cha1","_this$chargeOrder$cha10","_this$chargeOrder$cha11","_prefs$_emailAddressN","prefs","singlePrice","_this$chargeOrder$cha12","_item$chargeTypeId2","_item$fuelTypeId2","_item$licensePlates3","grandTotalRaw","_item$chargeTypeId3","_item$fuelTypeId3","_item$licensePlates$l","_item$licensePlates4","chargeTypeLabel","vehicleCountLabel","pluralizeVehicles","tr","SUCCEEDED","_unused9","handleRetryPayment","_response$permittedAc","_response$permittedAc2","_unused0","handleRetryGooglePayPayment","_response$permittedAc3","_response$permittedAc4","_unused1","validateForGooglePay","handleBackToPurchase","closeIdleModal","onIdleTimeout","handleOnIdle","VehicleOperator","ValidChargeResponse","ValidSinceValidationRules","OrderItem","_alreadyPaidSince","_alreadyPaidUntil","isOverlapped","_licensePlateNotInSystem","_licensePlateNumberNotInSystem","_licensePlateCountryIdNotInSystem","systemRepository","serverTimeFetched","onflyFetch","finalDate","pragueDate","getHours","getMinutes","getSeconds","getMilliseconds","parseServerDateAsLocal","userTZ","resolvedOptions","serverOffset","userOffset","serverDay","userDay","alertView","observer","alertContent","alertSectionClassName","contentCenter","_jsxs","icon","Icon","width","iconWidth","height","iconHeight","onClick","func","Row","Col","xs","dismissible","closeLabel","registerView","LoadingModal","isVisible","rootRef","useRef","Modal","dialogClassName","centered","Body","ExtendedLoadingModal","isBusy","minDuration","shouldShow","setShouldShow","startTime","setStartTime","elapsed","timeoutId","alertWithInfoIcon","mobileView","useWindowWidth","isInfo","updatedClassNames","classNames","IconType","Info","CircleWarning","Collapsible","collapse","_Fragment","cursor","minWidth","Button","transform","ArrowSubmenuTop","Tooltip","useContext","BaseTooltip","tooltip","Cross","ChargeEditForm","vmParent","localize","warning","toolbox","onCancelSecondStep","extendedLoading","afterValidity","notAllowedBySourceType","customSuccessMessage","rejectedReason","formRef","useCallback","node","infoMessage","DeniedForChargeType","renderDateWithTimeZone","placement","trigger","marginLeft","textDecoration","textDecorationStyle","showAlert","showChargeNotEditableInfo","showEditForm","showConfirmChangeButton","showConfirmChangeSecondStepButton","classnames","Form","AlertWithInfoIcon","ReactMarkdown","linkTarget","distinct","array","disabled","isDisabledByTurnsitel","_vm$turnstileViewMode","_vm$turnstileViewMode2","_vm$turnstileViewMode3","preventDefault","onTurnstileLoad","getResponsePromise","onTurnstileVerify","onSetInfo","_vm$turnstileViewMode4","_vm$turnstileViewMode5","_vm$turnstileViewMode6","ChargeInfo","Jumbotron","md","registrationCountry","chargeTypeWithPrice","drive","isRefunded","newChargePurchaseUrl","ChargeManagementHeader","back","ArrowLeft","ChargeRefund","refundMessage","getIconType","ChargeManagementReceiptViewModel","Mail","Bell","ChargeManagementValidityViewModel","CalendarWithArrow","Car","getRejectedReason","rejectionReasonObtainingPaymentConfirmation","rejectionReasonContact","rejectionReasonValidityChange","ChargeManagementActiveChargeLicensePlateChangeViewModel","rejectionReasonVehicleChangeDuringValidity","ChargeManagementBeforeValidChargeLicensePlateChangeViewModel","rejectionReasonVehicleChangeBeforeValidity","ChargeManagementEditView","_vm$charge","refund","sectionsChildren","_child$charge","onValidate","notAllowedByOrderSourceType","getChargeType","Observer","codeChangedAlertViewModel","ChargeReceiptView","Pdf","sendPaymentConfirmationEmail","MailOpen","showModal","relatedTargetClassNames","relatedTargetNames","DatePickerBox","dateRegex","handleValueChanged","formattedDate","_this$props$today","_this$props$today2","czechToday","today","ignoreTime","setHours","setValue","inputElement","relatedTarget","isDatepicker","onDayPickerHide","renderInner","validationError","useEndBoundaryAsDefault","errorLocalization","forSale","placeholder","formatValue","DatePicker","localization","onChange","hideOnDayClick","isInvalid","startOfDay","inputProps","autoComplete","Control","Feedback","newDate","ChargeManagementValidityView","_vm$charge2","_vm$postponedValidity2","_vm$postponedValidity3","_vm$charge3","_vm$charge4","_vm$charge6","_vm$charge5","disabledDays","chargeOrderConfirmedAt","fromMonth","toMonth","endOfDay","newValidSince","_vm$charge7","Group","as","sm","Label","sameValidSinceError","_vm$postponedValidity","onNewValidityChanged","CodeChangedAlertView","Header","Title","Transformation","AdvancedInput","onInput","transformation","ignoredCharacters","selectionStart","formattedValue","originalValueLength","UpperCased","LowerCased","position","setSelectionRange","interceptKeys","disableCopy","disablePaste","keyCode","altKey","ctrlDown","ctrlKey","metaKey","onPaste","testId","maxLength","Input","onKeyDown","EmailInput","xl","controlId","EmailInputView","LicensePlateChangeView","newVehicleInfoViewModel","Check","custom","agreementError","InvertedError","ReceiptEmailModalView","Footer","ErrorCard","sticky","zIndex","AuthCodeInput","ChargeManagementView","getCurrentLanguageUrl","currentLang","lang","mappedLang","en","de","cs","DotLoader","chargeTypeIconWithShadow","chargeTypeIcon","ChargeTypesView","src","alt","styles","Leaf","ChargeTypeSelectView","vignetteLabel","chargeScreenReaderLabel","chargeTypeViewModel","batchIndex","LoaderOverlay","loader","TestUserData","LICENSE_PLATE","EMAIL","TestCSOBData","CARD_NUMBER","EXPIRATION","CVC","DataTestIds","LICENSE_PLATE_INPUT","LICENSE_PLATE_CONFIRMATION_INPUT","EMAIL_INPUT","EMAIL_CONFIRMATION_INPUT","EMAIL_NOTIFICATION_INPUT","VALID_SINCE_INPUT","VALID_SINCE_INPUT_TODAY_BUTTON","ECO_FUEL_TYPE_CHECK","ECO_FUEL_TYPE_NATURAL_GAS","ECO_FUEL_TYPE_BIO_METHANE","CARD_PAYMENT_TYPE_OPTION","GOOGLE_PAY_PAYMENT_TYPE_OPTION","BANK_TRANSFER_PAYMENT_TYPE_OPTION","COUNTRY_SELECT","DISABLED_COUNTRY_SELECT","TERMS_AND_CONDITIONS_CHECK","PROCEED_TO_PAYMENT_BUTTON","COMPANY_NAME_INPUT","COMPANY_IDENTIFIER_INPUT","chargeCardPrice","CSOBDataTestIds","CARD_NUMBER_INPUT","EXPIRY_INPUT","CVC_INPUT","PAY_SUBMIT_BUTTON","E2EAPIRoutes","ESHOP_ORDER","ESHOP_ORDER_HASH","ESHOP_ORDER_STATUS","ESHOP_PAYMENT_DEV_INTERCEPT","IPLATEBNIBRANA_CSOB_CZ","ContactView","translateContact","translateKey","translateChargeManagmentContact","isContactViewModel","defaultPrefix","FuelTypeSelect","fuelScreenReaderLabel","fuelViewModel","fuelTypeLabel","linkHostRegex","replaceLinkHost","GdprSection","Gdpr","toggleGdpr","hideLabel","gdpr","OrderOutageView","OutagesView","systemComponentCode","SepaInstructions","setCollapse","translateLabel","QRCodeImage","base64Svg","svgXml","atob","qrCodeContainer","dangerouslySetInnerHTML","__html","wordBreak","wordWrap","disableLinkTel","formatIBAN","swiftCode","counterpartyName","additionalInformation","priceSepa","qrcode","qrCodeFixed","RadioArray","BindingComponent","inheritedProps","isNumeric","resetOnClick","checked","handleClick","option","isObservable","isObservableProp","ensureObservableProperty","parseInt","instructionTypeIcon","PaymentInstructionType","Domestic","Sepa","InstructionCard","labelContent","Card","minHeight","hyphens","whiteSpace","isSelected","selectedPaymentType","radioId","backgroundColor","InstructionSelect","paymentTypeOptions","borderBottom","DomesticInstructions","_vm$domesticPayment","formatBankAccount","domesticPayment","priceDomestic","BankTransfer","bankTransferInfo","OrderSummaryView","lg","iconRight","ArrowRight","redirectWebsiteName","IdleModal","resetIdle","remainTime","inSeconds","formatMillisecondsToTime","ms","millisecondsToMinutes","millisecondsToSeconds","formattedSeconds","EDAZGooglePayButton","createOrder","totalPrice","fillContainer","paymentRequest","merchantInfo","merchantId","allowedPaymentMethods","parameters","allowedAuthMethods","tokenizationSpecification","transactionInfo","totalPriceStatus","totalPriceLabel","onLoadPaymentData","GooglePayButton","onError","buttonLocale","buttonSizeMode","SingleRecap","MultipleRecap","PaymentRetryView","getRemainingTime","useIdleTimer","onIdle","timeout","crossTab","eventsThrottle","events","timeLeft","setTimeLeft","interval","remaining","calculatedTimeLeft","ceil","timer","backToPurchaseLabel","tge","maxWidth","CircleError","gap","flexBasis","_errorMessage","allow","toolboxStyles","fingerprintIframe","onLoad","onGooglePayPaymentFingerprintLoaded","Single","isSuccess","tgSum","CircleCheck","CircleQuestionmark","orderSummaryViewModel","fontSize","ratingViewModel","Multiple","ts","StatusView","PaymentMethodIcon","mx","EshopFormIds","ALTERNATIVE_FUEL_TYPE_CHECKBOX","NATURAL_GAS_RADIO_ARRAY_OPTION","BIO_METHANE_RADIO_ARRAY_OPTION","CARD_PAYMENT_RADIO_ARRAY_OPTION","GOOGLE_PAY_PAYMENT_RADIO_ARRAY_OPTION","BANK_TRANSFER_PAYMENT_RADIO_ARRAY_OPTION","speedometerFastIcon","SelectPaymentMethod","handlePaymentChange","paymentCard","hiddenRadio","speedIcon","paymentContent","paymentTitleRow","paymentTitle","paymentLogos","paymentDescription","components","ErrorCodes","getTurnStileErrorType","test","TurnstileView","onSuccess","onBeforeInteractive","turnstileSize","turnstileKey","processTurnstileInfo","rawTurnstileInfo","rel","_turnstileRef$current","_turnstileRef$current2","handleSuccess","handleError","typeError","onTurnstileError","handleTimeout","handleExpire","handleLoad","handleInteractive","Turnstile","siteKey","onTimeout","onExpire","onLoadScript","onWidgetLoad","theme","retry","refreshExpired","refreshTimeout","execution","appearance","overflow","AsyncSelect","rest","OriginalAsyncSelect","CountryIdInput","labelId","loadOptionsOnInit","defaultOptions","loadOptions","mode","filterOption","countryFilter","CountryIdWithConfirmation","isConfirmation","labeledCountries","labelType","labelLetters","placeholderCzech","LicensePlateInput","_label$placeholderCze","_label$labelType","licensePlatePlaceholder","labelClass","europe","inputPaddingClass","renderLabelIcon","LicensePlateCharacterWiseInput","valueArray","componentDidMount","observe","change","newValue","_label$labelType2","onInputPartBlur","switzerland","disabledCharacterInput","classes","componentWillUnmount","hideTooltip","fixedLength","controlProps","MiniInfo","LicensePlateBaseInput","LicensePlateInputWithConfirmation","maxLicensePlateSize","VehicleInfoView","countryIDConfirmation","licensePlateConfirmation","successMessage","ratingTypeIcon","rating","Negative","Neutral","Positive","CustomerReviewView","review","ratingContet","_vm$customerRating$co","_vm$customerRating$co2","customerReviews","ratingScore","customerReviewColor","score","textAlign","color","comment","isDisabledConfirm","maxHeight","EshopView","ChargeTypeView","_vm$batchIndex","vehicleInfoIcon","fuelEcoIcon","FuelTypeView","GdprInfoView","borderTop","alignItems","justifyContent","borderRadius","transition","ArrowBottom","Collapse","in","p","_excluded2","EditIconSvg","viewBox","fill","xmlns","fillRule","clipRule","NotificationPreferencesRecapView","EditableValue","OrderRecapitulationView","StaticValue","ValueDisplay","PaymentView","TermAgreementView","isIPhoneChrome","ua","userAgent","handlePageShow","reload","threeState","Stepper","statusSteps","Fragment","GooglePay3DSecureModal","dialogIframeWrapper","dialogIframe","allowpaymentrequest","splitLink","str","description2","showLink","_splitLink$","PaymentError","padding","paddingTop","paddingBottom","paddingLeft","paddingRight","buttonText","description1","SuccessAlert","OrderView","_vm$navigationStep","tpf","countdown","setCountdown","userAgentIndicatesMobile","reactIsMobile","screenWidthIndicatesMobile","paymentIsComplete","prev","closePaymentComplete","cancelButton","resetOrder","iconLeftVariant","iconLeft","mobileCancelButton","payGateOutagesViewModel","eshopOutagesViewModel","showPaymentErrorMessage","paymentErrorTitle","showPaymentErrorLink","closePaymentFailureModal","showInlineErrorMessage","navigationStep","translateCountryWarning","OrderWizardViewModel","ValiditySelect","datePicker","StepsNavigationButtons","continueDisabled","_vm$overlappingCharge","_vm$overlappingCharge2","textWithLink","_props$link","_props$link3","_props$link4","_props$link6","inline","_props$link2","_props$link5","ChargeTypeVehicleInfo","markdownText","mobileSection","desktopSection","TextWithLink","ElectricVehicleExemptionAlert","highlightText","exemptionBox","content","renderDescription","highlight","carImage","LicenseView","_vm$exemptionReasonWa","localStorage","hasElectricVehicleExemption","electricVehicleExemptionTitle","electricVehicleExemptionDescription","exemptionReasonWarnings","translateExemptionReasonWarnings","RecapView","reloaded","lastChargeOrder","Status","stopPropagation","BatchOrderItemView","removeOrderItem","addOrderItem","lengthChildren","chargeTypeSelectViewModel","textTransform","renderNumberOfLicensePlates","licensePlatesFieldVisited","onItemAdded","addItem","onItemRemoved","licensePlatesErrorMessage","range","licensePlateHasOverlay","validitySelectViewModel","canAddOrderItem","SignPlus","batchOrderView","paymentErrorDescription","closePaymentError","itemVM","contactMultiEshopView","multiEshopView","showOutages","eshopOutagesVieModel","RecommendationAlert","descriptionLocalizationCode","removeButtonLabelLocalizationCode","closeButtonLabelLocalizationCode","removeAction","closeAction","orderRecapView","_vm$possibleExemption","_vm$exemptionIdentifi","_vm$exemptionLicenseP","_v$licensePlate","Tag","removeIdentifiedPossibleFromOrderItems","hideIdentifiedPossibleRecommendation","_v$licensePlate2","_exemption$vehicles4","removeExemptionsFromOrderItems","hideExemptionRecommendation","_v$licensePlate3","removeExemptionOverlaysFromOrderItems","hideExemptionOverlayRecommendation","removeOverlaysFromOrderItems","hideOverlayRecommendation","ArrowTop","license","removeBatch","paymentMultiEshopView","_lastChargeOrder$char","SummaryView","backButton","iconLeftAlign","continueButton","iconRightAlign","standardPaymentButtonOnClick","PersonInput","fullNamePredicate","fullNameValidationAction","birthDatePredicate","birthDateValidationAction","AddressInput","legal","ContactInput","ApplicantView","Toolbox","Save","Print","DocumentsUploadedView","NiaView","LegalPersonView","NaturalPersonView","RepresentativeTypeSelect","OperatorView","AdvancedSelect","OriginalAdvancedSelect","ExemptionReasonSelect","isSearchable","reasons","formatOptionLabel","ExemptionNotice","MethodOfSignature","requiredDocuments","FilesList","RejectedFiles","showFileFormats","setFileFormats","DocumentUploader","Uploader","onDrop","accept","removePowerOfAttorneyFile","removeTechnicalLicenseFile","ExemptionView","_vm$vehicleChargingIn","_vm$exemptionApplicat","loadingData","vehicleChargingInstructions","instruction","_vm$vehicleChargingIn2","applicantPersonViewModel","operatorInputViewModel","exemptionApplicationProduction","LicensePlateChangeNotice","_vm$notice$vehicle","newVehicleErrorMessage","_vm$vehicleChangeAppl","_vm$vehicleChangeAppl2","_vm$vehicleChangeAppl3","vehicleChangeApplicationProduction","NoticeView","OmissionView","_vm$cancellationAppli","operatorViewModel","cancellationApplicationProduction","RefundReasonSelect","otherLabelId","OrderSourceTypeView","bankAccountInputId","Unknown","RefundRequestView","_vm$customerRefundApp","_vm$customerRefundApp2","refundFeeInformation","customerRefundApplicationProduction","OutagesWidgetView","PaymentValidationView","block","ValidationCard","badges","iconSize","isCurrentlyValid","getChargeExpiration","getChargeValidIn","isChargeEco","Badge","pill","ChargeRegistrationStatus","hasExemption","exempted","NoRegistrationCard","invalid","possibleExempted","upcomingCharges","ShoppingCart","buy","ValidationSummaryView","showBuyButton","buyEnabled","ExemptionCard","ChargeCard","upcomingCharge","next","PriceListView","chargeTypePrices","priceListWrapper","table","tableHeader","small","thin","priceListItems","chargeTypePrice","imageWrapper","img","priceWrapper","priceHeader","rootView","hasMargin","view","PopupView","popupViewContainer","h100","scroll","styledScrollbars","ModalClose","TradingPlaceHeaderView","formatPostalCode","cardPaymentAllowed","CardPaymentYes","TradingPlaceSalesTimeView","_vm$place","_vm$place$salespoint","_vm$place$salespoint$","_vm$place2","_vm$place2$salespoint","_vm$place3","_vm$place3$salespoint","_vm$place4","_vm$place4$salespoint","standardOpeningHours","Standard","holidayOpeningHours","Holiday","dayRows","timeRows","formatOpeningHours","openingHoursDay","dayOfWeek","salespointExternalDetailLink","externalDetailLinkCs","externalDetailLinkEn","holidayOpeningHour","toISOString","formatDisplayPhoneNumber","parsePhoneNumber","formatInternational","TradingPlaceContactView","contactPhone","TradingPlaceInfoView","TradingPlacesFilter","checkboxGroup","checkbox","getSuggestionValue","suggestion","renderSuggestion","KioskOpen","PlaceOpen","suggestionIcon","suggestionLabel","TradingPlacesAutosuggest","notFoundMessage","onSuggestionsFetchRequested","suggestions","isAnyAutosuggestInputOpen","searchValue","showTradingPlaceFilter","filterContainer","Autosuggest","onSuggestionsClearRequested","onSuggestionSelected","renderSuggestionsContainer","_params$children","containerProps","renderInputComponent","Search","mapSearchIcon","RoadLayerSelection","col","freeCheckbox","paidCheckbox","row","radioGroup","RoadMapTooltip","roadTypeMessage","roadData","MobileFilter","mobileFilterContainer","filters","closeButton","toggleMobileFilter","closeIcon","section","heading","divider","openButton","CogWheel","cogWheelIcon","TradingPlacesView","offsetY","offsetX","calculateOffset","currentWidth","mobileBranchLink","TradingPlaces","apiKey","defaultZoom","centerYOffset","centerXOffset","radius","choosenPlace","center","mapHeight","fullscreenControl","Boolean","hostname","unregister","ready","registration","updateUrl","screen","rootViewModel","_this$lastActiveScree","_this$lastActiveScree2","getNavigationPath","appendQueryString","NavigationConfiguration","hashPrefix","lastWasRetry","lastActiveScreen","childReplacesNavigationPath","pushState","dsn","ignoreErrors","denyUrls","allowUrls","ChargeRefundationStatus","CustomerRefundPaymentType","REGEX_AMOUNT","REGEX_RETURNED","REGEX_VARIABLE_SYMBOL","REGEX_ACCOUNT","Refunded","RefundedToDistributor","refundationStatus","_this$charge2$newChar","chargeManagementBeforeValidityChangeLicensePlateViewModel","chargeManagementActiveChargeChangeLicensePlateViewModel","chargeManagementValidityViewModel","chargeManagementContactViewModel","chargeManagementReceiptViewModel","codeChangedAlertViewModelFactory","receiptEmailModalViewModelFactory","handleResize","_this$turnstileViewMo","_this$turnstileViewMo2","_this$turnstileViewMo3","_this$turnstileViewMo4","fetchCountry","putChargeValiditySuccess","onCodeChanged","onValidityChanged","subMinutes","fetchCharge","setNavigationParams","navigationParamsValue","notifyNavigationChanged","_this4$chargeManageme","getLoginChargeManagement","_variableSymbol$toStr","_variableSymbol$toStr2","refundedAt","refundPaymentType","formattedBankAccount","validityChange","InvalidChargeValidityStatus","rejectionReasonEmailAddressChange","obtainingPaymentConfirmation","rejectionReasonSmsNotificationPreferencesChange","BatchOrderViewModelNavigationName","batchOrderItemViewModelFactory","childIndex","invalidValidSince","paymentResultFailureType","paymentResultFailureOrigin","Init","AlreadyConfirmed","orderItemsIsValid","chargeOrderItemsHasValidLicensePlates","isAllValid","licensePlatesHasOverlay","widgets","registerWidget","configuration","tagname","component","batchOrderViewModel","orderRecapViewModel","paymentMultiEshopViewModelFactory","bankTransferVMFactory","statusVMFactory","orderOutageViewModelFactory","contactMultiEshopViewModelFactory","paymentRetryVMFactory","contactMultiEshopViewModel","paymentMultiEshopViewModel","orderIsPaid","onOrderIsPaid","onPaymentMultiFuelTypeNotAllowed","onEshopOutageChanged","lazyCheckEshopOutage","changeActiveChild","newChild","closePrevious","_superprop_getChangeActiveChild","BankTransferNavigationName","StatusViewNavigationName","storedOrder","failureType","failureOrigin","retryChild","tryCreatePaymentRetryChild","retrySegments","_chargeOrder","buildPaymentRetryChild","_chargeOrder4","beStatus","remote","localStatus","isFinalStatus","finalStatus","retryVM","handleBackToPurchaseWithPrefill","handlePaymentSucceeded","handlePaymentInProgress","handleRetryIdleTimeout","systemComponentId","useGenericErrorMessageHandler","isAuthorized","startAccessTokenRenewCycle","authorize","_error$response","_error$response2","userLogout","serverError","AuthorizationService","TOKEN_EXPIRATION_OFFSET","tokenRefreshTimeout","buildHeaders","header","authorizationHeader","authorization","tokenType","accessToken","authClient","ClientOAuth2","accessTokenUri","scopes","tokenDataJSON","_this$authClient","createToken","isTokenExpired","getTimeout","authorizationInProgress","getAccessToken","Offline","credentials","getToken","tokenRefreshCycleInProgress","getNowTimestampInSeconds","expires_in","serializeOptions","ApiConnector","FetchApiConnector","jsonSerializer","serialize","middleware","toJSON","DeserializingRequestBuilder","RestRequestBuilder","customApiUrl","customApiVersion","headers","getEntities","returnType","queryParams","requestUrl","appendQuery","appendJsonHeader","apiConnector","getEntity","deserialize","postEntity","postJson","putEntity","putJson","patchEntity","patchJson","appendAuthCodeHeader","ContentTypes","appendAcceptHeader","acceptContentType","Accept","appendContentTypeHeader","appendSignalRConnectionIdHeader","appendGTurnstileResponseHeader","appendISDSSessionIdHeader","EshopRequestBuilder","customApiConnector","_this$configuration","urlValue","customApiUrlWithVersion","baseCustomUrl","gTurnstileResponse","postData","contentTypes","put","SESSION_STORAGE_PRICE_LIST_KEY","ChargePriceListStorageRepository","priceList","removePriceList","priceListString","clearPriceList","storePriceList","ExemptionRegistrationResponse","PossibleExemptionRegistrationResponse","ChargeRegistrationReport","VehicleRegistrationsResponse","ChargeRegistrationRepository","vehicleRegistrationsReport","getWithCharge","SESSION_STORAGE_CHARGE_TYPES_KEY","ChargeTypesStorageRepository","removeChargeTypes","chargeTypesString","plainToInstance","clearChargeTypes","storeChargeTypes","CustomerRating","SESSION_STORAGE_CUSTOMER_REVIEW_KEY","CustomerReviewStorageRepository","addCustomerRating","customerRatingsString","updatedRatings","getCustomerRating","customerRatings","removeCustomerRating","clearCustomerRatings","EnumRepository","fetchEnums","exemption_reasons","charge_validity_rules","fuel_types","charge_types","ExemptionApplicationProductionResponse","ExemptionRepository","createExemptionRequestObj","_notice$vehicleOperat","_notice$vehicleOperat2","_notice$vehicleOperat3","_notice$vehicleOperat4","_notice$vehicleOperat5","_notice$vehicleOperat6","_notice$vehicleOperat7","_notice$vehicleOperat8","_notice$vehicleOperat9","_notice$vehicleOperat0","_notice$vehicleOperat1","_notice$vehicleOperat10","_notice$vehicleOperat11","_notice$vehicleOperat12","_notice$vehicleOperat13","createExemption","getProduction","FormData","IsdsMessageDeliveryStatusResponse","ISDSRepository","VehicleChangeApplicationProductionResponse","LicensePlateChangeRepository","createRequestObj","licensePlateChange","originalVehicle","createLicensePlateChangeNotice","LocalizationRepository","pl","ru","hu","Redirect","NiaRepository","ExemptionCancellationApplicationProductionResponse","OmissionRepository","createOmissionRequestObj","omission","createOmission","Contact","editRules","OrderStatus","Order","SESSION_STORAGE_ORDERS_KEY","OrderRepository","getLastOrder","getOrders","order1","order2","getOrder","addOrder","orders","removeOrder","storeOrders","clearOrders","OutageRepository","getSystemComponentOutages","PaymentRepository","redirectAfterConfirmationUrl","btoa","paymentMethodData","tokenizationData","submitGooglePayPaymentConfirmation","getGooglePayTransactionStatus","CustomerRefundApplicationProductionResponse","RefundRequestRepository","createRefundRequestObj","refundRequest","createRefundRequest","SystemRepository","TradingPlaceResponse","TradingPlacesResponse","OpeningHoursResponse","SalespointResponse","ShutdownIntervalResponse","TradingPlaceDetailResponse","TradingPlaceRepository","getDetail","itemId","ExemptionService","exemptionCreationFailed","SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY","exemptionDocumentsUploadSuccess","publishDocumentsUploadFailure","exemptionDocumentsUploadFailed","LicensePlateChangeService","licensePlateChangeCreationFailed","licensePlateChangeDocumentsUploadSuccess","licensePlateChangeDocumentsUploadFailed","RefundRequestService","refundRequestCreationFailed","refundRequestDocumentsUploadSuccess","refundRequestDocumentsUploadFailed","Validity","WSError","GET_GOOGLE_PAY_STATUS","PutChargeContactResult","SignalRNotificationService","notificationHub","setupSignalRConnection","_this$authorizationSe","HubConnectionBuilder","withUrl","accessTokenFactory","transport","HttpTransportType","WebSockets","skipNegotiation","withAutomaticReconnect","build","_this$notificationHub","getConnectionId","_this$notificationHub2","stop","handle","_this$notificationHub3","on","_response$error","subscribeToPutChargeContactResult","_this$notificationHub4","parsedResponse","subscribeToPutChargeValidityResult","_this$notificationHub5","putChargeValidityFailure","subscribeToGetGooglePayStatus","_this$notificationHub6","_this$notificationHub7","off","_response$result$acti","_response$result$acti2","paymentStatus","browserChallenge","challengeUrl","_this$notificationHub8","invoke","connectionIdHeader","subscribeToPutChargeVehicleResult","_this$notificationHub9","subscribeToPutChargeVehicleChangesDuringValidityResult","_this$notificationHub0","TradingPlaceService","initialized","tradingPlacesDetails","validateModulo","variable","weights","n","isBankAccountNumber","regex","bankCode","prefix","modifiedValue","lengthBeforeSlash","addDashToAccountNumber","dashSplit","isBankPrefixNumber","accountNumber","_options$min","_options$max","optional","valueLength","Infinity","prohibitedChars","allowedControlChars","char","charCodeAt","isControlCharacter","containsProhibitedCharacters","ValidationService","BaseValidationService","valueRegex","propertyNameRegex","constraintRegex","initializeValidators","registerValidator","isOrganizationIdentifier","CSLicensePlate","validators","localizedMessage","validatorName","messages","constraint","VehicleService","BatchOrderItemViewModel","chargeTypeSelectViewModelFactory","vehicleInfoModelFactory","validitySelectViewModelFactory","_zonedCZTimeToUtc","_this$validitySelectV","unsubscribes","otherLicensePlatesWithValidityIntersection","onValidSinceChanged","onVehicleInfoChanged","onFuelTypeIdChanged","onChargeTypeIdChanged","singleCharTypeToday","storedChargeOrderItem","errorMessages","thisValidSince","thisValidUntil","itemValidSince","thisValidityInterval","end","itemValidityInterval","areIntervalsOverlapping","inclusive","_this$chargeTypesServ5","setTemporaryValidUntil","_this$chargeTypesServ3","_this$chargeTypesServ4","priceListId","_duplicities","_this$chargeTypesServ6","createContainer","Container","skipBaseClassChecks","bind","dataDeserializingRequestBuilder","toFactory","dataEshopRequestBuilder","repositoriesChargeOrderRepository","toSelf","repositoriesChargeRegistrationRepository","repositoriesChargeRepository","repositoriesEnumRepository","repositoriesExemptionRepository","repositoriesIsdsRepository","repositoriesLicensePlateChangeRepository","repositoriesLocalizationRepository","repositoriesNiaRepository","repositoriesOmissionRepository","repositoriesOutageRepository","repositoriesPaymentRepository","repositoriesRefundRequestRepository","repositoriesSystemRepository","repositoriesTradingPlaceRepository","repositoriesVehicleRepository","servicesAppRouter","inSingletonScope","servicesAuthorizationService","servicesChargeManagementService","servicesChargeOrderService","servicesChargeRegistrationService","servicesChargeTypesService","servicesEnumService","servicesEventBus","servicesExemptionService","servicesGaService","servicesLicensePlateChangeService","servicesLocaleProvider","servicesLocalizationService","servicesNotificationService","servicesOmissionService","servicesOutageService","servicesPriceService","servicesRefundRequestService","servicesTimeService","servicesTradingPlaceService","servicesTurnstileServise","servicesValidationService","servicesVehicleService","viewModelsAlertViewModel","toAutoFactory","viewModelsRootViewModel","repositoriesChargeOrderStorageRepositoryChargeOrderStorageRepository","repositoriesChargePriceListStorageRepositoryChargePriceListStorageRepository","repositoriesChargeTypesStorageRepositoryChargeTypesStorageRepository","repositoriesCustomerReviewStorageRepositoryCustomerReviewStorageRepository","repositoriesOrderOrderRepository","servicesInitializationBasicInitializationService","servicesInitializationInitializationWithOutagesService","servicesInitializationLazyInitializationService","servicesIsdsIsdsService","servicesNiaNiaService","servicesPaymentPaymentService","viewModelsChargeManagementChargeManagementViewModel","viewModelsChargeTypesChargeTypesViewModel","viewModelsCommonChargeTypeSelectViewModel","viewModelsCommonContactViewModel","viewModelsCommonFuelTypeSelectViewModel","viewModelsCommonOutagesViewModel","viewModelsCommonPriceListViewModel","viewModelsCommonTurnstileViewModel","viewModelsCommonVehicleInfoViewModel","viewModelsCustomerReviewCustomerReviewViewModel","viewModelsEshopEshopViewModel","viewModelsMultiEshopBatchOrderItemViewModel","viewModelsMultiEshopBatchOrderViewModel","viewModelsMultiEshopContactMultiEshopViewModel","viewModelsMultiEshopMultiEshopViewModel","viewModelsMultiEshopOrderRecapViewModel","viewModelsMultiEshopPaymentMultiEshopViewModel","viewModelsMultiEshopSummaryMultiEshopViewModel","viewModelsOutagesOutagesWidgetViewModel","viewModelsPaymentValidationPaymentValidationViewModel","viewModelsPaymentValidationValidationSummaryViewModel","viewModelsTradingPlacesKioskViewModel","viewModelsTradingPlacesRoadMapViewModel","viewModelsTradingPlacesTradingPlacesViewModel","servicesSignalRNotificationSignalRNotificationService","viewModelsChargeManagementChargeManagementEditChargeManagementActiveChargeLicensePlateChangeViewModel","viewModelsChargeManagementChargeManagementEditChargeManagementBeforeValidChargeLicensePlateChangeViewModel","viewModelsChargeManagementChargeManagementEditChargeManagementContactViewModel","viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel","viewModelsChargeManagementChargeManagementEditChargeManagementReceiptViewModel","viewModelsChargeManagementChargeManagementEditChargeManagementValidityViewModel","viewModelsChargeManagementChargeManagementEditCodeChangedAlertViewModel","viewModelsChargeManagementChargeManagementEditReceiptEmailModalViewModel","viewModelsCommonGdprGdprViewModel","viewModelsCommonOrderOutageOrderOutageViewModel","viewModelsCommonPaymentBankTransferViewModel","viewModelsCommonPaymentMultiPaymentRetryViewModel","viewModelsCommonPaymentOrderSummaryViewModel","viewModelsCommonPaymentPaymentRetryViewModel","viewModelsCommonPaymentSelectPaymentMethodViewModel","viewModelsCommonPaymentSingleBankTransferViewModel","viewModelsCommonPaymentSinglePaymentRetryViewModel","viewModelsCommonPaymentSingleStatusViewModel","viewModelsCommonPaymentStatusViewModel","viewModelsEshopOrderOrderWizardModel","viewModelsNoticeComponentsApplicantPersonViewModel","viewModelsNoticeComponentsDocumentsUploadedViewModel","viewModelsNoticeComponentsNiaViewModel","viewModelsNoticeExemptionExemptionDocumentsUploadedViewModel","viewModelsNoticeExemptionExemptionNoticeViewModel","viewModelsNoticeExemptionExemptionViewModel","viewModelsNoticeLicensePlateChangeLicensePlateChangeDocumentsUploadedViewModel","viewModelsNoticeLicensePlateChangeLicensePlateChangeNoticeViewModel","viewModelsNoticeLicensePlateChangeLicensePlateChangeViewModel","viewModelsNoticeOmissionOmissionDocumentsUploadedViewModel","viewModelsNoticeOmissionOmissionNoticeViewModel","viewModelsNoticeOmissionOmissionViewModel","viewModelsNoticeRefundRequestRefundRequestDocumentsUploadedViewModel","viewModelsNoticeRefundRequestRefundRequestNoticeViewModel","viewModelsNoticeRefundRequestRefundRequestViewModel","viewModelsChargeManagementChargeManagementEditCommonEmailInputViewModel","viewModelsEshopOrderComponentsChargeViewModel","viewModelsEshopOrderComponentsFuelViewModel","viewModelsEshopOrderComponentsGdprInfoViewModel","viewModelsEshopOrderComponentsNotificationPreferencesRecapViewModel","viewModelsEshopOrderComponentsOrderRecapitulationViewModel","viewModelsEshopOrderComponentsPaymentViewModel","viewModelsEshopOrderComponentsTermAgreementViewModel","viewModelsEshopOrderComponentsValiditySelectViewModel","viewModelsEshopOrderStepsChargeTypeViewModel","viewModelsEshopOrderStepsContactViewModel","viewModelsEshopOrderStepsFuelTypeViewModel","viewModelsEshopOrderStepsLicenseViewModel","viewModelsEshopOrderStepsRecapViewModel","viewModelsNoticeComponentsOperatorLegalPersonViewModel","viewModelsNoticeComponentsOperatorNaturalPersonViewModel","viewModelsNoticeComponentsOperatorOperatorViewModel","registerServices","decorate","injectable","inject","modelsChargeOrder","_initContainer","initService","initializationService","makeWidget","fullInit","initContainer","makeWidgetFor","initView","PossibleExemptionRegistrationMethod","vehicleInfoVMFactory","applicantPersonInputVMFactory","operatorInputVmFactory","debouncedLookForChargingInstructions","lookForChargingInstructions","lastResolveFindChargingInstructions","findChargingInstructions","exemptionNIAResponseHandled","exemptionISDSSessionIdHandled","chargingInstructionsReaction","onCountryChange","NoticeTechnicalLicenseRulesWithId","urlDecoded","decodeURI","base64Decoded","loadingInstruction","czechCountryId","_this$enumService$val","reasonsEnum","possibleRegistrationMethods","Notification","_this$notice$vehicle2","_superprop_getPersistNotice","_this$reasonsEnum$fin","_this$notice$vehicle3","allowCreateExemption","getChargingInstructions","_this4$notice$vehicle","_this4$notice$vehicle2","_this5$service$exempt","createEventDefinition","omissionCreationFailed","omissionDocumentsUploadFailed","omissionDocumentsUploadSuccess","chargeRegistrationReport","chargeRegistration","customerRatingOrderData","sendChargePaymentConfirmationEmailSuccess","sendChargePaymentConfirmationEmailFailure","downloadPaymentConfirmationSuccess","downloadPaymentConfirmationFailure","omissionISDSSessionIdHandled","omissionNIAResponseHandled","licensePlateChangeISDSSessionIdHandled","licensePlateChangeNIAResponseHandled","refundRequestISDSSessionIdHandled","refundRequestNIAResponseHandled","vehicleValidityInstruction","TsEventBus","EshopModuleNavigationName","SingleStatusViewModel","orderWizardModel","unsubsriptions","OFFLINE_NOTIFICATION_KEY","scrollRestoration","onpageshow","hideOfflineNotification","showOfflineNotification","SingleStatusViewNavigationName","LicenseViewNavigationName","_yield$_this5$reposit","initChildrenFromExistingOrder","OrderNewViewNavigationName","_OutageService","visibleOutages","_this$outages","_this$outages2","visibleSince","recognizeComponent","closedOutages","activeOutagesPerComponent","_sessionStorage$getIt","cachedOutages","cacheStoreKey","deserializeArray","closedItemsStoreKey","_response$items","planClockTicks","_localizedMessage$des","localizations","sameDay","isSameDay","validUntilRegex","VISIBLE","validSinceRegex","PLANNED","PASSED","isActive","visibleOutage","activateAndDeactivateOutage","updateClocks","differenceInMilliseconds","systemComponent","licenseViewModelFactory","chargeTypeViewModelFactory","recapViewModelFactory","licenseViewModel","fuelTypeViewModel","recapViewModel","updatePrefilledValues","onOrderValidationFailed","onPaymentCompleteAlert","onPaymentFuelTypeNotAllowed","checkTermsAgreementError","onBackIsDisabled","_this$activeChild","_this$statusNavigatio","_this$activeChild2","showPaymentIsComplete","subpath","proposed_purchase_request_id","isNaN","navigationParams","onIdleTimout","vehicleRegistrationsReaction","EshopWidgetIdentifier","InitializationWithOutagesService","MultiEshopWidgetIdentifier","ExemptionWidgetIdentifier","ChargeManagementWidgetIdentifier","ChargeTypesWidgetIdentifier","PriceListWidgetIdentifier","CustomerReviewWidgetIdentifier","LicensePlateChangeNoticeWidgetIdentifier","OmissionNoticeWidgetIdentifier","PaymentValidationWidgetIdentifier","TradingPlacesWidgetIdentifier","ClassifiedFuelType","chargeOrderLicenseItem","_ChargeOrderLicenseIt","onChangeLicenseItem","_licenseValidated","_this$instructions$_p","_possibleExemptionReason","_this$instructions$wa","classifiedFuelType","Electricity","allowResetOrderByLicensePlate","O1","O2","resolveRegistrationWarning","_response$possibleExe","_response$warningReas","_response$_possibleEx","exemptionReasons","filteredExemptionReason","_exemptionReasons$fin","self","autoNavigate","_this3$instructions","_this3$instructions$w","_this3$instructions2","_this3$instructions2$","_this4$instructions","KioskWidgetIdentifier","TollRoadsWidgetIdentifier","OutagesWidgetIdentifier","RefundRequestWidgetIdentifier","DOWNLOAD_PAYMENT_CONFIRMATION_REQUEST_FAILURE","SEND_CHARGE_PAYMENT_CONFIRMATION_EMAIL_REQUEST_FAILURE","PUT_CHARGE_VEHICLE_REQUEST_FAILURE","SESSION_STORAGE_CHARGE_MANAGEMENT_KEY","chargeRepository","onChargeValidityUpdateSuccess","getPriceListItem","attachAutomaticDirtyWatcher","_this3$charge","_this3$charge2","_this3$charge3","editActiveCharge","_this4$charge","_this4$charge2","_this4$charge3","_this5$charge","_this5$charge2","_this5$charge3","_request$notification","_request$notification2","setLoginChargeManagement","removeLoginChargeManagement","clearLoginChargeManagement","_this6$charge","_this6$charge2","_this6$charge3","_this6$timeService$cu","arePreferenceCookiesEnabled","areCookiesAccepted","acceptCookies","registerOnDisableCookieCallback","LS_KEY_COOKIES","PREFERENCE_COOKIES_KEY","ANALYTICS_COOKIES_KEY","callBack","preference","analytics","_a","StorageEvent","ChargeRegistrationService","chargeRegistrationRepository","getRegistrationReport","report","getVehicleRegistration","validityInstruction","OmissionService","gaService","orderSummaryViewModelFactory","summaryVMFactory","customerReviewViewModel","moreThanOneLicensePlateOrder","isMultiEshopOrder","_this$domesticPayment","_this$domesticPayment2","messageForRecipient","_this$domesticPayment3","_this$domesticPayment4","_this$domesticPayment5","_this$sepaPayment","sepaPayment","_this$sepaPayment2","_this$sepaPayment3","_this$sepaPayment4","currencyCodeDomestic","_this$domesticPayment6","currencyCodeSepa","_this$sepaPayment5","activePaymentInstructions","activeCurrencyCode","activePrice","_this$chargeOrder","_this$chargeOrder$tra","activePayment","qrCode","_this$domesticPayment7","_this$sepaPayment6","_this$sepaPayment7","isSepaPayment","_this$chargeOrder2","_this$chargeOrder2$tr","_this$chargeOrder3","_this$chargeOrder3$tr","_this$chargeOrder4","_this$chargeOrder4$tr","_this$chargeOrder5","_this$chargeOrder5$tr","transferPaymentInstruction","_this$chargeOrder6","_this$chargeOrder6$tr","_this$chargeOrder7","_this$chargeOrder7$tr","czechDueDate","BaseNotificationService","addServerError","clearNotifications","timeToLive","attachManualValidator","reasonChangeReaction","orderSourceTypeChangeReaction","_this$service$custome","canBeAppliedFor","handleVehicleInfoChange","translateOrderItem","_this$service$custome2","_this$service$custome3","chargeManagementUrl","_this4$customerRefund","_this4$customerRefund2","_this4$customerRefund3","_this4$customerRefund4","onPaymentConfirmationIsAvailable","onPaymentConfirmationError","expirationRegex","validRegex","getCountryEnum","_this$chargeRegistrat","_this$country","_this$country2","validDaysString","validDays","differenceInDays","validInDaysString","validInDays","chargeValidityRange","disabledUnbreakableRules","debouncedLookForChargeRegistration","lookForChargeRegistration","lastResolveFindChargeRegistration","findChargeRegistration","_this$service$vehicle","_this$service$vehicle2","_this$service$vehicle3","chargeRegistrationReaction","_this$notice$vehicle4","_this$notice$vehicle5","_this$notice$vehicle6","_this6$notice$vehicle","_this6$notice$vehicle2","_this6$vehicleChangeA","_this6$vehicleChangeA2","_this6$vehicleChangeA3","_this6$vehicleChangeA4","_this$notice$vehicle7","_this$notice$vehicle8","EMAIL_REGEX","turnstileAction","recatpchaFailed","openChargePaymentConfirmationModal","emailModalOpened","closeEmailModal","doesNotHaveEmail","checkRequiredEmail","actionSendPaymentConfirmationEmail","sentryError","actionDownloadPaymentConfirmation","ChargeOrderCustomerRatingRequest","ChargeOrderCustomerRatingRules","CustomerReviewModuleNavigationName","customerReview","customerReviewStorage","onCustomerRatingOrderData","checkCustomerRatingStorage","successRatingCardElement","storageRating","PayGateLanguageCode","ORDER_ID_REGEX","PARENT_REGEX","CALLBACK_URL","PROTOCOL_REGEX","HOSTNAME_REGEX","PORT_REGEX","CALLBACK_REGEX","paymentRepository","googlePayPoolingInterval","GOOGLE_PAY_STATUS_POLL_INTERVAL_MS","GOOGLE_PAY_STATUS_POLL_START_DELAY_MS","googlePayStatusPollTimeoutId","googlePayStatusPollIntervalId","googlePayStatusPollInFlight","buildRedirectUrl","localizedPayGateLanguageCode","buildCallbackUrl","protocol","port","buildSpinnerUrl","stopGooglePayStatusPoll","startGooglePayStatusPoll","checkStatus","submittingGooglePayment","mapPayGateStatus","CANCELED","FAILED","browserFingerprintActionUrl","_response$action","_response$action$brow","javaScriptEnabled","javaEnabled","colorDepth","screenWidth","screenHeight","timezoneOffset","CS","EN","DE","HU","PL","RU","applicantPersonVMFactory","operatorVMFactory","vehicleManualValidator","_this$service$cancell","_this5$notice$vehicle","_this5$notice$vehicle2","_this6$notice","_this6$notice2","_this6$notice2$vehicl","_this6$service$cancel","_this6$service$cancel2","validationRules","_agreement","hasLength","_this3$emailInputView","_this$emailInputViewM","vehicleIsExempted","_this$newValidity","newValidity","validSinceCheck","_this$postponedValidi","_data$payload$notific5","_data$payload$notific6","_data$payload$authCod","_data$payload","_this2$charge2","newValidUntil","_this3$newValidity","_this4$postponedValid","_this4$charge4","_this4$charge5","_this4$charge6","_this4$charge7","_this4$postponedValid2","_this4$charge8","_this4$charge9","_this4$charge0","_this4$charge1","_this4$postponedValid3","isFormFilled","d1","d2","diff","NewValidity","_this5$newValidity","_this5$emailInputView","_this6$newValidity","_response$overlapping","_response$overlapType","_this6$isDifferentTim","_this2$newVehicle","_this2$newVehicle2","_this2$emailInputView"],"mappings":"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","file":"static/js/widgetsES6.3bdc8ae.ee7d3346.chunk.mjs","sourcesContent":["import { watchBusy } from \"@frui.ts/screens\";\nimport { validate } from \"@frui.ts/validation\";\nimport { action, computed, observable, reaction } from \"mobx\";\nimport ChargeManagementService from \"services/chargeManagementService\";\nimport EventBus, { putChargeContactFailure, putChargeContactSuccess } from \"services/eventBus\";\nimport LocalizationService from \"services/localizationService\";\nimport AppRouter from \"services/appRouter\";\nimport SignalRNotificationService from \"services/signalR/notification/signalRNotificationService\";\nimport ChargeManagementEditPartViewModel from \"./chargeManagementEditPartViewModel\";\nimport ChargeManagementEditViewModel from \"./chargeManagementEditViewModel\";\nimport { attachAutomaticBlurValidator } from \"utils/validationPatch\";\nimport ChargeTypesService from \"services/chargeTypesService\";\nimport TurnstileViewModel from \"../../common/turnstileViewModel\";\nimport React from \"react\";\nimport * as Sentry from \"@sentry/react\";\nimport { scrollToFirstError } from \"../../../utils/scrollTo\";\nimport ChargeOrderService, { validForToNotificationDays } from \"services/chargeOrderService\";\nimport NotificationPreferences, { NotificationSalespointKiosValidationRules } from \"models/notificationPreferences\";\nimport EnumService from \"services/enumService\";\nimport SourceType from \"entities/sourceType\";\nimport { NotificationValidationRules } from \"entities/notificationPreferencesResponse\";\nimport ChargeValidity from \"entities/chargeValidity\";\nimport { bound } from \"@frui.ts/helpers\";\n\nexport default class ChargeManagementContactViewModel extends ChargeManagementEditPartViewModel {\n  unsubscriptions: Array<() => void> = [];\n  turnstileViewModel: TurnstileViewModel;\n  @observable phoneNumberChanged = false;\n  @observable initialEmailAddress?: string;\n  @observable initialEmailAddressNotification?: string;\n  @observable initialPhoneNumberNotification?: string;\n  @observable initialNotificationEnabled?: boolean;\n\n  @computed\n  get canSubmit() {\n    const isAllowed =\n      this.charge &&\n      this.charge.chargeOrderSourceType &&\n      [SourceType.Kiosk, SourceType.Salespoint].includes(this.charge.chargeOrderSourceType);\n\n    const salespointCanSubmit =\n      isAllowed &&\n      (this.notificationPreferences.emailAddress !== this.initialEmailAddress ||\n        this.notificationPreferences._notificationEnabled);\n\n    const eshopCanSubmit =\n      this.notificationPreferences.emailAddress !== undefined &&\n      this.notificationPreferences.emailAddress.length > 0 &&\n      (this.notificationPreferences.emailAddress !== this.initialEmailAddress ||\n        this.notificationPreferences._emailAddressNotification !== this.initialEmailAddressNotification ||\n        this.notificationPreferences.phoneNumber !== this.initialPhoneNumberNotification ||\n        this.notificationEnabled !== this.initialNotificationEnabled);\n\n    return salespointCanSubmit || eshopCanSubmit;\n  }\n\n  constructor(\n    public localizationService: LocalizationService,\n    protected chargeManagementService: ChargeManagementService,\n    protected chargeOrderService: ChargeOrderService,\n    protected eventBus: EventBus,\n    protected enumService: EnumService,\n    protected signalRNotificationService: SignalRNotificationService,\n    protected chargeTypesService: ChargeTypesService,\n    private router: AppRouter,\n    turnstileViewModelFactory: ReturnType<typeof TurnstileViewModel.Factory>\n  ) {\n    super();\n    this.navigationName = \"notificationSetup\";\n    this.turnstileViewModel = turnstileViewModelFactory(\"chargeManagementContact\", true);\n    this.unsubscriptions.push(\n      this.eventBus.subscribe(putChargeContactFailure, this.putChargeContactFailure),\n      this.eventBus.subscribe(putChargeContactSuccess, this.putChargeContactSuccess)\n    );\n    this.attachValidators();\n  }\n\n  protected onInitialize(): Promise<any> | void {\n    this.unsubscriptions.push(\n      reaction(() => this.notificationPreferences._isNotificationEmailSame, this.onSameNotificationEmailChanged),\n      reaction(() => this.notificationPreferences._emailAddressNotification, this.onEmailAddressNotificationChanged),\n      reaction(() => this.notificationPreferences.emailAddress, this.onEmailAdressChanged),\n      reaction(() => this.notificationPreferences.phoneNumber, this.onPhoneNumberChanged),\n      reaction(() => this.notificationPreferences._notificationEnabled, this.onNotificationEnabled)\n    );\n\n    return super.onInitialize();\n  }\n\n  protected onActivate(): Promise<any> | void {\n    this.initialEmailAddress = this.charge?.emailAddress;\n    this.initialEmailAddressNotification = this.charge?.notificationPreferences.emailAddress;\n    this.initialPhoneNumberNotification = this.charge?.notificationPreferences.phoneNumber;\n    this.initialNotificationEnabled =\n      this.charge?.notificationPreferences.emailNotificationEnabled ||\n      this.charge?.notificationPreferences.smsNotificationEnabled;\n\n    if (this.charge?.notificationPreferences && this.notificationPreferences) {\n      this.notificationPreferences._emailAddressNotification = this.charge?.notificationPreferences.emailAddress;\n      this.notificationPreferences._notificationEnabled =\n        !!this.charge?.notificationPreferences.emailAddress && !!this.charge?.notificationPreferences.emailNotificationEnabled;\n      this.notificationPreferences._isNotificationEmailSame = this.charge?.emailAddress\n        ? this.charge?.emailAddress === this.charge?.notificationPreferences.emailAddress\n        : false;\n      this.notificationPreferences.phoneNumber = this.charge?.notificationPreferences.phoneNumber;\n      this.notificationPreferences.emailAddress = this.charge?.emailAddress;\n      this.notificationPreferences._emailConfirmation = this.charge?.emailAddress;\n    }\n    if (this.charge?.emailAddress && this.notificationPreferences) {\n      this.notificationPreferences.emailAddress = this.notificationPreferences._emailConfirmation = this.charge.emailAddress;\n    }\n    if (this.notificationEnabledInfo !== undefined && this.notificationPreferences) {\n      this.notificationPreferences.emailNotificationEnabled = this.notificationPreferences._notificationEnabled = true;\n    }\n    if (\n      this.charge?.notificationPreferences.emailNotificationEnabled ||\n      this.charge?.notificationPreferences.smsNotificationEnabled\n    ) {\n      this.notificationEnabled = true;\n    }\n  }\n\n  protected onDeactivate(isClosing: boolean): Promise<any> | void {\n    if (isClosing) {\n      this.unsubscriptions.forEach(unsubscribe => unsubscribe());\n      this.unsubscriptions = [];\n    }\n    return super.onDeactivate(isClosing);\n  }\n\n  @computed\n  get defaultPrefixNumber() {\n    if (!this.phoneNumberChanged) {\n      return this.localizationService.defaultPrefixNumber;\n    }\n    return undefined;\n  }\n  @computed\n  get allowedRemoveEmail() {\n    return (\n      this.charge &&\n      this.charge.chargeOrderSourceType &&\n      [SourceType.Kiosk, SourceType.Salespoint].includes(this.charge.chargeOrderSourceType)\n    );\n  }\n\n  @computed\n  get canEdit() {\n    if (this.success) {\n      return false;\n    }\n\n    const permittedActions = this.charge?.permittedActions;\n    return (\n      (permittedActions?.emailAddressChange.isAllowed ||\n        permittedActions?.emailNotificationPreferencesChange.isAllowed ||\n        permittedActions?.smsNotificationPreferencesChange.isAllowed) === true\n    );\n  }\n\n  @computed\n  get canCheckNotif() {\n    return this.canEdit && (this.canEditEmailNotif || this.canEditSmsNotif);\n  }\n\n  @computed\n  get canEditEmailNotif() {\n    return this.permittedActions && this.permittedActions.emailNotificationPreferencesChange.isAllowed;\n  }\n\n  @computed\n  get canEditSmsNotif() {\n    return this.permittedActions && this.permittedActions.smsNotificationPreferencesChange.isAllowed;\n  }\n\n  @computed\n  get charge() {\n    return this.chargeManagementService.charge;\n  }\n\n  @computed\n  get hasSecondStep() {\n    return false;\n  }\n\n  @computed\n  get notificationPreferences() {\n    return (this.charge?.notificationPreferences as NotificationPreferences) ?? new NotificationPreferences();\n  }\n\n  @computed\n  get permittedActions() {\n    return this.charge?.permittedActions;\n  }\n\n  @computed\n  get notificationEnabled() {\n    return this.notificationPreferences._notificationEnabled;\n  }\n\n  set notificationEnabled(notificationEnabled) {\n    if (notificationEnabled && this.notificationPreferences) {\n      this.notificationPreferences._notificationEnabled = notificationEnabled;\n    }\n    if (!notificationEnabled && this.notificationPreferences) {\n      this.notificationPreferences._notificationEnabled = false;\n    }\n  }\n\n  @computed\n  get emailNotificationEnabled() {\n    return this.notificationPreferences.emailNotificationEnabled;\n  }\n\n  @computed\n  get showNotificationPreferences() {\n    return this.canCheckNotif;\n  }\n\n  @computed\n  get isNotificationEmailSame() {\n    return this.notificationPreferences._isNotificationEmailSame;\n  }\n\n  @computed\n  get smsNotificationEnabled() {\n    return this.notificationPreferences.smsNotificationEnabled;\n  }\n\n  @computed\n  get customInfoMessage() {\n    let message;\n    if (!this.canEdit && !this.canEditSmsNotif && !this.canEditEmailNotif) {\n      message = this.permittedActions?.emailAddressChange.rejectionReason;\n    }\n    if (this.canEdit && this.canEditSmsNotif && !this.canEditEmailNotif) {\n      message = this.permittedActions?.smsNotificationPreferencesChange.rejectionReason;\n    }\n    if (this.canEdit && !this.canEditSmsNotif && this.canEditEmailNotif) {\n      message = this.permittedActions?.emailNotificationPreferencesChange.rejectionReason;\n    }\n    if (this.charge) {\n      const chargeType = this.chargeTypesService.getPriceListItemChargeType(this.charge.priceListItemId, true);\n      if (chargeType?.validFor === ChargeValidity.SingleDay) {\n        return this.translate(\"notificationSetup.DENIED_FOR_CHARGE_TYPE\").replace(\"%CHARGE_TYPE%\", chargeType.description);\n      }\n    }\n    if (message && this.charge) {\n      const chargeType = this.chargeTypesService.getPriceListItemChargeType(this.charge.priceListItemId, true);\n      return chargeType?.description\n        ? this.translate(`notificationSetup.${message}`).replace(\"%CHARGE_TYPE%\", chargeType.description)\n        : this.translate(`notificationSetup.${message}`);\n    }\n  }\n\n  @computed\n  get notificationEnabledInfo() {\n    if (!this.charge || !this.notificationPreferences?._notificationEnabled) {\n      return undefined;\n    }\n\n    const tg = (code: string) => this.localizationService.translateGeneral(`charge.management.edit.notificationSetup.${code}`);\n    const chargeType = this.chargeTypesService.getPriceListItemChargeType(this.charge.priceListItemId, true);\n    if (!chargeType?.notifyDaysBefore || this.chargeOrderService.chargeOrder.charges.length > 1) {\n      return tg(\"notificationEnabledInfoGeneric\");\n    }\n\n    return validForToNotificationDays(tg, chargeType.notifyDaysBefore);\n  }\n\n  @action.bound\n  attachValidators() {\n    if (this.notificationPreferences && this.allowedRemoveEmail === false) {\n      attachAutomaticBlurValidator(this.notificationPreferences, NotificationValidationRules);\n    }\n    if (this.allowedRemoveEmail) {\n      attachAutomaticBlurValidator(this.notificationPreferences, NotificationSalespointKiosValidationRules);\n    }\n  }\n\n  @action.bound\n  onEmailAddressNotificationChanged() {\n    const isEmailNotificationSet =\n      this.notificationPreferences._emailAddressNotification !== undefined &&\n      this.notificationPreferences._emailAddressNotification.length > 0;\n    this.notificationPreferences.emailNotificationEnabled = isEmailNotificationSet;\n  }\n\n  @action.bound\n  onPhoneNumberChanged() {\n    this.phoneNumberChanged = true;\n    const isPhoneNumberSet =\n      this.notificationPreferences.phoneNumber !== undefined && this.notificationPreferences.phoneNumber.length > 0;\n    this.notificationPreferences.smsNotificationEnabled = isPhoneNumberSet;\n  }\n\n  @action.bound\n  onSameNotificationEmailChanged() {\n    if (this.notificationPreferences._isNotificationEmailSame) {\n      this.notificationPreferences._emailAddressNotification = this.notificationPreferences.emailAddress;\n      return;\n    }\n    this.notificationPreferences._emailAddressNotification = undefined;\n  }\n\n  @action.bound\n  onEmailAdressChanged() {\n    if (this.notificationPreferences._isNotificationEmailSame) {\n      this.notificationPreferences._emailAddressNotification = this.notificationPreferences.emailAddress;\n    }\n    if (!this.notificationPreferences.emailAddress) {\n      this.notificationPreferences._isNotificationEmailSame = false;\n    }\n  }\n\n  @action.bound\n  onNotificationEnabled() {\n    if (!this.notificationPreferences._notificationEnabled && !this.allowedRemoveEmail) {\n      this.notificationPreferences.phoneNumber = undefined;\n      this.notificationPreferences._emailAddressNotification = undefined;\n      this.notificationPreferences._isNotificationEmailSame = false;\n      this.notificationPreferences.emailNotificationEnabled = false;\n      this.notificationPreferences.smsNotificationEnabled = false;\n    }\n  }\n\n  @action.bound\n  protected putChargeContactSuccess(data: ReturnType<typeof putChargeContactSuccess>) {\n    if (data.payload.triggerer !== \"contactChange\") return;\n    this.clearAfterAsyncAction();\n\n    if (!this.charge) return;\n    this.success = true;\n\n    this.charge._canBeChanged = false;\n    this.charge.notificationPreferences.smsNotificationEnabled = data.payload.notificationPreferences?.smsNotificationEnabled;\n    this.charge.notificationPreferences.emailNotificationEnabled = data.payload.notificationPreferences?.emailNotificationEnabled;\n    this.charge.notificationPreferences._emailAddressNotification =\n      data.payload.notificationPreferences?._emailAddressNotification;\n    this.charge.notificationPreferences._emailConfirmation = data.payload.emailAddress;\n    this.charge.emailAddress = data.payload.emailAddress;\n    this.charge.notificationPreferences.phoneNumber = data.payload.notificationPreferences?.phoneNumber;\n    if (data.payload.authCode) this.charge.authCode = data.payload.authCode;\n    Object.assign(this.charge.notificationPreferences, data.payload.notificationPreferences);\n\n    this.router.navigate(ChargeManagementEditViewModel, undefined, {\n      countryId: this.charge.vehicle.countryId,\n      licensePlate: this.charge.vehicle.licensePlate,\n      authCode: this.charge.authCode,\n    });\n  }\n\n  @action.bound\n  protected putChargeContactFailure(data: ReturnType<typeof putChargeContactFailure>) {\n    if (data.payload.triggerer !== \"contactChange\") {\n      return;\n    }\n\n    this.clearAfterAsyncAction();\n    this.setErrorMessageBasedOnType(data.payload.type);\n  }\n\n  @action.bound\n  translate(code: string) {\n    return this.localizationService.translateGeneral(`charge.management.edit.${code}`);\n  }\n\n  @action.bound\n  ta(code: string) {\n    return this.localizationService.translateAttribute(\"contact\", code);\n  }\n\n  /*  onTurnstileVerify = async (turnstileToken: string) => {\n    if (turnstileToken) {\n      this.turnstileToken = turnstileToken;\n    }\n  }; */\n\n  @action.bound\n  @watchBusy\n  async submit() {\n    this.success = false;\n    this.errorMessage = undefined;\n    const notificationPreferences = this.notificationPreferences;\n\n    if (!notificationPreferences) return;\n    if (!this.validate()) {\n      scrollToFirstError(this.formElement);\n      return;\n    }\n\n    if (!this.turnstileViewModel.turnstileToken) return;\n\n    this.isLoading = true;\n\n    try {\n      await this.chargeManagementService.editContact(\n        this.notificationPreferences,\n        \"contactChange\",\n        this.turnstileViewModel.turnstileToken\n      );\n    } finally {\n      this.isLoading = false;\n    }\n  }\n\n  @bound\n  public validate() {\n    return validate(this.notificationPreferences);\n  }\n}\n","import { observable } from \"mobx\";\nimport { IVehicle } from \"./types\";\nimport { EntityValidationRules } from \"../services/validationService\";\nimport FuelType from \"entities/fuelType\";\n\nexport default class Vehicle implements IVehicle {\n  @observable licensePlate?: string;\n\n  @observable _licensePlateConfirmation?: string;\n\n  @observable countryId?: string;\n\n  @observable _countryIdConfirmation?: string;\n\n  @observable fuelType?: FuelType;\n\n  @observable authCode?: string;\n\n  @observable emailAddress?: string;\n\n  @observable _alternativeDrive = false;\n\n  @observable canBeChangedBeforeValidity?: boolean;\n\n  @observable canBeChangedDuringValidity?: boolean;\n}\n\nexport const CountryIdConfirmationValidationRules: EntityValidationRules<Vehicle> = {\n  _countryIdConfirmation: {\n    equalWith: { property: \"countryId\" as const },\n  },\n};\n","import { PersistedBase64 } from \"../models/notice\";\r\nimport { isIOSSafari } from \"./iOS\";\r\nimport * as Sentry from \"@sentry/react\";\r\nimport { saveAs } from \"file-saver\";\r\n\r\nconst fileFormat = (base64: string) => {\r\n  const base64Parts = base64.split(\",\");\r\n\r\n  return base64Parts[0].split(\";\")[0].split(\":\")[1];\r\n};\r\n\r\nconst persistedBlobToISDSFormat = (persistedBlob: PersistedBase64) => {\r\n  const base64Parts = persistedBlob.base64!.split(\",\");\r\n  return new File([base64Parts[1]], persistedBlob.fileName, {\r\n    type: fileFormat(persistedBlob.base64!),\r\n  });\r\n};\r\n\r\nconst parseFileNameFromHeaderResponse = (string: string): string | null => {\r\n  const pattern = /filename[^=\\n]*=([^\\s;]+)/;\r\n  const match = string.match(pattern);\r\n\r\n  if (!match) {\r\n    return null;\r\n  }\r\n  return match[1];\r\n};\r\n\r\nconst createFileFromBlob = (file: any): void => {\r\n  if (!file || !(file.blob instanceof Blob)) {\r\n    return;\r\n  }\r\n\r\n  const url = window.URL.createObjectURL(file.blob);\r\n  const a = document.createElement(\"a\");\r\n\r\n  a.href = url;\r\n  a.download = file.fileName;\r\n  a.style.display = \"none\";\r\n  document.body.appendChild(a);\r\n  a.click();\r\n\r\n  window.URL.revokeObjectURL(url);\r\n};\r\n\r\nconst saveFileFromURL = async (urlGetter: () => Promise<string | undefined>, sourceIdentifier: string, extra: {}) => {\r\n  const url = await urlGetter();\r\n\r\n  if (!url) {\r\n    Sentry.captureException(new Error(`[${sourceIdentifier}] URL to file does not exists`), {\r\n      extra: { url, ...extra },\r\n    });\r\n\r\n    return;\r\n  }\r\n\r\n  if (isIOSSafari) {\r\n    const a = document.createElement(\"a\");\r\n    a.href = url;\r\n    a.style.display = \"none\";\r\n    document.body.appendChild(a);\r\n    a.click();\r\n    document.body.removeChild(a);\r\n  } else if (!isIOSSafari) {\r\n    const a = document.createElement(\"a\");\r\n    a.href = url;\r\n    a.style.display = \"none\";\r\n    a.target = \"_blank\";\r\n    a.setAttribute(\"download\", \"\");\r\n    document.body.appendChild(a);\r\n    a.click();\r\n    document.body.removeChild(a);\r\n  } else {\r\n    Sentry.captureException(new Error(`[${sourceIdentifier}] - iOS windowReference does not exist`), {\r\n      extra: { url, ...extra },\r\n    });\r\n  }\r\n};\r\n\r\nexport { persistedBlobToISDSFormat, parseFileNameFromHeaderResponse, saveFileFromURL, fileFormat, createFileFromBlob };\r\n","import { validatorsRepository } from \"@frui.ts/validation\";\nimport { observable, runInAction } from \"mobx\";\nimport { availableLocales } from \"../../config\";\nimport AuthorizationService from \"../authorizationService\";\nimport LocaleProvider from \"../localeProvider\";\nimport LocalizationService from \"../localizationService\";\nimport { IInitializationService } from \"./types\";\nimport ValidationService from \"../validationService\";\n\nexport default class BasicInitializationService implements IInitializationService {\n  @observable isInitialized: boolean;\n\n  constructor(\n    private localeProvider: LocaleProvider,\n    private localizationService: LocalizationService,\n    private validationService: ValidationService,\n    private authorizationService: AuthorizationService\n  ) {\n    this.isInitialized = false;\n  }\n\n  async initialize(defaultLanguage?: string) {\n    this.validationService.initialize(validatorsRepository as any);\n    this.localeProvider.initialize(availableLocales, defaultLanguage);\n    this.authorizationService.initialize();\n\n    await Promise.all([this.localizationService.initialize()]);\n\n    runInAction(() => (this.isInitialized = true));\n  }\n}\n","enum PaymentResult {\n  SUCCESS = \"success\",\n  FAILURE = \"failed\",\n  DEFERRED = \"deferred\",\n}\n\nexport enum PaymentResultFailureOrigin {\n  Init = \"PAYMENT_INIT\",\n  Confirmation = \"PAYMENT_CONFIRMATION\",\n}\n\nexport enum PaymentResultFailureType {\n  NotFound = \"CHARGE_ORDER_NOT_FOUND\",\n  Canceled = \"CHARGE_ORDER_CANCELED\",\n  AlreadyConfirmed = \"CHARGE_ORDER_ALREADY_CONFIRMED\",\n  CanceledByCustomer = \"PAYMENT_CANCELED_BY_CUSTOMER\",\n  Denied = \"PAYMENT_DENIED\",\n  Expired = \"PAYMENT_CONFIRMATION_TIMEFRAME_EXPIRED\",\n  Other = \"GENERAL_FAILURE\",\n}\n\nexport default PaymentResult;\n","import { ConductorSingleChild, Router, ScreenBase, watchBusy } from \"@frui.ts/screens\";\nimport BusyWatcher from \"@frui.ts/screens/dist/structure/busyWatcher\";\nimport { validate } from \"@frui.ts/validation\";\nimport { action, observable } from \"mobx\";\nimport LocalizationService from \"services/localizationService\";\nimport Vehicle from \"models/vehicle\";\nimport ChargeRegistrationService from \"services/chargeRegistrationService\";\nimport AppRouter from \"services/appRouter\";\nimport VehicleInfoViewModel from \"../common/vehicleInfoViewModel\";\nimport ValidationSummaryViewModel, { ValidationSummaryNavigationName } from \"./validationSummaryViewModel\";\nimport { czechID } from \"../../config\";\nimport { scrollToElement } from \"utils/scrollTo\";\nimport ChargeTypesService from \"services/chargeTypesService\";\nimport FuelTypeResponse from \"entities/fuelTypeResponse\";\nimport EnumService from \"services/enumService\";\n\nexport const PaymentValidationModuleNavigationName = \"validation\";\n\n@Router.registerRoute({\n  route: PaymentValidationModuleNavigationName,\n  name: Router.Self,\n  children: [ValidationSummaryViewModel],\n})\nexport default class PaymentValidationViewModel extends ConductorSingleChild<ScreenBase> {\n  public vehicleInfoViewModel: VehicleInfoViewModel;\n  private validationSummaryViewModel?: ValidationSummaryViewModel;\n\n  busyWatcher = new BusyWatcher();\n\n  @observable vehicle: Vehicle;\n  @observable errorMessage?: string;\n  @observable childElement?: HTMLElement;\n\n  constructor(\n    public localizationService: LocalizationService,\n    private validationSummaryViewModelFactory: ReturnType<typeof ValidationSummaryViewModel.Factory>,\n    private vehicleInfoViewModelFactory: ReturnType<typeof VehicleInfoViewModel.Factory>,\n    private chargeRegistrationService: ChargeRegistrationService,\n    private chargeTypesService: ChargeTypesService,\n    private enumService: EnumService,\n    private router: AppRouter\n  ) {\n    super();\n    this.nameValue = \"validation.title\";\n    this.navigationName = PaymentValidationModuleNavigationName;\n    this.vehicle = new Vehicle();\n    this.vehicle.countryId = czechID;\n    this.vehicleInfoViewModel = this.vehicleInfoViewModelFactory(this.vehicle, { attachValidator: true, breakpoint: \"xxl\" });\n  }\n\n  protected async onInitialize(): Promise<any> {\n    await this.chargeTypesService.startInitialization(true);\n    this.enumService.values(\"fuel_types\") as FuelTypeResponse[];\n    return super.onInitialize();\n  }\n\n  closeChild(child: ValidationSummaryViewModel, forceClose = false) {\n    this.vehicle = new Vehicle();\n    if (child.vehicle.countryId) {\n      this.vehicle.countryId = child.vehicle.countryId;\n    }\n    this.vehicleInfoViewModel = this.vehicleInfoViewModelFactory(this.vehicle, { attachValidator: true, breakpoint: \"xxl\" });\n    this.chargeRegistrationService.reset();\n\n    return super.closeChild(child, forceClose);\n  }\n\n  @watchBusy\n  async navigate(subPath: string | undefined, params: any): Promise<void> {\n    if (subPath === ValidationSummaryNavigationName && params?.countryId && params?.licensePlate) {\n      const countryId = (this.vehicle.countryId = params.countryId);\n      const licensePlate = (this.vehicle.licensePlate = params.licensePlate);\n\n      try {\n        this.errorMessage = undefined;\n        await this.chargeRegistrationService.getChargeRegistration(countryId, licensePlate);\n        this.validationSummaryViewModel = this.validationSummaryViewModelFactory(\n          this.vehicle,\n          this.chargeRegistrationService.chargeRegistrationsResponse\n        );\n        if (window.innerWidth <= 991) {\n          scrollToElement(this.childElement);\n        }\n      } catch (e) {\n        this.validationSummaryViewModel = undefined;\n        this.errorMessage = \"errorAtCommunicationWithBackend\";\n      }\n    }\n    return super.navigate(subPath, params);\n  }\n\n  protected findNavigationChild(navigationName: string | undefined): Promise<ScreenBase | undefined> | ScreenBase | undefined {\n    if (navigationName === ValidationSummaryNavigationName && this.validationSummaryViewModel) {\n      return this.validationSummaryViewModel;\n    }\n\n    return undefined;\n  }\n\n  @action.bound\n  @watchBusy\n  async validate() {\n    if (!validate(this.vehicle)) {\n      return;\n    }\n\n    const countryId = this.vehicle.countryId;\n    const licensePlate = this.vehicle.licensePlate;\n\n    this.router.navigate(\n      ValidationSummaryViewModel,\n      {},\n      {\n        countryId,\n        licensePlate,\n      }\n    );\n  }\n}\n","import { Type } from \"class-transformer\";\nimport { observable } from \"mobx\";\nimport { EntityValidationRules } from \"services/validationService\";\nimport Vehicle from \"./vehicle\";\n\nexport const AuthCodeValidationRules: EntityValidationRules<Vignette> = {\n  authCode: { isAuthCode: true },\n};\n\nexport default class Vignette {\n  @observable\n  authCode?: string;\n\n  @Type(() => Vehicle)\n  @observable\n  vehicle: Vehicle = new Vehicle();\n}\n","import { bound } from \"@frui.ts/helpers\";\nimport { ConductorOneChildActive, watchBusy } from \"@frui.ts/screens\";\nimport { Router } from \"@frui.ts/screens/dist\";\nimport BusyWatcher from \"@frui.ts/screens/dist/structure/busyWatcher\";\nimport { action, observable } from \"mobx\";\nimport React from \"react\";\nimport LocalizationService from \"services/localizationService\";\nimport { CHARGE_NOT_FOUND } from \"../../repositories/chargeRepository\";\nimport EnumService from \"../../services/enumService\";\nimport EventBus, { chargeValidationFailed } from \"../../services/eventBus\";\nimport AppRouter from \"services/appRouter\";\nimport VehicleInfoViewModel from \"../common/vehicleInfoViewModel\";\nimport ChargeManagementEditViewModel from \"./chargeManagementEdit/chargeManagementEditViewModel\";\nimport { attachAutomaticBlurValidator } from \"../../utils/validationPatch\";\nimport { LicensePlateValidationRules } from \"../../models/orderItem\";\nimport Vignette, { AuthCodeValidationRules } from \"../../models/vignette\";\nimport { validateAll } from \"@frui.ts/validation\";\nimport EshopError from \"../../models/eshopError\";\nimport ChargeManagementService from \"../../services/chargeManagementService\";\nimport { czechID } from \"../../config\";\nimport * as Sentry from \"@sentry/react\";\nimport CountryResponse from \"entities/countryResponse\";\nimport { TurnstileInstance } from \"@marsidev/react-turnstile\";\nimport TurnstileViewModel from \"viewModels/common/turnstileViewModel\";\nimport { scrollToFirstError } from \"utils/scrollTo\";\n\nexport const ChargeManagementModuleNavigationName = \"charge_management\";\n\n@Router.registerRoute({\n  route: ChargeManagementModuleNavigationName,\n  name: Router.Self,\n  children: [ChargeManagementEditViewModel],\n})\nexport default class ChargeManagementViewModel extends ConductorOneChildActive<ChargeManagementEditViewModel> {\n  @observable vignette: Vignette;\n  @observable errorMessage?: string;\n  @observable tooltipUpdate = true;\n  @observable formElement?: HTMLFormElement;\n  busyWatcher = new BusyWatcher();\n  private chargeManagementEditViewModel: ChargeManagementEditViewModel;\n  @observable vehicleInfoViewModel: VehicleInfoViewModel;\n  @observable turnstileViewModel: TurnstileViewModel;\n  turnstileRef = React.createRef<TurnstileInstance>();\n  @observable isTurnstileVisible?: boolean = false;\n  vm: any;\n\n  constructor(\n    public localizationService: LocalizationService,\n    private chargeManagementService: ChargeManagementService,\n    private chargeManagementEditViewModelFactory: () => ChargeManagementEditViewModel,\n    private vehicleInfoViewModelFactory: ReturnType<typeof VehicleInfoViewModel.Factory>,\n    private turnstileViewModelFactory: ReturnType<typeof TurnstileViewModel.Factory>,\n    private enumService: EnumService,\n    private eventBus: EventBus,\n    private router: AppRouter\n  ) {\n    super();\n    this.navigationName = ChargeManagementModuleNavigationName;\n    this.nameValue = \"chargeManagement.title\";\n\n    this.reset();\n    this.turnstileViewModel = this.turnstileViewModelFactory(\"chargeManagement\", false);\n    this.vignette.vehicle.countryId = czechID;\n    this.vehicleInfoViewModel = this.vehicleInfoViewModelFactory(this.vignette.vehicle, {\n      attachValidator: true,\n      fixedLicensePlateSize: false,\n      loadCountriesOnInit: true,\n    });\n    this.eventBus.subscribe(chargeValidationFailed, this.validationFailed);\n  }\n\n  @bound translate(code: string) {\n    return this.localizationService.translateGeneral(`charge.management.${code}`);\n  }\n\n  @bound translateTurnstile(code: string) {\n    return this.localizationService.translateGeneral(`turnstile.${code}`);\n  }\n\n  closeChild(child: ChargeManagementEditViewModel, forceClose = false) {\n    this.reset();\n    this.vehicleInfoViewModel = this.vehicleInfoViewModelFactory(this.vignette.vehicle);\n\n    return super.closeChild(child, forceClose);\n  }\n\n  async navigate(subPath: string, params: any) {\n    if (!params) {\n      return Promise.resolve(undefined);\n    }\n\n    // Support for charge management QR code deeplink\n    if (params.countryCode) {\n      params.countryId = (await this.enumService.lazyValues(\"countries\")).find(\n        (country: CountryResponse) => country.code?.toLowerCase() === params.countryCode.toLowerCase()\n      )?.id;\n    }\n\n    const countryId = params.countryId;\n    const licensePlate = params.licensePlate;\n    const authCode = params.authCode;\n\n    if (authCode) {\n      this.vignette.authCode = authCode;\n    }\n\n    if (licensePlate) {\n      this.vignette.vehicle.licensePlate = licensePlate;\n    }\n\n    if (countryId) {\n      this.vignette.vehicle.countryId = countryId;\n    }\n    if (subPath === \"edit\" && this.children.length === 0) {\n      this.children.push((this.chargeManagementEditViewModel = this.chargeManagementEditViewModelFactory()));\n    }\n\n    return super.navigate(subPath, params);\n  }\n\n  @action.bound\n  reset() {\n    this.vignette = new Vignette();\n\n    attachAutomaticBlurValidator(this.vignette, AuthCodeValidationRules);\n    attachAutomaticBlurValidator(this.vignette.vehicle, LicensePlateValidationRules);\n  }\n\n  @action.bound\n  @watchBusy\n  async verifyCharge() {\n    this.errorMessage = undefined;\n\n    if (!validateAll([this.vignette, this.vignette.vehicle])) return;\n\n    const countryId = this.vignette.vehicle.countryId;\n    const licensePlate = this.vignette.vehicle.licensePlate;\n    const authCode = this.vignette.authCode;\n\n    if (!countryId || !licensePlate || !authCode) return;\n\n    if (this.turnstileViewModel.turnstileToken) {\n      await this.actionVerifyCharge(this.turnstileViewModel.turnstileToken);\n    }\n  }\n\n  @action.bound\n  @watchBusy\n  async actionVerifyCharge(turnstileToken: string) {\n    const countryId = this.vignette.vehicle.countryId;\n    const licensePlate = this.vignette.vehicle.licensePlate;\n    const authCode = this.vignette.authCode;\n\n    if (!countryId || !licensePlate || !authCode) return;\n\n    const result = await this.chargeManagementService\n      .getCharge(countryId, licensePlate, authCode, turnstileToken)\n      .then(response => {\n        if (response instanceof EshopError) {\n          this.turnstileViewModel.reset();\n          scrollToFirstError(this.formElement);\n          return;\n        }\n\n        return { countryId, licensePlate, authCode };\n      });\n\n    this.router.navigate(ChargeManagementEditViewModel, undefined, result);\n    this.turnstileViewModel.reset();\n  }\n\n  @bound\n  protected validationFailed(error: { type: string; payload: { type: string } }) {\n    this.errorMessage =\n      error.payload.type === CHARGE_NOT_FOUND\n        ? this.translate(`errors.${error.payload.type}`)\n        : this.localizationService.translateGeneral(\"errors.generic\");\n  }\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class TransferPaymentRestrictionsResponse {\n  /**\n   * Indicates the number of days by which the validity must be postponed in order to choose transfer payment.\n   */\n  @observable\n  earliestPossibleValidSinceDaysBefore!: number;\n\n  /**\n   * Indicates earliest possible valid since date for which transfer payment can be chosen.\n   */\n  @observable\n  @Type(() => Date)\n  earliestPossibleValidSinceDate!: Date;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport TransferPaymentRestrictionsResponse from \"./transferPaymentRestrictionsResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class PaymentRestrictionsResponse {\n  @observable\n  @Type(() => TransferPaymentRestrictionsResponse)\n  transferPayment!: TransferPaymentRestrictionsResponse;\n}\n","import { observable } from \"mobx\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class PurchasedChargeVehicleRegistrationResponse {\n  /**\n   * Vehicle registration plate.\n   */\n  @observable\n  licensePlate?: string;\n\n  /**\n   * Country ID.\n   */\n  @observable\n  countryId?: string;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport PurchasedChargeVehicleRegistrationResponse from \"./purchasedChargeVehicleRegistrationResponse\";\nimport NotificationPreferencesResponse from \"./notificationPreferencesResponse\";\nimport RequestedChargeValidityResponse from \"./requestedChargeValidityResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargeProposedPurchaseResponse {\n  @observable\n  @Type(() => PurchasedChargeVehicleRegistrationResponse)\n  vehicle?: PurchasedChargeVehicleRegistrationResponse;\n\n  /**\n   * Customer's email address for payment confirmations and payment instructions.\n   */\n  @observable\n  emailAddress?: string;\n\n  @observable\n  @Type(() => NotificationPreferencesResponse)\n  notificationPreferences?: NotificationPreferencesResponse;\n\n  /**\n   * Charge type ID.\n   */\n  @observable\n  chargeTypeId?: string;\n\n  /**\n   * Vehicle fuel type ID.\n   */\n  @observable\n  fuelTypeId?: string;\n\n  @observable\n  @Type(() => RequestedChargeValidityResponse)\n  validity?: RequestedChargeValidityResponse;\n\n  /**\n   * External partner ID from whom was the charge purchase proposed.\n   */\n  @observable\n  proposedPurchaseRequestId?: string;\n}\n","import EshopError from \"../models/eshopError\";\n\nexport default function isErrorResponse(response: any | EshopError): response is EshopError {\n  return (response as EshopError).type !== undefined && response.status >= 400;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport ChargeValidityRequest from \"./chargeValidityRequest\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargesRequest {\n  /**\n   * Vehicle registration plates.\n   */\n  @observable\n  licensePlates!: string[];\n\n  /**\n   * Country ID.\n   */\n  @observable\n  countryId!: string;\n\n  /**\n   * Price list item ID.\n   */\n  @observable\n  priceListItemId!: string;\n\n  @observable\n  @Type(() => ChargeValidityRequest)\n  validity!: ChargeValidityRequest;\n}\n","import { observable } from \"mobx\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class NotificationPreferencesRequest {\n  /**\n   * Phone number.\n   */\n  @observable\n  phoneNumber?: string;\n\n  /**\n   * If true - user is notified before the expiration of a charge by SMS.\n   */\n  @observable\n  smsNotificationEnabled?: boolean;\n\n  /**\n   * If true - user is notified before the expiration of a charge by e-mail.\n   */\n  @observable\n  emailNotificationEnabled?: boolean;\n\n  /**\n   * E-mail address.\n   */\n  @observable\n  emailAddress?: string;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport ChargesRequest from \"./chargesRequest\";\nimport NotificationPreferencesRequest from \"./notificationPreferencesRequest\";\nimport PaymentType from \"./paymentType\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargeOrderRequest {\n  /**\n   * Customer's email address for payment confirmations and payment instructions.\n   */\n  @observable\n  emailAddress!: string;\n\n  @observable\n  @Type(() => NotificationPreferencesRequest)\n  notificationPreferences?: NotificationPreferencesRequest;\n\n  @observable\n  paymentType!: PaymentType;\n\n  /**\n   * External partner ID from whom was the charge purchase proposed.\n   */\n  @observable\n  proposedPurchaseRequestId?: string;\n\n  /**\n   * The list of charges.\n   */\n  @observable\n  @Type(() => ChargesRequest)\n  charges!: ChargesRequest[];\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport VehicleRegistrationResponse from \"./vehicleRegistrationResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargeResponse {\n  /**\n   * Price list item ID.\n   */\n  @observable\n  priceListItemId!: string;\n\n  @observable\n  @Type(() => VehicleRegistrationResponse)\n  vehicle!: VehicleRegistrationResponse;\n\n  /**\n   * Beginning date and time of charge validity.\n   */\n  @observable\n  @Type(() => Date)\n  validSince!: Date;\n\n  /**\n   * End date and time of charge validity.\n   */\n  @observable\n  @Type(() => Date)\n  validUntil!: Date;\n\n  /**\n   * Authentication code.\n   */\n  @observable\n  authCode!: string;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\n\nimport ChargeResponse from \"./chargeResponse\";\nimport TransferPaymentResponse from \"./transferPaymentResponse\";\nimport { ChargeOrderStatus } from \"models/chargeOrder\";\nimport ProposedAfterPurchaseRedirectResponse from \"./proposedAfterPurchaseRedirectResponse\";\nimport TransferPaymentInstructionsResponse from \"./transferPaymentInstructionsResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargeOrderResponse {\n  /**\n   * Charge order ID.\n   */\n  id!: string;\n\n  /**\n   * Order identifier = variable symbol for the payment.\n   */\n  @observable\n  orderIdent!: number;\n\n  @observable\n  @Type(() => TransferPaymentInstructionsResponse)\n  transferPaymentInstructions?: TransferPaymentInstructionsResponse;\n\n  @observable\n  status!: ChargeOrderStatus;\n\n  /**\n   * Payment amount.\n   */\n  @observable\n  paymentAmount!: number;\n\n  @observable\n  @Type(() => ProposedAfterPurchaseRedirectResponse)\n  proposedAfterPurchaseRedirect?: ProposedAfterPurchaseRedirectResponse;\n\n  /**\n   * The list of charges.\n   */\n  @observable\n  @Type(() => ChargeResponse)\n  charges!: ChargeResponse[];\n}\n","import { plainToClass } from \"class-transformer\";\r\nimport EshopRequestBuilder from \"data/eshopRequestBuilder\";\r\nimport { toJS } from \"mobx\";\r\nimport EshopError from \"models/eshopError\";\r\nimport Order from \"models/order\";\r\nimport PaymentRestrictionsResponse from \"entities/paymentRestrictionsResponse\";\r\nimport ChargeProposedPurchaseResponse from \"entities/chargeProposedPurchaseResponse\";\r\nimport AuthorizationService from \"services/authorizationService\";\r\nimport EventBus, { paymentConfirmationAvailable, paymentConfirmationError } from \"services/eventBus\";\r\nimport isErrorResponse from \"utils/isErrorResponse\";\r\nimport RepositoryBase from \"./repositoryBase\";\r\nimport ChargeOrder from \"models/chargeOrder\";\r\nimport ChargeOrderRequest from \"entities/chargeOrderRequest\";\r\nimport ChargeOrderResponse from \"entities/chargeOrderResponse\";\r\nimport GetApiV3ChargeProposedPurchaseQuery from \"entities/getApiV3ChargeProposedPurchaseQuery\";\r\nimport ChargeOrderCustomerRatingRequest from \"entities/chargeOrderCustomerRatingRequest\";\r\nimport { dateToIsoString, utcToCZZonedTime } from \"utils/dateUtils\";\r\nimport PayGatePaymentResponse from \"models/payGatePaymentResponse\";\r\n\r\nexport default class ChargeOrderRepository extends RepositoryBase<EshopRequestBuilder> {\r\n  constructor(\r\n    protected apiFactory: ReturnType<typeof EshopRequestBuilder.Factory>,\r\n    protected authorizationService: AuthorizationService,\r\n    protected eventBus: EventBus\r\n  ) {\r\n    super(() => apiFactory(), authorizationService, eventBus);\r\n  }\r\n\r\n  private handleEmptyResponse = async (response: Response) => {\r\n    if (!response.ok) return plainToClass(EshopError, (await response.json()) as EshopError);\r\n\r\n    return undefined;\r\n  };\r\n  getAll() {\r\n    return this.callApi(api => api.all(\"charge_orders\").get<Order[]>());\r\n  }\r\n\r\n  get(orderId: string) {\r\n    return this.callApi(api =>\r\n      api\r\n        .apiVersion(3.1)\r\n        .one(\"charge_orders\", orderId)\r\n        .get<ChargeOrderResponse>()\r\n        .then(item => plainToClass(ChargeOrderResponse, item))\r\n    );\r\n  }\r\n\r\n  getProposedPurchase({ chargeId }: GetApiV3ChargeProposedPurchaseQuery) {\r\n    return this.callApi(api =>\r\n      api\r\n        .apiVersion(3.1)\r\n        .one(`charge_proposed_purchases/${chargeId}`)\r\n        .get<ChargeProposedPurchaseResponse>()\r\n        .then(item => plainToClass(ChargeProposedPurchaseResponse, item))\r\n    );\r\n  }\r\n\r\n  postProposedPurchaseRequest({ chargeId, proposedPurchaseRequestID }: GetApiV3ChargeProposedPurchaseQuery) {\r\n    return this.callApi(api =>\r\n      api\r\n        .apiVersion(3.1)\r\n        .one(\"proposed_purchase_requests\")\r\n        .post<ChargeOrderRequest | EshopError>({ proposedPurchaseRequestId: proposedPurchaseRequestID })\r\n        .then(response => {\r\n          if (isErrorResponse(response)) {\r\n            throw new Error(\"4xx error received from server\");\r\n          } else {\r\n            return plainToClass(ChargeProposedPurchaseResponse, response);\r\n          }\r\n        })\r\n    );\r\n  }\r\n\r\n  getTransferPaymentRestrictions() {\r\n    return this.callApi(api =>\r\n      api\r\n        .apiVersion(3)\r\n        .one(\"charges/payment_restrictions\")\r\n        .get<PaymentRestrictionsResponse>()\r\n        .then(item => plainToClass(PaymentRestrictionsResponse, item))\r\n    );\r\n  }\r\n\r\n  post(chargeOrder: ChargeOrder, connectionId: string, turnstileToken: string | undefined | null) {\r\n    const postOrder = { ...toJS(chargeOrder) } as any;\r\n    postOrder.charges = postOrder.charges?.map((item: any) => {\r\n      if (item.validity.validSinceDate) {\r\n        item.validity.validSinceDate = dateToIsoString(utcToCZZonedTime(item.validity.validSinceDate));\r\n      }\r\n      delete item.validSince;\r\n      return item;\r\n    });\r\n    delete postOrder.id;\r\n    return this.callApi(() =>\r\n      this.apiFactory()\r\n        .apiVersion(3.2)\r\n        .one(\"charge_orders\")\r\n        .post<ChargeOrderRequest | EshopError>(postOrder, undefined, connectionId, undefined, turnstileToken)\r\n        .then(response => {\r\n          if (isErrorResponse(response)) {\r\n            throw new Error(\"4xx error received from server\");\r\n          } else {\r\n            return plainToClass(ChargeOrderRequest, response);\r\n          }\r\n        })\r\n    );\r\n  }\r\n  postCustomerRating(orderId: string, customerRating: ChargeOrderCustomerRatingRequest) {\r\n    return this.callApi(() =>\r\n      this.apiFactory()\r\n        .apiVersion(3)\r\n        .one(`charge_orders/${orderId}/customer_rating`)\r\n        .clearPost(customerRating, undefined, undefined, undefined)\r\n        .then(async response => await this.handleEmptyResponse(response))\r\n    );\r\n  }\r\n\r\n  async getPayGatePayment(orderId: string) {\r\n    return this.callApi(api => api.apiVersion(3).one(`charge_orders/${orderId}/pay_gate_payment`).get<PayGatePaymentResponse>());\r\n  }\r\n\r\n  async getPaymentConfirmation(orderId: string) {\r\n    return this.callApi(api =>\r\n      api\r\n        .apiVersion(3)\r\n        .one(`single_charge_orders/${orderId}/receipt`)\r\n        .get<Response>()\r\n        .then(response => {\r\n          if (response.ok && response.redirected) {\r\n            this.eventBus.publish(paymentConfirmationAvailable({ url: response.url }));\r\n            return response.url;\r\n          }\r\n          this.eventBus.publish(paymentConfirmationError());\r\n          return undefined;\r\n        })\r\n        .catch(() => {\r\n          this.eventBus.publish(paymentConfirmationError());\r\n          return undefined;\r\n        })\r\n    );\r\n  }\r\n}\r\n","import { bound } from \"@frui.ts/helpers\";\r\nimport { getDay } from \"date-fns\";\r\nimport { Router, ScreenBase, watchBusy } from \"@frui.ts/screens\";\r\nimport BusyWatcher from \"@frui.ts/screens/dist/structure/busyWatcher\";\r\nimport debounce from \"debounce-promise\";\r\nimport { distanceTo, insideCircle, Location } from \"geolocation-utils\";\r\nimport take from \"lodash/take\";\r\nimport { action, computed, observable, reaction, runInAction } from \"mobx\";\r\nimport LocalizationService from \"services/localizationService\";\r\nimport OpeningHoursResponse from \"entities/openingHoursResponse\";\r\nimport TradingPlaceService from \"services/tradingPlaceService\";\r\nimport Free2023 from \"assets/geodata/2023/free.json\";\r\nimport Paid2023 from \"assets/geodata/2023/paid.json\";\r\nimport Partial2023 from \"assets/geodata/2023/partial.json\";\r\nimport Free2024 from \"assets/geodata/2024/free.json\";\r\nimport Paid2024 from \"assets/geodata/2024/paid.json\";\r\nimport Partial2024 from \"assets/geodata/2024/partial.json\";\r\nimport Free2025 from \"assets/geodata/2025/free.json\";\r\nimport Paid2025 from \"assets/geodata/2025/paid.json\";\r\nimport Partial2025 from \"assets/geodata/2025/partial.json\";\r\nimport Free2026 from \"assets/geodata/2026/free.json\";\r\nimport Paid2026 from \"assets/geodata/2026/paid.json\";\r\nimport Partial2026 from \"assets/geodata/2026/partial.json\";\r\nimport TradingPlaceDetailResponse from \"entities/tradingPlaceDetailResponse\";\r\nimport TradingPlaceType from \"entities/tradingPlaceType\";\r\nimport TradingPlaceResponse from \"entities/tradingPlaceResponse\";\r\nimport OpeningHoursKind from \"entities/openingHoursKind\";\r\nimport OpeningHoursIntervalResponse from \"entities/openingHoursIntervalResponse\";\r\n\r\ntype OnGoogleApiLoadedProps = {\r\n  map: google.maps.Map;\r\n  maps?: any;\r\n  ref?: any;\r\n};\r\n\r\nexport const TradingPlacesModuleNavigationName = \"trading_places\";\r\n\r\nexport type Day = \"monday\" | \"tuesday\" | \"wednesday\" | \"thursday\" | \"friday\" | \"saturday\" | \"sunday\";\r\nexport const dayNames: Day[] = [\"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\"];\r\n\r\ntype VisibleRoads = {\r\n  free: boolean;\r\n  paid: boolean;\r\n  year: number;\r\n};\r\n\r\ntype VisibleTradingPlaces = {\r\n  kiosk: boolean;\r\n  salesPoint: boolean;\r\n};\r\n\r\ntype AvailableMaps = {\r\n  [keyof: number]: {\r\n    free: any;\r\n    paid: any;\r\n    partial?: any;\r\n  };\r\n};\r\n\r\n@Router.registerRoute({ route: TradingPlacesModuleNavigationName, name: \"trading_places\" })\r\nexport default class TradingPlacesViewModel extends ScreenBase {\r\n  busyWatcher = new BusyWatcher();\r\n  unsubscriptions: Array<() => void> = [];\r\n\r\n  @observable place?: TradingPlaceDetailResponse;\r\n  geocoderService: google.maps.Geocoder;\r\n  maxResultsCount = 5;\r\n  @observable showMap = false;\r\n  private searchCache = new Map<string, TradingPlaceDetailResponse[] | undefined>();\r\n  private closureDateRegexp = /%date%/g;\r\n  private closureSinceRegexp = /%since%/g;\r\n  private closureUntilRegexp = /%until%/g;\r\n\r\n  /*https://gitlab.cendis.cz/edaz/edaz-tasks/-/issues/1208 - hide year 2023*/\r\n  roadMapYears = [2026 /*2025 2024   2023 */];\r\n\r\n  availableRoadMaps: AvailableMaps = {\r\n    2026: {\r\n      free: Free2026,\r\n      paid: Paid2026,\r\n    },\r\n    /*2025: {\r\n     free: Free2025,\r\n     paid: Paid2025,\r\n     partial: Partial2025,\r\n   },\r\n  2024: {\r\n     free: Free2024,\r\n     paid: Paid2024,\r\n     partial: Partial2024,\r\n   },\r\n     2023: {\r\n     free: Free2023,\r\n     paid: Paid2023,\r\n     partial: Partial2023,\r\n   }, */\r\n  };\r\n\r\n  @observable map?: google.maps.Map = undefined;\r\n  @observable visibleRoads: VisibleRoads;\r\n  @observable visibleTradingPlaces: VisibleTradingPlaces;\r\n  @observable tooltipMessage = {\r\n    road: undefined,\r\n    roadType: undefined,\r\n  };\r\n  @observable showTooltip = false;\r\n  @observable tooltipPosition = {\r\n    x: 0,\r\n    y: 0,\r\n  };\r\n  @observable searchValue = \"\";\r\n  @observable suggestedPlaces: TradingPlaceResponse[] = [];\r\n  @observable mobileFilterOpen = false;\r\n  @observable mapButtonTitle: string;\r\n  @observable mapButtonClassName = \"\";\r\n  @observable mapButtonContainerClassName = \"text-center text-sm-left\";\r\n  @observable mobileHideSalesPoint = true;\r\n\r\n  translateGeneral = (code: string) => {\r\n    return this.localizationService.translateGeneral(`tradingPlaces.${code}`);\r\n  };\r\n\r\n  constructor(public localizationService: LocalizationService, public tradingPlacesService: TradingPlaceService) {\r\n    super();\r\n    this.navigationName = TradingPlacesModuleNavigationName;\r\n    this.localizationService = localizationService;\r\n    this.nameValue = \"tradingPlaces.title\";\r\n    this.mapButtonTitle = this.translateGeneral(\"showUpMap\");\r\n    this.visibleRoads = {\r\n      free: false,\r\n      paid: false,\r\n      year: this.roadMapYears[0],\r\n    };\r\n    this.visibleTradingPlaces = {\r\n      kiosk: true,\r\n      salesPoint: true,\r\n    };\r\n    this.unsubscriptions.push(\r\n      reaction(() => [this.visibleRoads.free, this.visibleRoads.paid, this.visibleRoads.year], this.handleRoadVisibilityChange)\r\n    );\r\n  }\r\n\r\n  protected onDeactivate = (isClosing: boolean): Promise<any> | void => {\r\n    if (isClosing) {\r\n      this.unsubscriptions.forEach(unsubscribe => unsubscribe());\r\n      this.unsubscriptions = [];\r\n    }\r\n    return super.onDeactivate(isClosing);\r\n  };\r\n\r\n  openingTimeRange = (day?: OpeningHoursIntervalResponse) => {\r\n    return day ? `${day.from}-${day.to}` : undefined;\r\n  };\r\n\r\n  holidayDay = (openingHour: OpeningHoursResponse) => {\r\n    if (!openingHour.week) {\r\n      return undefined;\r\n    }\r\n    if (!openingHour.validSince) {\r\n      return undefined;\r\n    }\r\n    return dayNames[getDay(new Date(openingHour.validSince))];\r\n  };\r\n\r\n  @bound\r\n  @watchBusy\r\n  async onShowMapClick() {\r\n    this.showMap = true;\r\n    await this.tradingPlacesService.initialize();\r\n  }\r\n\r\n  @action.bound\r\n  closePopover() {\r\n    this.place = undefined;\r\n  }\r\n\r\n  @bound\r\n  @watchBusy\r\n  async choosePlace(id: string) {\r\n    const place = await this.tradingPlacesService.itemDetail(id);\r\n    this.place = {\r\n      ...place,\r\n      id,\r\n    };\r\n  }\r\n\r\n  /**\r\n   * Filter out tranding places that are not available or have no coordinates\r\n   */\r\n  @computed\r\n  get places() {\r\n    // @TODO Filter nebude potřeba až bude BE vracet co má\r\n    return this.tradingPlacesService.tradingPlaces?.items?.filter(\r\n      place => place.isAvailable && place.latitude && place.longitude\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Transform trading places data to coordinates for map\r\n   */\r\n  @computed\r\n  get placesCoords() {\r\n    if (!this.visibleTradingPlaces) {\r\n      return [];\r\n    }\r\n    return this.places\r\n      ?.filter(place => {\r\n        if (this.visibleTradingPlaces.salesPoint && place.type === TradingPlaceType.Salespoint) {\r\n          return true;\r\n        }\r\n        if (this.visibleTradingPlaces.kiosk && place.type === TradingPlaceType.Kiosk) {\r\n          return true;\r\n        }\r\n        return false;\r\n      })\r\n      .map(place => ({\r\n        id: place.id,\r\n        coords: { lat: place.latitude, lng: place.longitude },\r\n        type: place.type === TradingPlaceType.Kiosk ? (\"kiosk\" as const) : (\"salesPoint\" as const),\r\n        open: true, // @TODO BE to teď nevrací\r\n      }));\r\n  }\r\n\r\n  @computed\r\n  get closures() {\r\n    return (\r\n      this.place?.salespoint?.openingHours.filter(\r\n        item => item.kind === OpeningHoursKind.Closure && item.validSince && item.validUntil\r\n      ) || []\r\n    );\r\n  }\r\n\r\n  closureInfo = (closure: OpeningHoursResponse) => {\r\n    if (!closure.validSince || !closure.validUntil) {\r\n      return;\r\n    }\r\n    const since = this.localizationService.formatDate(new Date(closure.validSince));\r\n    const until = this.localizationService.formatDate(new Date(closure.validUntil));\r\n\r\n    const oneDayRelation = since === until;\r\n\r\n    const result = oneDayRelation\r\n      ? this.translateGeneral(\"closureTimeForOneDay\").replace(this.closureDateRegexp, since)\r\n      : this.translateGeneral(\"closureTime\").replace(this.closureSinceRegexp, since).replace(this.closureUntilRegexp, until);\r\n\r\n    return result;\r\n  };\r\n\r\n  /**\r\n   * Callback for Google Maps API when it is loaded\r\n   * @param map\r\n   * @param maps\r\n   * @param ref\r\n   */\r\n  onGoogleApiLoaded = ({ map, maps, ref }: OnGoogleApiLoadedProps) => {\r\n    this.map = map;\r\n    this.geocoderService = new google.maps.Geocoder();\r\n\r\n    // Load visible roads\r\n    this.loadRoadsForYear(this.visibleRoads.year);\r\n    this.setVisibleRoads();\r\n\r\n    // Add event listeners for road tooltips\r\n    map.data.addListener(\"mouseover\", (event: any) => {\r\n      this.tooltipMessage = {\r\n        road: event.feature.getProperty(\"Komunikace\"),\r\n        roadType: event.feature.getProperty(\"EDAZ\"),\r\n      };\r\n      this.tooltipPosition = {\r\n        x: event.domEvent.x + 10,\r\n        y: event.domEvent.y + 10,\r\n      };\r\n      this.showTooltip = true;\r\n    });\r\n    map.data.addListener(\"mouseout\", () => {\r\n      this.tooltipPosition = {\r\n        x: 0,\r\n        y: 0,\r\n      };\r\n      this.tooltipMessage = {\r\n        road: undefined,\r\n        roadType: undefined,\r\n      };\r\n      this.showTooltip = false;\r\n    });\r\n  };\r\n\r\n  /**\r\n   * Handle change in road visibility state and load appropriate data\r\n   */\r\n  @action handleRoadVisibilityChange = () => {\r\n    this.loadRoadsForYear(this.visibleRoads.year);\r\n    this.setVisibleRoads();\r\n  };\r\n\r\n  /**\r\n   * All trading places visible checkbox state\r\n   */\r\n  @computed get allTradingPlacesVisible() {\r\n    let allValue = true;\r\n    Object.keys(this.visibleTradingPlaces).forEach(key => {\r\n      if (!this.visibleTradingPlaces[key as keyof VisibleTradingPlaces]) {\r\n        allValue = false;\r\n      }\r\n    });\r\n    return allValue;\r\n  }\r\n\r\n  set allTradingPlacesVisible(value) {\r\n    Object.keys(this.visibleTradingPlaces).forEach(key => {\r\n      this.visibleTradingPlaces[key as keyof VisibleTradingPlaces] = value;\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Show/hide mobile filtering options\r\n   */\r\n  @action toggleMobileFilter = () => {\r\n    this.mobileFilterOpen = !this.mobileFilterOpen;\r\n  };\r\n\r\n  /**\r\n   * Load roads for selected year\r\n   * @param year\r\n   */\r\n  @action loadRoadsForYear = (year: keyof AvailableMaps) => {\r\n    if (this.map) {\r\n      // Reset map data\r\n      this.map.data.forEach(feature => this.map?.data.remove(feature));\r\n      // Add road layer data\r\n      this.map.data.addGeoJson(this.availableRoadMaps[year].free);\r\n      this.map.data.addGeoJson(this.availableRoadMaps[year].paid);\r\n      // missing 2026 this.map.data.addGeoJson(this.availableRoadMaps[year].partial);\r\n    }\r\n  };\r\n\r\n  /**\r\n   * Set visibility of roads\r\n   */\r\n  @action setVisibleRoads = () => {\r\n    if (this.map) {\r\n      // Add styles for roads\r\n      this.map.data.setStyle(feature => {\r\n        const roadType = feature.getProperty(\"EDAZ\");\r\n        let style;\r\n        const strokeWeight = 4;\r\n\r\n        switch (roadType) {\r\n          // Paid roads\r\n          case \"a\":\r\n            style = {\r\n              strokeColor: \"#C1103C\",\r\n              strokeWeight,\r\n              visible: this.visibleRoads.paid,\r\n            };\r\n            break;\r\n          // Free roads\r\n          case \"n\":\r\n            style = {\r\n              strokeColor: \"#052856\",\r\n              strokeWeight,\r\n              visible: this.visibleRoads.free,\r\n            };\r\n            break;\r\n          // Paid only in direction out of the country\r\n          case \"p\":\r\n          default:\r\n            style = {\r\n              strokeColor: \"#b062f8\",\r\n              strokeWeight,\r\n              visible: this.visibleRoads.free || this.visibleRoads.paid,\r\n            };\r\n            break;\r\n        }\r\n        return style;\r\n      });\r\n    }\r\n  };\r\n\r\n  @action\r\n  toogleMobileSalesPoint() {\r\n    this.mobileHideSalesPoint = !this.mobileHideSalesPoint;\r\n  }\r\n\r\n  @action searchTradingPlaces = async (query: string) => {\r\n    if (query.length < 3) {\r\n      return undefined;\r\n    }\r\n\r\n    if (this.searchCache.has(query)) {\r\n      return this.searchCache.get(query);\r\n    }\r\n\r\n    let places: TradingPlaceResponse[] | undefined = undefined;\r\n\r\n    try {\r\n      await this.geocoderService.geocode(\r\n        {\r\n          address: query,\r\n          region: \"CZ\",\r\n          componentRestrictions: {\r\n            country: \"CZ\",\r\n          },\r\n        },\r\n        (results, status) => {\r\n          if (results && status === google.maps.GeocoderStatus.OK) {\r\n            const locations: Location[] = results\r\n              // Filter out results without geometry\r\n              .filter(result => result.geometry)\r\n              // Filter out points of interest that are not establishments and countries\r\n              .filter(result => {\r\n                const types = result.types;\r\n                return !(types.includes(\"point_of_interest\") && !types.includes(\"establishment\")) && !types.includes(\"country\");\r\n              })\r\n              .map(result => ({\r\n                lat: result.geometry!.location.lat(),\r\n                lng: result.geometry!.location.lng(),\r\n              }));\r\n\r\n            places = this.findTradingPlacesNearToLocation(locations);\r\n\r\n            if (places.length === 0 && locations.length !== 0) {\r\n              places = this.findTradingPlacesNearToLocation(locations, 6000);\r\n            }\r\n\r\n            places = take(places, this.maxResultsCount);\r\n          } else if (status === google.maps.GeocoderStatus.ZERO_RESULTS) {\r\n            places = [];\r\n          }\r\n\r\n          runInAction(() => {\r\n            this.searchCache.set(query, places);\r\n            if (places) {\r\n              this.suggestedPlaces = places;\r\n            }\r\n          });\r\n        }\r\n      );\r\n    } catch (e) {\r\n      // We don't care about Geocoder errors\r\n    }\r\n  };\r\n\r\n  findTradingPlacesNearToLocation = (locations: Location[], radiusInMeters = 3000) => {\r\n    const places: TradingPlaceResponse[] = [];\r\n    try {\r\n      locations.forEach(location => {\r\n        const locationPlaces = this.places\r\n          .filter(place => insideCircle({ lat: place.latitude, lng: place.longitude }, location, radiusInMeters))\r\n          .sort((a, b) => {\r\n            return (\r\n              distanceTo({ lat: a.latitude, lng: a.longitude }, location) -\r\n              distanceTo({ lat: b.latitude, lng: a.longitude }, location)\r\n            );\r\n          });\r\n\r\n        places.push(...locationPlaces);\r\n\r\n        if (places.length >= this.maxResultsCount) {\r\n          throw new Error();\r\n        }\r\n      });\r\n    } catch (e) {\r\n      // Error just break foreach if we have enought result\r\n    }\r\n\r\n    return places;\r\n  };\r\n\r\n  debouncedSearchTradingPlaces = debounce(this.searchTradingPlaces, 400, { leading: true });\r\n\r\n  tradingPlaceSelected = (tradingPlace: TradingPlaceResponse) => {\r\n    this.choosePlace(tradingPlace.id);\r\n  };\r\n\r\n  translate = (code: string) => {\r\n    return this.localizationService.translate(`general.tradingPlaces.${code}`);\r\n  };\r\n}\r\n","// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nenum ChargeOrderInstructionType {\n  ChargeWasNotPurchasedBefore = \"CHARGE_WAS_NOT_PURCHASED_BEFORE\",\n  UnusedCharactersInLicensePlate = \"UNUSED_CHARACTERS_IN_LICENSE_PLATE\",\n  IdentifiedPossibleExemption = \"IDENTIFIED_POSSIBLE_EXEMPTION\",\n  VehicleCategoryWithoutChargeObligation = \"VEHICLE_CATEGORY_WITHOUT_CHARGE_OBLIGATION\",\n  VehicleRegisterVerificationDisabled = \"VEHICLE_REGISTER_VERIFICATION_DISABLED\",\n  VehicleUnverifiedWithVehicleRegister = \"VEHICLE_UNVERIFIED_WITH_VEHICLE_REGISTER\",\n  MultipleVehiclesFoundInVehicleRegister = \"MULTIPLE_VEHICLES_FOUND_IN_VEHICLE_REGISTER\",\n  IdentifiedFuelTypeLimitation = \"IDENTIFIED_FUEL_TYPE_LIMITATION\",\n  VehicleNotFoundInVehicleRegister = \"VEHICLE_NOT_FOUND_IN_VEHICLE_REGISTER\",\n  InvalidVehicleStatusInVehicleRegister = \"INVALID_VEHICLE_STATUS_IN_VEHICLE_REGISTER\",\n  MissingOrInvalidVehicleFuelTypeInVehicleRegister = \"MISSING_OR_INVALID_VEHICLE_FUEL_TYPE_IN_VEHICLE_REGISTER\",\n  MissingOrInvalidVehicleEmissionsInVehicleRegister = \"MISSING_OR_INVALID_VEHICLE_EMISSIONS_IN_VEHICLE_REGISTER\",\n  VehicleRegisterFuelTypeBasedExemption = \"VEHICLE_REGISTER_FUEL_TYPE_BASED_EXEMPTION\",\n}\nexport default ChargeOrderInstructionType;\n","// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\ninterface FuelTypeLimitationReasonOrder {\n  DERIVED_FROM_VEHICLE_REGISTER_DATA: number;\n  VEHICLE_NOT_FOUND_IN_VEHICLE_REGISTER: number;\n  INVALID_VEHICLE_STATUS_IN_VEHICLE_REGISTER: number;\n  MISSING_OR_INVALID_VEHICLE_FUEL_TYPE_IN_VEHICLE_REGISTER: number;\n  MISSING_OR_INVALID_VEHICLE_EMISSIONS_IN_VEHICLE_REGISTER: number;\n}\n\nconst FuelTypeLimitationReasonOrder: FuelTypeLimitationReasonOrder = {\n  DERIVED_FROM_VEHICLE_REGISTER_DATA: 1,\n  VEHICLE_NOT_FOUND_IN_VEHICLE_REGISTER: 2,\n  INVALID_VEHICLE_STATUS_IN_VEHICLE_REGISTER: 3,\n  MISSING_OR_INVALID_VEHICLE_FUEL_TYPE_IN_VEHICLE_REGISTER: 4,\n  MISSING_OR_INVALID_VEHICLE_EMISSIONS_IN_VEHICLE_REGISTER: 5,\n};\n\nexport default FuelTypeLimitationReasonOrder;\n","import { Router, ScreenBase } from \"@frui.ts/screens\";\nimport LocalizationService from \"../../services/localizationService\";\nimport { action, computed, observable, reaction, runInAction, toJS } from \"mobx\";\nimport AppRouter from \"services/appRouter\";\nimport SummaryViewModel from \"./summaryMultiEshopViewModel\";\nimport Enum from \"../../models/enum\";\nimport EnumService from \"../../services/enumService\";\nimport ChargeRegistrationService from \"../../services/chargeRegistrationService\";\nimport EventBus, { vehicleChargeOrderInstructions, vehicleChargeValidityInstructions } from \"../../services/eventBus\";\nimport { getStatusSteps } from \"./multiEshopStatusSteps\";\nimport BatchOrderViewModel from \"./batchOrderViewModel\";\nimport ChargeOrderService from \"services/chargeOrderService\";\nimport ChargeOrderItem from \"models/chargeOrderItem\";\nimport VehicleService from \"services/vehicleService\";\nimport ChargeValidityInstructionGroupsResponse from \"entities/chargeValidityInstructionGroupsResponse\";\nimport ChargeOrderInstructionGroupsResponse from \"entities/chargeOrderInstructionGroupsResponse\";\nimport FuelTypeResponse from \"entities/fuelTypeResponse\";\nimport ChargeValidityInstructionGroupResponse from \"entities/chargeValidityInstructionGroupResponse\";\nimport ChargeOverlapType from \"entities/chargeOverlapType\";\nimport ChargeOrderInstructionType from \"entities/chargeOrderInstructionType\";\nimport ChargeVehicleWarningReasonOrder from \"entities/chargeVehicleWarningReasonOrder\";\nimport ChargeTypesService from \"services/chargeTypesService\";\nimport ExemptionReasonResponse from \"entities/exemptionReasonResponse\";\nimport { isMobile } from \"react-device-detect\";\nimport { scrollToElement } from \"utils/scrollTo\";\nimport ChargeValidityOverlapInstructionsGroupResponse from \"entities/chargeValidityOverlapInstructionsGroupResponse\";\nimport { IVehicle } from \"models/types\";\nimport FuelTypeLimitationResponse from \"entities/fuelTypeLimitationResponse\";\nimport FuelTypeLimitationReasonOrder from \"entities/fuelTypeLimitationReasonOrder\";\nimport FuelTypeLimitationReason from \"entities/fuelTypeLimitationReason\";\nimport TimeService from \"services/timeService\";\nimport { dateToIsoDate, endOfCzechDay, isSamePragueDay } from \"utils/dateUtils\";\n\nexport const OrderRecapViewModelNavigationName = \"recap\";\n\nexport enum OverlayValidity {\n  VALID = \"VALID\",\n}\n\nclass ChargeOverlay {\n  licensePlate: string;\n  state: OverlayValidity;\n  expiration: Date;\n  selected? = false;\n}\nclass ChargeExemptions {\n  instructionType: string;\n  possibleExemptionId?: string;\n  possibleExemptionReason?: string;\n  vehicles?: IVehicle[];\n}\n\nclass ChargePossibleExemptions {\n  instructionType: string;\n  possibleExemptionId?: string;\n  fuelTypeLimitation: FuelTypeLimitationResponse;\n  possibleExemptionReason?: string;\n  fuelTypeLable: string;\n  vehicles?: IVehicle[];\n}\nclass CountryData {\n  [key: string]: IVehicle[];\n}\n\n@Router.registerRoute({ name: \"recap\", route: OrderRecapViewModelNavigationName })\nexport default class OrderRecapViewModel extends ScreenBase {\n  private unsubscription: Array<() => void> = [];\n\n  @observable detail?: ChargeOrderItem = undefined;\n  @observable detailIndex = -1;\n  @observable loading: boolean;\n  @observable summaryViewModel: SummaryViewModel;\n  @observable possibleExemptionIds: string[] = [];\n  @observable overlayRecommendationHidden = false;\n  @observable overlayExemptionRecommendationHidden = false;\n\n  @observable exemptions: ChargeExemptions[] = [];\n  @observable exemptionsIdentifiedPossible: ChargeExemptions[] = [];\n  @observable possibleExemptions: ChargePossibleExemptions[] = [];\n  @observable overlays: ChargeOverlay[] = [];\n  @observable overlapsExemption: ChargeValidityOverlapInstructionsGroupResponse[] = [];\n  @observable overlaysTitle: string;\n  @observable allOverlaysSelected: boolean | null = false;\n\n  // Flag to signal that fuel type limitations should be processed in event handler\n  private shouldProcessFuelTypeLimitations = false;\n\n  statusNavigation = getStatusSteps();\n\n  protected subscriptions: Array<() => void> = [];\n\n  constructor(\n    public localizationService: LocalizationService,\n    public chargeRegistrationService: ChargeRegistrationService,\n    public timeService: TimeService,\n    public vehicleService: VehicleService,\n    private chargeOrderService: ChargeOrderService,\n    private chargeTypesService: ChargeTypesService,\n    private summaryViewModelFactory: ReturnType<typeof SummaryViewModel.Factory>,\n    private enumService: EnumService,\n    private router: AppRouter,\n    protected eventBus: EventBus\n  ) {\n    super();\n    this.navigationName = OrderRecapViewModelNavigationName;\n    this.subscriptions.push(this.eventBus.subscribe(vehicleChargeOrderInstructions, this.vehicleChargeOrderInstructions));\n    this.subscriptions.push(this.eventBus.subscribe(vehicleChargeValidityInstructions, this.vehicleChargeValidityInstructions));\n  }\n\n  protected async onInitialize(): Promise<any> {\n    await this.enumService.lazyValues(\"countries\");\n    this.enumService.values(\"exemption_reasons\") as ExemptionReasonResponse[];\n    this.loading = true;\n    this.summaryViewModel = this.summaryViewModelFactory(false, this.loading, this.onContinue, this.onBack);\n    return super.onInitialize();\n  }\n\n  protected onDeactivate(isClosing: boolean): Promise<any> | void {\n    if (isClosing) {\n      this.subscriptions.forEach(unsubscribe => unsubscribe());\n      this.subscriptions = [];\n    }\n\n    return super.onDeactivate(isClosing);\n  }\n\n  protected async onActivate(): Promise<any> {\n    if (isMobile && this.stepper) {\n      scrollToElement(this.stepper);\n    }\n    this.loading = true;\n    this.unsubscription.push(reaction(() => this.loading, this.onLoadingChange));\n\n    const isChargesModified = this.chargeOrderService.chargeOrder.charges.some(charge => charge._isModified);\n\n    if (isChargesModified) {\n      this.resetObservables();\n      this.chargeOrderService.chargeOrder.charges.forEach(charge => (charge._isModified = false));\n      this.chargeOrderService.persistChargeOrder();\n    }\n\n    // Always call BE to get fresh data - loadVehicleInformation resets data before loading\n    await this.loadVehicleInformation(isChargesModified);\n\n    return super.onActivate();\n  }\n\n  private async goBackIfNeeded() {\n    if (toJS(this.chargeOrderService.chargeOrder.charges).flatMap(item => item.licensePlates).length === 0)\n      await this.router.navigate(BatchOrderViewModel);\n  }\n\n  @computed\n  get stepper() {\n    return window.document.getElementById(\"stepper\");\n  }\n\n  @computed\n  get emptyState() {\n    return this.localizationService.translateGeneral(\"eshop.order.summary.empty\");\n  }\n\n  @computed\n  get isDifferentTimeZone() {\n    return this.timeService.isFetched && !this.timeService.isServerTimeSame;\n  }\n\n  @computed\n  get serverTime() {\n    return this.timeService.currentServerTime;\n  }\n\n  @computed\n  get chargeOrderCharges() {\n    return this.chargeOrderService.chargeOrder.charges;\n  }\n\n  @computed\n  get translateVehicleCount() {\n    return this.chargeOrderService.translateVehicleCount;\n  }\n\n  @computed\n  get translateChargeLabel() {\n    return this.chargeOrderService.chargeLabel;\n  }\n\n  @computed\n  get exemptionRecommendationVisible() {\n    return this.exemptionLicensePlates.length > 0;\n  }\n\n  @computed\n  get possibleExemptionVisible() {\n    return this.possibleExemption.length > 0;\n  }\n\n  @computed\n  get overlayExemptionVisible() {\n    // Don't show separate EXEMPTION_OVERLAP box if we already have VEHICLE_REGISTER_FUEL_TYPE_BASED_EXEMPTION\n    // (they have the same message and will be merged in exemptionLicensePlates)\n    const hasVehicleRegisterExemption = this.exemptions.some(\n      e => e.instructionType === ChargeOrderInstructionType.VehicleRegisterFuelTypeBasedExemption\n    );\n    if (hasVehicleRegisterExemption) {\n      return false;\n    }\n    return this.overlapsExemption?.length > 0 && !this.overlayExemptionRecommendationHidden;\n  }\n\n  @computed\n  get overlayVisible() {\n    return this.overlays.length > 0;\n  }\n\n  @computed\n  get exemptionLicensePlates(): ChargeExemptions[] {\n    // Merge vehicles from overlapsExemption into VEHICLE_REGISTER_FUEL_TYPE_BASED_EXEMPTION\n    // to avoid duplicate boxes with same message\n    let result = this.exemptions.map(exemption => {\n      if (exemption.instructionType === ChargeOrderInstructionType.VehicleRegisterFuelTypeBasedExemption) {\n        const overlapVehicles: IVehicle[] =\n          this.overlapsExemption?.map(o => ({\n            licensePlate: o.vehicle.licensePlate,\n            countryId: o.vehicle.countryId,\n          })) ?? [];\n        const existingPlates = new Set(exemption.vehicles?.map(v => v.licensePlate) ?? []);\n        const uniqueOverlapVehicles = overlapVehicles.filter(v => !existingPlates.has(v.licensePlate));\n        return {\n          ...exemption,\n          vehicles: [...(exemption.vehicles ?? []), ...uniqueOverlapVehicles],\n        };\n      }\n      return exemption;\n    });\n\n    // Merge VEHICLE_REGISTER_VERIFICATION_DISABLED into VEHICLE_UNVERIFIED_WITH_VEHICLE_REGISTER\n    // as they have the same message\n    const unverifiedExemption = result.find(\n      e => e.instructionType === ChargeOrderInstructionType.VehicleUnverifiedWithVehicleRegister\n    );\n    const disabledExemption = result.find(\n      e => e.instructionType === ChargeOrderInstructionType.VehicleRegisterVerificationDisabled\n    );\n\n    if (unverifiedExemption && disabledExemption) {\n      // Merge disabled vehicles into unverified, avoiding duplicates\n      const existingPlates = new Set(unverifiedExemption.vehicles?.map(v => v.licensePlate) ?? []);\n      const uniqueDisabledVehicles = (disabledExemption.vehicles ?? []).filter(v => !existingPlates.has(v.licensePlate));\n      unverifiedExemption.vehicles = [...(unverifiedExemption.vehicles ?? []), ...uniqueDisabledVehicles];\n      // Remove the disabled exemption from results\n      result = result.filter(e => e.instructionType !== ChargeOrderInstructionType.VehicleRegisterVerificationDisabled);\n    }\n\n    return result;\n  }\n\n  @computed\n  get exemptionIdentifiedPossibleLicensePlate(): ChargeExemptions[] {\n    return this.exemptionsIdentifiedPossible;\n  }\n\n  @computed\n  get possibleExemption() {\n    return this.possibleExemptions;\n  }\n\n  @computed\n  get overlaysRemoveDisabled() {\n    return !(this.overlays.filter(overlay => overlay.selected !== null && overlay.selected).length > 0);\n  }\n\n  @computed\n  get countRecommendation() {\n    return (\n      (this.overlayRecommendationVisible ? 1 : 0) +\n      (this.exemptionRecommendationVisible ? 1 : 0) +\n      (this.overlayExemptionVisible ? 1 : 0) +\n      (this.possibleExemptionVisible ? 1 : 0)\n    );\n  }\n\n  @computed\n  get overlayRecommendationVisible() {\n    return this.overlayLicensePlates.length > 0 && !this.overlayRecommendationHidden;\n  }\n\n  @computed\n  get overlayLicensePlates(): ChargeOverlay[] {\n    return this.overlays;\n  }\n\n  @action.bound\n  onLoadingChange() {\n    this.summaryViewModel = this.summaryViewModelFactory(false, this.loading, this.onContinue, this.onBack);\n  }\n\n  @action.bound\n  resetObservables() {\n    this.possibleExemptionIds = [];\n    this.overlayRecommendationHidden = false;\n    this.overlayExemptionRecommendationHidden = false;\n    this.allOverlaysSelected = false;\n    this.overlays = [];\n    this.exemptions = [];\n    this.exemptionsIdentifiedPossible = [];\n    this.overlapsExemption = [];\n    this.possibleExemptions = [];\n  }\n\n  @action.bound\n  getMappedExemptions(instructions: any): ChargeExemptions[] {\n    return Object.keys(instructions).flatMap(key => {\n      if (key === ChargeOrderInstructionType.IdentifiedPossibleExemption) {\n        return instructions[key].map((i: any) => {\n          return {\n            instructionType: key,\n            possibleExemptionId: Math.random().toString(),\n            possibleExemptionReason: this.exemptionReasonWarning(i.possibleExemptionReasonIds),\n            vehicles: i.vehicles.map((v: IVehicle) => v),\n          };\n        });\n      }\n      return {\n        instructionType: key,\n        possibleExemptionId: Math.random().toString(),\n        vehicles: instructions[key].flatMap((i: any) => i.vehicles.flatMap((v: IVehicle) => v)),\n      };\n    });\n  }\n\n  @action.bound\n  translateFuelTypeLimitationLink(code: string) {\n    if (code === FuelTypeLimitationReason.DerivedFromVehicleRegisterData) {\n      return {\n        text: this.translateWithLink(\"possibleExemptions\", \"REGISTER_LINK\"),\n        link: this.translateWithLink(\"possibleExemptions\", \"REGISTER_LINK_URL\"),\n      };\n    }\n    return {\n      text: this.translateWithLink(\"possibleExemptions\", \"ECO_LINK\"),\n      link: this.translateWithLink(\"possibleExemptions\", \"ECO_LINK_URL\"),\n    };\n  }\n\n  @action.bound\n  translateFuelTypeLimitation(code: string) {\n    return this.translateWithLink(\"possibleExemptions\", code);\n  }\n\n  @action.bound\n  translateWithLink(code: string, secondCode?: string) {\n    return this.localizationService.translateGeneral(\n      secondCode ? `multiEshop.${code}.${secondCode}` : `eshop.order.${this.navigationName}.${code}`,\n      undefined,\n      true // Important for markdown links to function correctly\n    );\n  }\n  @action.bound\n  getMappedPossibleExemptions(instructions: any): ChargePossibleExemptions[] {\n    return Object.keys(instructions).flatMap(key => {\n      return instructions[key].map((i: any) => {\n        return {\n          possibleExemptionId: Math.random().toString(),\n          fuelTypeLimitation: i.fuelTypeLimitation,\n          possibleExemptionReason: i.fuelTypeLimitation?.limitationReason,\n          fuelTypeLable: this.translateFuelLabel(i.fuelTypeLimitation?.allowedFuelTypeId),\n          vehicles: i.vehicles,\n        };\n      });\n    });\n  }\n\n  @action.bound translate(code: string) {\n    return this.localizationService.translateGeneral(`multiEshop.${code}`);\n  }\n\n  @action.bound formatPrice(price: number) {\n    return this.localizationService.formatPrice(price);\n  }\n\n  @action.bound translateFuelLabel(fuelTypeId: string) {\n    const fuelTypes = this.enumService.values(\"fuel_types\") as FuelTypeResponse[];\n    const fuelType = fuelTypes.find(t => t.id.toString() === fuelTypeId)?.fuelType;\n    if (!fuelType) {\n      return false;\n    }\n    return this.localizationService.translateAttribute(\"fuelType\", fuelType);\n  }\n\n  @action.bound\n  public onContinue() {\n    this.chargeOrderService.persistChargeOrder();\n    this.router.navigate(\"contact\");\n  }\n\n  @action.bound\n  public onBack() {\n    // Clear processed flag so charges can be re-processed if user comes back\n    sessionStorage.removeItem(\"recap_charges_processed\");\n    this.router.navigate(BatchOrderViewModel);\n  }\n\n  @action.bound\n  hideOverlayRecommendation = () => {\n    this.overlayRecommendationHidden = true;\n  };\n\n  @action.bound\n  hideExemptionOverlayRecommendation = () => {\n    this.overlayExemptionRecommendationHidden = true;\n  };\n\n  @action.bound\n  showDetail(item?: ChargeOrderItem, index = -1) {\n    this.detail = item;\n    if (this.detailIndex === index) {\n      this.detailIndex = -1;\n    } else {\n      this.detailIndex = index;\n    }\n    return false;\n  }\n\n  @action.bound\n  selectAllOverlays(idOverlay: string) {\n    this.overlays.forEach(overlay => (overlay.selected = !overlay.selected));\n  }\n\n  @action.bound\n  select = () => {\n    this.allOverlaysSelected = this.overlays.reduce(\n      (summary: boolean, overlay: ChargeOverlay) => summary && (overlay.selected || false),\n      true\n    );\n\n    if (\n      !this.allOverlaysSelected &&\n      this.overlays.reduce((summary: boolean, overlay: ChargeOverlay) => summary || overlay.selected || false, false)\n    ) {\n      this.allOverlaysSelected = null;\n    }\n  };\n\n  @action.bound\n  hideExemptionRecommendation = (id?: string) => {\n    if (!id) return;\n    // If hiding VEHICLE_REGISTER_FUEL_TYPE_BASED_EXEMPTION, also clear overlapsExemption\n    // since those vehicles are merged into this exemption box\n    const exemptionToHide = this.exemptions.find(ex => ex.possibleExemptionId === id);\n    if (exemptionToHide?.instructionType === ChargeOrderInstructionType.VehicleRegisterFuelTypeBasedExemption) {\n      this.overlapsExemption = [];\n    }\n    this.exemptions = this.exemptions.filter(exemption => exemption.possibleExemptionId !== id);\n  };\n\n  @action.bound\n  hideIdentifiedPossibleRecommendation = (id?: string) => {\n    if (!id) return;\n    this.exemptionsIdentifiedPossible = this.exemptionsIdentifiedPossible.filter(\n      exemption => exemption.possibleExemptionId !== id\n    );\n  };\n\n  @action.bound\n  removeBatch = async (charge: ChargeOrderItem) => {\n    const licensePlates = charge.licensePlates?.map(vehicle => vehicle);\n    if (!licensePlates) return;\n    this.chargeOrderService.chargeOrder.charges = this.chargeOrderService.chargeOrder.charges\n      ?.map(orderItem => {\n        orderItem.licensePlates = orderItem.licensePlates.filter(licensePlate => !licensePlates.includes(licensePlate));\n        return orderItem;\n      })\n      .filter(item => item.licensePlates && item.licensePlates.length !== 0);\n\n    this.overlays = this.overlays?.filter(overlay => !licensePlates.includes(overlay.licensePlate));\n    this.overlapsExemption = this.overlapsExemption?.filter(overlay => !licensePlates.includes(overlay.vehicle.licensePlate));\n    this.exemptions = this.exemptions\n      ?.map(ex => {\n        ex.vehicles = ex.vehicles?.filter(vehicle => !licensePlates.includes(vehicle.licensePlate ?? \"\"));\n        return ex;\n      })\n      .filter(ex => ex.vehicles?.length !== 0);\n    this.possibleExemptions = this.possibleExemptions\n      ?.map(ex => {\n        ex.vehicles = ex.vehicles?.filter(vehicle => !licensePlates.includes(vehicle.licensePlate ?? \"\"));\n        return ex;\n      })\n      .filter(ex => ex.vehicles?.length !== 0);\n\n    this.chargeOrderService.persistChargeOrder();\n\n    await this.goBackIfNeeded();\n  };\n\n  @action.bound\n  removeExemptionsFromOrderItems = async (exemption: ChargeExemptions) => {\n    const licensePlates = exemption.vehicles?.map(vehicle => vehicle.licensePlate);\n    if (!licensePlates) return;\n    this.chargeOrderService.chargeOrder.charges = this.chargeOrderService.chargeOrder.charges\n      ?.map(orderItem => {\n        orderItem.licensePlates = orderItem.licensePlates.filter(licensePlate => !licensePlates.includes(licensePlate));\n        return orderItem;\n      })\n      .filter(item => item.licensePlates && item.licensePlates.length !== 0);\n\n    this.overlays = this.overlays?.filter(overlay => !licensePlates.includes(overlay.licensePlate));\n    this.overlapsExemption = this.overlapsExemption?.filter(overlay => !licensePlates.includes(overlay.vehicle.licensePlate));\n    this.exemptions = this.exemptions?.filter(ex => ex.possibleExemptionId !== exemption.possibleExemptionId);\n    this.exemptions = this.exemptions\n      ?.map(ex => {\n        ex.vehicles = ex.vehicles?.filter(vehicle => !licensePlates.includes(vehicle.licensePlate ?? \"\"));\n        return ex;\n      })\n      .filter(ex => ex.vehicles?.length !== 0)\n      .filter(ex => ex.possibleExemptionId !== exemption.possibleExemptionId);\n    this.exemptionsIdentifiedPossible = this.exemptionsIdentifiedPossible\n      ?.map(ex => {\n        ex.vehicles = ex.vehicles?.filter(vehicle => !licensePlates.includes(vehicle.licensePlate ?? \"\"));\n        return ex;\n      })\n      .filter(ex => ex.vehicles?.length !== 0);\n    this.chargeOrderService.persistChargeOrder();\n\n    await this.goBackIfNeeded();\n  };\n\n  @action.bound\n  removeIdentifiedPossibleFromOrderItems = async (identifiedPossible: ChargeExemptions) => {\n    const licensePlates = identifiedPossible.vehicles?.map(vehicle => vehicle.licensePlate);\n    if (!licensePlates) return;\n    this.chargeOrderService.chargeOrder.charges = this.chargeOrderService.chargeOrder.charges\n      ?.map(orderItem => {\n        orderItem.licensePlates = orderItem.licensePlates.filter(licensePlate => !licensePlates.includes(licensePlate));\n        return orderItem;\n      })\n      .filter(item => item.licensePlates && item.licensePlates.length !== 0);\n\n    this.overlays = this.overlays?.filter(overlay => !licensePlates.includes(overlay.licensePlate));\n    this.overlapsExemption = this.overlapsExemption?.filter(overlay => !licensePlates.includes(overlay.vehicle.licensePlate));\n\n    this.exemptions = this.exemptions\n      ?.map(ex => {\n        ex.vehicles = ex.vehicles?.filter(vehicle => !licensePlates.includes(vehicle.licensePlate ?? \"\"));\n        return ex;\n      })\n      .filter(ex => ex.vehicles?.length !== 0);\n\n    this.exemptionsIdentifiedPossible = this.exemptionsIdentifiedPossible?.filter(\n      ex => ex.possibleExemptionId !== identifiedPossible.possibleExemptionId\n    );\n\n    this.chargeOrderService.persistChargeOrder();\n\n    await this.goBackIfNeeded();\n  };\n\n  @action.bound\n  removeOverlaysFromOrderItems = async () => {\n    this.chargeOrderService.chargeOrder.charges = this.chargeOrderService.chargeOrder.charges\n      .map(orderItem => {\n        orderItem.licensePlates = orderItem.licensePlates.filter(\n          licensePlate =>\n            !toJS(this.overlayLicensePlates.filter(overlay => overlay.selected))\n              .flatMap(overlay => overlay.licensePlate)\n              .includes(licensePlate)\n        );\n        return orderItem;\n      })\n      .filter(item => item.licensePlates && item.licensePlates.length !== 0);\n\n    const selectedLicensePlates = this.overlays?.filter(o => o.selected).map(s => s.licensePlate);\n    this.overlays = this.overlays?.filter(overlay => !selectedLicensePlates.includes(overlay.licensePlate));\n    this.overlapsExemption = this.overlapsExemption?.filter(\n      overlay => !selectedLicensePlates.includes(overlay.vehicle.licensePlate)\n    );\n    this.exemptions = this.exemptions\n      ?.map(ex => {\n        ex.vehicles = ex.vehicles?.filter(vehicle => !selectedLicensePlates.includes(vehicle.licensePlate ?? \"\"));\n        return ex;\n      })\n      .filter(ex => ex.vehicles?.length !== 0);\n    this.exemptionsIdentifiedPossible = this.exemptionsIdentifiedPossible\n      ?.map(ex => {\n        ex.vehicles = ex.vehicles?.filter(vehicle => !selectedLicensePlates.includes(vehicle.licensePlate ?? \"\"));\n        return ex;\n      })\n      .filter(ex => ex.vehicles?.length !== 0);\n    this.chargeOrderService.persistChargeOrder();\n\n    await this.goBackIfNeeded();\n  };\n\n  @action.bound\n  removeExemptionOverlaysFromOrderItems = async () => {\n    this.chargeOrderService.chargeOrder.charges = this.chargeOrderService.chargeOrder.charges\n      .map(orderItem => {\n        orderItem.licensePlates = orderItem.licensePlates.filter(\n          licensePlate =>\n            !toJS(this.overlapsExemption.filter(overlay => overlay.vehicle.licensePlate))\n              .flatMap(overlay => overlay.vehicle.licensePlate)\n              .includes(licensePlate)\n        );\n        return orderItem;\n      })\n      .filter(item => item.licensePlates && item.licensePlates.length !== 0);\n\n    const selectedLicensePlates = this.overlapsExemption?.map(s => s.vehicle.licensePlate);\n    this.overlays = this.overlays?.filter(overlay => !selectedLicensePlates.includes(overlay.licensePlate));\n    this.overlapsExemption = this.overlapsExemption?.filter(\n      overlay => !selectedLicensePlates.includes(overlay.vehicle.licensePlate)\n    );\n    this.exemptions = this.exemptions\n      ?.map(ex => {\n        ex.vehicles = ex.vehicles?.filter(vehicle => !selectedLicensePlates.includes(vehicle.licensePlate ?? \"\"));\n        return ex;\n      })\n      .filter(ex => ex.vehicles?.length !== 0);\n    this.exemptionsIdentifiedPossible = this.exemptionsIdentifiedPossible\n      ?.map(ex => {\n        ex.vehicles = ex.vehicles?.filter(vehicle => !selectedLicensePlates.includes(vehicle.licensePlate ?? \"\"));\n        return ex;\n      })\n      .filter(ex => ex.vehicles?.length !== 0);\n    this.chargeOrderService.persistChargeOrder();\n\n    await this.goBackIfNeeded();\n  };\n\n  @action.bound\n  exemptionReasonWarning(possibleExemptionReasonIds: string[]): string {\n    if (!possibleExemptionReasonIds?.length) {\n      return this.localizationService.translateGeneral(\"errors.generic\");\n    }\n    const possibleExemptionReasonId = possibleExemptionReasonIds[0];\n    const exemptionReasons = this.enumService.values(\"exemption_reasons\") as ExemptionReasonResponse[];\n    const matchingReason = exemptionReasons.find(x => x.id === possibleExemptionReasonId);\n    switch (matchingReason?.exemptionReason) {\n      case \"C\":\n        return ChargeOrderInstructionType.IdentifiedPossibleExemption + \"_C\";\n      case \"P\":\n        return ChargeOrderInstructionType.IdentifiedPossibleExemption + \"_P\";\n      case \"O\":\n        return ChargeOrderInstructionType.IdentifiedPossibleExemption + \"_O\";\n      case \"O1\":\n        return ChargeOrderInstructionType.IdentifiedPossibleExemption + \"_O\";\n      case \"O2\":\n        return ChargeOrderInstructionType.IdentifiedPossibleExemption + \"_O\";\n      default:\n        return this.localizationService.translateGeneral(\"errors.generic\");\n    }\n  }\n\n  @action.bound\n  groupByOverlapTypes(data: any) {\n    return data.reduce((acc: any, obj: any) => {\n      obj.overlapTypes.forEach((type: any) => {\n        if (!acc[type]) {\n          acc[type] = [];\n        }\n        acc[type].push(obj);\n      });\n      return acc;\n    }, {});\n  }\n\n  @action.bound\n  groupByInstructionTypeType(data: any) {\n    return data.reduce((acc: any, obj: any) => {\n      const key = obj.instructionType;\n      if (!acc[key]) {\n        acc[key] = [];\n      }\n      acc[key].push(obj);\n      return acc;\n    }, {});\n  }\n\n  @action.bound\n  groupByPossibleExemptionReason(data: any) {\n    return data.reduce((acc: any, obj: any) => {\n      const key = obj.possibleExemptionReason;\n      if (!acc[key]) {\n        acc[key] = [];\n      }\n      acc[key].push(obj);\n      return acc;\n    }, {});\n  }\n\n  @action.bound\n  groupByCountry(data: any) {\n    return data.reduce((acc: any, obj: any) => {\n      const key = obj.countryId;\n      if (!acc[key]) {\n        acc[key] = [];\n      }\n      acc[key].push(obj);\n      return acc;\n    }, {});\n  }\n\n  @action.bound\n  filterByInstructionType(groupedInstructions: any, isFuelTypeLimitation = false) {\n    return Object.keys(groupedInstructions)\n      .filter(instructionType =>\n        isFuelTypeLimitation\n          ? instructionType === ChargeOrderInstructionType.IdentifiedFuelTypeLimitation\n          : instructionType !== ChargeOrderInstructionType.IdentifiedFuelTypeLimitation\n      )\n      .reduce((acc: any, instructionType) => {\n        acc[instructionType] = groupedInstructions[instructionType];\n        return acc;\n      }, {});\n  }\n\n  @action.bound\n  filterIdentifiedPossible(groupedInstructions: any, isIdentifiedPossible = false) {\n    return Object.keys(groupedInstructions)\n      .filter(instructionType =>\n        isIdentifiedPossible\n          ? instructionType === ChargeOrderInstructionType.IdentifiedPossibleExemption\n          : instructionType !== ChargeOrderInstructionType.IdentifiedPossibleExemption\n      )\n      .reduce((acc: any, instructionType) => {\n        acc[instructionType] = groupedInstructions[instructionType];\n        return acc;\n      }, {});\n  }\n\n  @action.bound\n  protected vehicleChargeOrderInstructions(data: {\n    type: string;\n    payload: { chargeOrderInstructionGroups?: ChargeOrderInstructionGroupsResponse };\n  }) {\n    const instructions = data.payload.chargeOrderInstructionGroups?.items;\n    if (!instructions) return;\n\n    // Reset to prevent duplicates - BE returns all instructions at once\n    this.exemptions = [];\n    this.exemptionsIdentifiedPossible = [];\n    this.possibleExemptions = [];\n\n    const groupedInstructions: any = this.groupByInstructionTypeType(instructions);\n    const exemptions = this.filterIdentifiedPossible(this.filterByInstructionType(groupedInstructions));\n    const exemptionsIdentifiedPossible = this.filterIdentifiedPossible(this.filterByInstructionType(groupedInstructions), true);\n\n    const possibleExemptions = this.filterByInstructionType(groupedInstructions, true);\n    const exemptionsMapped: ChargeExemptions[] = this.getMappedExemptions(exemptions);\n    const exemptionsMappedIdentifiedPossible: ChargeExemptions[] = this.getMappedExemptions(exemptionsIdentifiedPossible);\n    const possibleExemptionsMapped: ChargePossibleExemptions[] = this.getMappedPossibleExemptions(possibleExemptions);\n\n    if (exemptionsMapped) {\n      this.exemptions = exemptionsMapped.sort((a, b) => {\n        return (\n          ChargeVehicleWarningReasonOrder[a.instructionType as keyof ChargeVehicleWarningReasonOrder] -\n          ChargeVehicleWarningReasonOrder[b.instructionType as keyof ChargeVehicleWarningReasonOrder]\n        );\n      });\n    }\n    if (exemptionsMappedIdentifiedPossible) {\n      this.exemptionsIdentifiedPossible = this.getMappedExemptions(\n        this.groupByPossibleExemptionReason(exemptionsMappedIdentifiedPossible)\n      ).sort((a, b) => {\n        return (\n          ChargeVehicleWarningReasonOrder[a.instructionType as keyof ChargeVehicleWarningReasonOrder] -\n          ChargeVehicleWarningReasonOrder[b.instructionType as keyof ChargeVehicleWarningReasonOrder]\n        );\n      });\n    }\n    if (possibleExemptionsMapped) {\n      this.possibleExemptions = possibleExemptionsMapped;\n      this.possibleExemptions = this.possibleExemptions.sort((a, b) => {\n        return (\n          FuelTypeLimitationReasonOrder[a.fuelTypeLimitation?.limitationReason as keyof FuelTypeLimitationReasonOrder] -\n          FuelTypeLimitationReasonOrder[a.fuelTypeLimitation?.limitationReason as keyof FuelTypeLimitationReasonOrder]\n        );\n      });\n\n      // Process fuel type limitations immediately while we have the data\n      // Check flag set by loadVehicleInformation\n      if (this.shouldProcessFuelTypeLimitations) {\n        this.processFuelTypeLimitations();\n        this.shouldProcessFuelTypeLimitations = false;\n      }\n    }\n  }\n\n  @action.bound\n  processFuelTypeLimitations() {\n    if (!this.possibleExemptions?.length) return;\n\n    // Collect all vehicles that need fuel type change with their target properties\n    // Key: \"allowedFuelTypeId|countryId|chargeTypeId|validSince\" -> vehicles and their original charges\n    const vehiclesToMove: Array<{\n      licensePlate: string;\n      allowedFuelTypeId: string;\n      originalCharge: ChargeOrderItem;\n    }> = [];\n\n    for (const exemption of this.possibleExemptions) {\n      if (!exemption.fuelTypeLimitation?.allowedFuelTypeId) continue;\n      const allowedFuelTypeId = exemption.fuelTypeLimitation.allowedFuelTypeId;\n\n      for (const vehicle of exemption.vehicles || []) {\n        if (!vehicle.licensePlate) continue;\n\n        const originalCharge = this.chargeOrderCharges.find(\n          charge =>\n            charge.licensePlates.includes(vehicle.licensePlate!) &&\n            vehicle.countryId === charge.countryId &&\n            charge.fuelTypeId !== allowedFuelTypeId\n        );\n\n        if (!originalCharge) continue;\n\n        // Check if already added (avoid duplicates)\n        if (!vehiclesToMove.some(v => v.licensePlate === vehicle.licensePlate)) {\n          vehiclesToMove.push({\n            licensePlate: vehicle.licensePlate,\n            allowedFuelTypeId,\n            originalCharge,\n          });\n        }\n      }\n    }\n\n    // Group vehicles by original charge to check if ALL vehicles in a charge need to change\n    const vehiclesByOriginalCharge = new Map<ChargeOrderItem, typeof vehiclesToMove>();\n    for (const v of vehiclesToMove) {\n      if (!vehiclesByOriginalCharge.has(v.originalCharge)) {\n        vehiclesByOriginalCharge.set(v.originalCharge, []);\n      }\n      vehiclesByOriginalCharge.get(v.originalCharge)!.push(v);\n    }\n\n    // First pass: If ALL vehicles in a charge need same fuel type, just change the charge\n    const vehiclesToMoveToNewCharge: typeof vehiclesToMove = [];\n    for (const [originalCharge, vehicles] of vehiclesByOriginalCharge) {\n      const allSameFuelType = vehicles.every(v => v.allowedFuelTypeId === vehicles[0].allowedFuelTypeId);\n      if (allSameFuelType && vehicles.length === originalCharge.licensePlates.length) {\n        // All vehicles need same change - change the charge fuel type\n        const allowedFuelTypeId = vehicles[0].allowedFuelTypeId;\n        originalCharge.fuelTypeId = originalCharge._fuelTypeId = allowedFuelTypeId;\n        originalCharge._priceListItems = this.chargeTypesService.chargePriceList?.items.filter(\n          item => item.fuelTypeId === originalCharge.fuelTypeId\n        );\n        originalCharge.priceListItemId =\n          originalCharge._priceListItems?.find(\n            item => item.fuelTypeId === allowedFuelTypeId && item.chargeTypeId === originalCharge.chargeTypeId\n          )?.id ?? \"\";\n      } else {\n        // Only some vehicles need to move\n        vehiclesToMoveToNewCharge.push(...vehicles);\n      }\n    }\n\n    // Second pass: Move vehicles to existing or new charges\n    // Track newly created charges by key: \"allowedFuelTypeId|countryId|chargeTypeId|validSinceDate\"\n    const newChargesMap = new Map<string, ChargeOrderItem>();\n\n    for (const { licensePlate, allowedFuelTypeId, originalCharge } of vehiclesToMoveToNewCharge) {\n      const hasImmediateOriginal = originalCharge._hasImmediateValidity;\n      const validSinceKey = hasImmediateOriginal\n        ? \"immediate\"\n        : originalCharge.validSince\n        ? dateToIsoDate(originalCharge.validSince)\n        : \"none\";\n      const targetKey = `${allowedFuelTypeId}|${originalCharge.countryId}|${originalCharge.chargeTypeId}|${validSinceKey}`;\n\n      // Find existing charge with correct properties - must match fuel type, country, charge type, AND validity DATE\n      let targetCharge = this.chargeOrderService.chargeOrder.charges.find(storedCharge => {\n        if (storedCharge === originalCharge) return false;\n        if (storedCharge.countryId !== originalCharge.countryId) return false;\n        if (storedCharge.fuelTypeId !== allowedFuelTypeId) return false;\n        if (storedCharge.chargeTypeId !== originalCharge.chargeTypeId) return false;\n\n        // Check validity match - MUST compare actual dates, not just immediate flag\n        const originalValidSince = originalCharge.validSince ?? originalCharge.validity?.validSinceDate;\n        const storedValidSince = storedCharge.validSince ?? storedCharge.validity?.validSinceDate;\n\n        // Both must have validSince and dates must match\n        if (originalValidSince && storedValidSince) {\n          return dateToIsoDate(originalValidSince) === dateToIsoDate(storedValidSince);\n        }\n        // Both undefined - match only if both have same immediate flag\n        if (!originalValidSince && !storedValidSince) {\n          return originalCharge._hasImmediateValidity === storedCharge._hasImmediateValidity;\n        }\n        return false;\n      });\n\n      // If not found, check our newly created charges\n      if (!targetCharge) {\n        targetCharge = newChargesMap.get(targetKey);\n      }\n\n      // Remove from original charge\n      originalCharge.licensePlates = originalCharge.licensePlates?.filter(l => l !== licensePlate);\n\n      if (targetCharge) {\n        // Add to existing/new charge\n        if (!targetCharge.licensePlates.includes(licensePlate)) {\n          targetCharge.licensePlates = [...targetCharge.licensePlates, licensePlate];\n        }\n      } else {\n        // Create new charge - copy validity from original charge\n        const newCharge = this.chargeOrderService.addChargeOrderItem();\n        newCharge.licensePlates = [licensePlate];\n        newCharge.validity.hasImmediateValidity = newCharge._hasImmediateValidity = originalCharge._hasImmediateValidity;\n        // Copy exact validSince from original - for immediate validity, use the current validSince value\n        // (which should already be set to server time or will be updated by setChargeValidityByInstructions)\n        newCharge.validity.validSinceDate = newCharge.validSince =\n          originalCharge.validSince ?? originalCharge.validity?.validSinceDate;\n        newCharge.validity._validUntilDate = newCharge._validUntil =\n          originalCharge._validUntil ?? originalCharge.validity?._validUntilDate;\n        newCharge._validUntilOverlap = originalCharge._validUntilOverlap ?? originalCharge.validity?._validUntilOverlap;\n        newCharge.chargeTypeId = newCharge._chargeTypeId = originalCharge.chargeTypeId;\n        newCharge.countryId = originalCharge.countryId;\n        newCharge.fuelTypeId = newCharge._fuelTypeId = allowedFuelTypeId;\n        newCharge._priceListItems = this.chargeTypesService.chargePriceList?.items.filter(\n          item => item.fuelTypeId === newCharge.fuelTypeId\n        );\n        newCharge.priceListItemId =\n          newCharge._priceListItems?.find(\n            item => item.fuelTypeId === allowedFuelTypeId && item.chargeTypeId === newCharge.chargeTypeId\n          )?.id ?? \"\";\n        newCharge._allowedDelete = true;\n\n        // Track this new charge for future vehicles with same target\n        newChargesMap.set(targetKey, newCharge);\n      }\n    }\n\n    // Clean up empty charges\n    this.chargeOrderService.chargeOrder.charges = this.chargeOrderService.chargeOrder.charges.filter(\n      item => item.licensePlates && item.licensePlates.length !== 0\n    );\n    this.chargeOrderService.persistStoredChargeOrder(this.chargeOrderService.chargeOrder);\n  }\n  @action.bound\n  protected async vehicleChargeValidityInstructions(data: {\n    type: string;\n    payload: { chargeValidityInstructionGroups?: ChargeValidityInstructionGroupsResponse };\n  }) {\n    const response = data.payload.chargeValidityInstructionGroups;\n    if (response?.validities) {\n      await this.setChargeValidityByInstructions(response.validities);\n    }\n\n    if (response?.overlaps) {\n      const groupedOverlaps = this.groupByOverlapTypes(response?.overlaps);\n      const overlapsCharge = groupedOverlaps[ChargeOverlapType.ChargeOverlap] as ChargeValidityOverlapInstructionsGroupResponse[];\n      this.overlapsExemption = groupedOverlaps[\n        ChargeOverlapType.ExemptionOverlap\n      ] as ChargeValidityOverlapInstructionsGroupResponse[];\n\n      let overlays: ChargeOverlay[] = [];\n\n      overlapsCharge?.forEach(o => {\n        const charge = this.chargeOrderService.chargeOrder.charges.find(\n          charge =>\n            charge.priceListItemId === o.priceListItemId &&\n            ((charge._hasImmediateValidity && o.requestedValidity.hasImmediateValidity) ||\n              (!charge._hasImmediateValidity &&\n                !o.requestedValidity.hasImmediateValidity &&\n                o.requestedValidity.validSinceDate &&\n                charge.validSince &&\n                isSamePragueDay(new Date(o.requestedValidity.validSinceDate), charge.validSince)))\n        );\n\n        if (charge && o.overlappingCharges) {\n          this.chargeOrderService.persistChargeOrder();\n          const overlapPeriod = o.overlappingCharges.map(overlapPeriod => {\n            return {\n              licensePlate: o.vehicle.licensePlate ?? \"\",\n              state: OverlayValidity.VALID,\n              selected: false,\n              expiration: overlapPeriod.validUntil,\n            };\n          });\n          overlays = [...overlays, ...overlapPeriod];\n        }\n      });\n      this.overlays = overlays;\n    }\n  }\n\n  @action.bound\n  protected async setChargeValidityByInstructions(validities: ChargeValidityInstructionGroupResponse[]) {\n    // Update existing charges in place instead of replacing all with splice\n    // This preserves any newly created charges from processFuelTypeLimitations\n    for (const charge of this.chargeOrderService.chargeOrder.charges) {\n      const match = validities.find(\n        v =>\n          charge.priceListItemId === v.priceListItemId &&\n          ((charge._hasImmediateValidity && v.requestedValidity.hasImmediateValidity) ||\n            (charge.validSince && dateToIsoDate(charge.validSince) === dateToIsoDate(v.validSince)))\n      );\n      if (match) {\n        const nowOrSince = charge._hasImmediateValidity ? await this.timeService.getCurrentServerTime(true) : match.validSince;\n\n        runInAction(() => {\n          charge.validSince = nowOrSince;\n          charge.validity.validSinceDate = nowOrSince;\n          charge.validity._validUntilDate = endOfCzechDay(match.validUntil);\n          charge.validity._validUntilOverlap = endOfCzechDay(match.validUntil);\n          charge._validUntil = endOfCzechDay(match.validUntil);\n          charge._validUntilOverlap = endOfCzechDay(match.validUntil);\n        });\n      } else if (charge._hasImmediateValidity && !charge.validSince) {\n        // For new charges with immediate validity that don't have a match, set validSince to current server time\n        const nowTime = await this.timeService.getCurrentServerTime(true);\n        runInAction(() => {\n          charge.validSince = nowTime;\n          charge.validity.validSinceDate = nowTime;\n        });\n      }\n    }\n\n    this.chargeOrderService.persistChargeOrder();\n  }\n\n  @action.bound\n  resetChargeOrder() {\n    // Clear processed flag so charges can be re-processed if user comes back\n    sessionStorage.removeItem(\"recap_charges_processed\");\n    this.chargeOrderService.reset();\n    this.router.navigate(BatchOrderViewModel);\n  }\n\n  @action.bound\n  loadVehicleInformation = async (shouldProcess?: boolean) => {\n    // Reset warnings before loading - prevents duplicates when navigating back\n    this.exemptions = [];\n    this.exemptionsIdentifiedPossible = [];\n    this.possibleExemptions = [];\n    this.overlays = [];\n    this.overlapsExemption = [];\n\n    if (this.chargeOrderService.chargeOrder.charges.length) {\n      try {\n        this.loading = true;\n\n        // Set flag BEFORE BE call so event handler can process fuel type limitations\n        this.shouldProcessFuelTypeLimitations = shouldProcess ?? false;\n\n        // Call BE - event handler will process fuel type limitations when data arrives\n        await this.vehicleService.getChargeOrderInstructions(this.chargeOrderService.chargeOrder.charges);\n\n        // Now call validity instructions - this will work with updated charges\n        await this.vehicleService.getChargeValidityInstructions(this.chargeOrderService.chargeOrder.charges);\n      } catch (e) {\n        // Silence catch of background process\n      } finally {\n        this.loading = false;\n      }\n    } else {\n      this.loading = false;\n    }\n  };\n\n  @action.bound\n  toggleChargeOrderItem = (chargeOrderItem: ChargeOrderItem) => () => (chargeOrderItem._visible = !chargeOrderItem._visible);\n\n  @action.bound\n  chargePrice(item: ChargeOrderItem) {\n    return this.chargeOrderService.chargePrice(item.chargeTypeId as string, item.fuelTypeId as string);\n  }\n\n  @action.bound\n  formatValidFrom(item: ChargeOrderItem) {\n    return item.validSince ? this.localizationService.formatDateTime(new Date(item.validSince)) : undefined;\n  }\n\n  @action.bound\n  formatValidTo(item: ChargeOrderItem) {\n    return item._validUntil ? this.localizationService.formatDateTime(new Date(item._validUntil)) : undefined;\n  }\n\n  @action.bound\n  formatExpiration(date: Date) {\n    return this.localizationService.formatDateTime(new Date(date));\n  }\n\n  @action.bound\n  formatOverlayState(state: OverlayValidity) {\n    return this.translate(`overlay.state.${state}`);\n  }\n\n  @action.bound\n  getCountry(countryId: string) {\n    const country = this.enumService.values(\"countries\").find((country: Enum) => country.id === countryId);\n    return !country ? \"-\" : country.name;\n  }\n}\n","import React from \"react\";\n\nconst LoadingPane = () => (\n  <div className=\"wrapper-spinner d-flex align-items-center justify-content-center\">\n    <div className=\"spinner-border spinner-border-sm\" role=\"status\">\n      <span className=\"sr-only\">Loading...</span>\n    </div>\n  </div>\n);\n\nexport default LoadingPane;\n","import { ScreenBase } from \"@frui.ts/screens/dist\";\nimport { action, computed, observable } from \"mobx\";\nimport { PersistedBase64 } from \"models/notice\";\nimport LocalizationService from \"services/localizationService\";\nimport printJS from \"print-js\";\nimport { interfaces } from \"inversify\";\nimport { Notice } from \"../../../services/NIA/niaService\";\nimport { getFile } from \"../../../data/indexedDbConnector\";\nimport { base64ToFile } from \"../../../utils/base64\";\nimport { saveFileFromURL } from \"utils/fileUtils\";\nimport { bound } from \"@frui.ts/helpers/dist\";\n\nexport default class DocumentsUploadedViewModel extends ScreenBase {\n  private titleRegExp = new RegExp(/%title%/g);\n  private descriptionRegExp = new RegExp(/%description%/g);\n\n  @observable documentUrl?: string;\n\n  public translateGeneral = (code: string) => {\n    // Refund request has its own translations of the success screen. Overriding this method\n    // in RefundRequestDocumentsUploadedViewModel doesn't work for some reason, so we need to override here\n    if (this.type === Notice.REFUND_REQUEST) {\n      return this.localizationService.translateGeneral(`refundRequest.documentsUploaded.${code}`);\n    }\n    return this.localizationService.translateGeneral(`documentsUploaded.${code}`);\n  };\n\n  constructor(protected notice: PersistedBase64, protected type: Notice, public localizationService: LocalizationService) {\n    super();\n    this.navigationName = \"documents\";\n    (async () => {\n      const data = await getFile(this.notice.id);\n\n      if (data) {\n        const file = await base64ToFile(data.base64!, data.fileName);\n        this.documentUrl = window.URL.createObjectURL(file);\n      }\n    })();\n  }\n\n  private noticeTitle = (noticeType: Notice) => {\n    let key = \"exemption\";\n    switch (noticeType) {\n      case Notice.EXEMPTION:\n        key = \"exemption\";\n        break;\n      case Notice.OMISSION:\n        key = \"omission\";\n        break;\n      case Notice.LICENSE_PLATE_CHANGE:\n        key = \"licensePlateChange\";\n        break;\n      case Notice.REFUND_REQUEST:\n        key = \"refundRequest\";\n    }\n\n    return this.localizationService.translateGeneral(`${key}.title`);\n  };\n\n  @computed\n  get title() {\n    return this.translateGeneral(\"title\").replace(this.titleRegExp, this.noticeTitle(this.type));\n  }\n\n  @computed\n  get description() {\n    return this.translateGeneral(\"description\").replace(this.descriptionRegExp, this.noticeTitle(this.type));\n  }\n\n  @computed\n  get canProceedToExternalService() {\n    return false;\n  }\n\n  @computed\n  get isContinueDisabled(): boolean {\n    return false;\n  }\n\n  @computed\n  get canPrintNotice() {\n    return true;\n  }\n\n  @computed\n  get canSaveNoticePDF() {\n    return true;\n  }\n\n  @computed\n  get canCancelNotice() {\n    return false;\n  }\n\n  @action.bound\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  cancel() {}\n\n  @action.bound\n  async savePDF() {\n    if (!this.documentUrl) return;\n\n    await saveFileFromURL(this.getDocumentURL, \"Uploaded documents\", {\n      notice: this.notice,\n    });\n  }\n\n  @bound\n  getDocumentURL() {\n    const promise = Promise.resolve(this.documentUrl);\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    promise.catch(() => {});\n    return promise;\n  }\n\n  @action.bound\n  async printPDF() {\n    if (!this.documentUrl) return;\n\n    printJS(this.documentUrl);\n  }\n\n  @action.bound\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  continue() {}\n\n  static Factory({ container }: interfaces.Context) {\n    return (notice: PersistedBase64, type: Notice) => {\n      return new DocumentsUploadedViewModel(notice, type, container.get(LocalizationService));\n    };\n  }\n}\n","import { bound } from \"@frui.ts/helpers\";\nimport { ScreenBase } from \"@frui.ts/screens/dist\";\nimport { interfaces } from \"inversify\";\nimport { computed, observable, toJS } from \"mobx\";\nimport Vehicle from \"models/vehicle\";\nimport VehicleChangeDuringValidityRequest from \"models/vehicleChangeDuringValidityRequest\";\nimport EnumService from \"services/enumService\";\nimport LocalizationService from \"services/localizationService\";\nimport { czechID } from \"config\";\nimport LicensePlateChange from \"../../models/licensePlateChange\";\nimport OrderItem, { CountryIdValidationRules, LicensePlateValidationRules } from \"../../models/orderItem\";\nimport { attachAutomaticBlurValidator } from \"utils/validationPatch\";\nimport ChargeOrderLicenseItem from \"models/chargeOrderLicenseItem\";\nimport CountryResponse from \"entities/countryResponse\";\nimport ChargeOrderItem from \"models/chargeOrderItem\";\nimport VehicleRegistrationResponse from \"entities/vehicleRegistrationResponse\";\n\nexport interface VehicleInfoConfig {\n  attachValidator: boolean;\n  fixedLicensePlateSize?: boolean;\n  maxLicensePlateSize?: number;\n  context?: \"new\" | \"old\";\n  countryIDConfirmation?: boolean;\n  licensePlateConfirmation?: boolean;\n  breakpoint?: \"xl\" | \"xxl\";\n  loadCountriesOnInit?: boolean;\n  initByLocalization?: boolean;\n}\n\nexport default class VehicleInfoViewModel extends ScreenBase {\n  @observable countries: any[] = [];\n  loadCountriesOnInit = false;\n\n  constructor(\n    public item:\n      | OrderItem\n      | Vehicle\n      | LicensePlateChange\n      | VehicleChangeDuringValidityRequest\n      | ChargeOrderLicenseItem\n      | VehicleRegistrationResponse,\n    public localizationService: LocalizationService,\n    private enumService: EnumService,\n    public readonly config: VehicleInfoConfig = { attachValidator: true },\n    public showCountryWarning = false\n  ) {\n    super();\n\n    // TODO Odstranit attach validátoru?\n    if (this.config.attachValidator) {\n      attachAutomaticBlurValidator(this.item, { ...LicensePlateValidationRules, ...CountryIdValidationRules });\n    }\n\n    if (config.loadCountriesOnInit || (this.item.countryId && this.item.countryId !== czechID)) {\n      this.loadCountriesOnInit = true;\n    }\n    if (item instanceof ChargeOrderLicenseItem) {\n      this.showCountryWarning = item._showCountryWarning;\n    }\n  }\n  protected async onInitialize() {\n    if (this.item.countryId === czechID && this.config.initByLocalization && this.localizationService.languageCode !== \"CS\") {\n      this.item.countryId = undefined;\n    }\n    return super.onInitialize();\n  }\n\n  @computed\n  get countryCode() {\n    let countryCode = this.countries.find(x => x.id == this.item.countryId)?.code;\n\n    if (this.config.initByLocalization && this.localizationService.languageCode !== \"CS\") {\n      return countryCode;\n    }\n\n    if (!countryCode && this.item.countryId === czechID) {\n      countryCode = \"CZ\";\n    }\n\n    return countryCode;\n  }\n\n  @computed\n  get isDisabled() {\n    return this.config.context === \"old\";\n  }\n\n  @computed\n  get defaultCountries() {\n    if (this.enumService.isEnumLoaded(\"countries\")) {\n      return this.enumService.values(\"countries\").map(item => ({\n        id: `${item.id}`,\n        label: `${item.code} – ${item.name}`,\n      }));\n    } else {\n      return [\n        {\n          id: czechID,\n          label: `CZ – ${this.localizationService.translateAttribute(\"country\", \"CZ\")}`,\n        },\n      ];\n    }\n  }\n\n  deactivate(close: boolean): Promise<void> {\n    return super.deactivate(close);\n  }\n\n  @bound\n  async loadCountries(inputValue: string) {\n    if (!this.countries.length) {\n      this.countries = (await this.enumService.lazyValues(\"countries\")).map((item: CountryResponse) => ({\n        id: `${item.id}`,\n        code: `${item.code}`,\n        label: item.code + \" – \" + item.name,\n      }));\n    }\n\n    return toJS(this.countries);\n  }\n\n  @computed\n  get oldCountry() {\n    return (this.item && this.defaultCountries.find(country => country.id === this.item.countryId)?.label) || \"\";\n  }\n\n  @computed\n  get oldLicensePlate() {\n    if (this.item instanceof VehicleChangeDuringValidityRequest) {\n      return this.item._originalLicensePlate;\n    }\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (\n      item:\n        | OrderItem\n        | Vehicle\n        | LicensePlateChange\n        | VehicleChangeDuringValidityRequest\n        | ChargeOrderLicenseItem\n        | ChargeOrderItem\n        | VehicleRegistrationResponse,\n      config: VehicleInfoConfig = { attachValidator: true, fixedLicensePlateSize: false }\n    ) => {\n      return new VehicleInfoViewModel(item, container.get(LocalizationService), container.get(EnumService), config);\n    };\n  }\n}\n","import { Router } from \"@frui.ts/screens/dist\";\r\nimport BankTransferViewModel from \"./bankTransferViewModel\";\r\n\r\nexport const SingleBankTransferNavigationName = \"single_bank_transfer\";\r\n\r\n@Router.registerRoute({ route: `${SingleBankTransferNavigationName}/:orderId`, name: Router.Self })\r\nexport default class SingleBankTransferViewModel extends BankTransferViewModel {}\r\n","import { Router, ScreenBase } from \"@frui.ts/screens\";\nimport { action, computed, observable, reaction } from \"mobx\";\nimport { bound } from \"@frui.ts/helpers\";\nimport AppRouter from \"services/appRouter\";\nimport LocalizationService from \"services/localizationService\";\nimport FuelTypeViewModel from \"./fuelTypeViewModel\";\nimport ContactViewModel from \"./contactViewModel\";\nimport ChargeTypeSelectViewModel from \"viewModels/common/chargeTypeSelectViewModel\";\nimport { interfaces } from \"inversify\";\nimport ValiditySelectViewModel from \"../components/validitySelectViewModel\";\nimport EnumService from \"services/enumService\";\nimport { attachAutomaticBlurValidator, setVisitedProperty } from \"utils/validationPatch\";\nimport {\n  maxValidSince,\n  zonedCZTimeToUtc,\n  utcToCZZonedTime,\n  dateToIsoDate,\n  isSameOrBeforePragueDay,\n  dateStringWithServerZone,\n  dateToIsoString,\n} from \"utils/dateUtils\";\nimport ChargeValidityRuleResponse from \"entities/chargeValidityRuleResponse\";\nimport ChargeOrderChargeItem, { ChargeTypeIdValidationRules } from \"models/chargeOrderChargeItem\";\nimport ChargeOrderService from \"services/chargeOrderService\";\nimport { validate, ManualEntityValidator, validateAll } from \"@frui.ts/validation\";\nimport { scrollToElement, scrollToFirstError } from \"utils/scrollTo\";\nimport debounce from \"lodash/debounce\";\nimport { onlyResolvesLast } from \"awesome-only-resolves-last-promise/dist\";\nimport ChargeValidityInstructionsResponse from \"entities/chargeValidityInstructionsResponse\";\nimport { repeatIfFailed } from \"services/requestRecoveryService\";\nimport VehicleRepository from \"repositories/vehicleRepository\";\nimport { format, isBefore, startOfDay } from \"date-fns\";\nimport ChargeValidity from \"entities/chargeValidity\";\nimport ChargeTypesService from \"services/chargeTypesService\";\nimport { startOfCzechDay, endOfCzechDay } from \"../../../../utils/dateUtils\";\nimport ChargeOverlapType from \"entities/chargeOverlapType\";\nimport ChargeOverlapResponse from \"entities/chargeOverlapResponse\";\nimport TimeService from \"services/timeService\";\nimport EventBus, {\n  chargeValidationFailed,\n  currentServerTime,\n  preselectChargeType,\n  proposedPurchageCharge,\n} from \"services/eventBus\";\nexport const ChargeTypeViewNavigationName = \"charge\";\n\n@Router.registerRoute({\n  name: Router.Self,\n  route: ChargeTypeViewNavigationName,\n})\nexport default class ChargeTypeViewModel extends ScreenBase {\n  public chargeSelectViewModel: ChargeTypeSelectViewModel;\n  public validSinceSelectViewModel: ValiditySelectViewModel;\n\n  private unsubscriptions: Array<() => void> = [];\n  private debouncedCheckProposedValidity = debounce(this.checkProposedValidity, 400);\n  private lastResolveGetProposedValidity = onlyResolvesLast(this.getProposedValidity);\n  protected manualValidator = new ManualEntityValidator<ChargeOrderChargeItem>(false); // Použijeme setVisitedProperty pro zobrazení errorů\n\n  @observable checkingProposedValidity = false;\n  @observable formElement?: HTMLFormElement;\n  @observable validSinceDaysBefore?: Date;\n  @observable validSince?: Date;\n  @observable validSinceString?: string;\n  @observable isBeforePosibble?: boolean;\n  @observable isSingleCharTypeToday?: boolean;\n  @observable showExemptionOverlap?: boolean;\n  @observable showChargeOverlap?: boolean;\n  /** Flag to determine whether to show the orange warning banner. */\n  @observable proposedValidityFlag?: boolean;\n  /** Temporarily determines whether a proposed validity exists from the BE. */\n  @observable proposedValidityExist: boolean;\n  /** The validity change by the BE can only happen once. If true, validity cannot be changed anymore by the system. */\n  @observable proposedValiditySetAlready = false;\n  @observable overlappingCharges?: ChargeOverlapResponse[];\n  @observable overlapTypes?: ChargeOverlapType[];\n  @observable isServerTimeSame?: boolean;\n  @observable currentServerTime: Date;\n  @observable updatedProposed = false;\n\n  constructor(\n    public chargeOrderChargeItem: ChargeOrderChargeItem,\n    public localizationService: LocalizationService,\n    private chargeOrderService: ChargeOrderService,\n    private chargeTypesService: ChargeTypesService,\n    public timeService: TimeService,\n    public enumService: EnumService,\n    private router: AppRouter,\n    private vehicleRepository: VehicleRepository,\n    private chargeSelectViewModelFactory: ReturnType<typeof ChargeTypeSelectViewModel.Factory>,\n    private validSinceSelectVMFactory: ReturnType<typeof ValiditySelectViewModel.Factory>,\n    private eventBus: EventBus\n  ) {\n    super();\n    this.navigationName = ChargeTypeViewNavigationName;\n    this.nameValue = \"eshop.title\";\n    this.chargeSelectViewModel = this.chargeSelectViewModelFactory(\n      this.chargeOrderChargeItem,\n      this.chargeOrderService.chargeOrderItem.id\n    );\n    this.validSinceSelectViewModel = this.validSinceSelectVMFactory(this.chargeOrderChargeItem);\n    this.validSinceSelectViewModel.getPostponedValidityMaxDays(\n      this.timeService.currentServerTime ?? new Date(),\n      this.enumService.values(\"charge_validity_rules\") as ChargeValidityRuleResponse[]\n    );\n    this.unsubscriptions.push(\n      this.eventBus.subscribe(preselectChargeType, this.checkPriceListItem),\n      this.eventBus.subscribe(currentServerTime, () => {\n        this.serverTime;\n      }),\n      this.eventBus.subscribe(proposedPurchageCharge, this.handleProposedPurchase)\n    );\n\n    // Základní validátor bez date range (nezávislý na server time)\n    attachAutomaticBlurValidator(this.chargeOrderChargeItem, {\n      ...ChargeTypeIdValidationRules,\n      validSince: {\n        required: true,\n        manualValidation: this.manualValidator,\n      },\n    });\n  }\n\n  protected async onInitialize(): Promise<Promise<any> | void> {\n    this.proposedValidityExist = false;\n    await this.timeService.getCurrentServerTime();\n    this.updateDateRangeValidation();\n\n    this.unsubscriptions.push(\n      reaction(\n        () => [this.chargeOrderChargeItem.validSince, this.chargeOrderChargeItem.chargeTypeId],\n        () => {\n          this.proposedValidityReaction();\n        }\n      ),\n      reaction(\n        () => this.chargeOrderChargeItem.validSince,\n        () => {\n          this.proposedValidityExistReaction();\n        }\n      ),\n      reaction(\n        () => [this.chargeOrderChargeItem.validSince, this.chargeOrderChargeItem.chargeTypeId],\n        () => {\n          this.checkWarnings();\n        }\n      ),\n      reaction(\n        () => this.chargeOrderChargeItem.validSince,\n        () => {\n          // Po změně validSince automaticky aktualizujeme date range validaci\n          this.updateDateRangeValidation();\n        }\n      ),\n      reaction(\n        () => this.chargeTypesService.isInitialized,\n        () => {\n          this.checkWarnings();\n        }\n      )\n    );\n    return super.onInitialize();\n  }\n\n  protected async onActivate() {\n    if (this.stepper) {\n      scrollToElement(this.stepper);\n    }\n    this.updateDateRangeValidation();\n\n    // Ensure currentServerTime is set before any validity checks\n    if (!this.currentServerTime) {\n      this.currentServerTime = this.timeService.currentServerTime ?? new Date();\n    }\n\n    this.checkPriceListItem();\n\n    // Ensure priceListItemId is set from _chargeTypeId if not already set\n    const chargeOrderItem = this.chargeOrderService.chargeOrderItem;\n    if (!chargeOrderItem.priceListItemId && chargeOrderItem._chargeTypeId && chargeOrderItem._priceListItems?.length) {\n      const priceListItem = chargeOrderItem._priceListItems.find(item => item.chargeTypeId === chargeOrderItem._chargeTypeId);\n      if (priceListItem) {\n        chargeOrderItem.priceListItemId = priceListItem.id;\n      }\n    }\n\n    this.validSinceString = this.chargeOrderChargeItem.validSince\n      ? dateToIsoDate(this.chargeOrderChargeItem.validSince)\n      : dateToIsoString(new Date());\n\n    // Await checkProposedValidity to ensure validity is calculated before rendering\n    await this.checkProposedValidity();\n    this.checkWarnings();\n    this.updateChargeOrderItem();\n    return super.onActivate();\n  }\n\n  protected onDeactivate(isClosing: boolean) {\n    if (isClosing) {\n      this.unsubscriptions.forEach(unsubscribe => unsubscribe());\n      this.unsubscriptions = [];\n    }\n    return super.onDeactivate(isClosing);\n  }\n\n  @computed\n  get isDifferentTimeZone() {\n    return this.timeService.isFetched && !this.timeService.isServerTimeSame;\n  }\n\n  @computed\n  get serverTime() {\n    return this.timeService.currentServerTime;\n  }\n\n  @computed\n  get isDisabled() {\n    return !!this.chargeOrderChargeItem.chargeTypeId && !!this.chargeOrderChargeItem.validSince;\n  }\n\n  @computed\n  get stepper() {\n    return window.document.getElementById(\"stepper\");\n  }\n\n  @action.bound\n  checkPriceListItem(data?: ReturnType<typeof preselectChargeType>) {\n    const id = data?.payload.chargeType.id;\n    const chargeOrderItem = this.chargeOrderService.chargeOrderItem;\n    if (id || chargeOrderItem._chargeTypeId) {\n      this.chargeOrderChargeItem.chargeTypeId = id ?? chargeOrderItem?._chargeTypeId;\n      return;\n    }\n    if (chargeOrderItem.priceListItemId) {\n      this.chargeOrderChargeItem.chargeTypeId = chargeOrderItem?._priceListItems?.find(\n        item => item.id === chargeOrderItem.priceListItemId\n      )?.chargeTypeId;\n    }\n  }\n\n  @action.bound\n  checkServerTime(data?: ReturnType<typeof currentServerTime>) {\n    this.timeService.currentServerTime = data?.payload.date ?? new Date();\n  }\n\n  @action.bound\n  private async handleProposedPurchase(data: ReturnType<typeof proposedPurchageCharge>) {\n    const proposedPurchase = data.payload.proposedPurchase;\n    const chargeOrderItem = this.chargeOrderService.chargeOrderItem;\n\n    // Ensure currentServerTime is set\n    if (!this.currentServerTime) {\n      this.currentServerTime = this.timeService.currentServerTime ?? new Date();\n    }\n\n    // Update chargeOrderChargeItem with proposed purchase data\n    if (proposedPurchase.chargeTypeId) {\n      this.chargeOrderChargeItem.chargeTypeId = chargeOrderItem._chargeTypeId;\n    }\n\n    if (proposedPurchase.validity?.validSinceDate && chargeOrderItem.validity.validSinceDate) {\n      this.chargeOrderChargeItem.validSince = chargeOrderItem.validity.validSinceDate;\n      this.validSinceString = dateToIsoDate(chargeOrderItem.validity.validSinceDate);\n    }\n\n    // Trigger validity check to calculate validUntil\n    await this.checkProposedValidity();\n  }\n\n  @action.bound\n  private async checkWarnings() {\n    const earliestPossibleDate =\n      this.chargeOrderService.chargeOrder._earliestPossibleValidSinceDate ??\n      this.chargeOrderService.earliestPossibleValidSinceDate;\n    this.currentServerTime = this.timeService.currentServerTime ? this.timeService.currentServerTime : new Date();\n    if (!this.chargeOrderChargeItem.validSince || !this.chargeTypesService.isInitialized || !earliestPossibleDate) {\n      return;\n    }\n    this.isSingleCharTypeToday =\n      dateToIsoDate(this.chargeOrderChargeItem.validSince) === dateToIsoString(this.currentServerTime) &&\n      this.chargeTypesService.findChargeType(this.chargeOrderChargeItem.chargeTypeId)?.validFor === ChargeValidity.SingleDay;\n    this.isBeforePosibble = isBefore(\n      startOfCzechDay(utcToCZZonedTime(this.chargeOrderChargeItem.validSince)),\n      startOfCzechDay(utcToCZZonedTime(earliestPossibleDate))\n    );\n    this.validSinceDaysBefore = dateStringWithServerZone(utcToCZZonedTime(earliestPossibleDate), this.serverTime);\n\n    if (!this.overlapTypes) {\n      return;\n    }\n    if (!this.proposedValiditySetAlready) {\n      this.overlapTypes = this.overlapTypes;\n      this.showExemptionOverlap = this.overlapTypes.includes(ChargeOverlapType.ExemptionOverlap);\n      this.showChargeOverlap = this.overlapTypes.includes(ChargeOverlapType.ChargeOverlap);\n      this.overlappingCharges = this.overlappingCharges ? this.overlappingCharges : [];\n    }\n  }\n\n  @action.bound\n  private updateChargeOrderItem() {\n    const chargeOrderItem = this.chargeOrderService.chargeOrderItem;\n    if (this.chargeOrderChargeItem.chargeTypeId) {\n      chargeOrderItem.priceListItemId =\n        chargeOrderItem?._priceListItems.find(item => item.chargeTypeId === this.chargeOrderChargeItem.chargeTypeId)?.id ?? \"\";\n    }\n    if (this.chargeOrderChargeItem.validSince) {\n      chargeOrderItem.validity.hasImmediateValidity =\n        this.chargeOrderChargeItem.validSince &&\n        dateToIsoDate(this.chargeOrderChargeItem.validSince) <= dateToIsoString(this.currentServerTime);\n    }\n    if (!this.updatedProposed) {\n      if (chargeOrderItem.validity.hasImmediateValidity) {\n        chargeOrderItem._hasImmediateValidity = chargeOrderItem.validity.hasImmediateValidity;\n        this.chargeOrderChargeItem.validSince = zonedCZTimeToUtc(dateToIsoString(this.serverTime));\n        this.updatedProposed = true;\n      } else {\n        this.chargeOrderChargeItem.validSince = chargeOrderItem.validity.validSinceDate;\n        this.updatedProposed = true;\n      }\n    }\n    chargeOrderItem.validity.validSinceDate = this.chargeOrderChargeItem.validSince;\n    chargeOrderItem.validity._validUntilDate = this.chargeOrderChargeItem._validUntil;\n    chargeOrderItem.validity._proposedValidityExist = this.proposedValidityExist;\n    chargeOrderItem._chargeTypeId = this.chargeOrderChargeItem.chargeTypeId;\n    chargeOrderItem._singleChargeType =\n      this.chargeTypesService.findChargeType(this.chargeOrderChargeItem.chargeTypeId)?.validFor === ChargeValidity.SingleDay;\n    this.chargeOrderService.persistChargeOrder();\n  }\n\n  @action.bound\n  private getProposedValidity(\n    countryId: string,\n    licensePlate: string,\n    priceListItemId: string,\n    hasImmediateValidity?: boolean,\n    validSinceDate?: Date,\n    validSinceDateString?: string\n  ) {\n    return this.vehicleRepository.proposedValidity(\n      countryId,\n      licensePlate,\n      priceListItemId,\n      hasImmediateValidity,\n      validSinceDate,\n      validSinceDateString\n    );\n  }\n\n  @action.bound\n  private proposedValidityExistReaction() {\n    // When we receive proposed validity, we have to set it,\n    // and thus call the endpoint again. After 2nd call,\n    // proposedValidityExist will always be false.\n    if (!this.proposedValidityExist) {\n      // If the user changes validSince while the proposed validity\n      // alert exists, it should remove the alert.\n      this.proposedValidityFlag = false;\n    }\n    if (this.proposedValidityExist) {\n      this.proposedValidityExist = false;\n    }\n  }\n\n  @action.bound\n  private async proposedValidityReaction() {\n    if (\n      !this.chargeOrderChargeItem.chargeTypeId ||\n      !this.chargeOrderChargeItem.validSince ||\n      !this.chargeOrderService.chargeOrderItem.licensePlate\n    ) {\n      return;\n    }\n    try {\n      this.checkingProposedValidity = true;\n      this.validSinceString = dateToIsoDate(this.chargeOrderChargeItem.validSince);\n      this.updateChargeOrderItem();\n      await this.debouncedCheckProposedValidity();\n    } catch (e) {\n      // Silence catch of background process\n    }\n  }\n\n  @action.bound\n  @repeatIfFailed\n  private async checkProposedValidity() {\n    this.checkingProposedValidity = true;\n    const { countryId, licensePlate, priceListItemId } = this.chargeOrderService.chargeOrderItem;\n    if (countryId && licensePlate && priceListItemId) {\n      const isNow = this.validSinceString === dateToIsoString(this.currentServerTime);\n      if (!this.validSinceString || this.validSinceString < dateToIsoString(this.currentServerTime)) {\n        return;\n      }\n      const response = await this.lastResolveGetProposedValidity(\n        countryId,\n        licensePlate,\n        priceListItemId,\n        isNow,\n        undefined,\n        this.validSinceString\n      );\n\n      if (response instanceof ChargeValidityInstructionsResponse) {\n        await this.setProposedValidity(response);\n      } else {\n        throw new Error(\"Proposed validity check failed\");\n      }\n    }\n    this.checkingProposedValidity = false;\n  }\n\n  @action.bound\n  private async setProposedValidity(validChargesResponse: ChargeValidityInstructionsResponse) {\n    const { overlapTypes, overlappingCharges } = validChargesResponse;\n    const chargeOrderItem = this.chargeOrderService.chargeOrderItem;\n    this.chargeOrderChargeItem._validUntil = validChargesResponse.validUntil;\n    chargeOrderItem.validity._validUntilDate = validChargesResponse.validUntil;\n    chargeOrderItem._validUntil = validChargesResponse.validUntil;\n    this.validSince = validChargesResponse.validSince;\n    this.validSinceString = dateToIsoDate(validChargesResponse.validSince);\n\n    // Always update overlap warnings based on current BE response (fix for 4L21428)\n    this.showExemptionOverlap = overlapTypes?.includes(ChargeOverlapType.ExemptionOverlap);\n    this.showChargeOverlap = overlapTypes?.includes(ChargeOverlapType.ChargeOverlap);\n    this.overlappingCharges = overlappingCharges ?? [];\n    this.overlapTypes = overlapTypes ?? [];\n\n    // Always persist to ensure UI updates\n    this.chargeOrderService.persistChargeOrder();\n\n    // The validity change by the BE can only happen once. If trying for the second time, the validity cannot be changed anymore by the system.\n    if (this.proposedValiditySetAlready) {\n      return;\n    }\n    if (validChargesResponse.proposedValidity) {\n      const hasImmediateValidity = isSameOrBeforePragueDay(\n        validChargesResponse.proposedValidity?.validSince,\n        this.currentServerTime\n      );\n      this.chargeOrderChargeItem.validSince = new Date(\n        zonedCZTimeToUtc(dateToIsoDate(validChargesResponse.proposedValidity?.validSince))\n      );\n      this.chargeOrderChargeItem._validUntil = new Date(\n        endOfCzechDay(zonedCZTimeToUtc(dateToIsoDate(validChargesResponse.proposedValidity?.validUntil)))\n      );\n      this.validSinceString = dateToIsoDate(validChargesResponse.proposedValidity?.validSince);\n      if (hasImmediateValidity) {\n        this.chargeOrderChargeItem.validSince = undefined;\n        this.chargeOrderChargeItem._hasImmediateValidity = hasImmediateValidity;\n      }\n      this.validSince = this.chargeOrderChargeItem.validSince;\n      this.chargeOrderService.persistChargeOrder();\n      this.proposedValidityFlag = true;\n      this.proposedValidityExist = true;\n      this.proposedValiditySetAlready = true;\n    }\n  }\n\n  @action.bound\n  public async onContinue() {\n    if (!this.validate()) {\n      return;\n    }\n    const chargeOrderItem = this.chargeOrderService.chargeOrderItem;\n    chargeOrderItem.validity.validSinceDate = this.chargeOrderChargeItem.validSince = this.validSince;\n\n    this.updateChargeOrderItem();\n    this.chargeOrderService.persistStoredChargeOrder(this.chargeOrderService.chargeOrder);\n    this.router.navigate(ContactViewModel);\n  }\n\n  @action.bound\n  public onBack() {\n    this.router.navigate(FuelTypeViewModel);\n  }\n\n  @action.bound\n  private validateAll() {\n    const isValid = validate(this.chargeOrderChargeItem);\n    if (!isValid) {\n      scrollToFirstError(this.formElement);\n    }\n\n    return isValid;\n  }\n\n  @action.bound\n  private updateDateRangeValidation() {\n    this.manualValidator.removeError(\"validSince\");\n\n    if (!this.timeService.currentServerTime) {\n      return;\n    }\n\n    const validSince = this.chargeOrderChargeItem.validSince;\n    if (!validSince) {\n      return;\n    }\n\n    const serverTime = this.timeService.currentServerTime;\n    const dateFormat = \"yyyy-MM-dd\";\n    const minDate = zonedCZTimeToUtc(format(serverTime, dateFormat));\n    const maxDate = zonedCZTimeToUtc(\n      format(\n        maxValidSince(\n          this.timeService.currentServerTime,\n          this.validSinceSelectViewModel.postponedValidityRule?.postponedValidityMaxDays\n        ),\n        dateFormat\n      )\n    );\n\n    const validSinceDate = zonedCZTimeToUtc(format(new Date(validSince), dateFormat));\n    if (validSinceDate < minDate) {\n      const message = this.localizationService.translateAttribute(\"validSince\", \"min\");\n      this.manualValidator.addError(\"validSince\", message);\n      setVisitedProperty(this.chargeOrderChargeItem, \"validSince\");\n    } else if (validSinceDate > maxDate) {\n      const message = this.localizationService\n        .translateAttribute(\"validSince\", \"max\")\n        .replace(\"%amount%\", `${this.validSinceSelectViewModel.postponedValidityRule?.postponedValidityMaxDays}`);\n      this.manualValidator.addError(\"validSince\", message);\n      setVisitedProperty(this.chargeOrderChargeItem, \"validSince\");\n    }\n  }\n\n  @action.bound\n  private removeDateRangeValidationErrors() {\n    this.manualValidator.removeError(\"validSince\");\n  }\n\n  @bound\n  public validate() {\n    this.updateDateRangeValidation();\n\n    const objectsForValidation: any[] = [this.chargeOrderChargeItem];\n    return validateAll(objectsForValidation);\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (chargeOrderChargeItem: ChargeOrderChargeItem) =>\n      new ChargeTypeViewModel(\n        chargeOrderChargeItem,\n        container.get(LocalizationService),\n        container.get(ChargeOrderService),\n        container.get(ChargeTypesService),\n        container.get(TimeService),\n        container.get(EnumService),\n        container.get(AppRouter),\n        container.get(VehicleRepository),\n        container.get(ChargeTypeSelectViewModel.Factory),\n        container.get(ValiditySelectViewModel.Factory),\n        container.get(EventBus)\n      );\n  }\n}\n","import { Router, ScreenBase } from \"@frui.ts/screens\";\nimport { action, computed, observable, reaction } from \"mobx\";\nimport AppRouter from \"services/appRouter\";\nimport LocalizationService from \"services/localizationService\";\nimport RecapViewModel from \"./recapViewModel\";\nimport ChargeTypeViewModel from \"./chargeTypeViewModel\";\nimport { interfaces } from \"inversify\";\nimport ContactViewModelCommon from \"viewModels/common/contactViewModel\";\nimport ChargeOrderContactItem from \"models/chargeOrderContactItem\";\nimport ChargeOrderService from \"services/chargeOrderService\";\nimport { attachAutomaticBlurValidator } from \"utils/validationPatch\";\nimport { ManualEntityValidator, validate } from \"@frui.ts/validation\";\nimport { scrollToElement } from \"utils/scrollTo\";\nimport NotificationPreferences, {\n  EmailConfirmationValidationRules,\n  EmailNotificationValidationRules,\n  EmailValidationRules,\n  NotificationValidationRules,\n} from \"models/notificationPreferences\";\nimport GdprInfoViewModel from \"../components/gdprInfoViewModel\";\nexport const ContactViewNavigationName = \"contact\";\n\n@Router.registerRoute({\n  name: Router.Self,\n  route: ContactViewNavigationName,\n})\nexport default class ContactViewModel extends ScreenBase {\n  public contactViewModel: ContactViewModelCommon;\n  public gdprInfoViewModel: GdprInfoViewModel;\n\n  private unsubscriptions: Array<() => void> = [];\n  protected manualValidator = new ManualEntityValidator<NotificationPreferences>(false);\n\n  @observable formElement?: HTMLFormElement;\n\n  constructor(\n    public chargeOrderContactItem: ChargeOrderContactItem,\n    public localizationService: LocalizationService,\n    private router: AppRouter,\n    private chargeOrderService: ChargeOrderService,\n    private contactViewModelFactory: ReturnType<typeof ContactViewModelCommon.Factory>,\n    private gdprInfoViewModelFactory: ReturnType<typeof GdprInfoViewModel.Factory>\n  ) {\n    super();\n    this.navigationName = ContactViewNavigationName;\n    this.nameValue = \"eshop.title\";\n    this.contactViewModel = this.contactViewModelFactory(this.chargeOrderContactItem, true);\n    this.gdprInfoViewModel = this.gdprInfoViewModelFactory();\n    attachAutomaticBlurValidator(this.notificationPreferences, {\n      ...EmailValidationRules,\n      ...EmailConfirmationValidationRules,\n      ...EmailNotificationValidationRules,\n      ...NotificationValidationRules,\n    });\n  }\n\n  protected onInitialize(): Promise<any> | void {\n    this.unsubscriptions.push(\n      reaction(() => this.notificationPreferences._isNotificationEmailSame, this.onSameNotificationEmailChanged),\n      reaction(() => this.notificationPreferences.emailAddress, this.onEmailAdressChanged),\n      reaction(() => this.notificationPreferences._emailAddressNotification, this.onEmailAddressNotification),\n      reaction(() => this.notificationPreferences.phoneNumber, this.onPhoneNumberChanged)\n    );\n    return super.onInitialize();\n  }\n\n  protected async onActivate() {\n    if (this.stepper) {\n      scrollToElement(this.stepper);\n    }\n    this.checkStoredNotificationPreferences();\n    return super.onActivate();\n  }\n\n  protected onDeactivate(isClosing: boolean) {\n    if (isClosing) {\n      this.unsubscriptions.forEach(unsubscribe => unsubscribe());\n      this.unsubscriptions = [];\n    }\n    return super.onDeactivate(isClosing);\n  }\n\n  @computed\n  get notificationPreferences() {\n    return this.chargeOrderContactItem.notificationPreferences;\n  }\n\n  @computed\n  get isDisabled() {\n    return (\n      !!this.chargeOrderContactItem.notificationPreferences.emailAddress &&\n      !!this.chargeOrderContactItem.notificationPreferences._emailConfirmation\n    );\n  }\n\n  @computed\n  get isSingleChargeType() {\n    return this.chargeOrderService.chargeOrderItem._singleChargeType;\n  }\n\n  @computed\n  get stepper() {\n    return window.document.getElementById(\"stepper\");\n  }\n\n  @computed\n  get isSmartRedirect() {\n    return this.chargeOrderService.isSmartRedirect;\n  }\n\n  @action.bound\n  onSameNotificationEmailChanged() {\n    // For single-day vignettes, this feature is not available\n    if (this.isSingleChargeType) {\n      return;\n    }\n    // Only copy email when user explicitly checks the \"Same email\" checkbox\n    if (this.notificationPreferences._isNotificationEmailSame && this.notificationPreferences._notificationEnabled) {\n      this.notificationPreferences._emailAddressNotification = this.notificationPreferences.emailAddress;\n      this.notificationPreferences.emailNotificationEnabled = true;\n      return;\n    }\n    if (!this.notificationPreferences._isNotificationEmailSame) {\n      this.notificationPreferences._emailAddressNotification = undefined;\n    }\n  }\n\n  @action.bound\n  onEmailAdressChanged() {\n    // For single-day vignettes, this feature is not available\n    if (this.isSingleChargeType) {\n      return;\n    }\n    if (!this.notificationPreferences.emailAddress) {\n      this.notificationPreferences._isNotificationEmailSame = false;\n    }\n    // Only sync email when user has explicitly checked \"Same email\" checkbox AND notifications are enabled\n    if (this.notificationPreferences._isNotificationEmailSame && this.notificationPreferences._notificationEnabled) {\n      this.notificationPreferences._emailAddressNotification = this.notificationPreferences.emailAddress;\n      return;\n    }\n  }\n\n  @action.bound\n  onEmailAddressNotification() {\n    const isEmailSet =\n      this.notificationPreferences._emailAddressNotification !== undefined &&\n      this.notificationPreferences._emailAddressNotification.length > 0;\n    this.notificationPreferences.emailNotificationEnabled = isEmailSet;\n    // For single-day vignettes, this feature is not available\n    if (this.isSingleChargeType) {\n      return;\n    }\n    // Only sync when notifications enabled and same email checked\n    if (this.notificationPreferences._isNotificationEmailSame && this.notificationPreferences._notificationEnabled) {\n      this.notificationPreferences._emailAddressNotification = this.notificationPreferences.emailAddress;\n      return;\n    }\n  }\n\n  @action.bound\n  onPhoneNumberChanged() {\n    const isPhoneNumberSet =\n      this.notificationPreferences.phoneNumber !== undefined && this.notificationPreferences.phoneNumber.length > 0;\n    this.notificationPreferences.smsNotificationEnabled = isPhoneNumberSet;\n    if (this.notificationPreferences.phoneNumber) {\n      this.contactViewModel.phoneNumberChanged = true;\n      return;\n    }\n  }\n  @action.bound\n  private checkStoredNotificationPreferences() {\n    const chargeOrder = this.chargeOrderService.chargeOrder;\n\n    if (chargeOrder.notificationPreferences && !this.isSingleChargeType) {\n      this.chargeOrderContactItem.notificationPreferences.emailAddress = chargeOrder.emailAddress;\n      this.chargeOrderContactItem.notificationPreferences._notificationEnabled =\n        chargeOrder.notificationPreferences._notificationEnabled;\n      this.chargeOrderContactItem.notificationPreferences._emailConfirmation =\n        chargeOrder.notificationPreferences._emailConfirmation;\n      this.chargeOrderContactItem.notificationPreferences.smsNotificationEnabled =\n        chargeOrder.notificationPreferences.smsNotificationEnabled;\n      this.chargeOrderContactItem.notificationPreferences.phoneNumber = chargeOrder.notificationPreferences.phoneNumber;\n      this.chargeOrderContactItem.notificationPreferences._emailAddressNotification =\n        chargeOrder.notificationPreferences._emailAddressNotification;\n      this.chargeOrderContactItem.notificationPreferences.emailNotificationEnabled =\n        chargeOrder.notificationPreferences.emailNotificationEnabled;\n      this.chargeOrderContactItem.notificationPreferences._isNotificationEmailSame =\n        chargeOrder.notificationPreferences._isNotificationEmailSame;\n\n      this.chargeOrderService.persistChargeOrder();\n      return;\n    }\n    if (chargeOrder.emailAddress && this.isSingleChargeType) {\n      this.chargeOrderContactItem.notificationPreferences = chargeOrder.notificationPreferences =\n        this.chargeOrderService.resetNotificationPreferences(this.chargeOrderContactItem.notificationPreferences);\n      this.chargeOrderContactItem.notificationPreferences.emailAddress = chargeOrder.emailAddress;\n      this.chargeOrderContactItem.notificationPreferences._emailConfirmation = chargeOrder.emailAddress;\n      this.chargeOrderService.persistStoredChargeOrder(chargeOrder);\n      return;\n    } else {\n      this.chargeOrderContactItem.notificationPreferences = chargeOrder.notificationPreferences =\n        this.chargeOrderService.resetNotificationPreferences(this.chargeOrderContactItem.notificationPreferences);\n      this.chargeOrderService.persistStoredChargeOrder(chargeOrder);\n    }\n  }\n\n  @action.bound\n  private validateAll() {\n    return validate(this.notificationPreferences);\n  }\n\n  @action.bound\n  private updateChargeOrderItem() {\n    const chargeOrder = this.chargeOrderService.chargeOrder;\n    if (this.notificationPreferences.emailAddress) {\n      chargeOrder.emailAddress = this.notificationPreferences.emailAddress;\n    }\n    if (this.notificationPreferences && this.isSingleChargeType === false) {\n      chargeOrder.notificationPreferences = this.notificationPreferences;\n    }\n    this.chargeOrderService.persistStoredChargeOrder(chargeOrder);\n  }\n\n  @action.bound\n  public onContinue() {\n    if (!this.validateAll()) {\n      return;\n    }\n    this.updateChargeOrderItem();\n    this.router.navigate(RecapViewModel);\n  }\n\n  @action.bound\n  public onBack() {\n    this.updateChargeOrderItem();\n    this.chargeOrderService.persistStoredChargeOrder(this.chargeOrderService.chargeOrder);\n    this.router.navigate(ChargeTypeViewModel);\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (chargeOrderContactItem: ChargeOrderContactItem) =>\n      new ContactViewModel(\n        chargeOrderContactItem,\n        container.get(LocalizationService),\n        container.get(AppRouter),\n        container.get(ChargeOrderService),\n        container.get(ContactViewModelCommon.Factory),\n        container.get(GdprInfoViewModel.Factory)\n      );\n  }\n}\n","import { action, computed, observable } from \"mobx\";\nimport { inject, injectable, interfaces } from \"inversify\";\nimport { ScreenBase } from \"@frui.ts/screens\";\nimport type { TurnstileInstance } from \"@marsidev/react-turnstile\";\nimport LocalizationService from \"../../services/localizationService\";\nimport React from \"react\";\nimport TurnstileService from \"services/turnstileServise\";\n\nexport default class TurnstileViewModel extends ScreenBase {\n  turnstileRef = React.createRef<TurnstileInstance>();\n  @observable showInteractive = false;\n  @observable isDisabledByTurnsitel = false;\n\n  constructor(\n    public localizationService: LocalizationService,\n    private turnstileService: TurnstileService,\n    public context?: string,\n    public shareToken = false\n  ) {\n    super();\n    this.shareToken = shareToken;\n    this.initialize(context);\n  }\n\n  @action.bound\n  async initialize(context?: string): Promise<void> {\n    this.turnstileService.initialize(context ?? \"default\");\n  }\n\n  @computed\n  get turnstileToken(): string | undefined {\n    return this.turnstileService.token;\n  }\n\n  @computed\n  get turnstileInfo(): string | undefined {\n    return this.turnstileService.info;\n  }\n\n  @computed\n  get turnstileError(): string | undefined {\n    return this.turnstileService.error;\n  }\n\n  @computed\n  get isValid(): boolean {\n    return this.turnstileService.isValid;\n  }\n\n  @action.bound\n  onTurnstileVerify = (token: string): void => {\n    this.turnstileService.setToken(token);\n  };\n\n  @action.bound\n  onTurnstileError = (error: string): void => {\n    this.turnstileService.setError(error);\n  };\n\n  @action.bound\n  onBeforeInteractive = (string: string): void => {\n    this.turnstileService.setInfo(string);\n  };\n\n  @action.bound\n  onSetInfo = (string: string): void => {\n    this.turnstileService.setInfo(string);\n  };\n\n  @action.bound\n  onTurnstileLoad = (): void => {\n    this.turnstileService.setInfo(this.translateTurnstile(\"loading\"));\n  };\n\n  @action.bound\n  reset(): void {\n    this.showInteractive = false;\n    this.turnstileService.reset();\n  }\n\n  @action.bound\n  resetError(): void {\n    this.turnstileService.setError(undefined);\n  }\n\n  @action.bound\n  resetToken(): void {\n    this.turnstileService.resetToken();\n  }\n\n  translateTurnstile(key: string): string {\n    return this.turnstileService.translateTurnstile(key);\n  }\n\n  @action.bound\n  setInstance(instance: TurnstileInstance): void {\n    this.turnstileService.setInstance(instance);\n    this.turnstileRef = { current: instance } as React.RefObject<TurnstileInstance>;\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (context?: string, shareToken = false) => {\n      return new TurnstileViewModel(container.get(LocalizationService), container.get(TurnstileService), context, shareToken);\n    };\n  }\n}\n","import { Router } from \"@frui.ts/screens/dist\";\nimport PaymentRetryViewModel, { PaymentRetryNavigationName } from \"./paymentRetryViewModel\";\n\nexport const SinglePaymentRetryNavigationName = PaymentRetryNavigationName;\n\n@Router.registerRoute({ route: `${SinglePaymentRetryNavigationName}/:orderId`, name: Router.Self })\nexport default class SinglePaymentRetryViewModel extends PaymentRetryViewModel {}\n","import { Router } from \"@frui.ts/screens/dist\";\nimport PaymentRetryViewModel, { PaymentRetryNavigationName } from \"./paymentRetryViewModel\";\n\nexport const MultiPaymentRetryNavigationName = PaymentRetryNavigationName;\n\n@Router.registerRoute({ route: `${MultiPaymentRetryNavigationName}/:orderId`, name: Router.Self })\nexport default class MultiPaymentRetryViewModel extends PaymentRetryViewModel {}\n","// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nenum CustomerRefundApplicationOrderSourceType {\n  Unknown = \"UNKNOWN\",\n  Eshop = \"ESHOP\",\n  Kiosk = \"KIOSK\",\n  Salespoint = \"SALESPOINT\",\n}\nexport default CustomerRefundApplicationOrderSourceType;\n","import { Router, ScreenBase } from \"@frui.ts/screens\";\r\nimport { action, computed, observable } from \"mobx\";\r\nimport AppRouter from \"services/appRouter\";\r\nimport LocalizationService from \"services/localizationService\";\r\nimport ChargeTypeViewModel from \"./chargeTypeViewModel\";\r\nimport LicenseViewModel from \"./licenseViewModel\";\r\nimport FuelTypeSelectViewModel from \"viewModels/common/fuelTypeSelectViewModel\";\r\nimport { interfaces } from \"inversify\";\r\nimport { attachAutomaticBlurValidator } from \"utils/validationPatch\";\r\nimport chargeOrderFuelItem, { FuelTypeValidationRules } from \"models/chargeOrderFuelItem\";\r\nimport ChargeOrderService from \"services/chargeOrderService\";\r\nimport { validate } from \"@frui.ts/validation\";\r\nimport { scrollToElement, scrollToFirstError } from \"utils/scrollTo\";\r\nimport ChargeTypesService from \"services/chargeTypesService\";\r\nimport FuelTypeLimitationReason from \"entities/fuelTypeLimitationReason\";\r\nimport EnumService from \"services/enumService\";\r\nimport FuelTypeResponse from \"entities/fuelTypeResponse\";\r\n\r\nexport const FuelTypeViewNavigationName = \"fuel\";\r\n\r\n@Router.registerRoute({\r\n  name: Router.Self,\r\n  route: FuelTypeViewNavigationName,\r\n})\r\nexport default class FuelTypeViewModel extends ScreenBase {\r\n  public fuelTypeSelectViewModel: FuelTypeSelectViewModel;\r\n\r\n  private unsubscriptions: Array<() => void> = [];\r\n\r\n  @observable formElement?: HTMLFormElement;\r\n\r\n  constructor(\r\n    public chargeOrderFuelItem: chargeOrderFuelItem,\r\n    public localizationService: LocalizationService,\r\n    public enumService: EnumService,\r\n    private router: AppRouter,\r\n    private chargeOrderService: ChargeOrderService,\r\n    private chargeTypesService: ChargeTypesService,\r\n    private fuelTypeSelectViewModelFactory: ReturnType<typeof FuelTypeSelectViewModel.Factory>\r\n  ) {\r\n    super();\r\n    this.navigationName = FuelTypeViewNavigationName;\r\n    this.nameValue = \"eshop.title\";\r\n    this.fuelTypeSelectViewModel = this.fuelTypeSelectViewModelFactory(this.chargeOrderFuelItem);\r\n    attachAutomaticBlurValidator(this.chargeOrderFuelItem, FuelTypeValidationRules);\r\n  }\r\n\r\n  protected onInitialize(): Promise<any> | void {\r\n    return super.onInitialize();\r\n  }\r\n\r\n  protected onActivate() {\r\n    document.addEventListener(\"mousedown\", this.clickOutside);\r\n    if (this.stepper) {\r\n      scrollToElement(this.stepper);\r\n    }\r\n    this.checkFuelTypeLimitation();\r\n    this.checkFuelType();\r\n    return super.onActivate();\r\n  }\r\n\r\n  protected onDeactivate(isClosing: boolean) {\r\n    document.removeEventListener(\"mousedown\", this.clickOutside);\r\n    if (isClosing) {\r\n      this.unsubscriptions.forEach(unsubscribe => unsubscribe());\r\n      this.unsubscriptions = [];\r\n    }\r\n    return super.onDeactivate(isClosing);\r\n  }\r\n\r\n  @computed\r\n  get fuelTypeLimitation() {\r\n    return this.chargeOrderFuelItem._fuelTypeLimitation?.limitationReason;\r\n  }\r\n\r\n  @computed\r\n  get fuelType() {\r\n    const fuelTypes = this.enumService.values(\"fuel_types\") as FuelTypeResponse[];\r\n    return fuelTypes.find(fuelType => fuelType.id === this.chargeOrderFuelItem.fuelTypeId)?.name ?? \"\";\r\n  }\r\n\r\n  @computed\r\n  get showInfoAboutVehicles() {\r\n    const countryId = this.chargeOrderService.chargeOrderItem.countryId;\r\n    const isCzech = this.enumService.values(\"countries\").find(country => country.code === \"CZ\" && country.id === countryId);\r\n    return (\r\n      this.enumService.values(\"countries\").length > 0 &&\r\n      !this.chargeOrderFuelItem._fuelTypeLimitation?.limitationReason &&\r\n      !isCzech\r\n    );\r\n  }\r\n\r\n  @computed\r\n  get stepper() {\r\n    return window.document.getElementById(\"stepper\");\r\n  }\r\n\r\n  @action.bound\r\n  clickOutside() {\r\n    // Inside of the view model, for some reason the onActivate doesn't get triggered.\r\n    this.fuelTypeSelectViewModel.clickOutside();\r\n  }\r\n\r\n  @action.bound\r\n  translate(code: string, secondCode?: string) {\r\n    return this.localizationService.translateGeneral(\r\n      secondCode ? `eshop.order.${this.navigationName}.${code}.${secondCode}` : `eshop.order.${this.navigationName}.${code}`,\r\n      undefined,\r\n      true // Important for markdown links to function correctly\r\n    );\r\n  }\r\n\r\n  @action.bound\r\n  translateFuelTypeLimitation(code: string) {\r\n    return this.translate(\"fuelTypeLimitation\", code);\r\n  }\r\n\r\n  @action.bound\r\n  translateInfoAboutVehicle(code: string) {\r\n    return this.translate(\"infoAboutVehicle\", code);\r\n  }\r\n\r\n  @action.bound\r\n  translateFuelTypeLimitationLink(code: string) {\r\n    if (code === FuelTypeLimitationReason.DerivedFromVehicleRegisterData) {\r\n      return {\r\n        text: this.translate(\"fuelTypeLimitation\", \"REGISTER_LINK\"),\r\n        link: this.translate(\"fuelTypeLimitation\", \"REGISTER_LINK_URL\"),\r\n      };\r\n    }\r\n    return {\r\n      text: this.translate(\"fuelTypeLimitation\", \"ECO_LINK\"),\r\n      link: this.translate(\"fuelTypeLimitation\", \"ECO_LINK_URL\"),\r\n    };\r\n  }\r\n\r\n  @action.bound\r\n  private checkFuelTypeLimitation() {\r\n    const chargeOrderItem = this.chargeOrderService.chargeOrderItem;\r\n    if (chargeOrderItem._fuelTypeLimitation) {\r\n      this.chargeOrderFuelItem.fuelTypeId = chargeOrderItem?._fuelTypeLimitation.allowedFuelTypeId;\r\n      this.chargeOrderFuelItem._fuelTypeLimitation = chargeOrderItem?._fuelTypeLimitation;\r\n    } else {\r\n      this.chargeOrderFuelItem._fuelTypeLimitation = undefined;\r\n    }\r\n  }\r\n\r\n  @action.bound\r\n  private checkFuelType() {\r\n    const chargeOrderItem = this.chargeOrderService.chargeOrderItem;\r\n    if (!chargeOrderItem._fuelTypeLimitation) {\r\n      this.chargeOrderFuelItem.fuelTypeId = chargeOrderItem?._fuelTypeId;\r\n    }\r\n  }\r\n\r\n  @action.bound\r\n  private updateChargeOrderItem() {\r\n    const chargeOrderItem = this.chargeOrderService.chargeOrderItem;\r\n    if (this.chargeOrderFuelItem.fuelTypeId) {\r\n      chargeOrderItem._fuelTypeId = this.chargeOrderFuelItem.fuelTypeId;\r\n    }\r\n    chargeOrderItem._priceListItems = this.chargeTypesService.chargePriceList?.items.filter(\r\n      item => item.fuelTypeId === this.chargeOrderFuelItem.fuelTypeId\r\n    );\r\n    this.chargeOrderService.persistChargeOrder();\r\n  }\r\n\r\n  @action.bound\r\n  public onContinue() {\r\n    if (!this.validateAll()) {\r\n      return;\r\n    }\r\n    this.updateChargeOrderItem();\r\n    this.router.navigate(ChargeTypeViewModel);\r\n  }\r\n\r\n  @action.bound\r\n  public onBack() {\r\n    this.updateChargeOrderItem();\r\n    this.router.navigate(LicenseViewModel);\r\n  }\r\n\r\n  @action.bound\r\n  private validateAll() {\r\n    const isValid = validate(this.chargeOrderFuelItem);\r\n    if (!isValid) {\r\n      scrollToFirstError(this.formElement);\r\n    }\r\n\r\n    return isValid;\r\n  }\r\n\r\n  static Factory({ container }: interfaces.Context) {\r\n    return (chargeOrderFuelItem: chargeOrderFuelItem) =>\r\n      new FuelTypeViewModel(\r\n        chargeOrderFuelItem,\r\n        container.get(LocalizationService),\r\n        container.get(EnumService),\r\n        container.get(AppRouter),\r\n        container.get(ChargeOrderService),\r\n        container.get(ChargeTypesService),\r\n        container.get(FuelTypeSelectViewModel.Factory)\r\n      );\r\n  }\r\n}\r\n","import { Router, ScreenBase } from \"@frui.ts/screens\";\nimport { action, computed, observable, reaction } from \"mobx\";\nimport LocalizationService from \"services/localizationService\";\nimport ContactViewModel from \"./contactViewModel\";\nimport AppRouter from \"services/appRouter\";\nimport PaymentViewModel from \"../components/paymentViewModel\";\nimport TermsAgreementViewModel from \"../components/termAgreementViewModel\";\nimport OrderRecapitulationViewModel from \"../components/orderRecapitulationViewModel\";\nimport NotificationPreferencesRecapViewModel from \"../components/notificationPreferencesRecapViewModel\";\nimport GdprInfoViewModel from \"../components/gdprInfoViewModel\";\nimport { interfaces } from \"inversify\";\nimport ChargeOrder, { ChargeOrderStatus, ChargeOrderValidationRules } from \"models/chargeOrder\";\nimport { attachAutomaticBlurValidator } from \"utils/validationPatch\";\nimport type { ErrorMessage } from \"viewModels/common/types\";\nimport { scrollToElement } from \"utils/scrollTo\";\nimport { validate } from \"@frui.ts/validation\";\nimport ChargeOrderService from \"services/chargeOrderService\";\nimport GooglePayMetadata from \"models/googlePayMetadata\";\nimport React from \"react\";\nimport { PaymentType } from \"models/payment\";\nimport * as Sentry from \"@sentry/react\";\nimport EventBus, {\n  getGooglePayMetadataFailure,\n  getGooglePayMetadataSuccess,\n  googlePayPaymentBrowserFingerprintLoaded,\n  paymentCompleteAlert,\n  paymentEmailAddressInvalid,\n  submitGooglePayPaymentBrowserFingerprint,\n  submitGooglePayPaymentFailure,\n} from \"../../../../services/eventBus\";\nimport PaymentService from \"services/payment/paymentService\";\nimport { isAfter } from \"date-fns\";\nimport { startOfCzechDay } from \"utils/dateUtils\";\nimport ChargeOrderRepository from \"repositories/chargeOrderRepository\";\nimport TurnstileViewModel from \"viewModels/common/turnstileViewModel\";\nimport ChargeOrderStorageRepository from \"repositories/chargeOrderStorageRepository/chargeOrderStorageRepository\";\nexport const RecapViewNavigationName = \"recap\";\n\n@Router.registerRoute({\n  name: Router.Self,\n  route: RecapViewNavigationName,\n})\nexport default class RecapViewModel extends ScreenBase {\n  public paymentViewModel: PaymentViewModel;\n  public termsAgreementViewModel: TermsAgreementViewModel;\n  public turnstileViewModel: TurnstileViewModel;\n  public orderRecapitulationViewModel: OrderRecapitulationViewModel;\n  public notificationPreferencesRecapViewModel: NotificationPreferencesRecapViewModel;\n  public gdprInfoViewModel: GdprInfoViewModel;\n  private unsubscriptions: Array<() => void> = [];\n\n  @observable errorMessage?: ErrorMessage;\n  @observable chargeOrderStatus?: ChargeOrderStatus;\n  @observable formElement?: HTMLFormElement;\n  @observable googlePayMetadata: GooglePayMetadata | undefined;\n  @observable googlePayPaymentFingerprint?: string;\n  @observable googlePayFingerprintProcessed = false;\n  @observable isRequestBlocked = false;\n\n  constructor(\n    public chargeOrder: ChargeOrder,\n    public payOrder: (\n      errorMessage: ErrorMessage,\n      paymentData?: google.payments.api.PaymentData,\n      token?: string | null\n    ) => Promise<void>,\n    public chargeOrderService: ChargeOrderService,\n    public repository: ChargeOrderRepository,\n    public localizationService: LocalizationService,\n    private paymentService: PaymentService,\n    public router: AppRouter,\n    private eventBus: EventBus,\n    public storage: ChargeOrderStorageRepository,\n    private paymentViewModelFactory: ReturnType<typeof PaymentViewModel.Factory>,\n    private turnstileViewModelFactory: ReturnType<typeof TurnstileViewModel.Factory>,\n    private termsAgreementViewModelFactory: ReturnType<typeof TermsAgreementViewModel.Factory>,\n    private orderRecapitulationViewModelFactory: ReturnType<typeof OrderRecapitulationViewModel.Factory>,\n    private notificationPreferencesRecapViewModelFactory: ReturnType<typeof NotificationPreferencesRecapViewModel.Factory>,\n    private gdprInfoViewModelFactory: ReturnType<typeof GdprInfoViewModel.Factory>\n  ) {\n    super();\n    attachAutomaticBlurValidator(this.chargeOrder, ChargeOrderValidationRules);\n    this.navigationName = RecapViewNavigationName;\n    this.nameValue = \"eshop.title\";\n    this.paymentViewModel = this.paymentViewModelFactory(this.chargeOrder);\n    this.turnstileViewModel = this.turnstileViewModelFactory(\"singleEshop\", false);\n    this.orderRecapitulationViewModel = this.orderRecapitulationViewModelFactory();\n    this.termsAgreementViewModel = this.termsAgreementViewModelFactory(this.chargeOrder);\n    this.notificationPreferencesRecapViewModel = this.notificationPreferencesRecapViewModelFactory(this.chargeOrder);\n    this.gdprInfoViewModel = this.gdprInfoViewModelFactory();\n\n    this.unsubscriptions.push(\n      reaction(\n        () => this.chargeOrder.paymentType,\n        async paymentType => {\n          await this.getGooglePayMetadata(paymentType);\n        }\n      ),\n      this.eventBus.subscribe(getGooglePayMetadataSuccess, this.receivedGooglePayMetadata),\n      this.eventBus.subscribe(getGooglePayMetadataFailure, this.googlePayMetadataFetchFailure),\n      this.eventBus.subscribe(submitGooglePayPaymentFailure, this.googlePayPaymentFailure),\n      this.eventBus.subscribe(submitGooglePayPaymentBrowserFingerprint, this.googlePayPaymentBrowserFingerprint),\n      this.eventBus.subscribe(paymentEmailAddressInvalid, this.onPaymentEmailAddressInvalid)\n    );\n    this.getGooglePayMetadata(this.chargeOrder.paymentType);\n  }\n\n  protected onInitialize(): Promise<any> | void {\n    this.unsubscriptions.push(\n      reaction(\n        () => [this.chargeOrder._termsAgreement, this.paymentViewModel.chargeOrder.paymentType],\n        this.updateChargeOrderItem\n      )\n    );\n\n    return super.onInitialize();\n  }\n\n  protected async onActivate() {\n    if (this.stepper) {\n      scrollToElement(this.stepper);\n    }\n    this.errorMessage = undefined;\n    this.isRequestBlocked = false;\n    this.checkRecapStoreData();\n\n    if (!this.chargeOrder.paymentType) {\n      this.chargeOrder.paymentType = PaymentType.PayGate;\n    }\n\n    if (this.chargeOrder.paymentType === PaymentType.Transfer && this.transferDisabled) {\n      this.chargeOrder.paymentType = PaymentType.PayGate;\n    }\n\n    await this.notificationPreferencesRecapViewModel.activate();\n\n    return super.onActivate();\n  }\n\n  protected onDeactivate(isClosing: boolean) {\n    this.notificationPreferencesRecapViewModel.deactivate(isClosing);\n    if (isClosing) {\n      this.unsubscriptions.forEach(unsubscribe => unsubscribe());\n      this.unsubscriptions = [];\n    }\n    return super.onDeactivate(isClosing);\n  }\n\n  @action.bound\n  onOrderIsCompleteCheck(orderId: string) {\n    this.eventBus.publish(paymentCompleteAlert({ orderId }));\n  }\n\n  @computed\n  get isOrderComplete() {\n    return this.chargeOrderStatus === ChargeOrderStatus.Paid || this.chargeOrderStatus === ChargeOrderStatus.PaidBankTransfer;\n  }\n\n  @computed\n  get transferDisabled() {\n    if (this.earliestPossibleDate) {\n      return this.chargeOrder.charges.reduce(\n        (summary, item) =>\n          summary ||\n          (item.validity.validSinceDate !== undefined &&\n            isAfter(\n              startOfCzechDay(new Date(this.earliestPossibleDate)),\n              startOfCzechDay(new Date(item.validity.validSinceDate))\n            )),\n        false\n      );\n    }\n    return false;\n  }\n\n  @computed\n  get earliestPossibleDate() {\n    return (\n      this.chargeOrderService.chargeOrder._earliestPossibleValidSinceDate ??\n      this.chargeOrderService.earliestPossibleValidSinceDate\n    );\n  }\n\n  @computed\n  get isDisabled() {\n    return !!this.chargeOrder.paymentType && !!this.chargeOrder._termsAgreement;\n  }\n\n  @computed\n  get isChecked() {\n    return this.chargeOrder.paymentType && this.chargeOrder._termsAgreement;\n  }\n\n  @computed\n  get isTransferPayment() {\n    return this.chargeOrder.paymentType === PaymentType.Transfer;\n  }\n\n  @computed\n  get buttonTextKey() {\n    return this.isTransferPayment ? \"payment\" : \"pay\";\n  }\n\n  @computed\n  get locale() {\n    return this.localizationService.locale;\n  }\n\n  @computed\n  get isGooglePayMetadataReady() {\n    return !this.paymentService.isFetchingGooglePayMetadata && this.googlePayMetadata !== undefined;\n  }\n\n  @computed\n  get isGooglePayPaymentMethodSelected() {\n    return this.chargeOrder.paymentType === PaymentType.GooglePay;\n  }\n\n  @computed\n  get stepper() {\n    return window.document.getElementById(\"stepper\");\n  }\n\n  @computed\n  get isSmartRedirect() {\n    return true;\n  }\n\n  @computed\n  get isSingleChargeType() {\n    return this.chargeOrderService.chargeOrderItem._singleChargeType;\n  }\n\n  @computed\n  get shouldShowNotificationPreferences() {\n    return !this.isSingleChargeType;\n  }\n\n  @action.bound\n  translate(code: string) {\n    return this.localizationService.translateGeneral(`eshop.order.summary.${code}`);\n  }\n\n  @action.bound\n  checkRecapStoreData() {\n    const { paymentType, _termsAgreement } = this.chargeOrderService.chargeOrder;\n\n    this.chargeOrder.paymentType = paymentType;\n    this.chargeOrder._termsAgreement = _termsAgreement;\n\n    this.chargeOrderService.persistStoredChargeOrder(this.chargeOrderService.chargeOrder);\n  }\n\n  @action.bound\n  updateChargeOrderItem() {\n    const chargeOrder = this.chargeOrderService.chargeOrder;\n    const { _termsAgreement, paymentType } = this.chargeOrder;\n\n    chargeOrder.paymentType = paymentType;\n    chargeOrder._termsAgreement = _termsAgreement;\n\n    if (this.isChecked && this.turnstileViewModel.turnstileToken) {\n      this.turnstileViewModel.reset();\n    }\n\n    this.chargeOrderService.persistStoredChargeOrder(chargeOrder);\n  }\n\n  @action.bound\n  protected async getGooglePayMetadata(paymentType: PaymentType | undefined) {\n    if (paymentType === PaymentType.GooglePay) {\n      await this.paymentService.getGooglePayMetadata();\n    }\n  }\n\n  @action.bound\n  async getOrderStatus(id: string) {\n    const order = await this.repository.get(id);\n    this.chargeOrderStatus = order.status;\n  }\n\n  @action.bound\n  private resetTermsAgreement() {\n    this.chargeOrder._termsAgreement = false;\n  }\n\n  @action.bound\n  protected receivedGooglePayMetadata(data: { type: string; payload: { googlePayMetadata: GooglePayMetadata } }) {\n    this.googlePayMetadata = data.payload.googlePayMetadata;\n  }\n\n  @action.bound\n  protected googlePayMetadataFetchFailure(data: { type: string; payload: void }) {\n    this.googlePayMetadata = undefined;\n  }\n\n  @action.bound\n  protected googlePayPaymentBrowserFingerprint(googlePayPaymentBrowserFingerprint: { payload: { url: string } }) {\n    this.googlePayPaymentFingerprint = googlePayPaymentBrowserFingerprint.payload.url;\n  }\n\n  @action.bound\n  protected googlePayPaymentFailure() {\n    this.googlePayPaymentFingerprint = undefined;\n    this.googlePayFingerprintProcessed = false;\n  }\n\n  @action.bound\n  onGooglePayPaymentFingerprintLoaded = () => {\n    if (!this.googlePayFingerprintProcessed) {\n      this.googlePayFingerprintProcessed = true;\n      this.eventBus.publish(googlePayPaymentBrowserFingerprintLoaded());\n    }\n  };\n\n  @action.bound\n  validateOrder() {\n    this.chargeOrderService.persistChargeOrder();\n    if (!validate(this.chargeOrder)) {\n      this.errorMessage = \"invalidData\";\n      return false;\n    }\n\n    return this.chargeOrderService.validateOrder();\n  }\n\n  @action.bound\n  async payment() {\n    let errorMessage: ErrorMessage = undefined;\n    if (!this.chargeOrderService.validateOrder()) {\n      errorMessage = \"invalidData\";\n      await this.payOrder(errorMessage);\n      return;\n    }\n\n    await this.payOrder(undefined, errorMessage, this.isTransferPayment ? this.turnstileViewModel.turnstileToken : undefined);\n  }\n\n  @action.bound\n  public onContinue() {\n    if (!this.validateAll()) {\n      this.payOrder(this.errorMessage);\n      return;\n    }\n    this.payment();\n  }\n\n  @action.bound\n  public onBack() {\n    this.isRequestBlocked = false;\n    this.errorMessage = undefined;\n    this.chargeOrderService.persistStoredChargeOrder(this.chargeOrder);\n    this.router.navigate(ContactViewModel);\n  }\n\n  @action.bound\n  private validateAll() {\n    this.errorMessage = undefined;\n    const isChargeOrderValid = validate(this.chargeOrder);\n    const isNotificationPreferencesValid = validate(this.chargeOrder.notificationPreferences);\n    const isValid = isChargeOrderValid && isNotificationPreferencesValid;\n\n    if (!isValid) {\n      this.errorMessage = \"invalidData\";\n    }\n\n    return isValid;\n  }\n\n  @action.bound\n  onPaymentEmailAddressInvalid() {\n    this.isRequestBlocked = true;\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (\n      chargeOrder: ChargeOrder,\n      payOrder: (\n        errorMessage: ErrorMessage,\n        paymentData?: google.payments.api.PaymentData,\n        token?: string | null\n      ) => Promise<void>\n    ) =>\n      new RecapViewModel(\n        chargeOrder,\n        payOrder,\n        container.get(ChargeOrderService),\n        container.get(ChargeOrderRepository),\n        container.get(LocalizationService),\n        container.get(PaymentService),\n        container.get(AppRouter),\n        container.get(EventBus),\n        container.get(ChargeOrderStorageRepository),\n        container.get(PaymentViewModel.Factory),\n        container.get(TurnstileViewModel.Factory),\n        container.get(TermsAgreementViewModel.Factory),\n        container.get(OrderRecapitulationViewModel.Factory),\n        container.get(NotificationPreferencesRecapViewModel.Factory),\n        container.get(GdprInfoViewModel.Factory)\n      );\n  }\n}\n","// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nenum ChargeOverlapType {\n  ChargeOverlap = \"CHARGE_OVERLAP\",\n  ExemptionOverlap = \"EXEMPTION_OVERLAP\",\n}\nexport default ChargeOverlapType;\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport RequestedChargeValidityResponse from \"./requestedChargeValidityResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargeValidityInstructionGroupResponse {\n  @observable\n  @Type(() => RequestedChargeValidityResponse)\n  requestedValidity!: RequestedChargeValidityResponse;\n\n  /**\n   * Price list item ID.\n   */\n  @observable\n  priceListItemId!: string;\n\n  /**\n   * Calculated valid since based on requested validity.\n   */\n  @observable\n  @Type(() => Date)\n  validSince!: Date;\n\n  /**\n   * Calculated valid until based on requested validity.\n   */\n  @observable\n  @Type(() => Date)\n  validUntil!: Date;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport ChargeOverlapResponse from \"./chargeOverlapResponse\";\nimport ChargeOverlapType from \"./chargeOverlapType\";\nimport RequestedChargeValidityResponse from \"./requestedChargeValidityResponse\";\nimport VehicleRegistrationResponse from \"./vehicleRegistrationResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargeValidityOverlapInstructionsGroupResponse {\n  @observable\n  @Type(() => VehicleRegistrationResponse)\n  vehicle!: VehicleRegistrationResponse;\n\n  @observable\n  @Type(() => RequestedChargeValidityResponse)\n  requestedValidity!: RequestedChargeValidityResponse;\n\n  /**\n   * Price list item ID.\n   */\n  @observable\n  priceListItemId!: string;\n\n  /**\n   * Charge overlaps.\n   */\n  @observable\n  overlapTypes!: ChargeOverlapType[];\n\n  /**\n   * Existing overlapping charges - max 3 most relevant overlaps.\n   */\n  @observable\n  @Type(() => ChargeOverlapResponse)\n  overlappingCharges?: ChargeOverlapResponse[];\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport ChargeValidityInstructionGroupResponse from \"./chargeValidityInstructionGroupResponse\";\nimport ChargeValidityOverlapInstructionsGroupResponse from \"./chargeValidityOverlapInstructionsGroupResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargeValidityInstructionGroupsResponse {\n  /**\n   * The list of validity instructions.\n   */\n  @observable\n  @Type(() => ChargeValidityInstructionGroupResponse)\n  validities!: ChargeValidityInstructionGroupResponse[];\n\n  /**\n   * The list of overlap instructions.\n   */\n  @observable\n  @Type(() => ChargeValidityOverlapInstructionsGroupResponse)\n  overlaps!: ChargeValidityOverlapInstructionsGroupResponse[];\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport ChargeOrderInstructionType from \"./chargeOrderInstructionType\";\nimport FuelTypeLimitationResponse from \"./fuelTypeLimitationResponse\";\nimport VehicleRegistrationResponse from \"./vehicleRegistrationResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargeOrderInstructionGroupResponse {\n  @observable\n  instructionType!: ChargeOrderInstructionType;\n\n  /**\n   * Possible exemption reason IDs.\n   */\n  @observable\n  possibleExemptionReasonIds?: string[];\n\n  @observable\n  @Type(() => FuelTypeLimitationResponse)\n  fuelTypeLimitation?: FuelTypeLimitationResponse;\n\n  /**\n   * The list of vehicles for which the instruction is relevant.\n   */\n  @observable\n  @Type(() => VehicleRegistrationResponse)\n  vehicles?: VehicleRegistrationResponse[];\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport ChargeOrderInstructionGroupResponse from \"./chargeOrderInstructionGroupResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargeOrderInstructionGroupsResponse {\n  /**\n   * The list of instructions for vehicles.\n   */\n  @observable\n  @Type(() => ChargeOrderInstructionGroupResponse)\n  items!: ChargeOrderInstructionGroupResponse[];\n}\n","import { observable } from \"mobx\";\nimport VehicleWarningReason from \"./vehicleWarningReason\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class VehicleChargingInstructionsResponse {\n  /**\n   * Vehicle warning reasons.\n   */\n  @observable\n  warningReasons?: VehicleWarningReason[];\n\n  /**\n   * Possible exemption reason IDs.\n   */\n  @observable\n  possibleExemptionReasonIds?: string[];\n}\n","import { plainToClass } from \"class-transformer\";\r\nimport AuthorizationService from \"../services/authorizationService\";\r\nimport RepositoryBase from \"./repositoryBase\";\r\nimport EshopError from \"../models/eshopError\";\r\nimport EshopRequestBuilder from \"../data/eshopRequestBuilder\";\r\nimport EventBus from \"../services/eventBus\";\r\nimport ChargeOrderInstructionsResponse from \"entities/chargeOrderInstructionsResponse\";\r\nimport { formatISO } from \"date-fns\";\r\nimport ChargeValidityInstructionsResponse from \"entities/chargeValidityInstructionsResponse\";\r\nimport ChargeValidityInstructionGroupsResponse from \"entities/chargeValidityInstructionGroupsResponse\";\r\nimport ChargeOrderInstructionGroupsResponse from \"entities/chargeOrderInstructionGroupsResponse\";\r\nimport ChargeOrderInstructionRequest from \"entities/chargeOrderInstructionRequest\";\r\nimport ChargesRequest from \"entities/chargesRequest\";\r\nimport VehicleChargingInstructionsResponse from \"../entities/vehicleChargingInstructionsResponse\";\r\nimport { dateToIsoDate, dateToIsoString } from \"utils/dateUtils\";\r\nimport { utcToCZZonedTime } from \"../utils/dateUtils\";\r\n\r\nexport const GET_PROPOSED_VALIDITY_REQUEST_FAILURE = \"GET_PROPOSED_VALIDITY_REQUEST_FAILURE\";\r\nexport const GET_VEHICLE_INSTRUCTIONS_REQUEST_FAILURE = \"GET_VEHICLE_INSTRUCTIONS_REQUEST_FAILURE\";\r\nexport const GET_VEHICLE_REGISTRATIONS_REQUEST_FAILURE = \"GET_VEHICLE_REGISTRATIONS_REQUEST_FAILURE\";\r\n\r\nexport default class VehicleRepository extends RepositoryBase<EshopRequestBuilder> {\r\n  constructor(\r\n    protected apiFactory: ReturnType<typeof EshopRequestBuilder.Factory>,\r\n    protected authorizationService: AuthorizationService,\r\n    protected eventBus: EventBus\r\n  ) {\r\n    super(() => apiFactory(), authorizationService, eventBus);\r\n  }\r\n\r\n  getChargeOrderInstruction(countryId: string, licensePlate: string) {\r\n    return this.callApi(api =>\r\n      api\r\n        .apiVersion(3.1)\r\n        .one(`vehicles/${countryId}/${licensePlate}/charge_order_instructions`)\r\n        .get<ChargeOrderInstructionsResponse>()\r\n        .then(response => {\r\n          return plainToClass(ChargeOrderInstructionsResponse, response);\r\n        })\r\n        .catch(() => new EshopError(GET_VEHICLE_REGISTRATIONS_REQUEST_FAILURE))\r\n    );\r\n  }\r\n\r\n  getChargeOrderInstructions(charges: ChargeOrderInstructionRequest[]) {\r\n    const postCharges = { charges: charges };\r\n    return this.callApi(api =>\r\n      this.apiFactory()\r\n        .apiVersion(3.1)\r\n        .one(\"vehicles/charge_order_instructions\")\r\n        .post<ChargeOrderInstructionRequest[] | EshopError>(postCharges)\r\n        .then(response => {\r\n          return plainToClass(ChargeOrderInstructionGroupsResponse, response);\r\n        })\r\n        .catch(() => new EshopError(GET_VEHICLE_REGISTRATIONS_REQUEST_FAILURE))\r\n    );\r\n  }\r\n\r\n  getChargingInstruction(countryId: string, licensePlate: string) {\r\n    return this.callApi(api =>\r\n      api\r\n        .apiVersion(3)\r\n        .one(`vehicles/${countryId}/${licensePlate}/charging_instructions`)\r\n        .get<VehicleChargingInstructionsResponse>()\r\n        .then(response => {\r\n          return plainToClass(VehicleChargingInstructionsResponse, response);\r\n        })\r\n        .catch(() => new EshopError(GET_VEHICLE_INSTRUCTIONS_REQUEST_FAILURE))\r\n    );\r\n  }\r\n\r\n  getChargeValidityInstructions(charges: ChargesRequest[]) {\r\n    const postCharges = { charges: charges };\r\n    return this.callApi(api =>\r\n      this.apiFactory()\r\n        .apiVersion(3)\r\n        .one(\"vehicles/charge_validity_instructions\")\r\n        .post<ChargesRequest[] | EshopError>(postCharges)\r\n        .then(response => {\r\n          return plainToClass(ChargeValidityInstructionGroupsResponse, response);\r\n        })\r\n        .catch(() => new EshopError(GET_VEHICLE_REGISTRATIONS_REQUEST_FAILURE))\r\n    );\r\n  }\r\n\r\n  proposedValidity(\r\n    countryId: string,\r\n    licensePlate: string,\r\n    priceListItemId?: string,\r\n    hasImmediateValidity?: boolean,\r\n    validSinceDate?: Date,\r\n    validSinceDateString?: string,\r\n    chargeId?: string\r\n  ) {\r\n    let reqObject: any = {};\r\n    if (hasImmediateValidity && priceListItemId) {\r\n      reqObject.has_immediate_validity = hasImmediateValidity;\r\n      reqObject.price_list_item_id = priceListItemId;\r\n    }\r\n    if (!hasImmediateValidity && (validSinceDateString || validSinceDate) && priceListItemId) {\r\n      const date = validSinceDateString ? validSinceDateString : validSinceDate ? dateToIsoDate(validSinceDate) : validSinceDate;\r\n      reqObject.valid_since_date = date;\r\n      reqObject.price_list_item_id = priceListItemId;\r\n    }\r\n    if (chargeId) {\r\n      reqObject = { ...reqObject, charge_id: chargeId };\r\n    }\r\n    return this.callApi(api =>\r\n      api\r\n        .apiVersion(3)\r\n        .one(`vehicles/${countryId}/${licensePlate}/charge_validity_instructions`)\r\n        .clearGet(reqObject)\r\n        .then(async response => {\r\n          if (!response.ok) return plainToClass(EshopError, (await response.json()) as EshopError);\r\n\r\n          return plainToClass(ChargeValidityInstructionsResponse, (await response.json()) as ChargeValidityInstructionsResponse);\r\n        })\r\n        .catch(() => new EshopError(GET_PROPOSED_VALIDITY_REQUEST_FAILURE))\r\n    );\r\n  }\r\n}\r\n","export enum PayGateCommonPaymentStatus {\n  UNKNOWN = \"UNKNOWN\",\n  IN_PROGRESS = \"IN_PROGRESS\",\n  SUCCEEDED = \"SUCCEEDED\",\n  DEFERRED = \"DEFERRED\",\n  CANCELED = \"CANCELED\",\n  FAILED = \"FAILED\",\n}\n\nexport default class GooglePayInitPaymentResponse {\n  paymentStatus: PayGateCommonPaymentStatus;\n  browserFingerprintActionUrl?: string;\n}\n","import { observable } from \"mobx\";\n\nexport default class IsdsResponse {\n  conceptIdent: string;\n}\n\nexport class IsdsConceptStatus {\n  @observable statusCode: string;\n  @observable statusMessage: string;\n}\n","import { Router, ScreenBase } from \"@frui.ts/screens\";\nimport { validityDays } from \"entities/chargeValidity\";\nimport FuelType from \"entities/fuelType\";\nimport { action, computed } from \"mobx\";\nimport ChargeTypesService from \"services/chargeTypesService\";\nimport LocalizationService from \"services/localizationService\";\n\nexport const PriceListModuleNavigationName = \"price_list\";\n\n@Router.registerRoute({ route: PriceListModuleNavigationName, name: \"price_list\" })\nexport default class PriceListViewModel extends ScreenBase {\n  constructor(private chargeTypesService: ChargeTypesService, private localizationService: LocalizationService) {\n    super();\n  }\n\n  protected async onInitialize(): Promise<Promise<any> | void> {\n    await this.chargeTypesService.startInitialization();\n    return super.onInitialize();\n  }\n\n  @computed\n  get isInitialized() {\n    return this.chargeTypesService.isInitialized;\n  }\n\n  @computed\n  get validSinceDate() {\n    return this.chargeTypesService.chargePriceList?.validSinceDate\n      ? this.localizationService.formatDate(this.chargeTypesService.chargePriceList?.validSinceDate)\n      : null;\n  }\n\n  @computed\n  get isCSLocale() {\n    return this.localizationService.locale === \"cs\";\n  }\n\n  @computed\n  get fuelTypes() {\n    const sortedFuelTypes = this.chargeTypesService.getAvailableFuelTypesSorted();\n\n    //edaz-task #1167\n    sortedFuelTypes.push({\n      fuelType: FuelType.Electromobile,\n      id: Math.random().toString(),\n      isDeleted: false,\n      name: this.localizationService.translateAttribute(\"fuelType\", \"ELECTROMOBILE\"),\n    });\n\n    return sortedFuelTypes;\n  }\n\n  formatPrice(price: number) {\n    return this.localizationService.formatPrice(price);\n  }\n\n  @computed\n  get translateTitle() {\n    return this.localizationService.translate(`general.validPriceList`).replace(\"%VALID_SINCE%\", `${this.validSinceDate}`);\n  }\n\n  translateFuelType(fuelType: FuelType) {\n    return this.localizationService.translateAttribute(\"fuelType\", fuelType);\n  }\n\n  fuelTypeDescription(fuelType: FuelType) {\n    if (fuelType === FuelType.NaturalGas || fuelType === FuelType.PhevWithLimitedCo2) {\n      return this.localizationService.translateAttribute(\"fuelType\", `${fuelType}_DESCRIPTION`);\n    }\n    if (fuelType === FuelType.Electromobile) {\n      return this.localizationService.translateAttribute(\"fuelType\", `${fuelType}_DESCRIPTION`, undefined, true);\n    }\n\n    return undefined;\n  }\n\n  isDescriptionTooLong(fuelType: FuelType) {\n    const description = this.fuelTypeDescription(fuelType);\n    if (!description) {\n      return false;\n    }\n    // Arbitrary amount, just used a number that would go over 2 lines\n    return description.length > 40;\n  }\n\n  @action.bound\n  chargeTypesWithPrices() {\n    return this.chargeTypesService.validChargeTypes\n      .sort((a, b) => {\n        return validityDays(b.validFor) - validityDays(a.validFor);\n      })\n      .filter(x => this.chargeTypesService.hasPrices(x))\n      .map(x => this.chargeTypesService.getPricesWithFuelTypes(x));\n  }\n}\n","import { ScreenBase } from \"@frui.ts/screens\";\nimport { bound } from \"@frui.ts/helpers/dist\";\nimport LocalizationService from \"../../services/localizationService\";\nimport { action, computed, observable, reaction } from \"mobx\";\nimport { interfaces } from \"inversify\";\nimport PriceService from \"../../services/priceService\";\nimport { PaymentType } from \"../../models/payment\";\nimport PaymentService from \"../../services/payment/paymentService\";\nimport GooglePayMetadata from \"../../models/googlePayMetadata\";\nimport EventBus, {\n  getGooglePayMetadataFailure,\n  getGooglePayMetadataSuccess,\n  googlePayPaymentBrowserFingerprintLoaded,\n  multiEshopPaymentUpdate,\n  paymentMultiEmailAddressInvalid,\n  submitGooglePayPaymentBrowserFingerprint,\n  submitGooglePayPaymentFailure,\n} from \"../../services/eventBus\";\nimport { ErrorMessage } from \"../common/types\";\nimport ChargeOrderService from \"services/chargeOrderService\";\nimport ChargeOrder from \"models/chargeOrder\";\nimport React from \"react\";\nimport TurnstileViewModel from \"viewModels/common/turnstileViewModel\";\n\nexport default class SummaryMultiEshopViewModel extends ScreenBase {\n  private chargeRegex = /%charge%/g;\n  private priceRegex = /%price%/g;\n  private unsubscriptions: Array<() => void> = [];\n\n  @observable googlePayMetadata: GooglePayMetadata | undefined;\n  @observable googlePayPaymentFingerprint?: string;\n  @observable googlePayFingerprintProcessed = false;\n  @observable showGooglePaymentButton?: boolean;\n  @observable turnstileViewModel: TurnstileViewModel;\n  @observable isRequestBlocked = false;\n\n  tg = (code: string) => this.localizationService.translateGeneral(`multiEshop.${code}`);\n  tp = (price: number) => this.localizationService.formatPrice(price);\n\n  constructor(\n    public isFinal: boolean,\n    public disabledButton: boolean,\n    public localizationService: LocalizationService,\n    private chargeOrderService: ChargeOrderService,\n    private paymentService: PaymentService,\n    private eventBus: EventBus,\n    private priceService: PriceService,\n    private turnstileViewModelFactory: ReturnType<typeof TurnstileViewModel.Factory>,\n    public onContinue?: (errorMessage: ErrorMessage, paymentData?: google.payments.api.PaymentData) => void,\n    public onBack?: () => void,\n    private statusOrder?: ChargeOrder\n  ) {\n    super();\n    if (isFinal) {\n      this.turnstileViewModel = this.turnstileViewModelFactory(\"multiEshop\", false);\n    }\n    if (isFinal) {\n      this.unsubscriptions.push(\n        reaction(\n          () => this.chargeOrder.paymentType,\n          async paymentType => {\n            await this.getGooglePayMetadata(paymentType);\n          }\n        ),\n        this.eventBus.subscribe(getGooglePayMetadataSuccess, this.receivedGooglePayMetadata),\n        this.eventBus.subscribe(getGooglePayMetadataFailure, this.googlePayMetadataFetchFailure),\n        this.eventBus.subscribe(submitGooglePayPaymentFailure, this.googlePayPaymentFailure),\n        this.eventBus.subscribe(submitGooglePayPaymentBrowserFingerprint, this.googlePayPaymentBrowserFingerprint),\n        this.eventBus.subscribe(multiEshopPaymentUpdate, this.onPaymentDataUpdated),\n        this.eventBus.subscribe(paymentMultiEmailAddressInvalid, this.onPaymentEmailAddressInvalid)\n      );\n\n      this.getGooglePayMetadata(this.chargeOrder.paymentType);\n    }\n  }\n\n  @action.bound\n  onPaymentDataUpdated(data: ReturnType<typeof multiEshopPaymentUpdate>) {\n    if (data.payload.paymentType === PaymentType.GooglePay && data.payload.termsAgreement) {\n      this.showGooglePaymentButton = true;\n      return;\n    }\n    this.showGooglePaymentButton = false;\n  }\n\n  @action.bound\n  onPaymentEmailAddressInvalid() {\n    this.isRequestBlocked = true;\n  }\n\n  @bound\n  protected async getGooglePayMetadata(paymentType: PaymentType | undefined) {\n    if (paymentType === PaymentType.GooglePay) {\n      await this.paymentService.getGooglePayMetadata();\n    }\n  }\n\n  @computed\n  get isGooglePayMetadataReady() {\n    return !this.paymentService.isFetchingGooglePayMetadata && this.googlePayMetadata !== undefined;\n  }\n\n  @bound\n  protected receivedGooglePayMetadata(data: { type: string; payload: { googlePayMetadata: GooglePayMetadata } }) {\n    this.googlePayMetadata = data.payload.googlePayMetadata;\n  }\n\n  @bound\n  protected googlePayMetadataFetchFailure(data: { type: string; payload: void }) {\n    this.googlePayMetadata = undefined;\n  }\n\n  @action.bound\n  protected googlePayPaymentBrowserFingerprint(googlePayPaymentBrowserFingerprint: { payload: { url: string } }) {\n    this.googlePayPaymentFingerprint = googlePayPaymentBrowserFingerprint.payload.url;\n  }\n\n  @action.bound\n  protected googlePayPaymentFailure() {\n    this.googlePayPaymentFingerprint = undefined;\n    this.googlePayFingerprintProcessed = false;\n  }\n\n  @action.bound\n  onGooglePayPaymentFingerprintLoaded = () => {\n    if (!this.googlePayFingerprintProcessed) {\n      this.googlePayFingerprintProcessed = true;\n      this.eventBus.publish(googlePayPaymentBrowserFingerprintLoaded());\n    }\n  };\n\n  @action.bound\n  validateOrder() {\n    const chargeOrder = this.statusOrder ?? this.chargeOrderService.chargeOrder;\n    return this.chargeOrderService.validateMultiOrder() && !!chargeOrder._termsAgreement;\n  }\n\n  protected onInitialize(): Promise<any> | void {\n    this.unsubscriptions.push(\n      reaction(() => [this.chargeOrder._termsAgreement, this.chargeOrder.paymentType], this.updateChargeOrderItem)\n    );\n    return super.onInitialize();\n  }\n\n  protected onDeactivate(isClosing: boolean): Promise<any> | void {\n    if (isClosing) {\n      this.unsubscriptions.forEach(unsubsribe => unsubsribe());\n      this.unsubscriptions = [];\n    }\n    return super.onDeactivate(isClosing);\n  }\n\n  @computed\n  get isGooglePayPaymentMethodSelected() {\n    return this.chargeOrder.paymentType === PaymentType.GooglePay;\n  }\n\n  @computed\n  get locale() {\n    return this.localizationService.locale;\n  }\n\n  @computed get chargeOrder() {\n    return this.chargeOrderService.chargeOrder || this.statusOrder;\n  }\n\n  @computed get chargeOrderCharges() {\n    return this.chargeOrderService.chargeOrder.charges || this.statusOrder?.charges;\n  }\n\n  @computed\n  get isTransferPayment() {\n    return this.chargeOrder.paymentType === PaymentType.Transfer;\n  }\n\n  @computed\n  get isChecked() {\n    return this.chargeOrder._termsAgreement && this.isFinal && this.isTransferPayment;\n  }\n\n  @computed\n  get buttonTextKey() {\n    if (!this.isFinal) {\n      return \"continue\";\n    }\n    return this.chargeOrder.paymentType === PaymentType.Transfer ? \"payment\" : \"pay\";\n  }\n\n  @bound\n  vehicleCountForChargeType(index: number) {\n    const count = this.chargeOrderCharges[index - 1].licensePlates.length;\n    return this.chargeOrderService.translateVehicleCount(count, index);\n  }\n\n  @bound\n  chargeTypeTotal(index: number, chargeTypeId: string, fuelTypeId: string) {\n    const count = this.chargeOrderCharges[index - 1].licensePlates.length;\n    const price = this.chargeOrderService.chargePrice(chargeTypeId, fuelTypeId) * count;\n\n    return this.tg(\"chargeTotalPrice\").replace(this.priceRegex, this.localizationService.formatPrice(price));\n  }\n\n  @bound\n  updateChargeOrderItem() {\n    this.chargeOrderService.chargeOrder._termsAgreement = this.chargeOrder._termsAgreement;\n    this.chargeOrderService.chargeOrder.paymentType = this.chargeOrder.paymentType;\n\n    if (this.isChecked && this.turnstileViewModel.turnstileToken) {\n      this.turnstileViewModel.reset();\n    }\n\n    this.chargeOrderService.persistChargeOrder();\n  }\n\n  @bound\n  uniqueCharges(): { chargeTypeId: string; fuelTypeId: string; index: number }[] {\n    const unique = (arr: any[], encoder = JSON.stringify, decoder = JSON.parse) =>\n      Array.from(new Set(arr.map(item => encoder(item)))).map(item => decoder(item));\n    return unique(\n      this.chargeOrderCharges\n        .flatMap((chargeOrderItem, index) => ({\n          chargeTypeId: chargeOrderItem.chargeTypeId,\n          fuelTypeId: chargeOrderItem.fuelTypeId,\n          index: index + 1,\n        }))\n        .filter(data => data.chargeTypeId && data.fuelTypeId)\n        .map(d => d as { countryId: string; chargeTypeId: string; fuelTypeId: string; index: number })\n        .sort(x => x.index)\n    );\n  }\n\n  @computed\n  get grandTotal() {\n    return this.tp(this.priceService.grandTotal(this.chargeOrder));\n  }\n\n  @computed\n  get total() {\n    return this.priceService.grandTotal(this.chargeOrder);\n  }\n\n  translateAttribute(code: string) {\n    return this.localizationService.translateAttribute(\"payment\", code);\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (\n      isFinal: boolean,\n      disabledButton = false,\n      onContinue?: (errorMessage: ErrorMessage, paymentData?: google.payments.api.PaymentData) => void,\n      onBack?: () => void,\n      chargeOrder?: ChargeOrder\n    ) => {\n      return new SummaryMultiEshopViewModel(\n        isFinal,\n        disabledButton,\n        container.get(LocalizationService),\n        container.get(ChargeOrderService),\n        container.get(PaymentService),\n        container.get(EventBus),\n        container.get(PriceService),\n        container.get(TurnstileViewModel.Factory),\n        onContinue,\n        onBack,\n        chargeOrder\n      );\n    };\n  }\n}\n","import { canNavigate, ConductorOneChildActive, Router, ScreenBase, splitUrlSegments } from \"@frui.ts/screens\";\nimport LocalizationService from \"services/localizationService\";\nimport EnumService from \"services/enumService\";\nimport ExemptionViewModel, { ExemptionNoticeNavigationName } from \"./exemptionViewModel\";\nimport ExemptionDocumentsUploadedViewModel, {\n  ExemptionDocumentsUploadedViewModelNavigationName,\n} from \"./exemptionDocumentsUploadedViewModel\";\nimport { Notice } from \"../../../services/NIA/niaService\";\nimport NoticeEntity from \"models/notice\";\n\nexport const ExemptionModuleNavigationName = \"exemption\";\n\n@Router.registerRoute({\n  route: ExemptionModuleNavigationName,\n  name: Router.Self,\n  children: [ExemptionViewModel, ExemptionDocumentsUploadedViewModel],\n})\nexport default class ExemptionNoticeViewModel extends ConductorOneChildActive<ScreenBase> {\n  constructor(\n    private documentsVMFactory: ReturnType<typeof ExemptionDocumentsUploadedViewModel.Factory>,\n    public localizationService: LocalizationService,\n    private enumService: EnumService,\n    private exemptionViewModel: ExemptionViewModel\n  ) {\n    super();\n    this.nameValue = \"exemption.title\";\n    this.navigationName = ExemptionModuleNavigationName;\n  }\n\n  onInitialize() {\n    this.enumService.initialize();\n    return this.tryActivateChild(this.exemptionViewModel);\n  }\n\n  async navigate(subPath: string | undefined, params: any) {\n    const segments = splitUrlSegments(subPath);\n    let childToActivate;\n    if (segments[0] === ExemptionDocumentsUploadedViewModelNavigationName) {\n      childToActivate = await this.findNavigationChild(subPath || \"\");\n    } else if (segments[0] === ExemptionNoticeNavigationName) {\n      childToActivate = await this.findNavigationChild(subPath || \"\");\n    }\n\n    if (childToActivate) {\n      await this.tryActivateChild(childToActivate);\n\n      if (canNavigate(childToActivate)) {\n        await childToActivate.navigate(segments[1], params);\n      }\n    }\n\n    await this.onChildNavigated(childToActivate);\n  }\n\n  async findNavigationChild(navigationName: string) {\n    if (navigationName.includes(ExemptionDocumentsUploadedViewModelNavigationName)) {\n      const noticeString = sessionStorage.getItem(Notice.EXEMPTION);\n\n      if (noticeString) {\n        const notice = JSON.parse(noticeString) as NoticeEntity;\n\n        if (notice._noticeBase64) {\n          return this.documentsVMFactory(notice._noticeBase64, Notice.EXEMPTION);\n        }\n      }\n    }\n    return super.findNavigationChild(navigationName);\n  }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"disableLinkTel\":\"bankTransfer_disableLinkTel__3beIZ\",\"qrCodeContainer\":\"bankTransfer_qrCodeContainer__1Nhk-\",\"qrCodeFixed\":\"bankTransfer_qrCodeFixed__1-UG5\"};","import { areAnalyticsCookiesEnabled, registerOnAllowCookieCallback } from \"@edaz/utils/cookies\";\r\nimport ReactGA from \"react-ga\";\r\nimport { gaDebug, gaId } from \"../config\";\r\n\r\nfunction initialize() {\r\n  ReactGA.initialize(gaId, {\r\n    debug: gaDebug,\r\n  });\r\n\r\n  ReactGA.plugin.require(\"ecommerce\");\r\n}\r\n\r\nexport default function initializeAnalytics() {\r\n  if (areAnalyticsCookiesEnabled()) {\r\n    initialize();\r\n  } else {\r\n    registerOnAllowCookieCallback(\"analytics\", initialize);\r\n  }\r\n}\r\n","/*\n * Should be same as widgets.tsx file but without polyfills imports\n * import \"react-app-polyfill/ie11\";\n */\nimport \"react-app-polyfill/stable\";\nimport \"reflect-metadata\";\nimport \"widgets/eshop\";\nimport \"widgets/multiEshop\";\nimport \"widgets/exemption\";\nimport \"widgets/chargeManagement\";\nimport \"widgets/chargeTypes\";\nimport \"widgets/priceList\";\nimport \"widgets/customerReview\";\nimport \"widgets/notice\";\nimport \"widgets/omission\";\nimport \"widgets/paymentValidation\";\nimport \"widgets/tradingPlaces\";\nimport \"widgets/tollRoads\";\nimport \"widgets/kiosk\";\nimport \"widgets/outages\";\nimport \"widgets/refundRequest\";\nimport initializeAnalytics from \"./utils/analytics\";\n\nimport { getWidgetById } from \"./widgets/widget\";\nimport \"views\";\nimport * as serviceWorker from \"serviceWorker\";\nimport ReactDOM from \"react-dom\";\nimport React from \"react\";\nimport { monkeyPatchValidationControlBase } from \"utils/validationPatch\";\nimport { monkeyPatchHashNavigationAdapter } from \"./utils/urlAdapterPath\";\nimport initializeSentry from \"./utils/sentryUtils\";\n\ninitializeSentry();\n\nmonkeyPatchValidationControlBase();\nmonkeyPatchHashNavigationAdapter();\n\nconst roots = document.querySelectorAll<HTMLElement>(\"[data-react-component]\");\n\nroots.forEach((root: HTMLElement) => {\n  const componentId = root.dataset.reactComponent || \"\";\n  const Component = getWidgetById(componentId);\n\n  ReactDOM.render(<Component />, root);\n});\n\ninitializeAnalytics();\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","import { canNavigate, ConductorOneChildActive, Router, ScreenBase, splitUrlSegments } from \"@frui.ts/screens\";\nimport LocalizationService from \"services/localizationService\";\nimport LicensePlateChangeViewModel, { LicensePlateChangeNoticeNavigationName } from \"./licensePlateChangeViewModel\";\nimport LicensePlateChangeDocumentsUploadedViewModel, {\n  LicensePlateChangeDocumentsUploadedViewModelNavigationName,\n} from \"./licensePlateChangeDocumentsUploadedViewModel\";\nimport { Notice } from \"../../../services/NIA/niaService\";\nimport NoticeEntity from \"../../../models/notice\";\n\nexport const LicensePlateChangeModuleNavigationName = \"license_plate_change\";\n\n@Router.registerRoute({\n  route: LicensePlateChangeModuleNavigationName,\n  name: Router.Self,\n  children: [LicensePlateChangeViewModel, LicensePlateChangeDocumentsUploadedViewModel],\n})\nexport default class LicensePlateChangeNoticeViewModel extends ConductorOneChildActive<ScreenBase> {\n  constructor(\n    private documentsVMFactory: ReturnType<typeof LicensePlateChangeDocumentsUploadedViewModel.Factory>,\n    public localizationService: LocalizationService,\n    private licensePlateChangeViewModel: LicensePlateChangeViewModel\n  ) {\n    super();\n    this.nameValue = \"licensePlateChange.title\";\n    this.navigationName = LicensePlateChangeModuleNavigationName;\n    this.children.push(this.licensePlateChangeViewModel);\n  }\n\n  onInitialize() {\n    return this.tryActivateChild(this.licensePlateChangeViewModel);\n  }\n\n  async navigate(subPath: string | undefined, params: any) {\n    const segments = splitUrlSegments(subPath);\n    let childToActivate;\n    if (segments[0] === LicensePlateChangeDocumentsUploadedViewModelNavigationName) {\n      childToActivate = await this.findNavigationChild(subPath || \"\");\n    } else if (segments[0] === LicensePlateChangeNoticeNavigationName) {\n      childToActivate = await this.findNavigationChild(subPath || \"\");\n    }\n\n    if (childToActivate) {\n      await this.tryActivateChild(childToActivate);\n\n      if (canNavigate(childToActivate)) {\n        await childToActivate.navigate(segments[1], params);\n      }\n    }\n\n    await this.onChildNavigated(childToActivate);\n  }\n\n  async findNavigationChild(navigationName: string) {\n    if (navigationName.includes(LicensePlateChangeDocumentsUploadedViewModelNavigationName)) {\n      const noticeString = sessionStorage.getItem(Notice.LICENSE_PLATE_CHANGE);\n\n      if (noticeString) {\n        const notice = JSON.parse(noticeString) as NoticeEntity;\n\n        if (notice._noticeBase64) {\n          return this.documentsVMFactory(notice._noticeBase64, Notice.LICENSE_PLATE_CHANGE);\n        }\n      }\n    }\n    return super.findNavigationChild(navigationName);\n  }\n}\n","import { canNavigate, ConductorOneChildActive, Router, ScreenBase, splitUrlSegments } from \"@frui.ts/screens\";\nimport LocalizationService from \"services/localizationService\";\nimport OmissionViewModel, { OmissionNoticeNavigationName } from \"./omissionViewModel\";\nimport { Notice } from \"../../../services/NIA/niaService\";\nimport NoticeEntity from \"../../../models/notice\";\nimport OmissionDocumentsUploadedViewModel, {\n  OmissionDocumentsUploadedViewModelNavigationName,\n} from \"./omissionDocumentsUploadedViewModel\";\n\nexport const OmissionModuleNavigationName = \"omission\";\n\n@Router.registerRoute({\n  route: OmissionModuleNavigationName,\n  name: Router.Self,\n  children: [OmissionViewModel, OmissionDocumentsUploadedViewModel],\n})\nexport default class OmissionNoticeViewModel extends ConductorOneChildActive<ScreenBase> {\n  constructor(\n    private documentsVMFactory: ReturnType<typeof OmissionDocumentsUploadedViewModel.Factory>,\n    public localizationService: LocalizationService,\n    private omissionViewModel: OmissionViewModel\n  ) {\n    super();\n    this.nameValue = \"omission.title\";\n    this.navigationName = OmissionModuleNavigationName;\n    this.children.push(this.omissionViewModel);\n  }\n\n  onInitialize() {\n    return this.tryActivateChild(this.omissionViewModel);\n  }\n\n  async navigate(subPath: string | undefined, params: any) {\n    const segments = splitUrlSegments(subPath);\n    let childToActivate;\n    if (segments[0] === OmissionDocumentsUploadedViewModelNavigationName) {\n      childToActivate = await this.findNavigationChild(subPath || \"\");\n    } else if (segments[0] === OmissionNoticeNavigationName) {\n      childToActivate = await this.findNavigationChild(subPath || \"\");\n    }\n\n    if (childToActivate) {\n      await this.tryActivateChild(childToActivate);\n\n      if (canNavigate(childToActivate)) {\n        await childToActivate.navigate(segments[1], params);\n      }\n    }\n\n    await this.onChildNavigated(childToActivate);\n  }\n\n  async findNavigationChild(navigationName: string) {\n    if (navigationName.includes(OmissionDocumentsUploadedViewModelNavigationName)) {\n      const noticeString = sessionStorage.getItem(Notice.OMISSION);\n\n      if (noticeString) {\n        const notice = JSON.parse(noticeString) as NoticeEntity;\n\n        if (notice._noticeBase64) {\n          return this.documentsVMFactory(notice._noticeBase64, Notice.OMISSION);\n        }\n      }\n    }\n    return super.findNavigationChild(navigationName);\n  }\n}\n","import { canNavigate, ConductorOneChildActive, Router, ScreenBase, splitUrlSegments } from \"@frui.ts/screens\";\nimport LocalizationService from \"services/localizationService\";\nimport { Notice } from \"../../../services/NIA/niaService\";\nimport NoticeEntity from \"../../../models/notice\";\nimport RefundRequestViewModel, { RefundRequestNavigationName } from \"./refundRequestViewModel\";\nimport RefundRequestDocumentsUploadedViewModel, {\n  RefundRequestDocumentsUploadedViewModelNavigationName,\n} from \"./refundRequestDocumentsUploadedViewModel\";\n\nexport const RefundModuleNavigationName = \"refund_request\";\n\n@Router.registerRoute({\n  route: RefundModuleNavigationName,\n  name: Router.Self,\n  children: [RefundRequestViewModel, RefundRequestDocumentsUploadedViewModel],\n})\nexport default class RefundRequestNoticeViewModel extends ConductorOneChildActive<ScreenBase> {\n  constructor(\n    private documentsVMFactory: ReturnType<typeof RefundRequestDocumentsUploadedViewModel.Factory>,\n    public localizationService: LocalizationService,\n    private refundRequestViewModel: RefundRequestViewModel\n  ) {\n    super();\n    this.nameValue = \"refundRequest.title\";\n    this.navigationName = RefundModuleNavigationName;\n    this.children.push(this.refundRequestViewModel);\n  }\n\n  onInitialize() {\n    return this.tryActivateChild(this.refundRequestViewModel);\n  }\n\n  async navigate(subPath: string | undefined, params: any) {\n    const segments = splitUrlSegments(subPath);\n    let childToActivate;\n    if (segments[0] === RefundRequestDocumentsUploadedViewModelNavigationName) {\n      childToActivate = await this.findNavigationChild(subPath || \"\");\n    } else if (segments[0] === RefundRequestNavigationName) {\n      childToActivate = await this.findNavigationChild(subPath || \"\");\n    }\n\n    if (childToActivate) {\n      await this.tryActivateChild(childToActivate);\n\n      if (canNavigate(childToActivate)) {\n        await childToActivate.navigate(segments[1], params);\n      }\n    }\n\n    await this.onChildNavigated(childToActivate);\n  }\n\n  async findNavigationChild(navigationName: string) {\n    if (navigationName.includes(RefundRequestDocumentsUploadedViewModelNavigationName)) {\n      const noticeString = sessionStorage.getItem(Notice.REFUND_REQUEST);\n\n      if (noticeString) {\n        const notice = JSON.parse(noticeString) as NoticeEntity;\n\n        if (notice._noticeBase64) {\n          return this.documentsVMFactory(notice._noticeBase64, Notice.REFUND_REQUEST);\n        }\n      }\n    }\n    return super.findNavigationChild(navigationName);\n  }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"priceListWrapper\":\"priceListView_priceListWrapper__1XfN3\",\"table\":\"priceListView_table__3Jqvq\",\"tableHeader\":\"priceListView_tableHeader__3H_E2\",\"default-columns\":\"priceListView_default-columns__3fGTz\",\"thin\":\"priceListView_thin__2r23F\",\"small\":\"priceListView_small__1ZwPA\",\"priceListItems\":\"priceListView_priceListItems__1eY4q\",\"priceListItem\":\"priceListView_priceListItem__3h85Y\",\"imageWrapper\":\"priceListView_imageWrapper__347WV\",\"img\":\"priceListView_img__VkCqt\",\"priceWrapper\":\"priceListView_priceWrapper__2_8yZ\",\"priceHeader\":\"priceListView_priceHeader__3o36q\",\"price\":\"priceListView_price__l1rVe\"};","import { observable } from \"mobx\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class VehicleRegistrationResponse {\n  /**\n   * Vehicle registration plate.\n   */\n  @observable\n  licensePlate!: string;\n\n  /**\n   * Country ID.\n   */\n  @observable\n  countryId!: string;\n\n  @observable canBeChangedBeforeValidity?: boolean;\n\n  @observable canBeChangedDuringValidity?: boolean;\n\n  /** UNUSED, but necessary in ChargeManagementLicensePlateChangeViewModel */\n  @observable _countryIdConfirmation?: string;\n\n  /** UNUSED, but necessary in ChargeManagementLicensePlateChangeViewModel */\n  @observable _licensePlateConfirmation?: string;\n}\n","import { ConductorSingleChild } from \"@frui.ts/screens\";\nimport OutagesViewModel from \"../common/outagesViewModel\";\nimport { SystemComponent } from \"models/outage\";\n\nexport default class OutagesWidgetViewModel extends ConductorSingleChild<OutagesViewModel> {\n  private outagesViewModel: OutagesViewModel;\n\n  constructor(outagesViewModelFactory: ReturnType<typeof OutagesViewModel.Factory>) {\n    super();\n    this.outagesViewModel = outagesViewModelFactory(SystemComponent.OTHER);\n    this.tryActivateChild(this.outagesViewModel);\n  }\n\n  protected findNavigationChild(\n    navigationName: string | undefined\n  ): Promise<OutagesViewModel | undefined> | OutagesViewModel | undefined {\n    return this.outagesViewModel;\n  }\n}\n","import { ScreenBase } from \"@frui.ts/screens\";\nimport { action, computed } from \"mobx\";\nimport ChargeTypesService from \"services/chargeTypesService\";\nimport LocalizationService from \"services/localizationService\";\nimport ChargeValidity, { validityDays } from \"entities/chargeValidity\";\nimport LanguageCode from \"models/languageCode\";\n\nexport const ChargeTypesModuleNavigationName = \"charge_types\";\n\nexport default class ChargeTypesViewModel extends ScreenBase {\n  @computed\n  get isInitialized() {\n    return this.chargeTypesService.isInitialized;\n  }\n\n  get isCSLocale() {\n    return this.localizationService.locale === \"cs\";\n  }\n\n  @computed\n  get currency() {\n    return this.isCSLocale ? \"Kč\" : \"CZK\";\n  }\n\n  @action.bound\n  chargeTypes() {\n    return this.chargeTypesService.validChargeTypes\n      .sort((a, b) => {\n        return validityDays(b.validFor) - validityDays(a.validFor);\n      })\n      .filter(x => this.chargeTypesService.hasPrices(x))\n      .map(x => this.chargeTypesService.populatePrices(x));\n  }\n\n  get eshopUrl() {\n    return this.localizationService.translateGeneral(\"eshopRedirect\", undefined, true);\n  }\n\n  constructor(private chargeTypesService: ChargeTypesService, private localizationService: LocalizationService) {\n    super();\n  }\n\n  chargeTypeDescription(validFor: ChargeValidity) {\n    return this.localizationService.translateAttribute(\"chargeType\", validFor);\n  }\n\n  translate(code: string) {\n    return this.localizationService.translateGeneral(`chargeTypes.${code}`);\n  }\n\n  formatPrice(price: number) {\n    return this.localizationService.formatPrice(price);\n  }\n\n  formatEcoPriceRange(minPrice: number, maxPrice: number) {\n    if (minPrice === maxPrice) {\n      return this.localizationService.formatPrice(maxPrice);\n    }\n    if (this.localizationService.languageCode === LanguageCode.En) {\n      // English language uses the \"CZK 500 - 600\" format.\n      return `${this.localizationService.formatPrice(minPrice)} – ${this.localizationService.formatNumber(maxPrice)}`;\n    }\n    // Other languages use the \"500 - 600 Kc\" format.\n    return `${this.localizationService.formatNumber(minPrice)} – ${this.localizationService.formatPrice(maxPrice)}`;\n  }\n}\n","import { observable } from \"mobx\";\nimport type { EntityValidationRules } from \"services/validationService\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\n\nexport const EmailValidationRules: EntityValidationRules<InputEmail> = {\n  email: {\n    isEmail: true,\n  },\n};\n\nexport const EmailConfirmationValidationRules: EntityValidationRules<InputEmail> = {\n  emailConfirmation: {\n    equalWith: { property: \"email\" as const },\n    isEmail: true,\n  },\n};\n\nexport default class InputEmail {\n  @observable\n  email?: string;\n\n  @observable\n  emailConfirmation?: string;\n\n  constructor(email: string | undefined, emailConfirmation: string | undefined) {\n    this.email = email;\n    this.emailConfirmation = emailConfirmation;\n  }\n}\n","import { ScreenBase } from \"@frui.ts/screens\";\nimport { Notification } from \"services/notificationService\";\n\nexport enum AlertVariant {\n  SUCCESS = \"success\",\n  DANGER = \"danger\",\n  WARNING = \"warning\",\n  INFO = \"info\",\n}\n\nexport default class AlertViewModel extends ScreenBase {\n  constructor(public notification: Notification, public variant: AlertVariant, public onClose?: () => void) {\n    super();\n  }\n\n  get canBeNavigationActiveScreen() {\n    return false;\n  }\n}\n","import { ScreenBase } from \"@frui.ts/screens\";\nimport OutageService, { OutageStatus } from \"../../services/outageService\";\nimport { computed } from \"mobx\";\nimport { SystemComponent } from \"../../models/outage\";\nimport { interfaces } from \"inversify\";\nimport { bound } from \"@frui.ts/helpers\";\nimport SystemComponentOutageResponse from \"entities/systemComponentOutageResponse\";\n\nexport default class OutagesViewModel extends ScreenBase {\n  get allowToClose() {\n    return this.type === SystemComponent.OTHER;\n  }\n\n  @computed\n  get hasAnyActiveOutage() {\n    return this.outages.some(outage => this.outageService.getOutageStatus(outage) === OutageStatus.ACTIVE);\n  }\n\n  @computed\n  get outages(): SystemComponentOutageResponse[] {\n    switch (this.type) {\n      case SystemComponent.PAY_GATE:\n        if (!this.outageService.eshopActiveOutage) {\n          return this.outageService.payGateVisibleOutages;\n        }\n        return [];\n      case SystemComponent.ISDS:\n        return this.outageService.isdsVisibleOutages;\n      case SystemComponent.ESHOP:\n        if (this.outageService.eshopActiveOutage) {\n          return [this.outageService.eshopActiveOutage];\n        }\n        return [];\n      case SystemComponent.OTHER:\n      default:\n        return this.outageService.otherVisibleOutages;\n    }\n  }\n\n  constructor(private outageService: OutageService, private type: SystemComponent = SystemComponent.OTHER) {\n    super();\n  }\n\n  outageMessage(outage: SystemComponentOutageResponse) {\n    return this.outageService.getMessage(outage);\n  }\n\n  @bound\n  closeOutage(outage: SystemComponentOutageResponse) {\n    this.outageService.closeOutage(outage);\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (type: SystemComponent) => {\n      return new OutagesViewModel(container.get(OutageService), type);\n    };\n  }\n}\n","import LocalizationService from \"services/localizationService\";\nimport { action, computed, observable } from \"mobx\";\nimport { bound } from \"@frui.ts/helpers\";\nimport ScreenBase from \"@frui.ts/screens/dist/structure/screenBase\";\nimport { interfaces } from \"inversify\";\n\nexport default class GdprInfoViewModel extends ScreenBase {\n  @observable isExpanded = false;\n\n  constructor(private localizationService: LocalizationService) {\n    super();\n  }\n\n  @action.bound\n  toggle() {\n    this.isExpanded = !this.isExpanded;\n  }\n\n  @bound\n  translate(code: string) {\n    return this.localizationService.translateGeneral(`eshop.order.gdpr.${code}`);\n  }\n\n  @computed\n  get gdprLinkUrl() {\n    return this.localizationService.translateGeneral(\"eshop.order.gdpr.linkUrl\", undefined, true);\n  }\n\n  @computed\n  get text2WithLink() {\n    const text2 = this.translate(\"text2\");\n    return text2.replace(\"%linkUrl%\", this.gdprLinkUrl);\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return () => {\n      return new GdprInfoViewModel(container.get(LocalizationService));\n    };\n  }\n}\n","import LocalizationService from \"../../../services/localizationService\";\nimport { ScreenBase } from \"@frui.ts/screens/dist\";\nimport { interfaces } from \"inversify\";\nimport { action, observable } from \"mobx\";\n\nexport default class GDPRViewModel extends ScreenBase {\n  @observable gdprVisible = false;\n\n  constructor(public message: string, public localizationService: LocalizationService) {\n    super();\n  }\n\n  @action.bound\n  toggleGdpr = (show: boolean) => () => {\n    this.gdprVisible = show;\n  };\n\n  static Factory({ container }: interfaces.Context) {\n    return (message: string) => new GDPRViewModel(message, container.get(LocalizationService));\n  }\n}\n","import { ScreenBase } from \"@frui.ts/screens/dist\";\r\nimport { action, computed } from \"mobx\";\r\nimport ChargeTypesService from \"services/chargeTypesService\";\r\nimport EnumService from \"services/enumService\";\r\nimport LocalizationService from \"services/localizationService\";\r\nimport { PaymentType } from \"models/payment\";\r\nimport { interfaces } from \"inversify\";\r\nimport ChargeOrder, { ChargeOrderStatus } from \"models/chargeOrder\";\r\nimport TimeService from \"services/timeService\";\r\n\r\nexport default class OrderSummaryViewModel extends ScreenBase {\r\n  constructor(\r\n    public chargeOrder: ChargeOrder,\r\n    public timeService: TimeService,\r\n    public localizationService: LocalizationService,\r\n    public chargeService: ChargeTypesService,\r\n    private enumService: EnumService\r\n  ) {\r\n    super();\r\n  }\r\n\r\n  chargeTa = (code: string) => this.localizationService.translateAttribute(\"chargeType\", code);\r\n\r\n  fuelTa = (code: string) => this.localizationService.translateAttribute(\"fuelType\", code);\r\n\r\n  summaryTg = (code: string) => this.localizationService.translateGeneral(`eshop.order.summary.${code}`);\r\n\r\n  @computed\r\n  get isDifferentTimeZone() {\r\n    return this.timeService.isFetched && !this.timeService.isServerTimeSame;\r\n  }\r\n\r\n  @computed\r\n  get serverTime() {\r\n    return this.timeService.currentServerTime;\r\n  }\r\n\r\n  @computed\r\n  get vehicleInfo() {\r\n    if (!(this.chargeOrder.charges && this.chargeOrder.charges.length > 0)) {\r\n      return \"\";\r\n    }\r\n\r\n    const item = this.chargeOrder.charges[0];\r\n    if (!item) {\r\n      return \"\";\r\n    }\r\n\r\n    const country = this.enumService.values(\"countries\").find(country => country.id === item.countryId);\r\n    if (!country || !country.code) {\r\n      return \"\";\r\n    }\r\n\r\n    return `${country.code} – ${\r\n      item.licensePlates && item.licensePlates.length > 0 ? item.licensePlates[0] : item.licensePlate ? item.licensePlate : \"\"\r\n    }`;\r\n  }\r\n\r\n  @computed\r\n  get authorizationCode() {\r\n    if (!this.chargeOrder.paymentType || this.chargeOrder.paymentType === PaymentType.Transfer) {\r\n      return undefined;\r\n    }\r\n\r\n    if (!(this.chargeOrder.charges && this.chargeOrder.charges.length > 0)) {\r\n      return undefined;\r\n    }\r\n\r\n    const item = this.chargeOrder.charges[0];\r\n    if (!item) {\r\n      return undefined;\r\n    }\r\n\r\n    return item.authCode;\r\n  }\r\n\r\n  @computed\r\n  get displayAuthCode() {\r\n    return (\r\n      this.chargeOrder._status !== ChargeOrderStatus.Deferred &&\r\n      this.authorizationCode &&\r\n      this.chargeOrder.paymentType !== PaymentType.Transfer\r\n    );\r\n  }\r\n\r\n  @computed\r\n  get chargeType() {\r\n    if (!(this.chargeOrder.charges && this.chargeOrder.charges.length > 0)) {\r\n      return this.chargeTa(\"undefined\");\r\n    }\r\n\r\n    const item = this.chargeOrder.charges[0];\r\n    if (!item) {\r\n      return this.chargeTa(\"undefined\");\r\n    }\r\n\r\n    const chargeType = this.chargeService.getPriceListItemChargeType(item.priceListItemId);\r\n    return chargeType ? chargeType.description : this.chargeTa(\"undefined\");\r\n  }\r\n\r\n  @action.bound\r\n  openRedirectLink() {\r\n    window.open(this.chargeOrder._proposedAfterPurchaseRedirect?.redirectUrl ?? \"https://edalnice.cz\", \"_self\");\r\n  }\r\n\r\n  @computed\r\n  get fuelType() {\r\n    if (!(this.chargeOrder.charges && this.chargeOrder.charges.length > 0)) {\r\n      return this.fuelTa(\"undefined\");\r\n    }\r\n\r\n    const item = this.chargeOrder.charges[0];\r\n    if (!item) {\r\n      return this.fuelTa(\"undefined\");\r\n    }\r\n\r\n    const fuelType = this.chargeService.getPriceListItemFuelType(item.priceListItemId);\r\n    return fuelType ? this.fuelTa(fuelType) : this.fuelTa(\"undefined\");\r\n  }\r\n\r\n  @computed\r\n  get validSince() {\r\n    if (!(this.chargeOrder.charges && this.chargeOrder.charges.length > 0)) {\r\n      return null;\r\n    }\r\n\r\n    const item = this.chargeOrder.charges[0];\r\n    if (!item || !item.validity?.validSinceDate) {\r\n      return null;\r\n    }\r\n\r\n    return item.validity?.validSinceDate;\r\n  }\r\n\r\n  @computed\r\n  get email() {\r\n    return this.chargeOrder.emailAddress;\r\n  }\r\n\r\n  @computed\r\n  get validUntil() {\r\n    if (!(this.chargeOrder.charges && this.chargeOrder.charges.length > 0)) {\r\n      return null;\r\n    }\r\n\r\n    const item = this.chargeOrder.charges[0];\r\n    if (!item || !item.validity?._validUntilDate) {\r\n      return null;\r\n    }\r\n\r\n    return item.validity?._validUntilDate;\r\n  }\r\n\r\n  static Factory({ container }: interfaces.Context) {\r\n    return (chargeOrder: ChargeOrder) =>\r\n      new OrderSummaryViewModel(\r\n        chargeOrder,\r\n        container.get(TimeService),\r\n        container.get(LocalizationService),\r\n        container.get(ChargeTypesService),\r\n        container.get(EnumService)\r\n      );\r\n  }\r\n}\r\n","import { ScreenBase } from \"@frui.ts/screens\";\nimport { interfaces } from \"inversify\";\nimport OutageService from \"services/outageService\";\nimport { computed } from \"mobx\";\nimport LocalizationService from \"services/localizationService\";\nimport SystemComponentOutageResponse from \"entities/systemComponentOutageResponse\";\n\nconst OrderOutageNavigationName = \"outage\";\n\nexport default class OrderOutageViewModel extends ScreenBase {\n  @computed\n  get message() {\n    return this.outageService.getMessage(this.outage);\n  }\n\n  constructor(\n    private outage: SystemComponentOutageResponse,\n    private outageService: OutageService,\n    private localizationService: LocalizationService\n  ) {\n    super();\n    this.navigationName = OrderOutageNavigationName;\n  }\n\n  protected onActivate(): Promise<any> | void {\n    document.getElementById(\"main\")?.classList.add(\"outage\");\n    return super.onActivate();\n  }\n\n  protected onDeactivate(isClosing: boolean): Promise<any> | void {\n    document.getElementById(\"main\")?.classList.remove(\"outage\");\n    return super.onDeactivate(isClosing);\n  }\n\n  translate(code: string) {\n    return this.localizationService.translateGeneral(`eshop.orderOutage.${code}`);\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (outage: SystemComponentOutageResponse) => {\n      return new OrderOutageViewModel(outage, container.get(OutageService), container.get(LocalizationService));\n    };\n  }\n}\n","// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nenum TradingPlaceType {\n  Salespoint = \"SALESPOINT\",\n  Kiosk = \"KIOSK\",\n}\nexport default TradingPlaceType;\n","import ChargeTypesService from \"./chargeTypesService\";\nimport ChargeOrderItem from \"models/chargeOrderItem\";\nimport ChargeOrder from \"models/chargeOrder\";\n\nexport default class PriceService {\n  constructor(private chargeTypeService: ChargeTypesService) {}\n\n  chargePrice = (chargeTypeId?: string, fuelType?: string) =>\n    this.chargeTypeService?.chargePriceList?.items.find(\n      item => item.chargeTypeId === chargeTypeId && item.fuelTypeId === fuelType\n    )?.price || 0;\n\n  chargeOrderItemTotal = (item: ChargeOrderItem) =>\n    this.chargePrice(item.chargeTypeId as string, item.fuelTypeId as string) *\n    (item.licensePlates?.length || (item.licensePlate ? 1 : 0));\n\n  grandTotal(chargeOrder: ChargeOrder) {\n    return chargeOrder.charges?.reduce((summary, chargeOrder) => summary + this.chargeOrderItemTotal(chargeOrder), 0) || 0;\n  }\n}\n","import ReactGA from \"react-ga\";\nimport PriceService from \"./priceService\";\nimport ChargeTypesService from \"./chargeTypesService\";\nimport { toJS } from \"mobx\";\nimport ChargeOrder from \"models/chargeOrder\";\nimport FuelTypeResponse from \"entities/fuelTypeResponse\";\nimport EnumService from \"./enumService\";\n\nexport default class GaService {\n  constructor(\n    private priceService: PriceService,\n    private chargeTypeService: ChargeTypesService,\n    private enumService: EnumService\n  ) {}\n\n  sendOrderInfo(chargeOrder: ChargeOrder) {\n    const chargeOrderData = toJS(chargeOrder);\n\n    chargeOrderData.charges.forEach(item => {\n      const price = this.priceService.chargePrice(item._chargeTypeId, item._fuelTypeId).toFixed(2);\n      const valid = this.chargeTypeService.chargeTypes.find(t => t.id === item._chargeTypeId)?.validFor;\n      const fuelTypes = this.enumService.values(\"fuel_types\") as FuelTypeResponse[];\n      const fuelType = fuelTypes.find(t => t.id.toString() === item._fuelTypeId)?.name;\n      const product = `${valid} - ${fuelType}`;\n\n      ReactGA.plugin.execute(\"ecommerce\", \"addItem\", {\n        id: chargeOrderData.id,\n        name: product,\n        sku: product,\n        price,\n        currency: \"CZK\",\n        quantity: item.licensePlates ? item.licensePlates.length : 1,\n      });\n    });\n\n    const revenue = this.priceService.grandTotal(chargeOrderData).toFixed(2);\n\n    ReactGA.plugin.execute(\"ecommerce\", \"addTransaction\", {\n      id: chargeOrderData.id,\n      affiliation: chargeOrderData.paymentType,\n      revenue,\n      currency: \"CZK\",\n      quantity: 1,\n    });\n\n    ReactGA.plugin.execute(\"ecommerce\", \"send\", {});\n  }\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport ChargeVehicleWarningReason from \"./chargeVehicleWarningReason\";\nimport ClassifiedFuelType from \"./classifiedFuelType\";\nimport FuelTypeLimitationResponse from \"./fuelTypeLimitationResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargeOrderInstructionsResponse {\n  /**\n   * Charge order warning reasons.\n   */\n  @observable\n  warningReasons?: ChargeVehicleWarningReason[];\n\n  /**\n   * Classified fuel type for VEHICLE_REGISTER_FUEL_TYPE_BASED_EXEMPTION.\n   */\n  @observable\n  classifiedFuelType?: ClassifiedFuelType;\n\n  /**\n   * Possible exemption reason IDs.\n   */\n  @observable\n  possibleExemptionReasonIds?: string[];\n\n  @observable\n  _possibleExemptionReason?: string[];\n\n  @observable\n  @Type(() => FuelTypeLimitationResponse)\n  fuelTypeLimitation?: FuelTypeLimitationResponse;\n}\n","import ClientLocaleProvider from \"@edaz/services/clientLocaleProvider\";\nimport type { LocaleCode } from \"@edaz/services/baseLocaleProvider\";\nimport { bound } from \"@frui.ts/helpers/dist\";\nimport { observable } from \"mobx\";\nimport EventBus, { localeChanged } from \"./eventBus\";\n\nexport default class LocaleProvider extends ClientLocaleProvider {\n  @observable locale: LocaleCode;\n\n  constructor(private eventBus: EventBus) {\n    super();\n  }\n\n  @bound\n  changeLocale(locale: string): boolean {\n    const status = super.changeLocale(locale);\n\n    if (status) {\n      this.eventBus.publish(localeChanged({ locale }));\n    }\n\n    return status;\n  }\n}\n","import { action } from \"mobx\";\nimport EshopError from \"models/eshopError\";\nimport ISDSRepository from \"repositories/isdsRepository\";\nimport { Notice } from \"services/NIA/niaService\";\nimport { persistCallbackDestination } from \"utils/externalServiceUtils\";\nimport { ISDSAtsId, ISDSUrl } from \"../../config\";\nimport EventBus, {\n  exemptionISDSConceptStatusCheckFailure,\n  exemptionISDSConceptStatusCheckSuccess,\n  licensePlateChangeISDSConceptStatusCheckFailure,\n  licensePlateChangeISDSConceptStatusCheckSuccess,\n  omissionISDSConceptStatusCheckFailure,\n  omissionISDSConceptStatusCheckSuccess,\n  refundRequestISDSConceptStatusCheckFailure,\n  refundRequestISDSConceptStatusCheckSuccess,\n} from \"../eventBus\";\nimport * as Sentry from \"@sentry/react\";\n\nexport const SESSION_STORAGE_ISDS_REQUEST_SOURCE_KEY = \"ISDS_REQUEST_SOURCE\";\nconst ISDS_CALLBACK_DESTINATION_PATH = \"notice\";\nconst ISDS_CONCEPT_CHECK_FAILURE = \"ISDS_CONCEPT_CHECK_FAILURE\";\n\nenum ConceptStatus {\n  Success = \"0000\",\n  DeclinedByUser = \"2305\",\n}\n\nexport default class ISDSService {\n  constructor(private isdsRepository: ISDSRepository, private eventBus: EventBus) {}\n\n  @action\n  redirectToISDS(notice: Notice) {\n    persistCallbackDestination(`${notice}/${notice}_${ISDS_CALLBACK_DESTINATION_PATH}`);\n    sessionStorage.setItem(SESSION_STORAGE_ISDS_REQUEST_SOURCE_KEY, notice);\n    window.location.href = this.generateISDSRedirectURL();\n  }\n\n  @action\n  redirectToISDSConcept(notice: Notice, conceptIdent: string) {\n    persistCallbackDestination(`${notice}/${notice}_${ISDS_CALLBACK_DESTINATION_PATH}`);\n    window.location.href = this.generateISDSConceptRedirectURL(conceptIdent);\n  }\n\n  @action\n  async conceptStatus(sessionId: string, notice: Notice) {\n    return this.isdsRepository\n      .conceptStatus(sessionId)\n      .then(response => {\n        if (response instanceof EshopError) {\n          this.publishConceptError(notice, response.type, undefined, response);\n        } else {\n          switch (response.statusCode) {\n            case ConceptStatus.Success:\n              this.publishConceptSuccess(notice);\n              break;\n            case ConceptStatus.DeclinedByUser:\n              break;\n            default:\n              this.publishConceptError(notice, ISDS_CONCEPT_CHECK_FAILURE, response.statusCode, response);\n              break;\n          }\n        }\n      })\n      .catch(error => {\n        this.publishConceptError(notice, ISDS_CONCEPT_CHECK_FAILURE, undefined, error);\n      });\n  }\n\n  private publishConceptSuccess = (notice: Notice) => {\n    switch (notice) {\n      case Notice.EXEMPTION:\n        this.eventBus.publish(exemptionISDSConceptStatusCheckSuccess({ success: true, notice }));\n        break;\n      case Notice.OMISSION:\n        this.eventBus.publish(omissionISDSConceptStatusCheckSuccess({ success: true, notice }));\n        break;\n      case Notice.LICENSE_PLATE_CHANGE:\n        this.eventBus.publish(licensePlateChangeISDSConceptStatusCheckSuccess({ success: true, notice }));\n        break;\n      case Notice.REFUND_REQUEST:\n        this.eventBus.publish(refundRequestISDSConceptStatusCheckSuccess({ success: true, notice }));\n        break;\n    }\n  };\n\n  private publishConceptError = (notice: Notice, type: string, code: string | undefined, error: any) => {\n    Sentry.withScope(scope => {\n      scope.setTag(\"ISDS\", \"concept\");\n      scope.setExtras({\n        notice,\n        type,\n      });\n      Sentry.captureException(error);\n    });\n\n    switch (notice) {\n      case Notice.EXEMPTION:\n        this.eventBus.publish(exemptionISDSConceptStatusCheckFailure({ type, code }));\n        break;\n      case Notice.OMISSION:\n        this.eventBus.publish(omissionISDSConceptStatusCheckFailure({ type, code }));\n        break;\n      case Notice.LICENSE_PLATE_CHANGE:\n        this.eventBus.publish(licensePlateChangeISDSConceptStatusCheckFailure({ type, code }));\n        break;\n      case Notice.REFUND_REQUEST:\n        this.eventBus.publish(refundRequestISDSConceptStatusCheckFailure({ type, code }));\n        break;\n    }\n  };\n\n  private generateISDSRedirectURL = () => {\n    const redirect = new URL(\"as/login\", ISDSUrl);\n    redirect.searchParams.append(\"atsId\", ISDSAtsId!);\n\n    return redirect.toString();\n  };\n\n  private generateISDSConceptRedirectURL = (conceptIdent: string) => {\n    const redirect = new URL(\"as/koncept/view\", ISDSUrl);\n    redirect.searchParams.append(\"konceptId\", conceptIdent);\n\n    return redirect.toString();\n  };\n}\n","// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nenum CustomerRatingScore {\n  Negative = \"NEGATIVE\",\n  Neutral = \"NEUTRAL\",\n  Positive = \"POSITIVE\",\n}\nexport default CustomerRatingScore;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"mobileFilterContainer\":\"mobileFilter_mobileFilterContainer__2PGB5\",\"openButton\":\"mobileFilter_openButton__2w7E1\",\"cogWheelIcon\":\"mobileFilter_cogWheelIcon__2zCE5\",\"closeButton\":\"mobileFilter_closeButton__1g8es\",\"filters\":\"mobileFilter_filters__dHPZq\",\"heading\":\"mobileFilter_heading__qKWl6\",\"divider\":\"mobileFilter_divider__Rt-Hz\",\"section\":\"mobileFilter_section__3M4wt\"};","import { ScreenBase } from \"@frui.ts/screens\";\nimport { bound } from \"@frui.ts/helpers\";\nimport { action, computed, observable } from \"mobx\";\nimport LocalizationService from \"services/localizationService\";\nimport ChargeOrderService from \"services/chargeOrderService\";\nimport ChargeTypesService from \"services/chargeTypesService\";\nimport { interfaces } from \"inversify\";\nimport GDPRViewModel from \"./gdpr/GDPRViewModel\";\nimport { ManualEntityValidator } from \"@frui.ts/validation\";\nimport ChargeOrderContactItem from \"models/chargeOrderContactItem\";\nimport NotificationPreferences from \"models/notificationPreferences\";\nimport { setVisitedProperty } from \"utils/validationPatch\";\nimport ChargeDetailResponse from \"../../entities/chargeDetailResponse\";\nimport ChargeValidity from \"entities/chargeValidity\";\n\nexport default class ContactViewModel extends ScreenBase {\n  private unsubscriptions: Array<() => void> = [];\n  protected manualValidator = new ManualEntityValidator<NotificationPreferences>(false);\n  gdprViewModel: GDPRViewModel;\n  @observable formElement?: HTMLFormElement;\n  @observable phoneNumberChanged = false;\n  @observable storedEmailNotification?: string;\n  @observable storedSmsNotification?: string;\n\n  constructor(\n    public chargeOrderContactItem: ChargeOrderContactItem | ChargeDetailResponse,\n    private chargeOrderService: ChargeOrderService,\n    private chargeService: ChargeTypesService,\n    public localizationService: LocalizationService,\n    private gdprVMFactory: ReturnType<typeof GDPRViewModel.Factory>,\n    public isSingleEshop = false,\n    public isMultiEshop = false\n  ) {\n    super();\n    this.gdprViewModel = this.gdprVMFactory(this.GDPR);\n  }\n  protected onInitialize() {\n    return super.onInitialize();\n  }\n\n  protected onDeactivate(isClosing: boolean): Promise<any> | void {\n    if (isClosing) {\n      this.unsubscriptions.forEach(unsubscribe => unsubscribe());\n      this.unsubscriptions = [];\n    }\n    return super.onDeactivate(isClosing);\n  }\n\n  @computed\n  get defaultPrefixNumber() {\n    if (!this.phoneNumberChanged) {\n      return this.localizationService.defaultPrefixNumber;\n    }\n    return undefined;\n  }\n\n  @computed\n  get notificationEnabled() {\n    return this.notificationPreferences._notificationEnabled;\n  }\n\n  set notificationEnabled(notificationEnabled) {\n    this.notificationPreferences._notificationEnabled = notificationEnabled;\n\n    if (!notificationEnabled) {\n      this.storedEmailNotification = this.notificationPreferences._emailAddressNotification;\n      this.notificationPreferences._emailAddressNotification = undefined;\n      this.notificationPreferences.emailNotificationEnabled = false;\n\n      this.storedSmsNotification = this.notificationPreferences.phoneNumber;\n      this.notificationPreferences.phoneNumber = undefined;\n      this.notificationPreferences.smsNotificationEnabled = false;\n    } else {\n      this.notificationPreferences._emailAddressNotification = undefined;\n      this.notificationPreferences.emailNotificationEnabled = false;\n      this.notificationPreferences._isNotificationEmailSame = false;\n      this.notificationPreferences.phoneNumber = undefined;\n      this.notificationPreferences.smsNotificationEnabled = false;\n    }\n  }\n\n  @computed\n  get smsNotificationEnabled() {\n    return this.notificationPreferences.smsNotificationEnabled;\n  }\n\n  @computed\n  get isNotificationEmailSame() {\n    return this.notificationPreferences._isNotificationEmailSame ?? false;\n  }\n\n  @computed\n  get GDPR() {\n    return this.translate(\"gdpr.description\", true);\n  }\n\n  @computed\n  get notificationPreferences() {\n    return this.chargeOrderContactItem.notificationPreferences;\n  }\n\n  @computed\n  get showNotificationPreferences() {\n    const charges = this.chargeOrderService.chargeOrderItems;\n    if (this.chargeOrderService.chargeOrder._origin === \"multiple\") {\n      return !charges.find(\n        charge => this.chargeService.findChargeType(charge.chargeTypeId)?.validFor === ChargeValidity.SingleDay\n      );\n    }\n    return !charges.find(charge => charge._singleChargeType);\n  }\n\n  @computed\n  get notificationEnabledInfo() {\n    if (this.chargeOrderService.chargeOrder._origin === \"multiple\") {\n      return this.chargeOrderService.notificationInfoMulti();\n    }\n    return this.chargeOrderService.notificationInfoSingle();\n  }\n\n  @computed\n  get isSmartRedirect() {\n    return this.chargeOrderService.isSmartRedirect;\n  }\n\n  get isEmailNotificationSet() {\n    return (\n      this.notificationPreferences._emailAddressNotification !== undefined &&\n      this.notificationPreferences._emailAddressNotification.length > 0\n    );\n  }\n\n  get isPhoneNumberSet() {\n    return this.notificationPreferences.phoneNumber !== undefined && this.notificationPreferences.phoneNumber.length > 0;\n  }\n\n  @bound\n  onEmailAddressNotificationChanged() {\n    setVisitedProperty(this.notificationPreferences, \"_emailAddressNotification\");\n    this.notificationPreferences.emailNotificationEnabled = this.isEmailNotificationSet;\n  }\n\n  @bound\n  onPhoneNumberChanged() {\n    this.phoneNumberChanged = true;\n    setVisitedProperty(this.notificationPreferences, \"phoneNumber\");\n    this.notificationPreferences.smsNotificationEnabled = this.isPhoneNumberSet;\n  }\n\n  @action.bound\n  translate(code: string, disableUnbreakableRules = false) {\n    return this.localizationService.translateGeneral(`eshop.order.contact.${code}`, undefined, disableUnbreakableRules);\n  }\n\n  @action.bound\n  translateMulti(code: string, disableUnbreakableRules = false) {\n    return this.localizationService.translateGeneral(`multiEshop.${code}`, undefined, disableUnbreakableRules);\n  }\n\n  @bound\n  translateNotification(code: string) {\n    return this.localizationService.translateGeneral(`eshop.order.notification.${code}`);\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (\n      chargeOrderContactItem: ChargeOrderContactItem | ChargeDetailResponse,\n      isSingleEshop = false,\n      isMultiEshop = false\n    ) => {\n      return new ContactViewModel(\n        chargeOrderContactItem,\n        container.get(ChargeOrderService),\n        container.get(ChargeTypesService),\n        container.get(LocalizationService),\n        container.get(GDPRViewModel.Factory),\n        isSingleEshop,\n        isMultiEshop\n      );\n    };\n  }\n}\n","import { Router } from \"@frui.ts/screens/dist\";\nimport TradingPlacesViewModel from \"./tradingPlacesViewModel\";\nimport LocalizationService from \"../../services/localizationService\";\nimport TradingPlaceService from \"../../services/tradingPlaceService\";\n\nexport const KioskNavigationName = \"kiosk\";\n\n@Router.registerRoute({ route: KioskNavigationName, name: \"kiosk\" })\nexport default class KioskViewModel extends TradingPlacesViewModel {\n  constructor(public localizationService: LocalizationService, tradingPlacesService: TradingPlaceService) {\n    super(localizationService, tradingPlacesService);\n    this.navigationName = KioskNavigationName;\n    this.mapButtonTitle = this.translateGeneral(\"showKioskMap\");\n\n    this.showMap = false;\n    this.visibleRoads = {\n      free: false,\n      paid: false,\n      year: this.roadMapYears[0],\n    };\n    this.visibleTradingPlaces = {\n      kiosk: true,\n      salesPoint: false,\n    };\n    this.mapButtonContainerClassName = \"text-sm-left\";\n  }\n  protected async onInitialize() {\n    await this.tradingPlacesService.initialize();\n    return super.onInitialize();\n  }\n}\n","import { Router } from \"@frui.ts/screens/dist\";\nimport TradingPlacesViewModel from \"./tradingPlacesViewModel\";\nimport LocalizationService from \"../../services/localizationService\";\nimport TradingPlaceService from \"../../services/tradingPlaceService\";\n\nexport const RoadMapNavigationName = \"road_map\";\n\n@Router.registerRoute({ route: RoadMapNavigationName, name: \"road_map\" })\nexport default class RoadMapViewModel extends TradingPlacesViewModel {\n  constructor(public localizationService: LocalizationService, tradingPlacesService: TradingPlaceService) {\n    super(localizationService, tradingPlacesService);\n    this.navigationName = RoadMapNavigationName;\n    this.mapButtonTitle = this.translateGeneral(\"showTollRoadMap\");\n\n    this.showMap = false;\n    this.visibleRoads = {\n      free: true,\n      paid: true,\n      year: this.roadMapYears[0],\n    };\n    this.visibleTradingPlaces = {\n      kiosk: false,\n      salesPoint: false,\n    };\n    this.mapButtonClassName = \"btn-lg display-map-button\";\n    this.mapButtonContainerClassName = \"text-sm-left\";\n  }\n  protected async onInitialize() {\n    await this.tradingPlacesService.initialize();\n    return super.onInitialize();\n  }\n}\n","import { ScreenBase } from \"@frui.ts/screens/dist\";\nimport { interfaces } from \"inversify\";\nimport { action, computed } from \"mobx\";\nimport LocalizationService from \"services/localizationService\";\nimport ChargeDetailResponse from \"entities/chargeDetailResponse\";\n\nexport default class CodeChangedAlertViewModel extends ScreenBase {\n  constructor(private charge: ChargeDetailResponse, private localizationService: LocalizationService) {\n    super();\n  }\n\n  @computed\n  get code() {\n    return this.charge.authCode;\n  }\n\n  @computed\n  get emailAddress() {\n    if (this.charge.emailAddress) return this.charge.emailAddress;\n    return \"\";\n  }\n\n  @computed\n  get description() {\n    return this.translate(\"description\")\n      .replace(\"%email%\", this.emailAddress)\n      .replace(\"%code%\", this.code || \"\");\n  }\n\n  @action.bound\n  onHide() {\n    this.requestClose();\n  }\n\n  translate(code: string) {\n    return this.localizationService.translateGeneral(`chargeManagement.codeChanged.${code}`);\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (charge: ChargeDetailResponse) => {\n      return new CodeChangedAlertViewModel(charge, container.get(LocalizationService));\n    };\n  }\n}\n","import { ScreenBase } from \"@frui.ts/screens/dist\";\nimport { interfaces } from \"inversify\";\nimport GDPRViewModel from \"../../../common/gdpr/GDPRViewModel\";\nimport { attachAutomaticBlurValidator } from \"../../../../utils/validationPatch\";\nimport LocalizationService from \"../../../../services/localizationService\";\nimport { bound } from \"@frui.ts/helpers\";\nimport InputEmail, { EmailConfirmationValidationRules, EmailValidationRules } from \"entities/InputEmail\";\nexport default class EmailInputViewModel extends ScreenBase {\n  gdprViewModel: GDPRViewModel;\n\n  constructor(\n    public inputEmail: InputEmail,\n    public emailUsageInfo: string,\n    private GDPR: string,\n    private localizationService: LocalizationService,\n    private gdprVMFactory: ReturnType<typeof GDPRViewModel.Factory>\n  ) {\n    super();\n    attachAutomaticBlurValidator(this.inputEmail, {\n      ...EmailValidationRules,\n      ...EmailConfirmationValidationRules,\n    });\n  }\n\n  @bound\n  translate(attribute: string, again = false) {\n    return this.localizationService.translateAttribute(again ? \"contact.again\" : \"contact\", attribute);\n  }\n\n  @bound\n  translateConfirmation(attribute: string) {\n    return this.translate(attribute, true);\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (inputEmail: InputEmail, emailUsageInfo: string, GDPR: string) => {\n      return new EmailInputViewModel(\n        inputEmail,\n        emailUsageInfo,\n        GDPR,\n        container.get(LocalizationService),\n        container.get(GDPRViewModel.Factory)\n      );\n    };\n  }\n}\n","import { Type } from \"class-transformer\";\nimport { observable } from \"mobx\";\nimport Vehicle from \"./vehicle\";\nimport FuelType from \"../entities/fuelType\";\n\nexport default class ChargeValidity {\n  @observable\n  id: string;\n\n  @observable\n  chargeTypeId: string;\n\n  @Type(() => Date)\n  @observable\n  validSince: Date;\n\n  @Type(() => Date)\n  @observable\n  validUntil: Date;\n\n  @observable\n  fuelType: FuelType;\n\n  @Type(() => Vehicle)\n  @observable\n  vehicle: Vehicle;\n\n  @observable\n  authCode: string;\n}\n","import { observable } from \"mobx\";\nimport ChargeChangeRejectionReason from \"./chargeChangeRejectionReason\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargePermittedActionResponse {\n  @observable\n  isAllowed!: boolean;\n\n  @observable\n  rejectionReason?: ChargeChangeRejectionReason;\n}\n","import { observable } from \"mobx\";\nimport ChargeEmailAddressChangeRejectionReason from \"./chargeEmailAddressChangeRejectionReason\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class EmailAddressChangePermittedActionResponse {\n  @observable\n  isAllowed!: boolean;\n\n  @observable\n  rejectionReason?: ChargeEmailAddressChangeRejectionReason;\n}\n","import { observable } from \"mobx\";\nimport ChargeNotificationPreferencesChangeRejectionReason from \"./chargeNotificationPreferencesChangeRejectionReason\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class NotificationPreferencesChangePermittedActionResponse {\n  @observable\n  isAllowed!: boolean;\n\n  @observable\n  rejectionReason?: ChargeNotificationPreferencesChangeRejectionReason;\n}\n","import { observable } from \"mobx\";\nimport ChargeObtainingPaymentConfirmationRejectionReason from \"./chargeObtainingPaymentConfirmationRejectionReason\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ObtainingPaymentConfirmationPermittedActionResponse {\n  @observable\n  isAllowed!: boolean;\n\n  @observable\n  rejectionReason?: ChargeObtainingPaymentConfirmationRejectionReason;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport ChargePermittedActionResponse from \"./chargePermittedActionResponse\";\nimport EmailAddressChangePermittedActionResponse from \"./emailAddressChangePermittedActionResponse\";\nimport NotificationPreferencesChangePermittedActionResponse from \"./notificationPreferencesChangePermittedActionResponse\";\nimport ObtainingPaymentConfirmationPermittedActionResponse from \"./obtainingPaymentConfirmationPermittedActionResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargePermittedActionsResponse {\n  @observable\n  @Type(() => ChargePermittedActionResponse)\n  vehicleChangeBeforeValidity!: ChargePermittedActionResponse;\n\n  @observable\n  @Type(() => ChargePermittedActionResponse)\n  vehicleChangeDuringValidity!: ChargePermittedActionResponse;\n\n  @observable\n  @Type(() => ChargePermittedActionResponse)\n  validityChange!: ChargePermittedActionResponse;\n\n  @observable\n  @Type(() => EmailAddressChangePermittedActionResponse)\n  emailAddressChange!: EmailAddressChangePermittedActionResponse;\n\n  @observable\n  @Type(() => NotificationPreferencesChangePermittedActionResponse)\n  emailNotificationPreferencesChange!: NotificationPreferencesChangePermittedActionResponse;\n\n  @observable\n  @Type(() => NotificationPreferencesChangePermittedActionResponse)\n  smsNotificationPreferencesChange!: NotificationPreferencesChangePermittedActionResponse;\n\n  @observable\n  @Type(() => ObtainingPaymentConfirmationPermittedActionResponse)\n  obtainingPaymentConfirmation!: ObtainingPaymentConfirmationPermittedActionResponse;\n}\n","import { observable } from \"mobx\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class CounterpartyBankAccountResponse {\n  /**\n   * Account number according to type of format\n   */\n  @observable\n  accountNumber?: string;\n\n  /**\n   * Identification of bank\n   */\n  @observable\n  bank?: string;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport CounterpartyBankAccountResponse from \"./counterpartyBankAccountResponse\";\nimport CustomerRefundPaymentType from \"./customerRefundPaymentType\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargeRefundResponse {\n  /**\n   * Date and time when amount was refunded to counterparty account; otherwise `null`.\n   */\n  @observable\n  @Type(() => Date)\n  refundedAt?: Date;\n\n  @observable\n  refundPaymentType!: CustomerRefundPaymentType;\n\n  /**\n   * Refunded amount.\n   */\n  @observable\n  amount!: number;\n\n  /**\n   * Variable symbol (payment reference) of refundation via bank transfer.\n   */\n  @observable\n  variableSymbol?: number;\n\n  @observable\n  @Type(() => CounterpartyBankAccountResponse)\n  bankAccount?: CounterpartyBankAccountResponse;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport ChargePermittedActionsResponse from \"./chargePermittedActionsResponse\";\nimport ChargeRefundResponse from \"./chargeRefundResponse\";\nimport ChargeRefundationStatus from \"./chargeRefundationStatus\";\nimport NotificationPreferencesResponse from \"./notificationPreferencesResponse\";\nimport SourceType from \"./sourceType\";\nimport VehicleRegistrationResponse from \"./vehicleRegistrationResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargeDetailResponse {\n  /**\n   * Unique ID of a charge.\n   */\n  id!: string;\n\n  /**\n   * Charge order confirmed at.\n   */\n  @observable\n  @Type(() => Date)\n  chargeOrderConfirmedAt!: Date;\n\n  @observable\n  chargeOrderSourceType!: SourceType;\n\n  /**\n   * Price list item ID.\n   */\n  @observable\n  priceListItemId!: string;\n\n  @observable\n  @Type(() => VehicleRegistrationResponse)\n  vehicle!: VehicleRegistrationResponse;\n\n  /**\n   * Beginning date and time of charge validity.\n   */\n  @observable\n  @Type(() => Date)\n  validSince!: Date;\n\n  /**\n   * End date and time of charge validity.\n   */\n  @observable\n  @Type(() => Date)\n  validUntil!: Date;\n\n  /**\n   * Authentication code.\n   */\n  @observable\n  authCode!: string;\n\n  /**\n   * Customer's email address for payment confirmations and payment instructions.\n   */\n  @observable\n  emailAddress?: string;\n\n  @observable\n  @Type(() => NotificationPreferencesResponse)\n  notificationPreferences!: NotificationPreferencesResponse;\n\n  @observable\n  @Type(() => ChargeRefundResponse)\n  refund?: ChargeRefundResponse;\n\n  @observable\n  refundationStatus!: ChargeRefundationStatus;\n\n  /**\n   * Link to e-shop for a new charge purchase of the same type.\n   */\n  @observable\n  newChargePurchaseUrl?: string;\n\n  @observable\n  @Type(() => ChargePermittedActionsResponse)\n  permittedActions!: ChargePermittedActionsResponse;\n\n  // FE only attributes\n  @Type(() => VehicleRegistrationResponse)\n  @observable\n  newVehicle: VehicleRegistrationResponse = new VehicleRegistrationResponse();\n\n  @observable\n  @Type(() => Date)\n  newValidSince!: Date;\n\n  /**\n   * End date and time of charge validity.\n   */\n  @observable\n  @Type(() => Date)\n  newValidUntil!: Date;\n\n  @observable\n  _canBeChanged: boolean;\n\n  @observable\n  _chargeTypeId: string;\n\n  @observable\n  _fuelTypeId: string;\n}\n","import { plainToClass } from \"class-transformer\";\r\nimport EshopRequestBuilder from \"data/eshopRequestBuilder\";\r\nimport formatISO from \"date-fns/formatISO\";\r\nimport ChargeValidity from \"models/chargeValidity\";\r\nimport { ContactEditationTriggerer } from \"models/contact\";\r\nimport EshopError from \"models/eshopError\";\r\nimport AuthorizationService from \"services/authorizationService\";\r\nimport EventBus from \"services/eventBus\";\r\nimport VehicleChangeDuringValidityRequest from \"../models/vehicleChangeDuringValidityRequest\";\r\nimport RepositoryBase from \"./repositoryBase\";\r\nimport ContactInfoChangeRequest from \"entities/contactInfoChangeRequest\";\r\nimport ChargePriceListsResponse from \"entities/chargePriceListsResponse\";\r\nimport ChargeDetailResponse from \"entities/chargeDetailResponse\";\r\nimport ChargeValidityRequest from \"entities/chargeValidityRequest\";\r\n\r\nconst GET_CHARGE_VALIDITY_REQUEST_FAILURE = \"GET_CHARGE_VALIDITY_REQUEST_FAILURE\";\r\nconst GET_CHARGE_REQUEST_FAILURE = \"GET_CHARGE_REQUEST_FAILURE\";\r\nexport const CHARGE_NOT_FOUND = \"CHARGE_NOT_FOUND\";\r\nconst REQUEST_MODEL_VALIDATION_FAILED = \"REQUEST_MODEL_VALIDATION_FAILED\";\r\n\r\nexport default class ChargeRepository extends RepositoryBase<EshopRequestBuilder> {\r\n  constructor(\r\n    protected apiFactory: ReturnType<typeof EshopRequestBuilder.Factory>,\r\n    protected authorizationService: AuthorizationService,\r\n    protected eventBus: EventBus\r\n  ) {\r\n    super(() => apiFactory(), authorizationService, eventBus);\r\n  }\r\n\r\n  private handleEmptyResponse = async (response: Response) => {\r\n    if (!response.ok) return plainToClass(EshopError, (await response.json()) as EshopError);\r\n\r\n    return undefined;\r\n  };\r\n\r\n  chargePriceList(includeInvalid = false) {\r\n    return this.callApi(api =>\r\n      api\r\n        .apiVersion(3.0)\r\n        .all(\"charges\")\r\n        .all(\"price_lists\")\r\n        .clearGet({ include_invalid: includeInvalid, version: 4 })\r\n        .then(async response => {\r\n          if (!response.ok) return plainToClass(EshopError, (await response.json()) as EshopError);\r\n\r\n          return plainToClass(ChargePriceListsResponse, (await response.json()) as ChargePriceListsResponse);\r\n        })\r\n        .catch(() => {\r\n          throw new EshopError(REQUEST_MODEL_VALIDATION_FAILED);\r\n        })\r\n    );\r\n  }\r\n\r\n  chargeValidity(chargeTypeId: string, validSince: Date) {\r\n    const queryValidSince = new Date(validSince);\r\n\r\n    return this.callApi(api =>\r\n      api\r\n        .all(\"charges\")\r\n        .one(\"charge_types\", chargeTypeId)\r\n        .all(\"charge_validity\")\r\n        .clearGet({\r\n          // eslint-disable-next-line\r\n          valid_since: formatISO(queryValidSince),\r\n        })\r\n        .then(async response => {\r\n          if (!response.ok) return plainToClass(EshopError, (await response.json()) as EshopError);\r\n\r\n          return plainToClass(ChargeValidity, (await response.json()) as ChargeValidity);\r\n        })\r\n        .catch(() => {\r\n          throw new EshopError(GET_CHARGE_VALIDITY_REQUEST_FAILURE);\r\n        })\r\n    );\r\n  }\r\n\r\n  getCharge(countryId: string, licensePlate: string, authCode: string, turnstileToke: string) {\r\n    return this.callApi(api =>\r\n      api\r\n        .apiVersion(3.1)\r\n        .one(\"charges\", `${countryId}/${licensePlate}`)\r\n        .clearGet(undefined, authCode, undefined, undefined, turnstileToke)\r\n        .then(async response => {\r\n          if (!response.ok) return plainToClass(EshopError, (await response.json()) as EshopError);\r\n\r\n          return plainToClass(ChargeDetailResponse, (await response.json()) as ChargeDetailResponse);\r\n        })\r\n        .catch(() => {\r\n          throw new EshopError(GET_CHARGE_REQUEST_FAILURE);\r\n        })\r\n    );\r\n  }\r\n\r\n  editChargeValidity(\r\n    countryId: string,\r\n    licensePlate: string,\r\n    emailAddress: string | undefined,\r\n    authCode: string,\r\n    connectionId: string,\r\n    request: ChargeValidityRequest,\r\n    turnstileToke: string\r\n  ): Promise<EshopError | undefined | void> {\r\n    return this.callApi(\r\n      api =>\r\n        api\r\n          .apiVersion(3.1)\r\n          .one(\"charges\", `${countryId}/${licensePlate}`)\r\n          .all(\"validity\")\r\n          .clearPut({ emailAddress: emailAddress, validity: request }, authCode, connectionId, turnstileToke)\r\n          .then(async response => await this.handleEmptyResponse(response)),\r\n      false\r\n    );\r\n  }\r\n\r\n  editVehicle(\r\n    countryId: string,\r\n    licensePlate: string,\r\n    emailAddress: string | undefined,\r\n    authCode: string,\r\n    connectionId: string,\r\n    newCountryId: string,\r\n    newLicensePlate?: string,\r\n    turnstileToke?: string\r\n  ): Promise<EshopError | undefined | void> {\r\n    const request = { countryId: newCountryId, licensePlate: newLicensePlate, emailAddress: emailAddress };\r\n    return this.callApi(\r\n      api =>\r\n        api\r\n          .apiVersion(3.1)\r\n          .one(\"charges\", `${countryId}/${licensePlate}`)\r\n          .all(\"vehicle\")\r\n          .clearPut(request, authCode, connectionId, turnstileToke)\r\n          .then(async response => await this.handleEmptyResponse(response)),\r\n      false\r\n    );\r\n  }\r\n\r\n  editActiveChargeVehicle(\r\n    countryId: string,\r\n    licensePlate: string,\r\n    authCode: string,\r\n    connectionId: string,\r\n    request: VehicleChangeDuringValidityRequest,\r\n    turnstileToke: string\r\n  ) {\r\n    return this.callApi(\r\n      api =>\r\n        api\r\n          .apiVersion(3.1)\r\n          .one(\"active_charges\", `${countryId}/${licensePlate}`)\r\n          .all(\"vehicle\")\r\n          .clearPut(request, authCode, connectionId, turnstileToke)\r\n          .then(async response => await this.handleEmptyResponse(response)),\r\n      false\r\n    );\r\n  }\r\n\r\n  editContact(\r\n    request: ContactInfoChangeRequest,\r\n    countryId: string,\r\n    licensePlate: string,\r\n    authCode: string,\r\n    connectionId: string,\r\n    triggerer: ContactEditationTriggerer,\r\n    turnstileToke: string\r\n  ): Promise<EshopError | undefined | void> {\r\n    return this.callApi(\r\n      api =>\r\n        api\r\n          .apiVersion(3.1)\r\n          .one(\"charges\", `${countryId}/${licensePlate}`)\r\n          .all(\"contact\")\r\n          .clearPut(request, authCode, connectionId, turnstileToke)\r\n          .then(async response => await this.handleEmptyResponse(response)),\r\n      false\r\n    );\r\n  }\r\n\r\n  sendChargePaymentConfirmationEmail(\r\n    countryId: string,\r\n    licensePlate: string,\r\n    emailAddress: string | undefined,\r\n    authCode: string,\r\n    turnstileToke: string\r\n  ) {\r\n    return this.callApi(\r\n      api =>\r\n        api\r\n          .apiVersion(3.1)\r\n          .one(\"charges\", `${countryId}/${licensePlate}`)\r\n          .all(\"payment_confirmation_email\")\r\n          .clearPost({ emailAddress: emailAddress }, authCode, undefined, turnstileToke)\r\n          .then(async response => await this.handleEmptyResponse(response)),\r\n      false\r\n    );\r\n  }\r\n\r\n  downloadPaymentConfirmation(countryId: string, licensePlate: string, authCode: string, turnstileToke: string) {\r\n    return this.callApi(\r\n      api =>\r\n        api\r\n          .apiVersion(3.1)\r\n          .one(\"charges\", `${countryId}/${licensePlate}`)\r\n          .all(\"receipt\")\r\n          .clearGet(undefined, authCode, undefined, undefined, turnstileToke)\r\n          .then(async response => {\r\n            if (!response.ok) return plainToClass(EshopError, (await response.json()) as EshopError);\r\n\r\n            return response.url;\r\n          }),\r\n      false\r\n    );\r\n  }\r\n}\r\n","import addDays from \"date-fns/addDays\";\r\nimport format from \"date-fns-tz/format\";\r\nimport utcToZonedTime from \"date-fns-tz/utcToZonedTime\";\r\nimport zonedTimeToUtc from \"date-fns-tz/zonedTimeToUtc\";\r\nimport { czechTimeZone } from \"../config\";\r\nimport { addSeconds, subDays, endOfDay } from \"date-fns\";\r\nimport { isSafari9OrLess } from \"./iOS\";\r\n\r\nconst czechTimeZoneDiff = 2;\r\n\r\nexport const utcToCZZonedTime = (date: Date) => {\r\n  if (isSafari9OrLess) {\r\n    const localTime = date.getTime();\r\n    const czechOffset = czechTimeZoneDiff * 60000;\r\n    const zonedTime = localTime + czechOffset;\r\n\r\n    return new Date(zonedTime);\r\n  }\r\n\r\n  return utcToZonedTime(date, czechTimeZone);\r\n};\r\n\r\nexport const zonedCZTimeToUtc = (date: string) => {\r\n  if (isSafari9OrLess) {\r\n    const zonedDate = new Date(date);\r\n    const localTime = zonedDate.getTime();\r\n    const czechOffset = czechTimeZoneDiff * 60000;\r\n    const utc = localTime - czechOffset;\r\n    const zonedTime = utc - 3600000 * czechTimeZoneDiff;\r\n\r\n    return new Date(zonedTime);\r\n  }\r\n\r\n  return zonedTimeToUtc(date, czechTimeZone);\r\n};\r\n\r\nexport const toLocalDate = (date: Date, isPozitiveZone: boolean): Date => {\r\n  // 1) Klon, aby originál zůstal nezměněn\r\n  let d = new Date(date);\r\n  // 2) Nastav čas na půlnoc lokálně\r\n  isPozitiveZone ? d.setHours(0, 0, 0, 0) : (d = endOfDay(subDays(d.setHours(0, 0, 1, 0), 1)));\r\n  return d;\r\n};\r\n\r\nexport const setNowTime = (date: Date): Date => {\r\n  if (date) {\r\n    date.setHours(new Date().getHours(), new Date().getMinutes(), new Date().getSeconds());\r\n  }\r\n  return date;\r\n};\r\n\r\nexport const endOfCzechDay = (date: Date = new Date()): Date => {\r\n  const czechDate = utcToCZZonedTime(date);\r\n  const dateString = format(czechDate, \"yyyy-MM-dd 23:59:59\");\r\n\r\n  return zonedCZTimeToUtc(dateString);\r\n};\r\n\r\nexport function startOfPragueDay(date: Date): Date {\r\n  const CZ_TZ = \"Europe/Prague\";\r\n\r\n  // 1) Nejdřív vezmeme dané datum a \"převedeme\" ho do české zóny\r\n  const pragueDate = utcToZonedTime(date, CZ_TZ);\r\n  // 2) Vyextrahujeme si z něj rok-měsíc-den\r\n  const dayString = format(pragueDate, \"yyyy-MM-dd\", { timeZone: CZ_TZ });\r\n  // 3) Sestavíme ISO řetězec půlnoci v ČR a převedeme ho na UTC Date\r\n  return zonedTimeToUtc(`${dayString}T00:00:00`, CZ_TZ);\r\n}\r\n\r\nexport const dateToIsoDate = (date: Date): string => {\r\n  const z = utcToZonedTime(date, czechTimeZone);\r\n  return format(z, \"yyyy-MM-dd\", { timeZone: czechTimeZone });\r\n};\r\n\r\nexport const dateToIsoString = (date: Date): string => {\r\n  return format(date, \"yyyy-MM-dd\");\r\n};\r\n\r\n/**\r\n * Porovná dva ISO‐stringy, jestli padnou na stejný kalendářní den v ČR.\r\n */\r\nexport const isSameOrBeforePragueDay = (a: Date, b: Date): boolean => {\r\n  return dateToIsoDate(a) <= dateToIsoString(b);\r\n};\r\n\r\nexport const isSamePragueDay = (a: Date, b: Date): boolean => {\r\n  return dateToIsoDate(a) <= dateToIsoString(b);\r\n};\r\n\r\nexport const isBeforePragueDay = (a: Date, b: Date): boolean => {\r\n  return dateToIsoDate(a) < dateToIsoString(b);\r\n};\r\n\r\nexport const dateStringWithServerZone = (dataDate: Date, serverTime: Date): Date => {\r\n  // 1) extrahujeme YYYY-MM-DD z dataDate\r\n  const y = dataDate.getFullYear();\r\n  const m = String(dataDate.getMonth() + 1).padStart(2, \"0\");\r\n  const d = String(dataDate.getDate()).padStart(2, \"0\");\r\n  const dateString = `${y}-${m}-${d}`; // např. \"2025-05-25\"\r\n\r\n  // 2) spočteme offset serverTime v minutách (UTC→local)\r\n  const tzOffsetMin = -serverTime.getTimezoneOffset();\r\n  const sign = tzOffsetMin >= 0 ? \"+\" : \"-\";\r\n  const absMin = Math.abs(tzOffsetMin);\r\n  const hh = String(Math.floor(absMin / 60)).padStart(2, \"0\");\r\n  const mm = String(absMin % 60).padStart(2, \"0\");\r\n\r\n  // 3) složíme ISO midnight string s tím offsetem\r\n  const iso = `${dateString}T00:00:00${sign}${hh}:${mm}`;\r\n\r\n  // 4) new Date(iso) tajně převede na interní UTC čas\r\n  return new Date(iso);\r\n};\r\n\r\nexport function parseServerTimeToLocal(serverTime: string): Date {\r\n  // 1) Nejprve si parsni string na UTC Date (interně to uloží epoch ms)\r\n  const utcDate = new Date(serverTime);\r\n\r\n  // 2) Zjisti klientovu TZ (např. \"Europe/Prague\" nebo cokoliv jiného)\r\n  const clientTZ = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n\r\n  // 3) Přepočti tu UTC date na date, která při volání getHours() atd.\r\n  //    vrátí hodnotu v clientTZ\r\n  return utcToZonedTime(utcDate, clientTZ);\r\n}\r\n\r\nexport const startOfCzechDay = (date: Date = new Date()): Date => {\r\n  return addSeconds(subDays(endOfCzechDay(date), 1), 1);\r\n};\r\n\r\nexport const getTimeZoneLabel = (date: Date): string => {\r\n  const formatted = new Intl.DateTimeFormat(\"en-GB\", {\r\n    timeZone: \"Europe/Prague\",\r\n    timeZoneName: \"short\",\r\n  }).format(date);\r\n  if (formatted.includes(\"CEST\")) return \"CEST\";\r\n  if (formatted.includes(\"CET\")) return \"CET\";\r\n  return \"CET\";\r\n};\r\nexport const edazAddDays = (date: Date, amount: number) => {\r\n  if (isSafari9OrLess) {\r\n    const dateToAddDays = date;\r\n    dateToAddDays.setDate(dateToAddDays.getDate() + amount);\r\n    return dateToAddDays;\r\n  }\r\n\r\n  return addDays(date, amount);\r\n};\r\n\r\nexport const czechTodayDate = () => utcToCZZonedTime(new Date());\r\n\r\nexport const disabledDaysRange = (before?: Date | null, paidDate?: Date | null, maxValidAmount = 30) => ({\r\n  before: before ? before : czechTodayDate(),\r\n  after: edazAddDays(paidDate || czechTodayDate(), maxValidAmount),\r\n});\r\n\r\nexport const minValidSince = (serverTime?: Date) => addSeconds(endOfCzechDay(serverTime ?? new Date()), 1);\r\n\r\nexport const maxValidSince = (paidDate?: Date | null, maxValidAmount = 30) => {\r\n  return edazAddDays(paidDate || new Date(), maxValidAmount);\r\n};\r\n","import LocalizationService from \"services/localizationService\";\nimport { computed } from \"mobx\";\nimport { bound } from \"@frui.ts/helpers\";\nimport ScreenBase from \"@frui.ts/screens/dist/structure/screenBase\";\nimport { interfaces } from \"inversify\";\nimport OutageService from \"services/outageService\";\nimport { startOfCzechDay, utcToCZZonedTime } from \"utils/dateUtils\";\nimport ChargeOrder from \"models/chargeOrder\";\nimport ChargeOrderService from \"services/chargeOrderService\";\nimport { isAfter } from \"date-fns\";\nimport AppRouter from \"services/appRouter\";\nimport ChargeTypeViewModel from \"viewModels/eshop/order/steps/chargeTypeViewModel\";\nimport BatchOrderViewModel from \"viewModels/multiEshop/batchOrderViewModel\";\n\nexport default class SelectPaymentMethodViewModel extends ScreenBase {\n  private dateRegexp = /%date%/g;\n  private linkRegexp = /%link%/g;\n\n  constructor(\n    public chargeOrder: ChargeOrder,\n    private localizationService: LocalizationService,\n    private outageService: OutageService,\n    private chargeOrderService: ChargeOrderService,\n    private router: AppRouter\n  ) {\n    super();\n  }\n\n  @bound\n  translateAttribute(code: string) {\n    return this.localizationService.translateAttribute(\"payment\", code);\n  }\n\n  @computed\n  get transferDisabled() {\n    if (this.earliestPossibleDate) {\n      return this.chargeOrderStatus.charges.reduce(\n        (summary, item) =>\n          summary ||\n          (item.validity.validSinceDate !== undefined &&\n            isAfter(\n              startOfCzechDay(new Date(this.earliestPossibleDate)),\n              startOfCzechDay(new Date(item.validity.validSinceDate))\n            )),\n        false\n      );\n    }\n    return false;\n  }\n\n  @computed\n  get earliestPossibleDate() {\n    return (\n      this.chargeOrderService.chargeOrder._earliestPossibleValidSinceDate ??\n      this.chargeOrderService.earliestPossibleValidSinceDate\n    );\n  }\n\n  @computed\n  get chargeOrderStatus() {\n    return this.chargeOrderService.chargeOrder ?? this.chargeOrder;\n  }\n\n  @computed\n  get payGateDisabled() {\n    const outage = this.outageService.payGateActiveOutage;\n\n    return outage !== undefined;\n  }\n\n  @computed\n  get chargeTypeSelectionUrl() {\n    // URL pro navigaci na stránku s výběrem typu a datumu známky\n    return \"#/eshop/order/charge\";\n  }\n\n  @computed\n  get paymentTypeLabel() {\n    if (this.transferDisabled && this.earliestPossibleDate) {\n      const czechEarliestBankTransferDate = utcToCZZonedTime(new Date(this.earliestPossibleDate));\n      const czechDisplayDate = this.localizationService.formatDate(czechEarliestBankTransferDate);\n\n      return this.translateAttribute(\"transferDisabledInfo\")\n        .replace(this.dateRegexp, czechDisplayDate)\n        .replace(this.linkRegexp, this.chargeTypeSelectionUrl);\n    }\n  }\n\n  @computed\n  get enableGooglePay() {\n    // Google Pay is disabled for now\n    // https://gitlab.cendis.cz/edaz/backend/all-in-one-be/-/issues/1217\n    // return false;\n\n    // TODO: Remove this method once Google Pay is accepted to production.\n    return true;\n  }\n\n  @bound\n  navigateToChargeTypeSelection() {\n    if (this.chargeOrderStatus._origin === \"multiple\") {\n      this.router.navigate(BatchOrderViewModel);\n    } else {\n      this.router.navigate(ChargeTypeViewModel);\n    }\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (chargeOrder: ChargeOrder) => {\n      return new SelectPaymentMethodViewModel(\n        chargeOrder,\n        container.get(LocalizationService),\n        container.get(OutageService),\n        container.get(ChargeOrderService),\n        container.get(AppRouter)\n      );\n    };\n  }\n}\n","import LocalizationService from \"services/localizationService\";\nimport { computed, observable, reaction } from \"mobx\";\nimport { bound } from \"@frui.ts/helpers\";\nimport ScreenBase from \"@frui.ts/screens/dist/structure/screenBase\";\nimport { interfaces } from \"inversify\";\nimport { getValidationMessage } from \"@frui.ts/validation\";\nimport { CSTermsAgreementDocumentPath, DETermsAgreementDocumentPath, ENTermsAgreementDocumentPath } from \"../../../../config\";\nimport ChargeOrder from \"models/chargeOrder\";\nimport ChargeOrderService from \"services/chargeOrderService\";\n\nexport default class TermsAgreementViewModel extends ScreenBase {\n  private documentPathRegex = /%documentPath%/g;\n  private unsubscriptions: Array<() => void> = [];\n\n  constructor(\n    public chargeOrder: ChargeOrder,\n    private chargeOrderService: ChargeOrderService,\n    private localizationService: LocalizationService\n  ) {\n    super();\n  }\n\n  protected onInitialize(): Promise<any> | void {\n    this.chargeOrder._termsAgreement = false;\n    this.unsubscriptions.push(reaction(() => this.chargeOrder._termsAgreement, this.onAgreementChanged));\n    return super.onInitialize();\n  }\n\n  protected onDeactivate(isClosing: boolean): Promise<any> | void {\n    if (isClosing) {\n      this.unsubscriptions.forEach(unsubscribe => unsubscribe());\n      this.unsubscriptions = [];\n    }\n    return super.onDeactivate(isClosing);\n  }\n\n  @bound\n  onAgreementChanged() {\n    this.chargeOrderService.persistChargeOrder();\n  }\n\n  @bound\n  translateGeneral(code: string) {\n    return this.localizationService.translateGeneral(`eshop.order.summary.${code}`);\n  }\n\n  @bound\n  translateAttribute(code: string) {\n    return this.localizationService.translateAttribute(\"payment\", code);\n  }\n\n  @computed get termAgreementError() {\n    return getValidationMessage(this.chargeOrder, \"_termsAgreement\");\n  }\n\n  @computed\n  get translateTermsAgreement() {\n    return this.translateAttribute(\"termsAgreement\").replace(this.documentPathRegex, this.termsAgreementDocumentPath);\n  }\n\n  @computed\n  private get termsAgreementDocumentPath() {\n    switch (this.localizationService.locale) {\n      case \"cs\":\n        return CSTermsAgreementDocumentPath;\n      case \"de\":\n        return DETermsAgreementDocumentPath;\n      default:\n        return ENTermsAgreementDocumentPath;\n    }\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (chargeOrder: ChargeOrder) => {\n      return new TermsAgreementViewModel(chargeOrder, container.get(ChargeOrderService), container.get(LocalizationService));\n    };\n  }\n}\n","import { ScreenBase } from \"@frui.ts/screens\";\nimport { interfaces } from \"inversify\";\nimport { computed } from \"mobx\";\nimport ChargeTypesService from \"services/chargeTypesService\";\nimport LocalizationService from \"services/localizationService\";\nimport ChargeTypeViewModel from \"../eshop/order/components/chargeViewModel\";\nimport { getValidationMessage } from \"../../utils/validationPatch\";\nimport { bound } from \"@frui.ts/helpers/dist\";\nimport ChargeOrderChargeItem from \"models/chargeOrderChargeItem\";\nimport EnumService from \"services/enumService\";\nimport ChargeTypeResponse from \"entities/chargeTypeResponse\";\nimport { validityDays } from \"entities/chargeValidity\";\nimport ChargeOrderItem from \"models/chargeOrderItem\";\nimport ChargeOrderService from \"services/chargeOrderService\";\nimport { observable } from \"mobx\";\n\n// @TODO Měl by to být ConductorAllChildrenActive\nexport default class ChargeTypeSelectViewModel extends ScreenBase {\n  @observable batchIndex: number | undefined;\n  protected unsubscriptions: Array<() => void> = [];\n  constructor(\n    public chargeOrderChargeItem: ChargeOrderChargeItem | ChargeOrderItem,\n    public chargeOrderChargeItemId: string | undefined,\n    public localizationService: LocalizationService,\n    public enumService: EnumService,\n    private chargeViewModelFactory: ReturnType<typeof ChargeTypeViewModel.Factory>,\n    private chargeTypesService: ChargeTypesService,\n    private chargeOrderService: ChargeOrderService\n  ) {\n    super();\n  }\n\n  @computed\n  get chargeTypes() {\n    return this.enumService.values(\"charge_types\") as ChargeTypeResponse[];\n  }\n\n  protected onDeactivate(isClosing: boolean) {\n    if (isClosing) {\n      this.unsubscriptions.forEach(unsubscribe => unsubscribe());\n      this.unsubscriptions = [];\n    }\n\n    return super.onDeactivate(isClosing);\n  }\n\n  @computed\n  get chargeTypeViewModels() {\n    const validChargeTypes = this.chargeTypes\n      .filter(\n        chargeType =>\n          this.chargeTypesService.chargePriceList?.includedChargeTypeIds.includes(chargeType.id.toString()) &&\n          !chargeType.isDeleted\n      )\n      .sort((chargeA, chargeB) => (validityDays(chargeA.validFor) > validityDays(chargeB.validFor) ? -1 : 1));\n    return validChargeTypes.map(item =>\n      this.chargeViewModelFactory(item, this.chargeOrderChargeItem, this.chargeOrderChargeItemId)\n    );\n  }\n\n  @computed\n  get showLabel() {\n    return this.chargeOrderService.chargeOrder._origin !== \"multiple\" && this.chargeOrderService.chargeOrder._origin !== \"single\";\n  }\n\n  @computed\n  get chargeTypeError() {\n    return getValidationMessage(this.chargeOrderChargeItem, \"chargeTypeId\");\n  }\n\n  @computed\n  get isInitialized() {\n    return this.chargeTypesService.isInitialized;\n  }\n\n  @bound\n  ta(code: string) {\n    return this.localizationService.translateAttribute(\"orderItem\", code);\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (chargeOrderChargeItem: ChargeOrderChargeItem | ChargeOrderItem, chargeOrderChargeItemId?: string) =>\n      new ChargeTypeSelectViewModel(\n        chargeOrderChargeItem,\n        chargeOrderChargeItemId,\n        container.get(LocalizationService),\n        container.get(EnumService),\n        container.get(ChargeTypeViewModel.Factory),\n        container.get(ChargeTypesService),\n        container.get(ChargeOrderService)\n      );\n  }\n}\n","import { ScreenBase } from \"@frui.ts/screens\";\r\nimport { interfaces } from \"inversify\";\r\nimport LocalizationService from \"services/localizationService\";\r\nimport { action, computed, observable } from \"mobx\";\r\nimport EnumService from \"services/enumService\";\r\nimport { bound } from \"@frui.ts/helpers\";\r\nimport { startOfCzechDay } from \"utils/dateUtils\";\r\nimport ChargeValidityRuleResponse from \"entities/chargeValidityRuleResponse\";\r\nimport ChargeOrderChargeItem from \"models/chargeOrderChargeItem\";\r\nimport ChargeOrderService from \"services/chargeOrderService\";\r\nimport ChargeOrderItem from \"models/chargeOrderItem\";\r\nimport TimeService from \"services/timeService\";\r\n\r\nexport default class ValiditySelectViewModel extends ScreenBase {\r\n  private intervalId?: any;\r\n  readonly IDLE_TIMER_TIMEOUT = 100 * 60;\r\n  readonly IDLE_PROMPT_TIMEOUT = 100 * 60 * 4;\r\n  readonly IDLE_TIMER_DEBOUNCE = 250;\r\n  @observable validSinceDaysBefore: number;\r\n  @observable chargeValidityRules: ChargeValidityRuleResponse[];\r\n  @observable postponedValidityRule: ChargeValidityRuleResponse | undefined;\r\n  @observable counter: number;\r\n\r\n  @bound\r\n  async handleIdle() {\r\n    this.counter = this.IDLE_PROMPT_TIMEOUT;\r\n    this.intervalId = setInterval(async () => {\r\n      this.counter = this.counter - 1000;\r\n      if (this.counter === 0 && this.chargeOrderChargeItem.validSince) {\r\n        this.chargeValidityRules = await this.enumService.lazyValues(\"charge_validity_rules\");\r\n        this.getPostponedValidityMaxDays(this.serverTime ?? new Date(), this.chargeValidityRules);\r\n      }\r\n      if (this.counter === 0) {\r\n        this.clearTimeoutInterval();\r\n        this.handleIdle();\r\n      }\r\n    }, 1000);\r\n  }\r\n\r\n  @bound\r\n  clearTimeoutInterval() {\r\n    if (this.intervalId) {\r\n      clearInterval(this.intervalId);\r\n      this.intervalId = undefined;\r\n    }\r\n  }\r\n\r\n  constructor(\r\n    public chargeOrderChargeItem: ChargeOrderChargeItem | ChargeOrderItem,\r\n    public chargeOrderService: ChargeOrderService,\r\n    public timeService: TimeService,\r\n    public localizationService: LocalizationService,\r\n    public enumService: EnumService\r\n  ) {\r\n    super();\r\n    this.initialize();\r\n  }\r\n\r\n  @computed\r\n  get isDifferentTimeZone() {\r\n    return this.timeService.isFetched && !this.timeService.isServerTimeSame;\r\n  }\r\n\r\n  @computed\r\n  get serverTime() {\r\n    return this.timeService.currentServerTime;\r\n  }\r\n\r\n  async initialize() {\r\n    await this.timeService.getCurrentServerTime();\r\n    this.chargeValidityRules = await this.enumService.lazyValues(\"charge_validity_rules\");\r\n    this.validSinceDaysBefore = this.chargeOrderService.earliestPossibleValidSinceDaysBefore;\r\n    this.getPostponedValidityMaxDays(this.serverTime ?? new Date(), this.chargeValidityRules);\r\n  }\r\n\r\n  async onActivate() {\r\n    await super.onActivate();\r\n  }\r\n  deactivate(close: boolean): Promise<void> {\r\n    this.clearTimeoutInterval();\r\n    return super.deactivate(close);\r\n  }\r\n\r\n  @action.bound\r\n  getPostponedValidityMaxDays(validSince: Date | undefined, chargeValidityRules: ChargeValidityRuleResponse[]) {\r\n    if (validSince && chargeValidityRules) {\r\n      const filteredChargeValidityRules = chargeValidityRules.find(\r\n        rule =>\r\n          validSince &&\r\n          rule.validSinceDate &&\r\n          startOfCzechDay(new Date(rule.validSinceDate)) <= validSince &&\r\n          (!rule.validUntilDate || startOfCzechDay(new Date(rule.validUntilDate)) >= validSince)\r\n      );\r\n      this.postponedValidityRule = filteredChargeValidityRules ?? undefined;\r\n    }\r\n  }\r\n\r\n  static Factory({ container }: interfaces.Context) {\r\n    return (chargeOrderChargeItem: ChargeOrderChargeItem | ChargeOrderItem) => {\r\n      return new ValiditySelectViewModel(\r\n        chargeOrderChargeItem,\r\n        container.get(ChargeOrderService),\r\n        container.get(TimeService),\r\n        container.get(LocalizationService),\r\n        container.get(EnumService)\r\n      );\r\n    };\r\n  }\r\n}\r\n","import { ScreenBase } from \"@frui.ts/screens\";\nimport { interfaces } from \"inversify\";\nimport { computed, observable, action } from \"mobx\";\nimport LocalizationService from \"services/localizationService\";\nimport { getValidationMessage } from \"utils/validationPatch\";\nimport EnumService from \"../../services/enumService\";\nimport ChargeTypesService from \"services/chargeTypesService\";\nimport FuelTypeViewModel from \"viewModels/eshop/order/components/fuelViewModel\";\nimport FuelTypeResponse from \"entities/fuelTypeResponse\";\nimport ChargeOrderFuelItem from \"models/chargeOrderFuelItem\";\nimport ChargeOrderItem from \"models/chargeOrderItem\";\n\nexport default class FuelTypeSelectViewModel extends ScreenBase {\n  @observable batchIndex: number | undefined;\n  protected unsubscriptions: Array<() => void> = [];\n\n  constructor(\n    public chargeOrderFuelItem: ChargeOrderFuelItem | ChargeOrderItem,\n    public localizationService: LocalizationService,\n    public enumService: EnumService,\n    private chargeTypesService: ChargeTypesService,\n    private fuelTypeViewModelFactory: ReturnType<typeof FuelTypeViewModel.Factory>\n  ) {\n    super();\n  }\n\n  @action.bound\n  clickOutside() {\n    this.fuelTypeViewModels.forEach(x => {\n      x.displayTooltip = false;\n    });\n  }\n\n  @computed\n  get fuelTypes() {\n    return this.enumService.values(\"fuel_types\") as FuelTypeResponse[];\n  }\n\n  @computed\n  get fuelTypeViewModels() {\n    const validFuelTypes = this.fuelTypes.filter(\n      fuelType =>\n        this.chargeTypesService.chargePriceList?.includedFuelTypeIds.includes(fuelType.id.toString()) && !fuelType.isDeleted\n    );\n    return validFuelTypes.map(item => this.fuelTypeViewModelFactory(item, this.chargeOrderFuelItem));\n  }\n\n  @computed\n  get isInitialized() {\n    return this.chargeTypesService.isInitialized;\n  }\n\n  @computed\n  get fuelTypeError() {\n    return getValidationMessage(this.chargeOrderFuelItem, \"fuelTypeId\");\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (chargeOrderFuelItem: ChargeOrderFuelItem | ChargeOrderItem) => {\n      return new FuelTypeSelectViewModel(\n        chargeOrderFuelItem,\n        container.get(LocalizationService),\n        container.get(EnumService),\n        container.get(ChargeTypesService),\n        container.get(FuelTypeViewModel.Factory)\n      );\n    };\n  }\n}\n","export const SESSION_STORAGE_EXTERNAL_SERVICE_CALLBACK_DESTINATION_URL =\n  \"SESSION_STORAGE_EXTERNAL_SERVICE_CALLBACK_DESTINATION_URL\";\n\nexport const host = window.location.origin;\n\nexport const persistCallbackDestination = (path: string) => {\n  const link = `${host}${window.location.pathname}#/${path}`;\n  sessionStorage.setItem(SESSION_STORAGE_EXTERNAL_SERVICE_CALLBACK_DESTINATION_URL, link);\n};\n","import { browserVersion, isIOS, isSafari } from \"react-device-detect\";\n\nconst isIOSSafari = isIOS && isSafari;\n\nconst isSafari9OrLess = isSafari && parseFloat(browserVersion) <= 9;\n\nexport { isIOSSafari, isSafari9OrLess };\n","import { Type } from \"class-transformer\";\nimport { observable } from \"mobx\";\nimport \"reflect-metadata\";\nimport { EntityValidationRules } from \"services/validationService\";\nimport FuelTypeLimitationResponse from \"entities/fuelTypeLimitationResponse\";\nimport ChargePriceListItemResponse from \"entities/chargePriceListItemResponse\";\nimport ChargeValidityRequest from \"entities/chargeValidityRequest\";\nimport NotificationPreferences from \"./notificationPreferences\";\n\nexport const LicensePlateValidationRules: EntityValidationRules<ChargeOrderItem> = {\n  licensePlate: {\n    hasRequiredLength: { min: 1, max: 10 },\n    isLicensePlate: true,\n  },\n};\n\nexport const LicensePlatesValidationRules: EntityValidationRules<ChargeOrderItem> = {\n  licensePlates: {\n    required: true,\n    hasRequiredLength: {\n      min: 1,\n      max: 200,\n    },\n  },\n};\n\nexport const LicensePlateConfirmationValidationRules: EntityValidationRules<ChargeOrderItem> = {\n  _licensePlateConfirmation: {\n    equalWith: { property: \"licensePlate\" as const },\n    hasRequiredLength: { min: 1, max: 10 },\n    isLicensePlate: true,\n  },\n};\n\nexport const EmailValidationRules: EntityValidationRules<NotificationPreferences> = {\n  emailAddress: {\n    isEmail: true,\n  },\n};\n\nexport const EmailConfirmationValidationRules: EntityValidationRules<NotificationPreferences> = {\n  _emailConfirmation: {\n    equalWith: { property: \"emailAddress\" as const },\n    isEmail: true,\n  },\n};\n\nexport const EmailNotificationValidationRules: EntityValidationRules<NotificationPreferences> = {\n  _emailAddressNotification: {\n    equalWith: { property: \"emailAddress\" as const },\n    isEmail: true,\n  },\n};\n\nexport const CountryIdValidationRules: EntityValidationRules<ChargeOrderItem> = {\n  countryId: { required: \"requiredCountryId\" },\n};\n\nexport const FuelTypeValidationRules: EntityValidationRules<ChargeOrderItem> = {\n  fuelTypeId: { required: true },\n};\n\nexport const ChargeTypeIdValidationRules: EntityValidationRules<ChargeOrderItem> = {\n  chargeTypeId: {\n    required: true,\n  },\n};\n\nexport default class ChargeOrderItem {\n  id? = Math.random().toString();\n\n  authCode: string;\n\n  @observable\n  licensePlate?: string;\n\n  @observable\n  licensePlates: string[] = [];\n\n  @observable\n  countryId?: string;\n\n  @observable\n  priceListItemId: string;\n\n  @observable\n  validity: ChargeValidityRequest = new ChargeValidityRequest();\n\n  @observable\n  _licensePlateConfirmation?: string;\n\n  @observable\n  _chargeTypeId?: string;\n\n  @observable\n  _fuelTypeId?: string;\n\n  @observable\n  _singleChargeType = false;\n\n  @observable\n  _priceListItems: ChargePriceListItemResponse[] = [];\n\n  @observable\n  _visible = true;\n\n  @observable\n  _duplicities = 0;\n\n  @observable\n  @Type(() => FuelTypeLimitationResponse)\n  _fuelTypeLimitation?: FuelTypeLimitationResponse;\n\n  /* multiEshop  */\n\n  @Type(() => Date)\n  @observable\n  validSince?: Date;\n\n  @observable\n  chargeTypeId?: string;\n\n  @observable\n  fuelTypeId?: string;\n\n  @Type(() => NotificationPreferences)\n  @observable\n  notificationPreferences: NotificationPreferences;\n\n  @observable\n  _fuelTypeLimitationOrder?: string[];\n\n  @Type(() => Date)\n  @observable\n  _validUntil?: Date;\n\n  @Type(() => Date)\n  @observable\n  _validUntilOverlap?: Date;\n\n  @observable\n  _hasImmediateValidity?: boolean;\n\n  @Type(() => Date)\n  @observable\n  _validSinceDaysBefore?: Date;\n\n  @observable\n  _showCountryWarning: boolean;\n\n  @observable\n  _allowedDelete = false;\n\n  @observable\n  _isModified = false;\n\n  @observable\n  _licenseValidated = false;\n}\n\nexport const ChargeOrderItemValidationRules: EntityValidationRules<ChargeOrderItem> = {\n  ...LicensePlateValidationRules,\n  ...LicensePlateConfirmationValidationRules,\n  ...CountryIdValidationRules,\n};\n\nexport const ChargeOrderItemBatchValidationRules: EntityValidationRules<ChargeOrderItem> = {\n  ...LicensePlatesValidationRules,\n  ...CountryIdValidationRules,\n  ...FuelTypeValidationRules,\n  ...ChargeTypeIdValidationRules,\n};\n","// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\ninterface ChargeVehicleWarningReasonOrder {\n  CHARGE_WAS_NOT_PURCHASED_BEFORE: number;\n  UNUSED_CHARACTERS_IN_LICENSE_PLATE: number;\n  IDENTIFIED_POSSIBLE_EXEMPTION: number;\n  VEHICLE_CATEGORY_WITHOUT_CHARGE_OBLIGATION: number;\n  VEHICLE_REGISTER_VERIFICATION_DISABLED: number;\n  VEHICLE_NOT_FOUND_IN_VEHICLE_REGISTER: number;\n  VEHICLE_UNVERIFIED_WITH_VEHICLE_REGISTER: number;\n  INVALID_VEHICLE_STATUS_IN_VEHICLE_REGISTER: number;\n  MISSING_OR_INVALID_VEHICLE_FUEL_TYPE_IN_VEHICLE_REGISTER: number;\n  MISSING_OR_INVALID_VEHICLE_EMISSIONS_IN_VEHICLE_REGISTER: number;\n  MULTIPLE_VEHICLES_FOUND_IN_VEHICLE_REGISTER: number;\n}\n\nconst ChargeVehicleWarningReasonOrder: ChargeVehicleWarningReasonOrder = {\n  VEHICLE_CATEGORY_WITHOUT_CHARGE_OBLIGATION: 1,\n  IDENTIFIED_POSSIBLE_EXEMPTION: 2,\n  VEHICLE_NOT_FOUND_IN_VEHICLE_REGISTER: 3,\n  MULTIPLE_VEHICLES_FOUND_IN_VEHICLE_REGISTER: 4,\n  INVALID_VEHICLE_STATUS_IN_VEHICLE_REGISTER: 5,\n  MISSING_OR_INVALID_VEHICLE_FUEL_TYPE_IN_VEHICLE_REGISTER: 6,\n  MISSING_OR_INVALID_VEHICLE_EMISSIONS_IN_VEHICLE_REGISTER: 7,\n  CHARGE_WAS_NOT_PURCHASED_BEFORE: 8,\n  UNUSED_CHARACTERS_IN_LICENSE_PLATE: 9,\n  VEHICLE_UNVERIFIED_WITH_VEHICLE_REGISTER: 10,\n  VEHICLE_REGISTER_VERIFICATION_DISABLED: 11,\n};\n\nexport default ChargeVehicleWarningReasonOrder;\n","import DocumentsUploadedViewModel from \"../components/documentsUploadedViewModel\";\nimport { Router } from \"@frui.ts/screens/dist\";\n\nexport const ExemptionDocumentsUploadedViewModelNavigationName = \"exemption_documents\";\n\n@Router.registerRoute({\n  route: ExemptionDocumentsUploadedViewModelNavigationName,\n  name: \"exemption_documents\",\n})\nexport default class ExemptionDocumentsUploadedViewModel extends DocumentsUploadedViewModel {}\n","import DocumentsUploadedViewModel from \"../components/documentsUploadedViewModel\";\nimport { Router } from \"@frui.ts/screens\";\n\nexport const LicensePlateChangeDocumentsUploadedViewModelNavigationName = \"license_plate_change_documents\";\n\n@Router.registerRoute({\n  route: LicensePlateChangeDocumentsUploadedViewModelNavigationName,\n  name: \"license_plate_change_documents\",\n})\nexport default class LicensePlateChangeDocumentsUploadedViewModel extends DocumentsUploadedViewModel {}\n","import DocumentsUploadedViewModel from \"../components/documentsUploadedViewModel\";\nimport { Router } from \"@frui.ts/screens\";\n\nexport const OmissionDocumentsUploadedViewModelNavigationName = \"omission_documents\";\n\n@Router.registerRoute({\n  route: OmissionDocumentsUploadedViewModelNavigationName,\n  name: \"omission_documents\",\n})\nexport default class OmissionDocumentsUploadedViewModel extends DocumentsUploadedViewModel {}\n","import DocumentsUploadedViewModel from \"../components/documentsUploadedViewModel\";\nimport { Router } from \"@frui.ts/screens\";\n\nexport const RefundRequestDocumentsUploadedViewModelNavigationName = \"refund_request_documents\";\n\n@Router.registerRoute({\n  route: RefundRequestDocumentsUploadedViewModelNavigationName,\n  name: \"refund_request_documents\",\n})\nexport default class RefundRequestDocumentsUploadedViewModel extends DocumentsUploadedViewModel {}\n","import { IInitializationService } from \"./types\";\nimport { observable, runInAction } from \"mobx\";\nimport LocaleProvider from \"../localeProvider\";\nimport LocalizationService from \"../localizationService\";\nimport ValidationService from \"../validationService\";\nimport AuthorizationService from \"../authorizationService\";\nimport OutageService from \"../outageService\";\nimport { validatorsRepository } from \"@frui.ts/validation\";\nimport { availableLocales } from \"../../config\";\n\n// Run initialization async - don't await for anything to be ready\nexport default class LazyInitializationService implements IInitializationService {\n  @observable isInitialized: boolean;\n\n  constructor(\n    private localeProvider: LocaleProvider,\n    private localizationService: LocalizationService,\n    private validationService: ValidationService,\n    private authorizationService: AuthorizationService,\n    private outageService: OutageService\n  ) {\n    this.isInitialized = false;\n  }\n\n  async initialize(defaultLanguage?: string) {\n    runInAction(() => (this.isInitialized = true));\n    this.validationService.initialize(validatorsRepository as any);\n    this.localeProvider.initialize(availableLocales, defaultLanguage);\n    this.localizationService.initialize();\n    this.authorizationService.initialize();\n    this.outageService.initialize();\n  }\n}\n","import PersonViewModel from \"./personViewModel\";\nimport { interfaces } from \"inversify\";\nimport Person from \"../../../models/person\";\nimport LocalizationService from \"../../../services/localizationService\";\nimport GDPRViewModel from \"../../common/gdpr/GDPRViewModel\";\n\nexport default class ApplicantPersonViewModel extends PersonViewModel {\n  gdprViewModel?: GDPRViewModel;\n\n  constructor(\n    public person: Person,\n    protected localizationService: LocalizationService,\n    gdprVMFactory: ReturnType<typeof GDPRViewModel.Factory>,\n    public showBirthdate: boolean,\n    GDPRMessage?: string\n  ) {\n    super(person, localizationService);\n    person._validateBirthDate = showBirthdate;\n    if (GDPRMessage) {\n      this.gdprViewModel = gdprVMFactory(GDPRMessage);\n    }\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (person: Person, GDPRMessage?: string, showBirthdate = true) =>\n      new ApplicantPersonViewModel(\n        person,\n        container.get(LocalizationService),\n        container.get(GDPRViewModel.Factory),\n        showBirthdate,\n        GDPRMessage\n      );\n  }\n}\n","// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nenum ExemptionReason {\n  A1 = \"A1\",\n  A2 = \"A2\",\n  A3 = \"A3\",\n  B = \"B\",\n  C = \"C\",\n  D = \"D\",\n  E = \"E\",\n  F = \"F\",\n  G = \"G\",\n  J = \"J\",\n  K = \"K\",\n  M = \"M\",\n  N = \"N\",\n  O = \"O\",\n  O1 = \"O1\",\n  O2 = \"O2\",\n  P = \"P\",\n}\nexport default ExemptionReason;\n","import { computed, observable } from \"mobx\";\nimport type { EntityValidationRules } from \"services/validationService\";\nimport Notice, { SignatureType } from \"./notice\";\nimport { czechID } from \"config\";\n\nexport const defaultExemptionReason = undefined;\nexport const foreignExemptionReasons = [\"O1\", \"O2\"];\n\nexport const NoticePowerOfAttorneyRules: EntityValidationRules<Notice> = {\n  _powerOfAttorneyFilesBase64: {\n    requiredIf: {\n      condition: (entity: Notice) =>\n        !!(\n          entity._signatureType === SignatureType.DataBox &&\n          ((entity.vehicleOperator &&\n            entity.vehicleOperator.naturalPerson &&\n            entity.vehicleOperator.naturalPerson.isRepresentedByProxy) ||\n            (entity.vehicleOperator && entity.vehicleOperator.isLegalPerson))\n        ),\n      customMessage: \"documentUploadRequired\",\n    },\n  },\n};\n\nexport const NoticeTechnicalLicenseRules: EntityValidationRules<Notice> = {\n  _technicalLicenseFilesBase64: {\n    requiredIf: {\n      condition: (entity: Notice) => entity._signatureType === SignatureType.DataBox && entity.vehicle?.countryId !== czechID,\n      customMessage: \"documentUploadRequired\",\n    },\n  },\n};\n\nexport default class Exemption extends Notice {\n  @observable\n  exemptionReasonId?: string = defaultExemptionReason;\n\n  @computed\n  get rules(): EntityValidationRules<Exemption> {\n    return {\n      exemptionReasonId: {\n        required: true,\n      },\n    };\n  }\n}\n","// TODO: after we get the confirmation that this implementation works well we can easily move it to the `services` repository to the `Base localization service`\nconst UNBREAKABLE_SPACE = \"\\u00A0\";\nconst UNBREAKABLE_HYPHEN = \"\\u2011\";\nconst HYPHEN = \"-\";\nconst SPACE = \" \";\n\nconst unbreakableSingleSyllableWords = (s: string): string => s.replace(/ ([a-zA-Z]{1,2}) /g, \" $1\" + UNBREAKABLE_SPACE);\n\nconst unbreakableSpaces = (s: string): string => {\n  const regExp = new RegExp(SPACE, \"g\");\n\n  return s.replace(regExp, UNBREAKABLE_SPACE);\n};\n\nconst unbreakableHyphenWords = (s: string): string => {\n  const regExp = new RegExp(HYPHEN, \"g\");\n\n  return s.replace(regExp, UNBREAKABLE_HYPHEN);\n};\n\nconst breakableHyphenWords = (s: string): string => {\n  const regExp = new RegExp(UNBREAKABLE_HYPHEN, \"g\");\n\n  return s.replace(regExp, HYPHEN);\n};\n\nconst formatTextWithUnbreakableRules = (s: string): string => unbreakableSingleSyllableWords(unbreakableHyphenWords(s));\n\nconst unbreakableDate = (s: string): string => unbreakableSpaces(unbreakableHyphenWords(s));\n\nexport {\n  unbreakableHyphenWords,\n  breakableHyphenWords,\n  unbreakableSpaces,\n  unbreakableDate,\n  unbreakableSingleSyllableWords,\n  formatTextWithUnbreakableRules,\n};\n","import BaseLocalizationService, { ILocalizationContainer } from \"@edaz/services/baseLocalizationService\";\nimport { bound } from \"@frui.ts/helpers\";\nimport { DatePickerLocalization } from \"@edaz/edazkit/DatePicker\";\nimport type { UploaderLocalization } from \"@edaz/edazkit/Uploader\";\nimport { action, computed, observable } from \"mobx\";\nimport LocalizationRepository from \"repositories/localizationRepository\";\nimport EventBus, { localeChanged } from \"./eventBus\";\nimport LocaleProvider from \"./localeProvider\";\nimport type { KnownErrorCodes } from \"../config\";\nimport {\n  breakableHyphenWords,\n  formatTextWithUnbreakableRules,\n  unbreakableDate,\n  unbreakableSpaces,\n} from \"../utils/localizationUtils\";\nimport LanguageCode from \"models/languageCode\";\nimport CurrencyCode from \"entities/currencyCode\";\n\nexport interface LocalizationContainer extends ILocalizationContainer {\n  language_code: string;\n  attributes: ILocalizationContainer;\n  general: ILocalizationContainer;\n}\n\nexport default class LocalizationService extends BaseLocalizationService<LocalizationContainer> {\n  @observable locs: LocalizationContainer;\n\n  @computed\n  get defaultPrefixNumber() {\n    if (this.locale === \"cs\") {\n      return \"+420\";\n    } else {\n      return undefined;\n    }\n  }\n\n  constructor(\n    private localeProvider: LocaleProvider,\n    protected localizationProvider: LocalizationRepository,\n    private eventBus: EventBus\n  ) {\n    super(localizationProvider);\n    this.eventBus.subscribe(localeChanged, this.changeLocale);\n  }\n\n  get locale(): string {\n    return this.localeProvider.locale;\n  }\n\n  // Get LanguageCode from current locale (i.e. en-GB => EN)\n  get languageCode(): LanguageCode {\n    return this.localeProvider.locale.substring(0, 2).toUpperCase() as LanguageCode;\n  }\n\n  translate(code: string, size?: number, disableUnbreakableRules?: boolean): string {\n    return disableUnbreakableRules ? super.translate(code, size) : formatTextWithUnbreakableRules(super.translate(code, size));\n  }\n\n  @bound\n  translateGeneral(code: string, size?: number, disableUnbreakableRules?: boolean) {\n    return this.translate(`general.${code}`, size, disableUnbreakableRules);\n  }\n\n  @bound\n  translateError(errorCode: KnownErrorCodes) {\n    return this.translate(`general.errors.${errorCode}`);\n  }\n\n  @bound\n  translateUploader(): UploaderLocalization {\n    return {\n      drag: this.translateGeneral(\"documentUploader.localization.drag\"),\n      or: this.translateGeneral(\"documentUploader.localization.or\"),\n      select: this.translateGeneral(\"documentUploader.localization.select\"),\n    };\n  }\n\n  get datePickerLocalization(): DatePickerLocalization {\n    const days = [\"su\", \"mo\", \"tu\", \"we\", \"th\", \"fr\", \"sa\"];\n    const getMonth = (month: string) => this.translateGeneral(`datepicker.strings.months.${month}`);\n    const getDays = (length: string) => days.map(day => this.translateGeneral(`datepicker.strings.weekdays${length}.${day}`));\n    const format = this.translateGeneral(\"datepicker.format\");\n\n    return {\n      format: format === \"general.datepicker.format\" ? \"\" : format,\n      strings: {\n        months: [\n          \"january\",\n          \"february\",\n          \"march\",\n          \"april\",\n          \"may\",\n          \"june\",\n          \"july\",\n          \"august\",\n          \"september\",\n          \"october\",\n          \"november\",\n          \"december\",\n        ].map(getMonth),\n        weekdaysLong: getDays(\"Long\"),\n        weekdaysShort: getDays(\"Short\"),\n        firstDayOfWeek: days.indexOf(this.translateGeneral(\"datepicker.firstDayOfWeek\")),\n        fromDate: this.translateGeneral(\"datepicker.strings.fromDate\"),\n        toDate: this.translateGeneral(\"datepicker.strings.toDate\"),\n        todayButton: this.translateGeneral(\"datepicker.strings.todayButton\"),\n      },\n    };\n  }\n\n  @bound\n  translateAttribute(model: string, attribute: string, size?: number, disableUnbreakableRules?: boolean): string {\n    return this.translate(`attributes.${model}.${attribute}`, size, disableUnbreakableRules);\n  }\n\n  @bound\n  formatDateTime(date?: Date, options?: Intl.DateTimeFormatOptions): string {\n    return unbreakableDate(super.formatDateTime(date, { ...options, timeZone: \"Europe/Prague\" }).replace(/(^|[-/])0+/g, \"$1\"));\n  }\n\n  @bound\n  formatTime(time?: Date, options?: Intl.DateTimeFormatOptions): string {\n    return super.formatTime(time, { ...options, timeZone: \"Europe/Prague\" });\n  }\n\n  @bound\n  formatNumber(num: number, options?: Intl.NumberFormatOptions): string {\n    return formatTextWithUnbreakableRules(super.formatNumber(num, options));\n  }\n\n  @bound\n  formatPrice(price: number, currencyCode?: CurrencyCode): string {\n    if (Number(price) !== price) {\n      return \"\";\n    }\n    const priceLocaleCode = breakableHyphenWords(this.translate(\"priceLocaleCode\"));\n    if (currencyCode) {\n      const formatter = new Intl.NumberFormat(priceLocaleCode === \"priceLocaleCode\" ? \"cs-CS\" : priceLocaleCode, {\n        style: \"currency\",\n        currency: currencyCode,\n        currencyDisplay: currencyCode !== \"EUR\" ? \"symbol\" : \"code\",\n        currencySign: \"standard\",\n        minimumFractionDigits: 0,\n      });\n\n      const formatted = formatter.format(price);\n      const parts = formatter.formatToParts(price);\n      const numberPart = parts.find(part => part.type === \"integer\")?.value || \"\";\n      const currencyPart = parts.find(part => part.type === \"currency\")?.value || \"\";\n\n      if (formatted.startsWith(currencyPart)) {\n        const numberOnly = formatted.replace(currencyPart, \"\").trim();\n        return unbreakableSpaces(`${numberOnly} ${currencyPart}`);\n      }\n\n      return unbreakableSpaces(formatted);\n    }\n\n    const formatter = new Intl.NumberFormat(priceLocaleCode === \"priceLocaleCode\" ? \"cs-CS\" : priceLocaleCode, {\n      style: \"currency\",\n      currency: \"CZK\",\n      minimumFractionDigits: 0,\n    });\n\n    return unbreakableSpaces(formatter.format(price));\n  }\n\n  @action.bound\n  formatDate(date?: Date, options?: Intl.DateTimeFormatOptions): string {\n    return super.formatDate(date, options).replace(/\\.(?!\\s)/g, \".\\u00a0\");\n  }\n\n  @action.bound\n  changeLocale() {\n    this.initialize();\n  }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"roadLayerSelection_container__1QFeq\",\"content\":\"roadLayerSelection_content__NzCEU\",\"checkboxGroup\":\"roadLayerSelection_checkboxGroup__suVel\",\"checkbox\":\"roadLayerSelection_checkbox__3b9sR\",\"freeCheckbox\":\"roadLayerSelection_freeCheckbox__q4PuN\",\"paidCheckbox\":\"roadLayerSelection_paidCheckbox__jRGWf\",\"radioGroup\":\"roadLayerSelection_radioGroup__39_Yv\",\"col\":\"roadLayerSelection_col__2h6AD\"};","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport ChargeOverlapResponse from \"./chargeOverlapResponse\";\nimport ChargeOverlapType from \"./chargeOverlapType\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ProposedChargeValidityResponse {\n  /**\n   * Calculated proposed valid since based on requested validity and charge overlaps.\n   */\n  @observable\n  @Type(() => Date)\n  validSince!: Date;\n\n  /**\n   * Calculated valid until based on requested validity and charge overlaps.\n   */\n  @observable\n  @Type(() => Date)\n  validUntil!: Date;\n\n  /**\n   * Existing overlapping charges for proposed validity - max 3 most relevant overlaps.\n   */\n  @observable\n  @Type(() => ChargeOverlapResponse)\n  overlappingCharges?: ChargeOverlapResponse[];\n\n  /**\n   * Charge overlaps for proposed validity.\n   */\n  @observable\n  overlapTypes?: ChargeOverlapType[];\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport ChargeOverlapResponse from \"./chargeOverlapResponse\";\nimport ChargeOverlapType from \"./chargeOverlapType\";\nimport ProposedChargeValidityResponse from \"./proposedChargeValidityResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargeValidityInstructionsResponse {\n  /**\n   * Calculated valid since based on requested validity.\n   */\n  @observable\n  @Type(() => Date)\n  validSince!: Date;\n\n  /**\n   * Calculated valid until based on requested validity.\n   */\n  @observable\n  @Type(() => Date)\n  validUntil!: Date;\n\n  @observable\n  @Type(() => ProposedChargeValidityResponse)\n  proposedValidity?: ProposedChargeValidityResponse;\n\n  /**\n   * Existing overlapping charges - max 3 most relevant overlaps.\n   */\n  @observable\n  @Type(() => ChargeOverlapResponse)\n  overlappingCharges?: ChargeOverlapResponse[];\n\n  /**\n   * Charge overlaps.\n   */\n  @observable\n  overlapTypes?: ChargeOverlapType[];\n}\n","import { ConductorOneChildActive, Router, ScreenBase, HashNavigationAdapter } from \"@frui.ts/screens\";\r\nimport { interfaces } from \"inversify\";\r\nimport { computed } from \"mobx\";\r\nimport LocaleProvider from \"services/localeProvider\";\r\nimport LocalizationService from \"services/localizationService\";\r\nimport NotificationService, { NotificationType } from \"services/notificationService\";\r\nimport AppRouter from \"services/appRouter\";\r\nimport AlertViewModel, { AlertVariant } from \"./alertViewModel\";\r\nimport ChargeManagementViewModel, { ChargeManagementModuleNavigationName } from \"./chargeManagement/chargeManagementViewModel\";\r\nimport EshopViewModel from \"./eshop/eshopViewModel\";\r\nimport MultiEshopViewModel from \"./multiEshop/multiEshopViewModel\";\r\nimport ExemptionNoticeViewModel from \"./notice/exemption/exemptionNoticeViewModel\";\r\nimport LicensePlateChangeNoticeViewModel from \"./notice/licensePlateChange/licensePlateChangeNoticeViewModel\";\r\nimport OmissionNoticeViewModel from \"./notice/omission/omissionNoticeViewModel\";\r\nimport PaymentValidationViewModel from \"./paymentValidation/paymentValidationViewModel\";\r\nimport TradingPlacesViewModel from \"./tradingPlaces/tradingPlacesViewModel\";\r\nimport OutagesWidgetViewModel from \"./outages/outagesWidgetViewModel\";\r\nimport RefundRequestNoticeViewModel from \"./notice/refundRequest/refundRequestNoticeViewModel\";\r\nimport PriceListViewModel from \"./common/priceListViewModel\";\r\nimport CustomerReviewViewModel from \"./customerReview/customerReviewViewModel\";\r\n\r\nexport const ChargeManagementModuleDeeplink = \"charge/charge_management_validation\";\r\n\r\n@Router.registerRoute({\r\n  route: \"\",\r\n  children: [\r\n    EshopViewModel,\r\n    MultiEshopViewModel,\r\n    ExemptionNoticeViewModel,\r\n    OmissionNoticeViewModel,\r\n    RefundRequestNoticeViewModel,\r\n    LicensePlateChangeNoticeViewModel,\r\n    PaymentValidationViewModel,\r\n    ChargeManagementViewModel,\r\n    TradingPlacesViewModel,\r\n    PriceListViewModel,\r\n    CustomerReviewViewModel,\r\n  ],\r\n})\r\nexport default class RootViewModel extends ConductorOneChildActive<ScreenBase> {\r\n  private urlAdapter: HashNavigationAdapter;\r\n\r\n  constructor(\r\n    private localeProvider: LocaleProvider,\r\n    public localizationService: LocalizationService,\r\n    private notificationService: NotificationService,\r\n    private appRouter: AppRouter,\r\n    children: ScreenBase[]\r\n  ) {\r\n    super();\r\n    this.urlAdapter = new HashNavigationAdapter();\r\n    this.appRouter.start(this);\r\n    children.forEach(child => this.children.push(child));\r\n  }\r\n\r\n  static Factory({ container }: interfaces.Context) {\r\n    return (children: interfaces.ServiceIdentifier<ScreenBase>[]) =>\r\n      new RootViewModel(\r\n        container.get(LocaleProvider),\r\n        container.get(LocalizationService),\r\n        container.get(NotificationService),\r\n        container.get(AppRouter),\r\n        children.map(child => container.get(child))\r\n      );\r\n  }\r\n\r\n  protected async onInitialize() {\r\n    await this.urlAdapter.start(this);\r\n    if (!this.activeChild && this.children.length) {\r\n      return this.tryActivateChild(this.children[0]);\r\n    }\r\n  }\r\n\r\n  @computed get language() {\r\n    return this.localeProvider.locale;\r\n  }\r\n\r\n  set language(locale: string) {\r\n    this.localeProvider.changeLocale(locale);\r\n  }\r\n\r\n  @computed\r\n  get languages() {\r\n    return this.localeProvider.locales.map((locale: string) => ({\r\n      id: locale,\r\n      label: this.localizationService.translateGeneral(`languages.${locale}`),\r\n    }));\r\n  }\r\n\r\n  navigate(subPath: string | undefined, params: any): Promise<void> {\r\n    // Support for charge management QR code deeplink\r\n    if (subPath === ChargeManagementModuleDeeplink) {\r\n      subPath = ChargeManagementModuleNavigationName;\r\n    }\r\n\r\n    return super.navigate(subPath, params);\r\n  }\r\n\r\n  @computed\r\n  get alerts() {\r\n    const notificationTypeToAlertVariant = (type: NotificationType) => {\r\n      return {\r\n        [NotificationType.ERROR]: AlertVariant.DANGER,\r\n        [NotificationType.INFO]: AlertVariant.INFO,\r\n        [NotificationType.SUCCESS]: AlertVariant.SUCCESS,\r\n        [NotificationType.WARNING]: AlertVariant.WARNING,\r\n      }[type];\r\n    };\r\n\r\n    // Don´t show alerts for outage widget\r\n    if (this.activeChild instanceof OutagesWidgetViewModel) {\r\n      return [];\r\n    }\r\n\r\n    const items: AlertViewModel[] = [];\r\n\r\n    this.notificationService.notifications.forEach((notification, key) => {\r\n      let onClose;\r\n\r\n      if (!notification.permanent) {\r\n        onClose = () => {\r\n          this.notificationService.remove(key);\r\n        };\r\n      }\r\n      items.push(new AlertViewModel(notification, notificationTypeToAlertVariant(notification.type), onClose));\r\n    });\r\n\r\n    return items;\r\n  }\r\n}\r\n","import { ConductorAllChildrenActive, Router, ScreenBase } from \"@frui.ts/screens\";\nimport LocalizationService from \"../../services/localizationService\";\nimport AppRouter from \"services/appRouter\";\nimport ContactViewModel from \"../common/contactViewModel\";\nimport { action, computed, observable, reaction } from \"mobx\";\nimport * as types from \"viewModels/common/types\";\nimport SummaryViewModel from \"./summaryMultiEshopViewModel\";\nimport PaymentService from \"../../services/payment/paymentService\";\nimport React from \"react\";\nimport OutageService from \"../../services/outageService\";\nimport { getStatusSteps } from \"./multiEshopStatusSteps\";\nimport BatchOrderViewModel from \"./batchOrderViewModel\";\nimport EnumService from \"services/enumService\";\nimport ChargeOrderService from \"services/chargeOrderService\";\nimport { scrollToElement, scrollToFirstError } from \"utils/scrollTo\";\nimport { attachAutomaticBlurValidator } from \"utils/validationPatch\";\nimport { validate } from \"@frui.ts/validation\";\nimport { interfaces } from \"inversify\";\nimport ChargeOrderContactItem from \"models/chargeOrderContactItem\";\nimport {\n  EmailConfirmationValidationRules,\n  EmailNotificationValidationRules,\n  EmailValidationRules,\n  NotificationValidationRules,\n} from \"models/notificationPreferences\";\nimport { isMobile } from \"react-device-detect\";\nimport GdprInfoViewModel from \"viewModels/eshop/order/components/gdprInfoViewModel\";\n\nexport const ContactMultiEshopViewModelNavigationName = \"contact\";\n@Router.registerRoute({ name: \"contact\", route: ContactMultiEshopViewModelNavigationName })\nexport default class ContactMultiEshopViewModel extends ConductorAllChildrenActive<ScreenBase> {\n  private unsubscription: Array<() => void> = [];\n  turnstileRef: any;\n\n  tg = (code: string) => this.localizationService.translateGeneral(`multiEshop.${code}`);\n\n  @observable formElement?: HTMLFormElement;\n  @observable contactViewModel: ContactViewModel;\n  @observable summaryViewModel: SummaryViewModel;\n  @observable gdprInfoViewModel: GdprInfoViewModel;\n  @observable errorMessage?: types.ErrorMessage;\n\n  statusNavigation = getStatusSteps();\n\n  constructor(\n    public chargeOrderContactItem: ChargeOrderContactItem,\n    public localizationService: LocalizationService,\n    public outageService: OutageService,\n    public enumService: EnumService,\n    private contactViewModelFactory: ReturnType<typeof ContactViewModel.Factory>,\n    private summaryViewModelFactory: ReturnType<typeof SummaryViewModel.Factory>,\n    private gdprInfoViewModelFactory: ReturnType<typeof GdprInfoViewModel.Factory>,\n    private chargeOrderService: ChargeOrderService,\n    private paymentService: PaymentService,\n    private router: AppRouter\n  ) {\n    super();\n    this.navigationName = ContactMultiEshopViewModelNavigationName;\n    this.children.clear();\n    this.contactViewModel = this.contactViewModelFactory(this.chargeOrderContactItem, false, true);\n    this.summaryViewModel = this.summaryViewModelFactory(false, false, this.onContinue, this.onBack);\n    this.gdprInfoViewModel = this.gdprInfoViewModelFactory();\n    this.children.push(this.contactViewModel, this.summaryViewModel);\n    attachAutomaticBlurValidator(this.notificationPreferences, {\n      ...EmailValidationRules,\n      ...EmailConfirmationValidationRules,\n      ...EmailNotificationValidationRules,\n      ...NotificationValidationRules,\n    });\n  }\n\n  protected onInitialize() {\n    this.paymentService.resetRedirect();\n    this.unsubscription.push(\n      reaction(() => this.notificationPreferences._isNotificationEmailSame, this.onSameNotificationEmailChanged),\n      reaction(() => this.notificationPreferences._emailAddressNotification, this.onEmailAddressNotification),\n      reaction(() => this.notificationPreferences.emailAddress, this.onEmailAdressChanged),\n      reaction(() => this.notificationPreferences.phoneNumber, this.onPhoneNumberChanged)\n    );\n\n    super.onInitialize();\n  }\n\n  protected onDeactivate(isClosing: boolean) {\n    if (isClosing) {\n      this.unsubscription.forEach(unsubscribe => unsubscribe());\n      this.unsubscription = [];\n    }\n    return super.onDeactivate(isClosing);\n  }\n  protected async onActivate(): Promise<any> {\n    if (isMobile && this.stepper) {\n      scrollToElement(this.stepper);\n    }\n    this.chargeOrderService.chargeOrder._origin = \"multiple\";\n    this.checkStoredNotificationPreferences();\n    if (this.notificationPreferences._notificationEnabled) {\n    }\n    super.onActivate();\n  }\n\n  @computed\n  get stepper() {\n    return window.document.getElementById(\"stepper\");\n  }\n\n  @computed\n  get transferDisabled() {\n    return this.chargeOrderService.isTransferDisabled;\n  }\n\n  @computed\n  get notificationPreferences() {\n    return this.chargeOrderContactItem.notificationPreferences;\n  }\n\n  @computed\n  get onlySingleChargeType() {\n    const singleCharges = this.chargeOrderService.chargeOrderItems.filter(item => item._singleChargeType);\n    return this.chargeOrderService.chargeOrderItems.length === singleCharges.length;\n  }\n\n  private checkStoredNotificationPreferences() {\n    const chargeOrder = this.chargeOrderService.chargeOrder;\n    if (chargeOrder.emailAddress && !this.onlySingleChargeType) {\n      this.chargeOrderContactItem.notificationPreferences.emailAddress = chargeOrder.emailAddress;\n      this.chargeOrderContactItem.notificationPreferences._notificationEnabled =\n        chargeOrder.notificationPreferences._notificationEnabled;\n      this.chargeOrderContactItem.notificationPreferences._emailConfirmation =\n        chargeOrder.notificationPreferences._emailConfirmation;\n      this.chargeOrderContactItem.notificationPreferences.emailNotificationEnabled =\n        chargeOrder.notificationPreferences.emailNotificationEnabled;\n      this.chargeOrderContactItem.notificationPreferences._isNotificationEmailSame =\n        chargeOrder.notificationPreferences._isNotificationEmailSame;\n      this.chargeOrderContactItem.notificationPreferences.smsNotificationEnabled =\n        chargeOrder.notificationPreferences.smsNotificationEnabled;\n      this.chargeOrderContactItem.notificationPreferences.phoneNumber = chargeOrder.notificationPreferences.phoneNumber;\n      return;\n    }\n    if (chargeOrder.emailAddress && this.onlySingleChargeType) {\n      this.chargeOrderContactItem.notificationPreferences = chargeOrder.notificationPreferences =\n        this.chargeOrderService.resetNotificationPreferences(this.chargeOrderContactItem.notificationPreferences);\n      this.chargeOrderContactItem.notificationPreferences.emailAddress = chargeOrder.emailAddress;\n      this.chargeOrderContactItem.notificationPreferences._emailConfirmation = chargeOrder.emailAddress;\n\n      this.chargeOrderContactItem.notificationPreferences._notificationEnabled =\n        chargeOrder.notificationPreferences._notificationEnabled;\n\n      this.chargeOrderContactItem.notificationPreferences.emailNotificationEnabled =\n        chargeOrder.notificationPreferences.emailNotificationEnabled;\n      this.chargeOrderContactItem.notificationPreferences._isNotificationEmailSame =\n        chargeOrder.notificationPreferences._isNotificationEmailSame;\n      this.chargeOrderContactItem.notificationPreferences.smsNotificationEnabled =\n        chargeOrder.notificationPreferences.smsNotificationEnabled;\n      this.chargeOrderContactItem.notificationPreferences.phoneNumber = chargeOrder.notificationPreferences.phoneNumber;\n      this.chargeOrderService.persistStoredChargeOrder(chargeOrder);\n      return;\n    } else {\n      this.chargeOrderContactItem.notificationPreferences = chargeOrder.notificationPreferences =\n        this.chargeOrderService.resetNotificationPreferences(this.chargeOrderContactItem.notificationPreferences);\n      this.chargeOrderService.persistStoredChargeOrder(chargeOrder);\n    }\n  }\n\n  @action.bound\n  public onContinue() {\n    if (!this.validateAll()) {\n      return;\n    }\n    this.updateChargeOrderItem();\n    this.router.navigate(\"payment\");\n  }\n\n  @action.bound\n  public onBack() {\n    this.updateChargeOrderItem();\n    this.router.navigate(\"recap\");\n  }\n\n  @action.bound\n  private validateAll() {\n    const isValid = validate(this.chargeOrderContactItem.notificationPreferences);\n    if (!isValid) {\n      scrollToFirstError(this.formElement);\n    }\n\n    return isValid;\n  }\n\n  @action.bound\n  resetChargeOrder() {\n    this.chargeOrderService.reset();\n    this.router.navigate(BatchOrderViewModel);\n  }\n\n  @action.bound\n  onSameNotificationEmailChanged() {\n    if (this.notificationPreferences._isNotificationEmailSame) {\n      this.notificationPreferences._emailAddressNotification = this.notificationPreferences.emailAddress;\n      this.notificationPreferences.emailNotificationEnabled = true;\n      return;\n    }\n    this.notificationPreferences._emailAddressNotification = undefined;\n  }\n\n  @action.bound\n  onEmailAdressChanged() {\n    if (!this.notificationPreferences.emailAddress) {\n      this.notificationPreferences._isNotificationEmailSame = false;\n    }\n    if (this.notificationPreferences._isNotificationEmailSame) {\n      this.notificationPreferences._emailAddressNotification = this.notificationPreferences.emailAddress;\n      return;\n    }\n  }\n\n  @action.bound\n  onEmailAddressNotification() {\n    const isEmailSet =\n      this.notificationPreferences._emailAddressNotification !== undefined &&\n      this.notificationPreferences._emailAddressNotification.length > 0;\n    this.notificationPreferences.emailNotificationEnabled = isEmailSet;\n    if (this.notificationPreferences._isNotificationEmailSame) {\n      this.notificationPreferences._emailAddressNotification = this.notificationPreferences.emailAddress;\n      return;\n    }\n  }\n\n  @action.bound\n  onPhoneNumberChanged() {\n    const isPhoneNumberSet =\n      this.notificationPreferences.phoneNumber !== undefined && this.notificationPreferences.phoneNumber.length > 0;\n    this.notificationPreferences.smsNotificationEnabled = isPhoneNumberSet;\n    if (this.notificationPreferences.phoneNumber) {\n      this.contactViewModel.phoneNumberChanged = true;\n      return;\n    }\n  }\n\n  @action.bound\n  private updateChargeOrderItem() {\n    const chargeOrder = this.chargeOrderService.chargeOrder;\n    if (this.notificationPreferences.emailAddress) {\n      chargeOrder.emailAddress = this.notificationPreferences.emailAddress;\n    }\n    if (this.notificationPreferences && !this.onlySingleChargeType) {\n      chargeOrder.notificationPreferences = this.notificationPreferences;\n    }\n    this.chargeOrderService.persistStoredChargeOrder(chargeOrder);\n  }\n\n  @action.bound\n  translate(code: string) {\n    return this.localizationService.translateGeneral(`multiEshop.${code}`);\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (chargeOrderContactItem: ChargeOrderContactItem) => {\n      return new ContactMultiEshopViewModel(\n        chargeOrderContactItem,\n        container.get(LocalizationService),\n        container.get(OutageService),\n        container.get(EnumService),\n        container.get(ContactViewModel.Factory),\n        container.get(SummaryViewModel.Factory),\n        container.get(GdprInfoViewModel.Factory),\n        container.get(ChargeOrderService),\n        container.get(PaymentService),\n        container.get(AppRouter)\n      );\n    };\n  }\n}\n","import { ConductorAllChildrenActive, Router, ScreenBase } from \"@frui.ts/screens\";\nimport {\n  NOTIFICATION_SERVICE_CONNECTION_ID_UNDEFINED,\n  NOTIFICATION_SERVICE_INIT_FAILURE,\n  NOTIFICATION_SERVICE_START_FAILURE,\n  NOTIFICATION_SERVICE_STOP_FAILURE,\n  OUTAGE_ACTIVATED,\n} from \"../../repositories/order/constants\";\nimport LocalizationService from \"../../services/localizationService\";\nimport AppRouter from \"services/appRouter\";\nimport { scrollToElement, scrollToTop } from \"../../utils/scrollTo\";\nimport { action, computed, observable, reaction } from \"mobx\";\nimport * as types from \"viewModels/common/types\";\nimport SummaryViewModel from \"./summaryMultiEshopViewModel\";\nimport { PaymentType } from \"../../models/payment\";\nimport BankTransferViewModel from \"../common/payment/bankTransferViewModel\";\nimport PaymentService from \"../../services/payment/paymentService\";\nimport React from \"react\";\nimport EventBus, {\n  googlePayPayment3DSecureLoaded,\n  googlePayPaymentBrowserFingerprintLoaded,\n  googlePayPaymentStatusChanged,\n  multiEshopPaymentUpdate,\n  paymentCompleteAlert,\n  paymentFailed,\n  paymentMultiEmailAddressInvalid,\n  paymentValidSinceInvalid,\n  submitGooglePayPaymentDeferred,\n  submitGooglePayPaymentFailure,\n  submitGooglePayPaymentSuccess,\n} from \"../../services/eventBus\";\nimport { MultiEshopModuleNavigationName } from \"./multiEshopViewModel\";\nimport OutageService from \"../../services/outageService\";\nimport SelectPaymentMethodViewModel from \"../common/payment/selectPaymentMethodViewModel\";\nimport { getStatusSteps } from \"./multiEshopStatusSteps\";\nimport BatchOrderViewModel from \"./batchOrderViewModel\";\nimport StatusViewModel from \"../common/payment/statusViewModel\";\nimport PaymentResult from \"../../models/paymentResult\";\nimport * as Sentry from \"@sentry/react\";\nimport { PayGateCommonPaymentStatus } from \"models/googlePayInitPaymentResponse\";\nimport ValiditySelectViewModel from \"viewModels/eshop/order/components/validitySelectViewModel\";\nimport EnumService from \"services/enumService\";\nimport ChargeValidityRuleResponse from \"entities/chargeValidityRuleResponse\";\nimport ChargeOrderService from \"services/chargeOrderService\";\nimport ChargeOrder, { ChargeOrderStatus, ChargeOrderValidationRules } from \"models/chargeOrder\";\nimport MultiPaymentRetryViewModel from \"../common/payment/multiPaymentRetryViewModel\";\nimport { PayGatePaymentStatus } from \"models/payGatePaymentResponse\";\nimport { validate } from \"@frui.ts/validation\";\nimport { attachAutomaticBlurValidator } from \"utils/validationPatch\";\nimport { isMobile } from \"react-device-detect\";\nimport { interfaces } from \"inversify\";\nimport ChargeOrderResponse from \"entities/chargeOrderResponse\";\nimport TermsAgreementViewModel from \"viewModels/eshop/order/components/termAgreementViewModel\";\nimport ChargeOrderRepository from \"repositories/chargeOrderRepository\";\nimport TimeService from \"services/timeService\";\nimport ChargeOrderStorageRepository from \"repositories/chargeOrderStorageRepository/chargeOrderStorageRepository\";\n\nexport const PaymentMultiEshopViewModelNavigationName = \"payment\";\n\n@Router.registerRoute({ name: \"payment\", route: PaymentMultiEshopViewModelNavigationName })\nexport default class PaymentMultiEshopViewModel extends ConductorAllChildrenActive<ScreenBase> {\n  private unsubscription: Array<() => void> = [];\n  private documentPathRegex = /%documentPath%/g;\n  private idleIntervalId?: any;\n\n  readonly IDLE_TIMER_TIMEOUT = 1000 * 270;\n  readonly IDLE_PROMPT_TIMEOUT = 1000 * 30;\n  readonly IDLE_TIMER_DEBOUNCE = 250;\n\n  tg = (code: string) => this.localizationService.translateGeneral(`multiEshop.${code}`);\n\n  @observable formElement?: HTMLFormElement;\n  @observable summaryViewModel: SummaryViewModel;\n  @observable selectPaymentMethodViewModel: SelectPaymentMethodViewModel;\n  @observable termsAgreementViewModel: TermsAgreementViewModel;\n  @observable errorMessage?: types.ErrorMessage;\n  @observable showPaymentLoadingModal = false;\n  @observable showGooglePay3DSecureModal = false;\n  @observable googlePay3DSecureUrl?: string;\n  @observable chargeOrderStatus?: ChargeOrderStatus;\n  @observable isRequestBlocked = false;\n  @observable showIdleModal = false;\n  @observable idleCounter: number = 1000 * 30;\n  public validSinceSelectViewModel: ValiditySelectViewModel;\n\n  statusNavigation = getStatusSteps();\n\n  constructor(\n    public chargeOrder: ChargeOrder,\n    public localizationService: LocalizationService,\n    public outageService: OutageService,\n    public enumService: EnumService,\n    public chargeOrderService: ChargeOrderService,\n    private timeService: TimeService,\n    public repository: ChargeOrderRepository,\n    public storage: ChargeOrderStorageRepository,\n    private paymentService: PaymentService,\n    private summaryViewModelFactory: ReturnType<typeof SummaryViewModel.Factory>,\n    private selectPaymentMethodViewModelFactory: ReturnType<typeof SelectPaymentMethodViewModel.Factory>,\n    private termsAgreementViewModelFactory: ReturnType<typeof TermsAgreementViewModel.Factory>,\n    private validSinceSelectVMFactory: ReturnType<typeof ValiditySelectViewModel.Factory>,\n    public router: AppRouter,\n    private eventBus: EventBus\n  ) {\n    super();\n    this.navigationName = PaymentMultiEshopViewModelNavigationName;\n    this.eventBus.subscribe(paymentFailed, this.paymentFailed);\n    this.eventBus.subscribe(paymentValidSinceInvalid, this.paymentValidSinceInvalid);\n    this.eventBus.subscribe(paymentMultiEmailAddressInvalid, this.paymentEmailAddressInvalid);\n    this.validSinceSelectViewModel = this.validSinceSelectVMFactory(this.chargeOrderService.chargeOrderItem);\n    this.validSinceSelectViewModel.getPostponedValidityMaxDays(\n      this.timeService.currentServerTime ?? new Date(),\n      this.enumService.values(\"charge_validity_rules\") as ChargeValidityRuleResponse[]\n    );\n    attachAutomaticBlurValidator(this.chargeOrder, ChargeOrderValidationRules);\n  }\n\n  protected onInitialize() {\n    const handlePopState = () => {\n      this.resetTermsAgreement();\n    };\n\n    // Přidání listeneru pro popstate\n    window.addEventListener(\"popstate\", handlePopState);\n\n    // Uložení odregistrovací funkce\n    this.unsubscription.push(() => window.removeEventListener(\"popstate\", handlePopState));\n    this.initChildren();\n    this.paymentService.resetRedirect();\n    this.unsubscription.push(\n      this.eventBus.subscribe(submitGooglePayPaymentFailure, this.googlePayPaymentFailure),\n      this.eventBus.subscribe(submitGooglePayPaymentSuccess, this.googlePayPaymentSuccess),\n      this.eventBus.subscribe(submitGooglePayPaymentDeferred, this.googlePayPaymentDeferred),\n      this.eventBus.subscribe(googlePayPaymentBrowserFingerprintLoaded, this.googlePayPaymentBrowserFingerprintLoaded),\n      this.eventBus.subscribe(googlePayPayment3DSecureLoaded, this.googlePayPayment3DSecureLoaded),\n      this.eventBus.subscribe(googlePayPaymentStatusChanged, this.googlePayPaymentStatusChanged),\n      reaction(() => [this.chargeOrder._termsAgreement, this.chargeOrder.paymentType], this.updateChargeOrderItem)\n    );\n    super.onInitialize();\n  }\n\n  protected async onDeactivate(isClosing: boolean): Promise<void> {\n    if (isClosing) {\n      this.unsubscription.forEach(unsubscribe => unsubscribe());\n      this.unsubscription = [];\n    }\n    await super.onDeactivate(isClosing);\n  }\n\n  protected async onActivate(): Promise<any> {\n    if (isMobile && this.stepper) {\n      scrollToElement(this.stepper);\n    }\n\n    this.errorMessage = undefined;\n    this.isRequestBlocked = false;\n    this.summaryViewModel.isRequestBlocked = false;\n    this.chargeOrder._origin = \"multiple\";\n    this.checkRecapStoreData();\n\n    if (!this.chargeOrder.paymentType) {\n      this.chargeOrder.paymentType = PaymentType.PayGate;\n    }\n\n    if (this.chargeOrder.paymentType === PaymentType.Transfer && this.transferDisabled) {\n      this.chargeOrder.paymentType = PaymentType.PayGate;\n    }\n\n    this.unsubscription.push(\n      reaction(\n        () => this.chargeOrderService.isWholeOrderValid,\n        isWholeOrderValid => {\n          if (isWholeOrderValid && this.errorMessage === \"invalidData\") {\n            this.errorMessage = undefined;\n          }\n        }\n      )\n    );\n    super.onActivate();\n  }\n\n  translateAttribute(code: string) {\n    return this.localizationService.translateAttribute(\"payment\", code);\n  }\n\n  @computed\n  get stepper() {\n    return window.document.getElementById(\"stepper\");\n  }\n\n  @computed\n  get transferDisabled() {\n    return this.chargeOrderService.isTransferDisabled;\n  }\n\n  @computed\n  get isOrderComplete() {\n    return this.chargeOrderStatus === ChargeOrderStatus.Paid || this.chargeOrderStatus === ChargeOrderStatus.PaidBankTransfer;\n  }\n\n  @action.bound\n  initChildren() {\n    this.children.clear();\n    this.summaryViewModel = this.summaryViewModelFactory(true, false, this.onContinue, this.onBack);\n    this.selectPaymentMethodViewModel = this.selectPaymentMethodViewModelFactory(this.chargeOrder);\n    this.termsAgreementViewModel = this.termsAgreementViewModelFactory(this.chargeOrder);\n    this.children.push(this.selectPaymentMethodViewModel, this.termsAgreementViewModel, this.summaryViewModel);\n  }\n\n  @action.bound\n  public onBack() {\n    this.isRequestBlocked = false;\n    this.summaryViewModel.isRequestBlocked = false;\n    this.errorMessage = undefined;\n    this.chargeOrderService.persistStoredChargeOrder(this.chargeOrder);\n    this.router.navigate(\"contact\");\n  }\n\n  @action.bound\n  private resetTermsAgreement() {\n    this.chargeOrder._termsAgreement = false;\n  }\n\n  @action.bound\n  onContinue = async (errorMessage: types.ErrorMessage, paymentData?: google.payments.api.PaymentData) => {\n    this.errorMessage = undefined;\n    if (!this.chargeOrderService.validateMultiOrder() || !validate(this.chargeOrder)) {\n      return;\n    }\n\n    await this.payment(paymentData);\n  };\n\n  @action.bound\n  async getOrderStatus(id: string) {\n    const order = await this.repository.get(id);\n    this.chargeOrderStatus = order.status;\n  }\n\n  @action.bound translate(code: string) {\n    return this.localizationService.translateGeneral(`multiEshop.${code}`);\n  }\n\n  @action.bound\n  onOrderIsCompleteCheck(orderId: string) {\n    this.eventBus.publish(paymentCompleteAlert({ orderId }));\n  }\n\n  @action.bound\n  paymentLoadingModalToggle = (open: boolean) => {\n    this.showPaymentLoadingModal = open;\n  };\n\n  @action.bound\n  protected paymentFailed(event: ReturnType<typeof paymentFailed>) {\n    switch (event.payload.message) {\n      case NOTIFICATION_SERVICE_INIT_FAILURE:\n      case NOTIFICATION_SERVICE_CONNECTION_ID_UNDEFINED:\n      case NOTIFICATION_SERVICE_START_FAILURE:\n      case NOTIFICATION_SERVICE_STOP_FAILURE:\n        this.errorMessage = \"websocket\";\n        Sentry.withScope(scope => {\n          scope.setTag(\"websocket\", \"paymentFailed\");\n          const error = new Error(`Notification Service Error: ${event.payload.message}`);\n          error.name = \"NotificationServiceError\";\n          Sentry.captureException(error);\n        });\n        break;\n      case OUTAGE_ACTIVATED:\n        scrollToTop();\n        break;\n    }\n    this.paymentLoadingModalToggle(false);\n  }\n\n  @action.bound\n  protected paymentValidSinceInvalid(event: ReturnType<typeof paymentValidSinceInvalid>) {\n    this.router.navigate(BatchOrderViewModel);\n    this.paymentLoadingModalToggle(false);\n  }\n\n  @action.bound\n  protected paymentEmailAddressInvalid() {\n    this.errorMessage = \"requestProcessingFailed\";\n    this.isRequestBlocked = true;\n    this.paymentLoadingModalToggle(false);\n    scrollToTop();\n  }\n\n  @action.bound\n  checkRecapStoreData() {\n    const { paymentType, _termsAgreement } = this.chargeOrderService.chargeOrder;\n    this.chargeOrder.paymentType = paymentType;\n    this.chargeOrder._termsAgreement = _termsAgreement;\n  }\n\n  @action.bound\n  updateChargeOrderItem() {\n    const chargeOrder = this.chargeOrderService.chargeOrder;\n    const { _termsAgreement, paymentType } = this.chargeOrder;\n\n    chargeOrder.paymentType = paymentType;\n    chargeOrder._termsAgreement = _termsAgreement;\n\n    this.eventBus.publish(multiEshopPaymentUpdate({ paymentType: paymentType, termsAgreement: _termsAgreement }));\n\n    this.chargeOrderService.persistStoredChargeOrder(chargeOrder);\n  }\n\n  @action.bound\n  private payment = async (paymentData: google.payments.api.PaymentData | undefined) => {\n    this.errorMessage = undefined;\n    if (!this.chargeOrderService.validateMultiOrder()) {\n      return;\n    }\n\n    if (this.chargeOrder.paymentType === PaymentType.Transfer) {\n      await this.payOrder(this.summaryViewModel.turnstileViewModel.turnstileToken, paymentData);\n      return;\n    }\n\n    await this.payOrder(undefined, paymentData);\n  };\n\n  @action.bound\n  protected async googlePayPaymentFailure() {\n    this.paymentLoadingModalToggle(false);\n    const currentOrder = this.chargeOrderService.chargeOrder;\n    currentOrder._status = ChargeOrderStatus.Failed;\n    this.chargeOrderService.persistChargeOrder();\n    this.showGooglePay3DSecureModal = false;\n    this.googlePay3DSecureUrl = undefined;\n\n    // Check if payment retry is possible\n    if (currentOrder.id) {\n      try {\n        const payGatePayment = await this.repository.getPayGatePayment(currentOrder.id);\n        if (payGatePayment?.permittedActions?.paymentRetry?.isAllowed) {\n          // Retry is registered as a top-level sibling\n          // (#/multi_eshop/retry/<id>) — route there so the framework swaps in\n          // PaymentRetryViewModel as activeChild. No overlay state on payment.\n          this.router.navigate(MultiPaymentRetryViewModel, { orderId: currentOrder.id });\n          scrollToTop();\n          return;\n        }\n        if (payGatePayment?.status === PayGatePaymentStatus.IN_PROGRESS) {\n          currentOrder._status = ChargeOrderStatus.Deferred;\n          this.chargeOrderService.persistChargeOrder();\n          this.router.navigate(StatusViewModel, { orderId: currentOrder.id }, { result: PaymentResult.DEFERRED });\n          scrollToTop();\n          return;\n        }\n      } catch {\n        // Fall through to existing behavior\n      }\n    }\n\n    this.errorMessage = \"paymentFailure\";\n    this.initChildren();\n    scrollToTop();\n  }\n\n  @action.bound\n  protected googlePayPaymentSuccess() {\n    this.paymentLoadingModalToggle(false);\n    this.chargeOrder._status = ChargeOrderStatus.Paid;\n    this.chargeOrderService.persistChargeOrder();\n    this.showGooglePay3DSecureModal = false;\n    this.router.navigate(StatusViewModel, { orderId: this.chargeOrder.id }, { result: PaymentResult.SUCCESS });\n    scrollToTop();\n  }\n\n  @action.bound\n  protected googlePayPaymentDeferred() {\n    this.paymentLoadingModalToggle(false);\n    this.chargeOrder._status = ChargeOrderStatus.Deferred;\n    this.chargeOrderService.persistChargeOrder();\n    this.showGooglePay3DSecureModal = false;\n    this.router.navigate(StatusViewModel, { orderId: this.chargeOrder.id }, { result: PaymentResult.DEFERRED });\n    scrollToTop();\n  }\n\n  @action.bound\n  protected googlePayPaymentBrowserFingerprintLoaded() {\n    return this.paymentService.confirmGooglePayPayment(this.chargeOrder.id);\n  }\n\n  @action.bound\n  protected googlePayPayment3DSecureLoaded(result: { payload: { url: string } }) {\n    this.paymentLoadingModalToggle(false);\n    this.showGooglePay3DSecureModal = true;\n    this.googlePay3DSecureUrl = result.payload.url;\n  }\n\n  @action.bound\n  googlePayPaymentStatusChanged(result: { payload: { status: PayGateCommonPaymentStatus } }) {\n    if (result.payload.status != PayGateCommonPaymentStatus.IN_PROGRESS) {\n      this.paymentService.finalizeGooglePayPayment(result.payload.status);\n    }\n  }\n\n  @action.bound\n  resetChargeOrder() {\n    this.chargeOrderService.reset();\n    this.router.navigate(BatchOrderViewModel);\n  }\n\n  @action.bound\n  async handleRetryOnIdle() {\n    if (this.showIdleModal) return;\n    this.idleCounter = this.IDLE_PROMPT_TIMEOUT;\n    this.showIdleModal = true;\n    this.idleIntervalId = setInterval(() => {\n      this.idleCounter = this.idleCounter - 1000;\n      if (this.idleCounter <= 0) {\n        this.onRetryIdleTimeout();\n      }\n    }, 1000);\n  }\n\n  @action.bound\n  closeRetryIdleModal() {\n    this.showIdleModal = false;\n    if (this.idleIntervalId) {\n      clearInterval(this.idleIntervalId);\n      this.idleIntervalId = undefined;\n    }\n  }\n\n  @action.bound\n  onRetryIdleTimeout() {\n    this.closeRetryIdleModal();\n    this.chargeOrderService.reset();\n    window.location.href = this.localizationService.translateGeneral(\"eshop.idle.timeoutRedirect\", undefined, true);\n  }\n\n  @action.bound\n  private payOrder = async (\n    turnstileToken: string | undefined | null,\n    paymentData: google.payments.api.PaymentData | undefined\n  ) => {\n    this.paymentLoadingModalToggle(true);\n    await this.chargeOrderService.payOrder(turnstileToken, false, async (chargeOrder: ChargeOrderResponse) => {\n      if (this.errorMessage) {\n        this.paymentLoadingModalToggle(false);\n        return;\n      }\n      await this.chargeOrderService.updateOrder(chargeOrder);\n      this.chargeOrder.id = chargeOrder.id;\n      const order = await this.chargeOrderService.chargeOrder;\n      switch (order.paymentType) {\n        case PaymentType.PayGate:\n          await this.paymentService.payGateRedirect(chargeOrder.id, MultiEshopModuleNavigationName).then(() => {\n            this.paymentLoadingModalToggle(false);\n          });\n          break;\n        case PaymentType.Transfer:\n          this.paymentLoadingModalToggle(false);\n          const orderId = this.chargeOrderService.orderPaidByBankTransfer();\n          scrollToElement(this.formElement);\n          this.router.navigate(BankTransferViewModel, { orderId });\n          break;\n        case PaymentType.GooglePay:\n          try {\n            if (paymentData === undefined) {\n              throw Error(\"payment data not defined\");\n            }\n            await this.paymentService.submitGooglePayment(chargeOrder.id, paymentData);\n          } catch (error) {\n            Sentry.captureException(error);\n            this.googlePayPaymentFailure();\n          }\n          break;\n        default:\n          this.paymentLoadingModalToggle(false);\n          break;\n      }\n    });\n  };\n\n  static Factory({ container }: interfaces.Context) {\n    return (chargeOrder: ChargeOrder) =>\n      new PaymentMultiEshopViewModel(\n        chargeOrder,\n        container.get(LocalizationService),\n        container.get(OutageService),\n        container.get(EnumService),\n        container.get(ChargeOrderService),\n        container.get(TimeService),\n        container.get(ChargeOrderRepository),\n        container.get(ChargeOrderStorageRepository),\n        container.get(PaymentService),\n        container.get(SummaryViewModel.Factory),\n        container.get(SelectPaymentMethodViewModel.Factory),\n        container.get(TermsAgreementViewModel.Factory),\n        container.get(ValiditySelectViewModel.Factory),\n        container.get(AppRouter),\n        container.get(EventBus)\n      );\n  }\n}\n","import { observable } from \"mobx\";\nimport \"reflect-metadata\";\nimport { EntityValidationRules } from \"services/validationService\";\nimport { IVehicle } from \"./types\";\n\nexport const LicensePlateValidationRules: EntityValidationRules<IVehicle> = {\n  licensePlate: {\n    hasRequiredLength: { min: 1, max: 10 },\n    isLicensePlate: true,\n  },\n};\n\nexport const LicensePlateConfirmationValidationRules: EntityValidationRules<ChargeOrderLicenseItem> = {\n  _licensePlateConfirmation: {\n    equalWith: { property: \"licensePlate\" as const },\n    hasRequiredLength: { min: 1, max: 10 },\n    isLicensePlate: true,\n  },\n};\n\nexport const CountryIdValidationRules: EntityValidationRules<IVehicle> = {\n  countryId: { required: \"requiredCountryId\" },\n};\n\nexport default class ChargeOrderLicenseItem {\n  @observable licensePlate?: string;\n\n  @observable countryId?: string;\n\n  @observable _licensePlateConfirmation?: string;\n\n  @observable _showCountryWarning: boolean;\n\n  constructor(\n    licensePlate: string | undefined,\n    _licensePlateConfirmation: string | undefined,\n    countryId: string | undefined,\n    showCountryWarning = false\n  ) {\n    this.licensePlate = licensePlate;\n    this._licensePlateConfirmation = _licensePlateConfirmation;\n    this.countryId = countryId;\n    this._showCountryWarning = showCountryWarning;\n  }\n}\n\nexport const ChargeOrderLicenseItemValidationRules: EntityValidationRules<ChargeOrderLicenseItem> = {\n  ...LicensePlateValidationRules,\n  ...LicensePlateConfirmationValidationRules,\n  ...CountryIdValidationRules,\n};\n","import { Router, ScreenBase } from \"@frui.ts/screens\";\nimport LocalizationService from \"services/localizationService\";\nimport AppRouter from \"services/appRouter\";\nimport NiaService, { SESSION_STORAGE_NIA_REQUEST_SOURCE_KEY } from \"../../../services/NIA/niaService\";\n\nexport const NIAModuleNavigationName = \"nia\";\n\n@Router.registerRoute({ route: NIAModuleNavigationName, name: \"nia\" })\nexport default class NiaViewModel extends ScreenBase {\n  constructor(public localizationService: LocalizationService, private niaService: NiaService, private router: AppRouter) {\n    super();\n    this.navigationName = NIAModuleNavigationName;\n  }\n\n  async navigate(subPath: string | undefined, params: any) {\n    if (!params)\n      this.router.navigate(sessionStorage.getItem(SESSION_STORAGE_NIA_REQUEST_SOURCE_KEY) || \"exemption\", undefined, undefined);\n\n    const response = params.response;\n\n    this.router.navigate(sessionStorage.getItem(SESSION_STORAGE_NIA_REQUEST_SOURCE_KEY) || \"exemption\", undefined, { response });\n  }\n}\n","export default class EshopError {\n  type: string;\n  title: string;\n  requestId: string;\n\n  constructor(type: string) {\n    this.type = type;\n  }\n}\n","import LocalizationService from \"services/localizationService\";\nimport { bound } from \"@frui.ts/helpers\";\nimport ScreenBase from \"@frui.ts/screens/dist/structure/screenBase\";\nimport { interfaces } from \"inversify\";\nimport SelectPaymentMethodViewModel from \"viewModels/common/payment/selectPaymentMethodViewModel\";\nimport { ConductorAllChildrenActive } from \"@frui.ts/screens\";\nimport ChargeOrder from \"models/chargeOrder\";\n\nexport default class PaymentViewModel extends ConductorAllChildrenActive<ScreenBase> {\n  constructor(\n    public chargeOrder: ChargeOrder,\n    public localizationService: LocalizationService,\n    private selectPaymentMethodViewModelFactory: ReturnType<typeof SelectPaymentMethodViewModel.Factory>\n  ) {\n    super();\n\n    this.children.push(this.selectPaymentMethodViewModelFactory(this.chargeOrder));\n  }\n\n  @bound\n  translateGeneral(code: string) {\n    return this.localizationService.translateGeneral(`eshop.order.summary.${code}`);\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (chargeOrder: ChargeOrder) => {\n      return new PaymentViewModel(\n        chargeOrder,\n        container.get(LocalizationService),\n        container.get(SelectPaymentMethodViewModel.Factory)\n      );\n    };\n  }\n}\n","import LocalizationService from \"services/localizationService\";\nimport { computed, observable } from \"mobx\";\nimport Enum from \"models/enum\";\nimport EnumService from \"services/enumService\";\nimport ChargeTypesService from \"services/chargeTypesService\";\nimport { bound } from \"@frui.ts/helpers\";\nimport ScreenBase from \"@frui.ts/screens/dist/structure/screenBase\";\nimport { interfaces } from \"inversify\";\nimport FuelTypeResponse from \"entities/fuelTypeResponse\";\nimport ChargeOrderService from \"services/chargeOrderService\";\nimport TimeService from \"services/timeService\";\nimport AppRouter from \"services/appRouter\";\nimport LicenseViewModel from \"../steps/licenseViewModel\";\nimport ChargeTypeViewModel from \"../steps/chargeTypeViewModel\";\nimport FuelTypeViewModel from \"../steps/fuelTypeViewModel\";\nimport ContactViewModel from \"../steps/contactViewModel\";\nimport VehicleRepository from \"repositories/vehicleRepository\";\nimport ChargeOrderInstructionsResponse from \"entities/chargeOrderInstructionsResponse\";\n\nexport type EditStep = \"licensePlate\" | \"chargeType\" | \"fuelType\" | \"validitySince\" | \"contact\";\n\nexport default class OrderRecapitulationViewModel extends ScreenBase {\n  @observable isNavigating = false;\n\n  constructor(\n    public chargeOrderService: ChargeOrderService,\n    public timeService: TimeService,\n    public localizationService: LocalizationService,\n    private enumService: EnumService,\n    private chargeTypesService: ChargeTypesService,\n    private router: AppRouter,\n    private vehicleRepository: VehicleRepository\n  ) {\n    super();\n\n    this.initCountriesEnum();\n  }\n\n  private initCountriesEnum() {\n    this.enumService.values(\"countries\");\n  }\n\n  protected async onActivate() {\n    return super.onActivate();\n  }\n\n  @computed\n  get isDifferentTimeZone() {\n    return this.timeService.isFetched && !this.timeService.isServerTimeSame;\n  }\n\n  @computed\n  get serverTime() {\n    return this.timeService.currentServerTime;\n  }\n\n  @computed\n  get chargeOrderItem() {\n    return this.chargeOrderService.chargeOrderItem;\n  }\n\n  @computed\n  get chargeOrder() {\n    return this.chargeOrderService.chargeOrder;\n  }\n\n  @computed\n  get chargeType() {\n    return this.chargeTypesService.findChargeType(this.chargeOrderItem._chargeTypeId);\n  }\n\n  @computed\n  get emptyState() {\n    return this.localizationService.translateGeneral(\"eshop.order.summary.empty\");\n  }\n\n  @computed\n  get afterValidityStart() {\n    return this.chargeOrderItem.validity.validSinceDate && this.chargeOrderItem.validity.validSinceDate < this.serverTime;\n  }\n\n  @computed\n  get vehicleSummaryInfo() {\n    void this.enumService.isEnumLoaded(\"countries\");\n    const { countryId, licensePlate } = this.chargeOrderItem;\n    const country = this.enumService.values(\"countries\").find((country: Enum) => country.id === countryId);\n\n    return countryId && licensePlate && country && country.code ? `${country.code} – ${licensePlate}` : this.emptyState;\n  }\n\n  @computed\n  get validitySinceInfo() {\n    if (this.chargeOrderItem.validity.validSinceDate !== undefined) {\n      return this.chargeOrderItem.validity.validSinceDate;\n    } else {\n      return null;\n    }\n  }\n\n  @computed\n  get validityUntilInfo() {\n    const validUntil = this.chargeOrderItem._validUntil ?? this.chargeOrderItem.validity._validUntilDate;\n    return validUntil ?? null;\n  }\n\n  @computed\n  get emailInfo() {\n    const emailAddress = this.chargeOrder.emailAddress;\n\n    return emailAddress ? emailAddress : this.emptyState;\n  }\n\n  @computed\n  get fuelTypeInfo() {\n    const fuelTypes = this.enumService.values(\"fuel_types\") as FuelTypeResponse[];\n    const fuelType = fuelTypes.find(fuelType => fuelType.id === this.chargeOrderItem._fuelTypeId)?.fuelType;\n\n    return fuelType ? this.localizationService.translateAttribute(\"fuelType\", fuelType) : this.emptyState;\n  }\n\n  @computed\n  get markSummaryInfo() {\n    if (!this.chargeType) {\n      return this.emptyState;\n    }\n    return `${this.localizationService.translateAttribute(\"chargeType\", this.chargeType.validFor)} `;\n  }\n\n  @computed\n  get priceSummaryInfo() {\n    const price = this.chargeOrderItem._priceListItems.find(\n      item => item.chargeTypeId === this.chargeOrderItem._chargeTypeId\n    )?.price;\n\n    if (!price) {\n      return this.emptyState;\n    }\n\n    return this.localizationService.formatPrice(price);\n  }\n\n  @computed\n  get price() {\n    const price = this.chargeOrderItem._priceListItems.find(\n      item => item.chargeTypeId === this.chargeOrderItem._chargeTypeId\n    )?.price;\n\n    if (!price) {\n      return undefined;\n    }\n\n    return price;\n  }\n\n  @bound\n  translate(code: string) {\n    return this.localizationService.translateGeneral(`eshop.order.summary.${code}`);\n  }\n\n  @computed\n  get hasFuelTypeLimitation() {\n    return !!this.chargeOrderItem._fuelTypeLimitation?.allowedFuelTypeId;\n  }\n\n  @computed\n  get isSmartRedirect() {\n    return true;\n  }\n\n  @computed\n  get canEditFuelType() {\n    return !this.chargeOrderService.smartRedirectFuelTypeLocked && !this.hasFuelTypeLimitation;\n  }\n\n  @bound\n  async navigateToStep(step: EditStep) {\n    switch (step) {\n      case \"licensePlate\":\n        this.router.navigate(LicenseViewModel);\n        break;\n      case \"chargeType\":\n      case \"validitySince\":\n        this.router.navigate(ChargeTypeViewModel);\n        break;\n      case \"fuelType\":\n        await this.navigateToFuelType();\n        break;\n      case \"contact\":\n        this.router.navigate(ContactViewModel);\n        break;\n    }\n  }\n\n  @bound\n  private async navigateToFuelType() {\n    const chargeOrderItem = this.chargeOrderService.chargeOrderItem;\n    const { countryId, licensePlate } = chargeOrderItem;\n\n    if (countryId && licensePlate) {\n      try {\n        this.isNavigating = true;\n        const response = await this.vehicleRepository.getChargeOrderInstruction(countryId, licensePlate);\n        if (response instanceof ChargeOrderInstructionsResponse && response.fuelTypeLimitation) {\n          chargeOrderItem._fuelTypeLimitation = response.fuelTypeLimitation;\n        } else {\n          chargeOrderItem._fuelTypeLimitation = undefined;\n        }\n        this.chargeOrderService.persistChargeOrder();\n      } catch (e) {\n        // Silence catch - continue navigation even on error\n      } finally {\n        this.isNavigating = false;\n      }\n    }\n\n    this.router.navigate(FuelTypeViewModel);\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return () => {\n      return new OrderRecapitulationViewModel(\n        container.get(ChargeOrderService),\n        container.get(TimeService),\n        container.get(LocalizationService),\n        container.get(EnumService),\n        container.get(ChargeTypesService),\n        container.get(AppRouter),\n        container.get(VehicleRepository)\n      );\n    };\n  }\n}\n","import LocalizationService from \"services/localizationService\";\nimport { action, computed, observable, reaction } from \"mobx\";\nimport { bound } from \"@frui.ts/helpers\";\nimport ScreenBase from \"@frui.ts/screens/dist/structure/screenBase\";\nimport { interfaces } from \"inversify\";\nimport ChargeOrder from \"models/chargeOrder\";\nimport ChargeOrderService from \"services/chargeOrderService\";\nimport AppRouter from \"services/appRouter\";\nimport ContactViewModel from \"../steps/contactViewModel\";\nimport { getValidationMessage } from \"@frui.ts/validation\";\nimport { attachAutomaticBlurValidator } from \"utils/validationPatch\";\nimport { NotificationValidationRules } from \"models/notificationPreferences\";\n\nexport default class NotificationPreferencesRecapViewModel extends ScreenBase {\n  @observable isExpanded = false;\n  private unsubscriptions: Array<() => void> = [];\n\n  constructor(\n    public chargeOrder: ChargeOrder,\n    private chargeOrderService: ChargeOrderService,\n    private localizationService: LocalizationService,\n    private router: AppRouter\n  ) {\n    super();\n    attachAutomaticBlurValidator(this.notificationPreferences, NotificationValidationRules);\n  }\n\n  protected onActivate() {\n    this.unsubscriptions.push(\n      reaction(() => this.notificationPreferences._notificationEnabled, this.onNotificationCheckboxChanged)\n    );\n    this.isExpanded = this.notificationPreferences._notificationEnabled;\n    return super.onActivate();\n  }\n\n  protected onDeactivate(isClosing: boolean) {\n    this.unsubscriptions.forEach(unsubscribe => unsubscribe());\n    this.unsubscriptions = [];\n    return super.onDeactivate(isClosing);\n  }\n\n  @computed\n  get notificationPreferences() {\n    return this.chargeOrder.notificationPreferences;\n  }\n\n  @computed\n  get isNotificationEnabled() {\n    return this.notificationPreferences._notificationEnabled;\n  }\n\n  @computed\n  get notificationEmail() {\n    return this.notificationPreferences._emailAddressNotification;\n  }\n\n  @computed\n  get notificationPhone() {\n    return this.notificationPreferences.phoneNumber;\n  }\n\n  @computed\n  get emptyState() {\n    return this.localizationService.translateGeneral(\"eshop.order.summary.empty\");\n  }\n\n  @computed\n  get emailValidationError() {\n    return getValidationMessage(this.notificationPreferences, \"_emailAddressNotification\");\n  }\n\n  @computed\n  get phoneValidationError() {\n    return getValidationMessage(this.notificationPreferences, \"phoneNumber\");\n  }\n\n  @computed\n  get hasValidationError() {\n    return this.isNotificationEnabled && (!!this.emailValidationError || !!this.phoneValidationError);\n  }\n\n  @computed\n  get notificationInfoText() {\n    const orderItem = this.chargeOrder.charges[0];\n    if (!orderItem) {\n      return this.localizationService.translateGeneral(\"eshop.order.notification.infoTextGeneric\");\n    }\n\n    const chargeTypeService = this.chargeOrderService[\"chargeTypeService\"];\n    const chargeType = chargeTypeService?.findChargeType(orderItem._chargeTypeId);\n\n    if (!chargeType?.notifyDaysBefore) {\n      return this.localizationService.translateGeneral(\"eshop.order.notification.infoTextGeneric\");\n    }\n\n    const countRegex = /%count%/g;\n    const daysRegex = /%days%/g;\n    const localizedDaysString =\n      chargeType.notifyDaysBefore === 2\n        ? this.localizationService.translateGeneral(\"eshop.order.contact.2days\")\n        : this.localizationService.translateGeneral(\"eshop.order.contact.days\");\n    const daysWithCount = localizedDaysString.replace(countRegex, chargeType.notifyDaysBefore.toString());\n\n    return this.localizationService.translateGeneral(\"eshop.order.notification.infoText\").replace(daysRegex, daysWithCount);\n  }\n\n  @action.bound\n  prefillNotificationEmailIfNeeded() {\n    const enabled = this.notificationPreferences._notificationEnabled;\n    const notificationEmail = this.notificationPreferences._emailAddressNotification?.trim();\n    const confirmationEmail = this.notificationPreferences.emailAddress?.trim();\n    const phoneNumber = this.notificationPreferences.phoneNumber?.trim();\n\n    this.isExpanded = enabled;\n\n    if (enabled && !notificationEmail && confirmationEmail && !phoneNumber) {\n      this.notificationPreferences._emailAddressNotification = confirmationEmail;\n      this.notificationPreferences.emailNotificationEnabled = true;\n      this.chargeOrderService.persistChargeOrder();\n    }\n  }\n\n  @action.bound\n  onNotificationCheckboxChanged() {\n    const enabled = this.notificationPreferences._notificationEnabled;\n    this.isExpanded = enabled;\n\n    if (enabled) {\n      this.prefillNotificationEmailIfNeeded();\n    } else {\n      // Clear notification data when checkbox is unchecked\n      this.notificationPreferences._emailAddressNotification = undefined;\n      this.notificationPreferences.emailNotificationEnabled = false;\n      this.notificationPreferences.phoneNumber = undefined;\n      this.notificationPreferences.smsNotificationEnabled = false;\n      this.chargeOrderService.persistChargeOrder();\n    }\n  }\n\n  @bound\n  navigateToContact() {\n    this.router.navigate(ContactViewModel);\n  }\n\n  @bound\n  translate(code: string) {\n    return this.localizationService.translateGeneral(`eshop.order.summary.${code}`);\n  }\n\n  @bound\n  translateNotification(code: string) {\n    return this.localizationService.translateGeneral(`eshop.order.notification.${code}`);\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (chargeOrder: ChargeOrder) => {\n      return new NotificationPreferencesRecapViewModel(\n        chargeOrder,\n        container.get(ChargeOrderService),\n        container.get(LocalizationService),\n        container.get(AppRouter)\n      );\n    };\n  }\n}\n","import ChargeOrder, { ChargeOrderStatus } from \"models/chargeOrder\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport { plainToClass } from \"class-transformer\";\r\nimport { mergeWith } from \"lodash\";\r\nimport { toJS } from \"mobx\";\r\n\r\nconst SESSION_STORAGE_CHARGE_ORDERS_KEY = \"charge_orders\";\r\nconst SESSION_STORAGE_CHARGE_ORDER_STATUS_KEY = \"charge_order_status\";\r\n\r\nfunction arrayMergeCustomizer(objValue: any, srcValue: any): any[] | undefined {\r\n  if (\r\n    Array.isArray(objValue) &&\r\n    Array.isArray(srcValue) &&\r\n    objValue.every((o: any) => o && o.id != null) &&\r\n    srcValue.every((o: any) => o && o.id != null)\r\n  ) {\r\n    return srcValue.map((newItem: any) => {\r\n      const oldItem = objValue.find((o: any) => o.id === newItem.id);\r\n      return oldItem ? mergeWith({}, oldItem, newItem, arrayMergeCustomizer) : newItem;\r\n    });\r\n  }\r\n}\r\nexport default class ChargeOrderStorageRepository {\r\n  getLastChargeOrder(): ChargeOrder | undefined {\r\n    return this.getChargeOrders()\r\n      .sort(\r\n        (chargeOrder1, chargeOrder2) => new Date(chargeOrder2._createdAt).getTime() - new Date(chargeOrder1._createdAt).getTime()\r\n      )\r\n      .shift();\r\n  }\r\n\r\n  getChargeOrder(id: string): ChargeOrder | undefined {\r\n    return this.getChargeOrders().find(o => o.id === id);\r\n  }\r\n\r\n  addChargeOrder(chargeOrder: ChargeOrder) {\r\n    if (!chargeOrder.id) {\r\n      chargeOrder.id = uuidv4();\r\n      chargeOrder._createdAt = new Date();\r\n    }\r\n\r\n    let chargeOrders: ChargeOrder[] = [];\r\n    const ordersString = sessionStorage.getItem(SESSION_STORAGE_CHARGE_ORDERS_KEY);\r\n    if (ordersString) {\r\n      chargeOrders = JSON.parse(ordersString) as ChargeOrder[];\r\n    }\r\n    chargeOrders.push(chargeOrder);\r\n\r\n    sessionStorage.setItem(SESSION_STORAGE_CHARGE_ORDERS_KEY, JSON.stringify(chargeOrders));\r\n  }\r\n\r\n  updateChargeOrder(chargeOrder: ChargeOrder) {\r\n    // 1) převedeme MobX instanci na čistý JS\r\n    const plainNew = toJS(chargeOrder);\r\n\r\n    // 1.5) Remove duplicate license plates from each charge\r\n    if (plainNew.charges) {\r\n      plainNew.charges.forEach((charge: any) => {\r\n        if (charge.licensePlates && Array.isArray(charge.licensePlates)) {\r\n          charge.licensePlates = [...new Set(charge.licensePlates)];\r\n        }\r\n      });\r\n    }\r\n\r\n    // 2) načteme storage\r\n    const raw = sessionStorage.getItem(SESSION_STORAGE_CHARGE_ORDERS_KEY);\r\n    const arr: any[] = raw ? JSON.parse(raw) : [];\r\n\r\n    // 3) najdeme index\r\n    const idx = arr.findIndex(o => o.id === plainNew.id);\r\n    if (idx !== -1) {\r\n      // 4a) Replace instead of merge to avoid duplication issues\r\n      arr[idx] = plainNew;\r\n    } else {\r\n      // 4b) nový záznam\r\n      if (!plainNew.id) {\r\n        plainNew.id = uuidv4();\r\n        plainNew._createdAt = new Date();\r\n      }\r\n      arr.push(plainNew);\r\n    }\r\n\r\n    // 5) uložíme zpátky\r\n    sessionStorage.setItem(SESSION_STORAGE_CHARGE_ORDERS_KEY, JSON.stringify(arr));\r\n  }\r\n\r\n  getChargeOrders() {\r\n    const raw = sessionStorage.getItem(SESSION_STORAGE_CHARGE_ORDERS_KEY);\r\n    const arr = raw ? (JSON.parse(raw) as ChargeOrder[]) : [];\r\n    return arr.map((o: any) => plainToClass(ChargeOrder, o));\r\n  }\r\n\r\n  removeChargeOrder(id: string) {\r\n    let chargeOrders = this.getChargeOrders();\r\n\r\n    chargeOrders = chargeOrders.filter(chargeOrder => chargeOrder.id !== id);\r\n\r\n    this.storeChargeOrders(chargeOrders);\r\n  }\r\n\r\n  storeChargeOrders(chargeOrders: ChargeOrder[]) {\r\n    sessionStorage.setItem(SESSION_STORAGE_CHARGE_ORDERS_KEY, JSON.stringify(chargeOrders));\r\n  }\r\n\r\n  clearChargeOrders() {\r\n    sessionStorage.removeItem(SESSION_STORAGE_CHARGE_ORDERS_KEY);\r\n  }\r\n\r\n  storeChargeStatus(status: ChargeOrderStatus) {\r\n    sessionStorage.setItem(SESSION_STORAGE_CHARGE_ORDER_STATUS_KEY, JSON.stringify(status));\r\n  }\r\n\r\n  clearChargeStatus() {\r\n    sessionStorage.removeItem(SESSION_STORAGE_CHARGE_ORDER_STATUS_KEY);\r\n  }\r\n\r\n  getChargeStatus() {\r\n    sessionStorage.getItem(SESSION_STORAGE_CHARGE_ORDER_STATUS_KEY);\r\n  }\r\n}\r\n","import { ScreenBase } from \"@frui.ts/screens\";\nimport { interfaces } from \"inversify\";\nimport { computed, observable } from \"mobx\";\nimport LocalizationService from \"services/localizationService\";\nimport { getValidationMessage } from \"utils/validationPatch\";\nimport ChargeOrderChargeItem from \"models/chargeOrderChargeItem\";\nimport ChargeTypeResponse from \"entities/chargeTypeResponse\";\nimport ChargeOrderService from \"services/chargeOrderService\";\nimport ChargeTypesService from \"services/chargeTypesService\";\nimport FuelTypeResponse from \"entities/fuelTypeResponse\";\nimport EnumService from \"services/enumService\";\nimport FuelType from \"entities/fuelType\";\n\nexport default class ChargeTypeViewModel extends ScreenBase {\n  @observable batchIndex: number | undefined;\n  @observable chargeType = new ChargeTypeResponse();\n  @observable chargeOrderChargeItemId: string | undefined;\n\n  @computed\n  get isCSLocale() {\n    return this.localizationService.locale == \"cs\";\n  }\n\n  constructor(\n    chargeType: ChargeTypeResponse,\n    public localizationService: LocalizationService,\n    public chargeOrderChargeItem: ChargeOrderChargeItem,\n    private chargeOrderService: ChargeOrderService,\n    private chargeTypesService: ChargeTypesService,\n    private enumService: EnumService,\n    chargeOrderChargeItemId: string | undefined\n  ) {\n    super();\n    this.chargeType = chargeType;\n    this.chargeOrderChargeItemId = chargeOrderChargeItemId;\n  }\n\n  @computed\n  get chargeTypeCode() {\n    return `${this.chargeType.id}`;\n  }\n\n  @computed\n  get error() {\n    return getValidationMessage(this.chargeOrderChargeItem, \"chargeTypeId\");\n  }\n\n  @computed\n  get description() {\n    return this.localizationService.translateAttribute(\"chargeType\", this.chargeType.validFor);\n  }\n\n  @computed\n  get fuelTypes() {\n    return this.enumService.values(\"fuel_types\") as FuelTypeResponse[];\n  }\n\n  @computed\n  get chargeTypes() {\n    return this.enumService.values(\"charge_types\") as ChargeTypeResponse[];\n  }\n\n  @computed\n  get price() {\n    const chargeOrderItem = this.chargeOrderService.chargeOrder.charges.length\n      ? this.chargeOrderService.chargeOrderItems.find(storageItem => storageItem.id === this.chargeOrderChargeItemId)\n      : this.chargeOrderService.chargeOrderItem;\n    if (chargeOrderItem && chargeOrderItem?._priceListItems?.length && chargeOrderItem._fuelTypeId) {\n      this.chargeType._standardPrice = chargeOrderItem?._priceListItems.find(\n        item => item.chargeTypeId === this.chargeType.id && item.fuelTypeId === chargeOrderItem._fuelTypeId\n      )?.price;\n    } else {\n      const validFuelType = this.fuelTypes.find(\n        fuelType =>\n          this.chargeTypesService.chargePriceList?.includedFuelTypeIds.includes(fuelType.id.toString()) &&\n          !fuelType.isDeleted &&\n          fuelType.fuelType === FuelType.Other\n      );\n      const validChargeType = this.chargeTypes.find(chargeType => chargeType.validFor === this.chargeType.validFor);\n      const price = this.chargeTypesService.chargePriceList.items.find(\n        item => item.chargeTypeId === validChargeType?.id && item.fuelTypeId === validFuelType?.id\n      );\n      this.chargeType._standardPrice = price?.price;\n    }\n\n    return this.localizationService.formatPrice(this.chargeType._standardPrice ?? 0);\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (chargeType: ChargeTypeResponse, chargeOrderChargeItem: ChargeOrderChargeItem, chargeOrderChargeItemId?: string) => {\n      return new ChargeTypeViewModel(\n        chargeType,\n        container.get(LocalizationService),\n        chargeOrderChargeItem,\n        container.get(ChargeOrderService),\n        container.get(ChargeTypesService),\n        container.get(EnumService),\n        chargeOrderChargeItemId\n      );\n    };\n  }\n}\n","import { ScreenBase } from \"@frui.ts/screens\";\nimport { interfaces } from \"inversify\";\nimport { action, computed, observable } from \"mobx\";\nimport LocalizationService from \"services/localizationService\";\nimport FuelType from \"entities/fuelType\";\nimport ChargeOrderFuelItem from \"models/chargeOrderFuelItem\";\nimport FuelTypeResponse from \"entities/fuelTypeResponse\";\nimport { getValidationMessage } from \"@frui.ts/validation\";\n\nexport default class FuelViewModel extends ScreenBase {\n  @observable batchIndex: number | undefined;\n  @observable fuelTypeItem = new FuelTypeResponse();\n  @observable displayTooltip = false;\n\n  constructor(\n    public localizationService: LocalizationService,\n    fuelTypeItem: FuelTypeResponse,\n    public chargeOrderFuelItem: ChargeOrderFuelItem\n  ) {\n    super();\n    this.fuelTypeItem = fuelTypeItem;\n  }\n\n  @computed\n  get isCSLocale() {\n    return this.localizationService.locale == \"cs\";\n  }\n\n  @computed\n  get chargeFuelType() {\n    return `${this.fuelTypeItem.fuelType}`;\n  }\n\n  @computed\n  get error() {\n    return getValidationMessage(this.chargeOrderFuelItem, \"fuelTypeId\");\n  }\n\n  @computed\n  get isOtherType() {\n    return this.fuelTypeItem.fuelType === FuelType.Other;\n  }\n\n  @computed\n  get isTypeWithDescription() {\n    return this.fuelTypeItem.fuelType === FuelType.NaturalGas || this.fuelTypeItem.fuelType === FuelType.PhevWithLimitedCo2;\n  }\n\n  @computed\n  get isDisabledFuelType() {\n    return (\n      this.chargeOrderFuelItem._fuelTypeLimitation &&\n      this.chargeOrderFuelItem._fuelTypeLimitation?.allowedFuelTypeId !== this.fuelTypeItem.id\n    );\n  }\n\n  @action.bound\n  translateAttribute(code: string) {\n    return this.localizationService.translateAttribute(\"fuelType\", code);\n  }\n\n  @action.bound\n  showTooltip() {\n    this.displayTooltip = true;\n  }\n  @action.bound\n  closeTooltip() {\n    this.displayTooltip = false;\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (fuelTypeItem: FuelTypeResponse, chargeOrderFuelItem: ChargeOrderFuelItem) => {\n      return new FuelViewModel(container.get(LocalizationService), fuelTypeItem, chargeOrderFuelItem);\n    };\n  }\n}\n","import LocalizationService from \"../../../../services/localizationService\";\nimport { interfaces } from \"inversify\";\nimport LegalPerson from \"../../../../models/legalPerson\";\nimport PersonViewModel from \"../personViewModel\";\n\nexport default class LegalPersonViewModel extends PersonViewModel {\n  constructor(public person: LegalPerson, protected localizationService: LocalizationService) {\n    super(person, localizationService);\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (legalPerson: LegalPerson) => new LegalPersonViewModel(legalPerson, container.get(LocalizationService));\n  }\n}\n","import PersonViewModel from \"../personViewModel\";\nimport NaturalPerson from \"../../../../models/naturalPerson\";\nimport LocalizationService from \"../../../../services/localizationService\";\nimport { interfaces } from \"inversify\";\n\nexport default class NaturalPersonViewModel extends PersonViewModel {\n  constructor(public person: NaturalPerson, protected localizationService: LocalizationService, public showBirthdate: boolean) {\n    super(person, localizationService);\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (person: NaturalPerson, showBirthdate = true) =>\n      new NaturalPersonViewModel(person, container.get(LocalizationService), showBirthdate);\n  }\n}\n","import { EntityValidationRules } from \"services/validationService\";\nimport Notice, { SignatureType } from \"./notice\";\n\nexport const NoticePowerOfAttorneyRules: EntityValidationRules<Notice> = {\n  _powerOfAttorneyFilesBase64: {\n    requiredIf: {\n      condition: (entity: Notice) =>\n        !!(\n          entity._signatureType === SignatureType.DataBox &&\n          ((entity.vehicleOperator &&\n            entity.vehicleOperator.naturalPerson &&\n            entity.vehicleOperator.naturalPerson.isRepresentedByProxy) ||\n            (entity.vehicleOperator && entity.vehicleOperator.isLegalPerson))\n        ),\n      customMessage: \"documentUploadRequired\",\n    },\n  },\n};\nexport default class Omission extends Notice {}\n","import { bound } from \"@frui.ts/helpers\";\nimport { ConductorSingleChild, ScreenBase } from \"@frui.ts/screens/dist\";\nimport { interfaces } from \"inversify\";\nimport { computed, observable, reaction } from \"mobx\";\nimport LegalPerson from \"models/legalPerson\";\nimport NaturalPerson from \"models/naturalPerson\";\nimport Notice from \"models/notice\";\nimport LocalizationService from \"services/localizationService\";\nimport LegalPersonViewModel from \"./legalPersonViewModel\";\nimport NaturalPersonViewModel from \"./naturalPersonViewModel\";\n\nexport default class OperatorViewModel extends ConductorSingleChild<ScreenBase> {\n  @observable legalPersonViewModel: LegalPersonViewModel;\n  @observable naturalPersonViewModel: NaturalPersonViewModel;\n\n  protected unsubscriptions: Array<() => void> = [];\n\n  @computed\n  get isRepresentedAsProxy() {\n    return this.operator._isRepresentedByProxy;\n  }\n\n  set isRepresentedAsProxy(isRepresentedByProxy) {\n    this.operator.isLegalPerson = false;\n    const naturalPerson = (this.operator.naturalPerson = new NaturalPerson());\n    naturalPerson.isRepresentedByProxy = isRepresentedByProxy;\n    if (!isRepresentedByProxy) {\n      naturalPerson.mailingAddress = this.notice.applicant.mailingAddress;\n      naturalPerson.fullName = this.notice.applicant.fullName;\n      naturalPerson.birthDate = this.notice.applicant.birthDate;\n    } else {\n      naturalPerson.mailingAddress = \"\";\n      naturalPerson.fullName = \"\";\n      naturalPerson.birthDate = undefined;\n    }\n\n    this.naturalPersonViewModel = this.naturalPersonInputVMFactory(naturalPerson);\n    this.legalPersonViewModel = this.legalPersonInputVMFactory(this.operator.legalPerson || new LegalPerson());\n    this.activateProperChildren();\n  }\n\n  set isLegalPerson(isLegal: boolean) {\n    this.operator.isLegalPerson = isLegal;\n    this.activateProperChildren();\n  }\n\n  @computed\n  get isLegalPerson() {\n    return this.operator.isLegalPerson;\n  }\n\n  @computed\n  get operator() {\n    return this.notice.vehicleOperator!;\n  }\n\n  constructor(\n    public notice: Notice,\n    private noticeType: \"exemption\" | \"omission\",\n    private localizationService: LocalizationService,\n    protected legalPersonInputVMFactory: ReturnType<typeof LegalPersonViewModel.Factory>,\n    protected naturalPersonInputVMFactory: ReturnType<typeof NaturalPersonViewModel.Factory>,\n    private persistNotice: () => void,\n    public showBirthdate: boolean\n  ) {\n    super();\n    this.naturalPersonViewModel = naturalPersonInputVMFactory(this.operator.naturalPerson || new NaturalPerson());\n    this.legalPersonViewModel = legalPersonInputVMFactory(this.operator.legalPerson || new LegalPerson());\n    this.unsubscriptions.push(\n      reaction(\n        () => [this.notice.applicant.fullName, this.notice.applicant.birthDate, this.notice.applicant.mailingAddress],\n        this.onApplicantChange,\n        { fireImmediately: true }\n      ),\n      reaction(\n        () => [\n          this.operator.naturalPerson?.fullName,\n          this.operator.naturalPerson?.birthDate,\n          this.operator.naturalPerson?.mailingAddress,\n        ],\n        this.persistNotice\n      ),\n      reaction(\n        () => [\n          this.operator.legalPerson?.companyName,\n          this.operator.legalPerson?.companyRegistrationNumber,\n          this.operator.legalPerson?.companyAddress,\n        ],\n        this.persistNotice\n      ),\n      reaction(() => this.operator.isLegalPerson, this.persistNotice)\n    );\n  }\n\n  protected onInitialize(): Promise<any> | void {\n    this.activateProperChildren();\n    return super.onInitialize();\n  }\n\n  protected onDeactivate(isClosing: boolean) {\n    if (isClosing) {\n      this.unsubscriptions.forEach(unsubscribe => unsubscribe());\n      this.unsubscriptions = [];\n    }\n\n    return super.onDeactivate(isClosing);\n  }\n\n  protected findNavigationChild(navigationName: string | undefined) {\n    return this.naturalPersonViewModel;\n  }\n\n  activateProperChildren() {\n    if (this.operator.isLegalPerson) {\n      this.tryActivateChild(this.legalPersonViewModel);\n    } else {\n      this.tryActivateChild(this.naturalPersonViewModel);\n    }\n  }\n\n  @bound\n  onApplicantChange() {\n    const naturalPerson = this.operator.naturalPerson;\n    if (!this.isRepresentedAsProxy && naturalPerson) {\n      naturalPerson.mailingAddress = this.notice.applicant.mailingAddress;\n      naturalPerson.fullName = this.notice.applicant.fullName;\n      naturalPerson.birthDate = this.notice.applicant.birthDate;\n    }\n    this.persistNotice();\n  }\n\n  @bound\n  translate(code: string, size?: number) {\n    return this.localizationService.translateGeneral(`${this.noticeType}.${code}`, size);\n  }\n\n  @bound\n  translateGeneral(code: string, size?: number) {\n    return this.localizationService.translateGeneral(code, size);\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (notice: Notice, noticeType: \"exemption\" | \"omission\", persistNotice: () => void, showBirthdate = true) =>\n      new OperatorViewModel(\n        notice,\n        noticeType,\n        container.get(LocalizationService),\n        container.get(LegalPersonViewModel.Factory),\n        container.get(NaturalPersonViewModel.Factory),\n        persistNotice,\n        showBirthdate\n      );\n  }\n}\n","// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nenum SourceType {\n  Eshop = \"ESHOP\",\n  Kiosk = \"KIOSK\",\n  Salespoint = \"SALESPOINT\",\n  ExternalDistribution = \"EXTERNAL_DISTRIBUTION\",\n}\nexport default SourceType;\n","import { observable } from \"mobx\";\nimport type { EntityValidationRules } from \"services/validationService\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\n\nexport const EmailValidationRules: EntityValidationRules<NotificationPreferencesResponse> = {\n  emailAddress: {\n    isEmail: true,\n  },\n};\n\nexport const EmailConfirmationValidationRules: EntityValidationRules<NotificationPreferencesResponse> = {\n  _emailConfirmation: {\n    equalWith: { property: \"emailAddress\" as const },\n    isEmail: true,\n  },\n};\n\nexport const EmailNotificationValidationRules: EntityValidationRules<NotificationPreferencesResponse> = {\n  _emailAddressNotification: {\n    equalWith: { property: \"emailAddress\" as const },\n    isEmail: true,\n  },\n};\nexport default class NotificationPreferencesResponse {\n  /**\n   * Phone number.\n   */\n  @observable\n  phoneNumber?: string;\n\n  /**\n   * E-mail address.\n   */\n  @observable\n  emailAddress?: string;\n\n  /**\n   * If true - user is notified before the expiration of a charge by e-mail.\n   */\n  @observable\n  emailNotificationEnabled?: boolean;\n\n  /**\n   * If true - user is notified before the expiration of a charge by SMS.\n   */\n  @observable\n  smsNotificationEnabled?: boolean;\n\n  @observable\n  _emailAddressNotification?: string;\n\n  @observable\n  _isNotificationEmailSame = false;\n\n  @observable\n  _emailConfirmation?: string;\n\n  @observable\n  _notificationEnabled = false;\n}\n\nexport const NotificationValidationRules: EntityValidationRules<NotificationPreferencesResponse> = {\n  emailAddress: {\n    isEmail: true,\n  },\n  _emailConfirmation: {\n    equalWith: { property: \"emailAddress\" as const },\n    isEmail: true,\n  },\n  _emailAddressNotification: {\n    requiredIf: {\n      condition: (entity: NotificationPreferencesResponse) => !entity.phoneNumber && entity._notificationEnabled,\n      customMessage: \"requiredContact\",\n    },\n    isEmail: {\n      required: false,\n    },\n  },\n  phoneNumber: {\n    requiredIf: {\n      condition: (entity: NotificationPreferencesResponse) => !entity._emailAddressNotification && entity._notificationEnabled,\n      customMessage: \"requiredContact\",\n    },\n    isPhoneNumber: {\n      required: false,\n    },\n  },\n};\n","import { observable } from \"mobx\";\nimport FuelTypeLimitationReason from \"./fuelTypeLimitationReason\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class FuelTypeLimitationResponse {\n  /**\n   * Allowed fuel type ID.\n   */\n  @observable\n  allowedFuelTypeId!: string;\n\n  @observable\n  limitationReason!: FuelTypeLimitationReason;\n}\n","import { bound } from \"@frui.ts/helpers\";\n\ntype Action = () => Promise<void>;\n\nclass RequestRecoveryService {\n  static MAX_TRIES = 5;\n  static TIMEOUT_BETWEEN_STEPS = 2000;\n  private runningTimeouts = new Map<string, NodeJS.Timeout>();\n  private plannedActions = new Map<string, Action>();\n\n  constructor() {\n    window.addEventListener(\"online\", this.onBecomeOnline);\n  }\n\n  @bound\n  private onBecomeOnline() {\n    this.plannedActions.forEach((action, name) => {\n      action()\n        .then(() => this.cancelTask(name))\n        .catch(() => this.addTask(name, action));\n    });\n  }\n\n  private performTask(name: string, action: Action, failedCounter: number) {\n    if (!navigator.onLine) {\n      this.runningTimeouts.delete(name);\n      this.plannedActions.set(name, action);\n      return;\n    } else if (navigator.onLine && failedCounter < RequestRecoveryService.MAX_TRIES) {\n      this.plannedActions.delete(name);\n      this.runningTimeouts.set(\n        name,\n        setTimeout(\n          () =>\n            action()\n              .then(() => this.cancelTask(name))\n              .catch(() => {\n                this.performTask(name, action, failedCounter + 1);\n              }),\n          (failedCounter + 1) * RequestRecoveryService.TIMEOUT_BETWEEN_STEPS\n        )\n      );\n      return;\n    } else {\n      this.cancelTask(name);\n      return;\n    }\n  }\n\n  addTask(name: string, action: Action) {\n    this.performTask(name, action, 0);\n  }\n\n  cancelTask(name: string) {\n    this.plannedActions.delete(name);\n    if (this.runningTimeouts.has(name)) {\n      clearTimeout(this.runningTimeouts.get(name) as NodeJS.Timeout);\n      this.runningTimeouts.delete(name);\n    }\n  }\n}\n\nconst requestRecoveryService = new RequestRecoveryService();\nexport default requestRecoveryService;\n\n/**\n * It can be used as a decorator of an asynchronous method which it will try to call again if it fails\n */\nexport function repeatIfFailed(target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n  const originalFunction = descriptor.value;\n\n  descriptor.value = function (this: any, ...args: any[]) {\n    const result = originalFunction.apply(this, args);\n\n    if (result) {\n      result\n        .then(() => {\n          requestRecoveryService.cancelTask(propertyKey);\n        })\n        .catch((error: any) => {\n          requestRecoveryService.addTask(propertyKey, () => originalFunction.apply(this));\n        });\n    }\n\n    return result;\n  };\n}\n","import { Type } from \"class-transformer\";\n\nexport class NiaAddress {\n  houseNumber?: string;\n  streetName?: string;\n  postalCode?: string;\n  municipality?: string;\n}\n\nexport default class NiaResponse {\n  dateOfBirth?: Date;\n  firstName?: string;\n  lastName?: string;\n  @Type(() => NiaAddress)\n  address?: NiaAddress;\n}\n","import { classToPlain } from \"class-transformer\";\nimport { toJS } from \"mobx\";\nimport Notice from \"../models/notice\";\n\nexport default function serializeNotice(notice: Notice) {\n  return JSON.stringify(\n    classToPlain(toJS(notice), {\n      excludePrefixes: [\"__\"],\n    }),\n    function replacer(key, value) {\n      if (key === \"base64\") {\n        return undefined;\n      }\n      return value;\n    }\n  );\n}\n","import { bound } from \"@frui.ts/helpers\";\r\nimport { ConductorAllChildrenActive, ScreenBase } from \"@frui.ts/screens\";\r\nimport { getValidationMessage, hasValidation, IHasValidation, validate, validateAll } from \"@frui.ts/validation\";\r\nimport { action, computed, observable, reaction } from \"mobx\";\r\nimport LicensePlateChange from \"models/licensePlateChange\";\r\nimport NiaResponse from \"models/niaResponse\";\r\nimport { PersistedBase64, SignatureType } from \"models/notice\";\r\nimport printJS from \"print-js\";\r\nimport { FileRejection } from \"react-dropzone\";\r\nimport EnumService from \"services/enumService\";\r\nimport EventBus, { NIARedirectFailure } from \"services/eventBus\";\r\nimport ISDSService, { SESSION_STORAGE_ISDS_REQUEST_SOURCE_KEY } from \"services/ISDS/isdsService\";\r\nimport LocalizationService from \"services/localizationService\";\r\nimport NiaService, { Notice, SESSION_STORAGE_NIA_REQUEST_SOURCE_KEY } from \"services/NIA/niaService\";\r\nimport AppRouter from \"services/appRouter\";\r\nimport Order from \"models/order\";\r\nimport Person from \"models/person\";\r\nimport { blobToBase64 } from \"utils/base64\";\r\nimport format from \"date-fns-tz/format\";\r\nimport Omission from \"models/omission\";\r\nimport ExemptionService from \"services/exemptionService\";\r\nimport OmissionService from \"services/omissionService\";\r\nimport LicensePlateChangeService from \"services/licensePlateChangeService\";\r\nimport { scrollToFirstError } from \"utils/scrollTo\";\r\nimport { attachAutomaticBlurValidator } from \"utils/validationPatch\";\r\nimport { czechID, MAX_FILE_SIZE_IN_BYTES } from \"config\";\r\nimport { deleteFile, getFile, setFile } from \"data/indexedDbConnector\";\r\nimport { createFileFromBlob } from \"utils/fileUtils\";\r\nimport OutageService from \"services/outageService\";\r\nimport { SystemComponent } from \"models/outage\";\r\nimport OutagesViewModel from \"../common/outagesViewModel\";\r\nimport RefundRequestService from \"services/refundRequestService\";\r\nimport RefundRequestNotice from \"models/refundRequestNotice\";\r\nimport Exemption from \"models/exemption\";\r\n\r\nexport type NoticeTypes = Exemption | Omission | LicensePlateChange | RefundRequestNotice;\r\n\r\nexport default abstract class NoticeViewModel extends ConductorAllChildrenActive<ScreenBase> {\r\n  protected async persistNotice() {\r\n    if (this.notice._noticeBase64) {\r\n      await this.addFile(this.notice._noticeBase64);\r\n    }\r\n  }\r\n\r\n  abstract translateGeneral(code: string, disableUnbreakableRules: boolean): string;\r\n  abstract translateAttribute(code: string): string;\r\n  protected abstract createChildren(): void;\r\n  outagesViewModel: OutagesViewModel;\r\n  @observable formElement?: HTMLFormElement;\r\n  @observable showLoadingModal = false;\r\n  @observable errorMessage?: string;\r\n  @observable rejectedPowerOfAttorneyFiles: File[] = [];\r\n  @observable rejectedTechnicalLicenseFiles: File[] = [];\r\n\r\n  private errorCodeRegexp = new RegExp(/%code%/g);\r\n  private UNKNOWN_ERROR_CODE = \"unknown\";\r\n\r\n  protected unsubscriptions: Array<() => void> = [];\r\n\r\n  @computed\r\n  get notice(): NoticeTypes {\r\n    throw Error(\"Incomplete implementation\");\r\n  }\r\n\r\n  @computed\r\n  get allowedFileTypes() {\r\n    return [\r\n      \".pdf\",\r\n      \".txt\",\r\n      \".cer\",\r\n      \".crt\",\r\n      \".csv\",\r\n      \".der\",\r\n      \".doc\",\r\n      \".docx\",\r\n      \".edi\",\r\n      \".fo\",\r\n      \".gif\",\r\n      \".htm\",\r\n      \".html\",\r\n      \".isdoc\",\r\n      \".isdocx\",\r\n      \".jfif\",\r\n      \".jpeg\",\r\n      \".jpg\",\r\n      \".json\",\r\n      \".mp2\",\r\n      \".mp3\",\r\n      \".mpeg\",\r\n      \".mpeg1\",\r\n      \".mpeg2\",\r\n      \".mpg\",\r\n      \".odp\",\r\n      \".ods\",\r\n      \".odt\",\r\n      \".p7b\",\r\n      \".p7c\",\r\n      \".p7f\",\r\n      \".p7m\",\r\n      \".p7s\",\r\n      \".pk7\",\r\n      \".png\",\r\n      \".ppt\",\r\n      \".pptx\",\r\n      \".rtf\",\r\n      \".tif\",\r\n      \".tiff\",\r\n      \".tsr\",\r\n      \".tst\",\r\n      \".wav\",\r\n      \".xls\",\r\n      \".xlsx\",\r\n      \".xml\",\r\n      \".zfo\",\r\n    ];\r\n  }\r\n\r\n  @computed\r\n  get isdsHasActiveOutage() {\r\n    const outage = this.outageService.isdsActiveOutage;\r\n\r\n    return outage !== undefined;\r\n  }\r\n\r\n  constructor(\r\n    public localizationService: LocalizationService,\r\n    protected enumService: EnumService,\r\n    protected niaService: NiaService,\r\n    protected isdsService: ISDSService,\r\n    protected outageService: OutageService,\r\n    protected eventBus: EventBus,\r\n    protected service: ExemptionService | OmissionService | LicensePlateChangeService | RefundRequestService,\r\n    protected router: AppRouter,\r\n    protected outagesViewModelFactory: ReturnType<typeof OutagesViewModel.Factory>\r\n  ) {\r\n    super();\r\n    this.navigationName = \"notice\";\r\n    this.eventBus.subscribe(NIARedirectFailure, this.niaOperationFailed);\r\n    this.outagesViewModel = this.outagesViewModelFactory(SystemComponent.ISDS);\r\n    this.attachValidators();\r\n  }\r\n\r\n  protected async onInitialize(): Promise<any> {\r\n    return super.onInitialize();\r\n  }\r\n\r\n  protected onDeactivate(isClosing: boolean) {\r\n    if (isClosing) {\r\n      this.unsubscriptions.forEach(unsubscribe => unsubscribe());\r\n      this.unsubscriptions = [];\r\n    }\r\n\r\n    return super.onDeactivate(isClosing);\r\n  }\r\n\r\n  protected async onActivate() {\r\n    await this.loadFiles();\r\n\r\n    this.unsubscriptions.push(\r\n      reaction(() => this.notice.applicant.mailingAddress, this.persistNotice),\r\n      reaction(() => this.notice.applicant.birthDate, this.persistNotice),\r\n      reaction(() => this.notice.applicant.fullName, this.persistNotice),\r\n      reaction(\r\n        () => this.notice.applicant.phoneNumber,\r\n        number => {\r\n          if (number === null) this.notice.applicant.phoneNumber = undefined;\r\n\r\n          this.persistNotice();\r\n        }\r\n      ),\r\n      reaction(\r\n        () => this.notice.applicant.emailAddress,\r\n        emailAddress => {\r\n          if (emailAddress === \"\") this.notice.applicant.emailAddress = undefined;\r\n\r\n          this.persistNotice();\r\n        }\r\n      ),\r\n      reaction(\r\n        () => this.notice._signatureType,\r\n        () => {\r\n          this.createChildren();\r\n          this.persistNotice();\r\n        }\r\n      ),\r\n      reaction(() => this.notice.vehicle?.licensePlate, this.persistNotice),\r\n      reaction(() => this.notice.vehicle?.countryId, this.persistNotice),\r\n      reaction(\r\n        () => this.isNoticeValid,\r\n        isValid => {\r\n          if (isValid && this.errorMessage) {\r\n            this.errorMessage = undefined;\r\n          }\r\n        }\r\n      ),\r\n      reaction(() => this.isdsHasActiveOutage, this.onISDSOutageChanged)\r\n    );\r\n\r\n    return super.onActivate();\r\n  }\r\n\r\n  @action.bound\r\n  async cancel() {\r\n    this.service.reset();\r\n    this.attachValidators();\r\n    this.createChildren();\r\n    await this.persistNotice();\r\n    this.rejectedPowerOfAttorneyFiles = [];\r\n    this.rejectedTechnicalLicenseFiles = [];\r\n    this.errorMessage = undefined;\r\n  }\r\n\r\n  @bound\r\n  showBirthdate() {\r\n    return true;\r\n  }\r\n\r\n  @bound\r\n  protected async ISDSSessionIdHandler(data: { type: string; payload: { sessionId: string } }) {\r\n    this.creationLoadingModalToggle(true);\r\n    if (!sessionStorage.getItem(SESSION_STORAGE_ISDS_REQUEST_SOURCE_KEY)) {\r\n      this.creationLoadingModalToggle(false);\r\n      return;\r\n    }\r\n\r\n    sessionStorage.removeItem(SESSION_STORAGE_ISDS_REQUEST_SOURCE_KEY);\r\n    if (!this.notice._noticeBase64) {\r\n      this.creationLoadingModalToggle(false);\r\n      return;\r\n    }\r\n\r\n    await this.loadFiles();\r\n\r\n    await this.uploadDocuments(data.payload.sessionId, [\r\n      this.notice._noticeBase64,\r\n      ...this.notice._powerOfAttorneyFilesBase64,\r\n      ...this.notice._technicalLicenseFilesBase64,\r\n    ]);\r\n  }\r\n\r\n  @bound\r\n  protected NiaResponseHandler(data: { type: string; payload: { niaResponse: NiaResponse } }) {\r\n    sessionStorage.removeItem(SESSION_STORAGE_NIA_REQUEST_SOURCE_KEY);\r\n    const { niaResponse } = data.payload;\r\n    if (niaResponse.dateOfBirth) {\r\n      this.notice.applicant.birthDate = new Date(niaResponse.dateOfBirth);\r\n    }\r\n\r\n    this.notice.applicant.fullName = `${niaResponse.firstName ? niaResponse.firstName + \" \" : \"\"}${\r\n      niaResponse.lastName ? niaResponse.lastName : \"\"\r\n    }`\r\n      .toLowerCase()\r\n      .split(/ /g)\r\n      .map(word => `${word.substring(0, 1).toUpperCase()}${word.substring(1)}`)\r\n      .join(\" \");\r\n\r\n    if (niaResponse.address) {\r\n      this.notice.applicant.mailingAddress = this.formatAddress(\r\n        niaResponse.address.streetName,\r\n        niaResponse.address.houseNumber,\r\n        niaResponse.address.postalCode,\r\n        niaResponse.address.municipality\r\n      );\r\n    }\r\n\r\n    this.persistNotice();\r\n  }\r\n\r\n  private formatAddress = (streetName?: string, houseNumber?: string, postalCode?: string, municipality?: string) =>\r\n    `${streetName ? streetName : \"\"}${houseNumber ? \" \" + houseNumber : \"\"}${postalCode || municipality ? \",\" : \"\"}${\r\n      postalCode ? \" \" + postalCode : \"\"\r\n    }${municipality ? \" \" + municipality : \"\"}`;\r\n\r\n  protected attachValidators() {\r\n    attachAutomaticBlurValidator(this.notice.applicant, {\r\n      ...this.notice.applicant.rules,\r\n    });\r\n  }\r\n\r\n  filesSizeErrorMessage() {\r\n    let isErrorsVisible = true;\r\n    const sizeOfPowerOfAttorneyFiles = this.notice._powerOfAttorneyFilesBase64.reduce((acc, file) => acc + file.fileSize, 0);\r\n    const sizeOfTechnicalLicenceFiles = this.notice._technicalLicenseFilesBase64.reduce((acc, file) => acc + file.fileSize, 0);\r\n    const totalFilesSize = sizeOfPowerOfAttorneyFiles + sizeOfTechnicalLicenceFiles;\r\n\r\n    if (hasValidation(this.notice)) {\r\n      isErrorsVisible = this.notice.__validation.isErrorsVisible;\r\n    }\r\n\r\n    if (isErrorsVisible && this.documentsUploadEnabled && totalFilesSize >= MAX_FILE_SIZE_IN_BYTES) {\r\n      return this.localizationService.translateGeneral(\"documentUploader.maxFilesSizeExceedExceed\");\r\n    }\r\n\r\n    return undefined;\r\n  }\r\n\r\n  @bound\r\n  protected validateNotice() {\r\n    let validVehicleOperator = true;\r\n    if (this.notice.vehicleOperator && this.notice.vehicleOperator._isRepresentedByProxy) {\r\n      validVehicleOperator = validate(\r\n        this.notice.vehicleOperator.isLegalPerson\r\n          ? this.notice.vehicleOperator.legalPerson\r\n          : this.notice.vehicleOperator.naturalPerson\r\n      );\r\n    }\r\n\r\n    const validNotice = validateAll([this, this.notice, this.notice.vehicle, this.notice.applicant]);\r\n    let validAttachmentsSizeLimit = true;\r\n    if (this.filesSizeErrorMessage() !== undefined) {\r\n      validAttachmentsSizeLimit = false;\r\n    }\r\n\r\n    const validationResult = validNotice && validVehicleOperator && validAttachmentsSizeLimit;\r\n\r\n    if (!validationResult) {\r\n      this.errorMessage = this.translateError(\"invalidData\");\r\n      scrollToFirstError(this.formElement);\r\n    }\r\n\r\n    return validationResult;\r\n  }\r\n\r\n  @computed\r\n  get isNoticeValid() {\r\n    const isNoticeValid = (this.notice as any as IHasValidation<Order>).__validation?.isValid;\r\n    const isVehicleValid = (this.notice.vehicle as any as IHasValidation<Order>).__validation?.isValid;\r\n    const isApplicantValid = (this.notice.applicant as any as IHasValidation<Order>).__validation?.isValid;\r\n    const isAttachmentsValid = this.filesSizeErrorMessage() === undefined;\r\n    let isVehicleOperatorValid = true;\r\n    if (this.notice.vehicleOperator && this.notice.vehicleOperator._isRepresentedByProxy) {\r\n      const operatorPerson = this.notice.vehicleOperator.isLegalPerson\r\n        ? this.notice.vehicleOperator.legalPerson\r\n        : this.notice.vehicleOperator.naturalPerson;\r\n      isVehicleOperatorValid = (operatorPerson as any as IHasValidation<Person>).__validation?.isValid;\r\n    }\r\n\r\n    return isNoticeValid && isVehicleValid && isApplicantValid && isAttachmentsValid && isVehicleOperatorValid;\r\n  }\r\n\r\n  @action.bound\r\n  protected generalOperationFailed(error: { type: string; payload: { type: string } }) {\r\n    this.creationLoadingModalToggle(false);\r\n  }\r\n\r\n  @action.bound\r\n  protected isdsOperationFailed(error: { type: string; payload: { type: string } }) {\r\n    this.creationLoadingModalToggle(false);\r\n    this.errorMessage = this.translateError(\"isds\");\r\n  }\r\n\r\n  @action.bound\r\n  protected isdsConceptFailure(error: { type: string; payload: { type: string; code: string | undefined } }) {\r\n    this.creationLoadingModalToggle(false);\r\n\r\n    const errorCode = error.payload.code;\r\n    this.errorMessage = this.translateError(\"isdsConcept\").replace(this.errorCodeRegexp, errorCode || this.UNKNOWN_ERROR_CODE);\r\n  }\r\n\r\n  @action.bound\r\n  protected isdsUploadOperationSuccess(data: { type: string; payload: { conceptIdent: string } }) {\r\n    this.creationLoadingModalToggle(false);\r\n  }\r\n\r\n  @action.bound\r\n  protected isdsConceptStatusCheck(data: { type: string; payload: { success: boolean; notice: Notice } }) {\r\n    return;\r\n  }\r\n\r\n  @action.bound\r\n  protected niaOperationFailed(paymentError: { type: string; payload: { type: string } }) {\r\n    this.creationLoadingModalToggle(false);\r\n    this.errorMessage = this.localizationService.translateGeneral(\"errors.nia\");\r\n  }\r\n\r\n  @action.bound\r\n  creationLoadingModalToggle(open: boolean) {\r\n    this.showLoadingModal = open;\r\n  }\r\n\r\n  @action.bound\r\n  protected onISDSOutageChanged() {\r\n    if (this.isdsHasActiveOutage && this.notice && this.notice._signatureType === SignatureType.DataBox) {\r\n      this.notice._signatureType = SignatureType.ElectronicSignature;\r\n    }\r\n  }\r\n\r\n  @computed\r\n  get documentsUploadEnabled() {\r\n    return this.hasToUploadPowerOfAttorney || this.hasToUploadTechnicalLicense;\r\n  }\r\n\r\n  @computed\r\n  get hasToUploadPowerOfAttorney() {\r\n    return (\r\n      this.notice._signatureType === SignatureType.DataBox &&\r\n      ((this.notice.vehicleOperator &&\r\n        this.notice.vehicleOperator.naturalPerson &&\r\n        this.notice.vehicleOperator.naturalPerson.isRepresentedByProxy) ||\r\n        (this.notice.vehicleOperator && this.notice.vehicleOperator.isLegalPerson))\r\n    );\r\n  }\r\n\r\n  @computed\r\n  get hasToUploadTechnicalLicense() {\r\n    if (this.notice instanceof Omission) {\r\n      return false;\r\n    } else {\r\n      return this.notice._signatureType === SignatureType.DataBox && this.isVehicleRegisteredAbroad;\r\n    }\r\n  }\r\n\r\n  @bound\r\n  isErrorsVisible() {\r\n    const notice = this.notice;\r\n    let isErrorsVisible = false;\r\n    if (hasValidation(notice)) {\r\n      isErrorsVisible = notice.__validation.isErrorsVisible;\r\n    }\r\n\r\n    return isErrorsVisible;\r\n  }\r\n\r\n  @bound\r\n  powerOfAttorneyErrorMessage() {\r\n    return getValidationMessage(this.notice, \"_powerOfAttorneyFilesBase64\");\r\n  }\r\n\r\n  @bound\r\n  technicalLicenseErrorMessage() {\r\n    return getValidationMessage(this.notice, \"_technicalLicenseFilesBase64\");\r\n  }\r\n\r\n  @computed\r\n  get GDPR() {\r\n    return this.translateGeneral(\"gdpr.description\", true);\r\n  }\r\n\r\n  @action.bound\r\n  redirectToNia() {\r\n    return;\r\n  }\r\n\r\n  @action.bound\r\n  async savePDF() {\r\n    if (!(await this.validateNotice())) {\r\n      return;\r\n    }\r\n    this.creationLoadingModalToggle(true);\r\n    const response = await this.createNotice();\r\n    if (!response) {\r\n      this.creationLoadingModalToggle(false);\r\n      return;\r\n    }\r\n    createFileFromBlob(response);\r\n    this.creationLoadingModalToggle(false);\r\n  }\r\n\r\n  @action.bound\r\n  async printPDF() {\r\n    if (!(await this.validateNotice())) {\r\n      return;\r\n    }\r\n    this.creationLoadingModalToggle(true);\r\n\r\n    this.createNotice()?.then((response: any) => {\r\n      this.creationLoadingModalToggle(false);\r\n      if (!response) {\r\n        this.creationLoadingModalToggle(false);\r\n        return;\r\n      }\r\n      const url = window.URL.createObjectURL(response.blob);\r\n      if (url) printJS(url);\r\n    });\r\n  }\r\n\r\n  @action.bound\r\n  public createNotice(): Promise<string | undefined> {\r\n    return Promise.resolve(undefined);\r\n  }\r\n\r\n  @action.bound\r\n  public uploadDocuments(ISDSSessionId: string, files: PersistedBase64[]): Promise<void> | undefined {\r\n    return;\r\n  }\r\n\r\n  @action.bound\r\n  async continue() {\r\n    if (!(await this.validateNotice())) {\r\n      return;\r\n    }\r\n    this.creationLoadingModalToggle(true);\r\n\r\n    this.createNotice()?.then(async (file: any) => {\r\n      if (!file) {\r\n        this.creationLoadingModalToggle(false);\r\n        return;\r\n      }\r\n      const fetchUrl = window.URL.createObjectURL(file.blob);\r\n      this.notice._noticeURL = fetchUrl;\r\n      this.notice._noticeBlob = await fetch(fetchUrl).then(response => response.blob());\r\n      if (!this.notice._noticeBlob) return;\r\n      this.notice._noticeBase64 = {\r\n        id: Date.now().toString(),\r\n        base64: await blobToBase64(this.notice._noticeBlob),\r\n        fileSize: this.notice._noticeBlob.size,\r\n        fileName: `EDAZ_${format(new Date(), \"yyyyMMdd_HHmm\")}.pdf`,\r\n      };\r\n      await this.persistNotice();\r\n\r\n      this.redirectToISDS();\r\n\r\n      this.creationLoadingModalToggle(false);\r\n    });\r\n  }\r\n\r\n  @action.bound\r\n  public redirectToISDS(): void {\r\n    return;\r\n  }\r\n\r\n  @computed\r\n  get isVehicleRegisteredAbroad() {\r\n    return this.notice.vehicle?.countryId !== czechID;\r\n  }\r\n\r\n  @computed\r\n  get canProceedToExternalService() {\r\n    return [SignatureType.DataBox].includes(this.notice._signatureType);\r\n  }\r\n\r\n  @computed\r\n  get canPrintNotice() {\r\n    return [SignatureType.OfficiallyVerifiedSignature].includes(this.notice._signatureType);\r\n  }\r\n\r\n  @computed\r\n  get canSaveNoticePDF() {\r\n    return [SignatureType.OfficiallyVerifiedSignature, SignatureType.ElectronicSignature].includes(this.notice._signatureType);\r\n  }\r\n\r\n  @computed\r\n  get canCancelNotice() {\r\n    return true;\r\n  }\r\n\r\n  private processAcceptedFiles(acceptedFiles: File[], type: \"powerOfAttorney\" | \"technicalLicense\") {\r\n    acceptedFiles.forEach(async file => {\r\n      const fileBase64 = {\r\n        base64: await blobToBase64(file),\r\n        fileSize: file.size,\r\n        fileName: file.name,\r\n        id: Date.now().toString(),\r\n      };\r\n      const key = type === \"powerOfAttorney\" ? \"_powerOfAttorneyFilesBase64\" : \"_technicalLicenseFilesBase64\";\r\n      this.notice[key].push(fileBase64);\r\n      await this.addFile(fileBase64);\r\n      this.persistNotice();\r\n    });\r\n  }\r\n\r\n  private processFileRejections(fileRejections: FileRejection[]) {\r\n    return fileRejections\r\n      ?.filter(fileRejection => !fileRejection.errors.find(error => error.code !== \"file-invalid-type\"))\r\n      .map(fileRejection => fileRejection.file);\r\n  }\r\n\r\n  @action.bound\r\n  public addPowerOfAttorneyFiles(acceptedFiles: File[], fileRejections?: FileRejection[]): void {\r\n    this.processAcceptedFiles(acceptedFiles, \"powerOfAttorney\");\r\n    if (fileRejections) {\r\n      this.rejectedPowerOfAttorneyFiles = this.processFileRejections(fileRejections);\r\n    }\r\n  }\r\n\r\n  @action.bound\r\n  public removePowerOfAttorneyFile = (file: PersistedBase64, fileRejections?: FileRejection[]) => () => {\r\n    this.notice._powerOfAttorneyFilesBase64 = this.notice._powerOfAttorneyFilesBase64.filter(\r\n      powerOfAttorneyFile => powerOfAttorneyFile.id !== file.id\r\n    );\r\n\r\n    this.removeFile(file);\r\n    this.persistNotice();\r\n  };\r\n\r\n  @action.bound\r\n  public addTechnicalLicenseFiles(acceptedFiles: File[], fileRejections?: FileRejection[]): void {\r\n    this.processAcceptedFiles(acceptedFiles, \"technicalLicense\");\r\n    if (fileRejections) {\r\n      this.rejectedTechnicalLicenseFiles = this.processFileRejections(fileRejections);\r\n    }\r\n  }\r\n\r\n  @action.bound\r\n  public removeTechnicalLicenseFile = (file: PersistedBase64) => () => {\r\n    this.notice._technicalLicenseFilesBase64 = this.notice._technicalLicenseFilesBase64.filter(\r\n      technicalLicenseFile => technicalLicenseFile.id !== file.id\r\n    );\r\n\r\n    this.removeFile(file);\r\n    this.persistNotice();\r\n  };\r\n\r\n  async addFile(file: PersistedBase64) {\r\n    await setFile(file);\r\n  }\r\n\r\n  async removeFile(file: PersistedBase64) {\r\n    await deleteFile(file.id);\r\n  }\r\n\r\n  @bound\r\n  protected async loadFiles() {\r\n    if (this.notice._noticeBase64) {\r\n      this.notice._noticeBase64 = await getFile(this.notice._noticeBase64.id);\r\n    }\r\n\r\n    const currentPowerOfAttorneyFilesBase64: PersistedBase64[] = [];\r\n    for (const powerOfAttorneyFile of this.notice._powerOfAttorneyFilesBase64) {\r\n      const file = await getFile(powerOfAttorneyFile.id);\r\n\r\n      if (file) {\r\n        currentPowerOfAttorneyFilesBase64.push(file);\r\n      }\r\n    }\r\n    this.notice._powerOfAttorneyFilesBase64 = currentPowerOfAttorneyFilesBase64;\r\n\r\n    const currentTechnicalLicenseFilesBase64: PersistedBase64[] = [];\r\n    for (const technicalLicenseFile of this.notice._technicalLicenseFilesBase64) {\r\n      const file = await getFile(technicalLicenseFile.id);\r\n\r\n      if (file) {\r\n        currentTechnicalLicenseFilesBase64.push(file);\r\n      }\r\n    }\r\n    this.notice._technicalLicenseFilesBase64 = currentTechnicalLicenseFilesBase64;\r\n  }\r\n\r\n  setDefaultCountryId() {\r\n    if (this.notice.vehicle && !this.notice.vehicle.countryId) {\r\n      this.notice.vehicle.countryId = czechID;\r\n    }\r\n  }\r\n\r\n  translateError(code: string) {\r\n    return this.localizationService.translateGeneral(`errors.${code}`);\r\n  }\r\n}\r\n","import { StatusItem } from \"../../views/multiEshop/components/status\";\n\nexport function getStatusSteps(): StatusItem[] {\n  return [\n    {\n      number: 1,\n      label: \"selection\",\n    },\n    {\n      number: 2,\n      label: \"recap\",\n    },\n    {\n      number: 3,\n      label: \"contact\",\n    },\n    {\n      number: 4,\n      label: \"payment\",\n    },\n  ];\n}\n","import { bound } from \"@frui.ts/helpers\";\nimport { BusyWatcher, ScreenBase } from \"@frui.ts/screens\";\nimport { action, computed, observable } from \"mobx\";\nimport ChargeManagementService, {\n  CHANGE_NOT_ALLOWED_ANOTHER_CHARGE_FOR_VEHICLE_WITH_VALIDITY_OVERLAP_EXISTS,\n  WEBSOCKET_CONNECTION_FAILURE,\n} from \"services/chargeManagementService\";\nimport EventBus from \"services/eventBus\";\nimport LocalizationService from \"services/localizationService\";\nimport SignalRNotificationService from \"services/signalR/notification/signalRNotificationService\";\nimport { scrollToFirstError } from \"utils/scrollTo\";\nimport { IChargeManagementEditPartViewModel } from \"./types\";\nimport React from \"react\";\nimport EnumService from \"services/enumService\";\nimport ExemptionReasonResponse from \"entities/exemptionReasonResponse\";\nimport ChargeOverlapResponse from \"entities/chargeOverlapResponse\";\nimport { TurnstileInstance } from \"@marsidev/react-turnstile\";\nimport TurnstileViewModel from \"../../common/turnstileViewModel\";\n\nexport default abstract class ChargeManagementEditPartViewModel extends ScreenBase implements IChargeManagementEditPartViewModel {\n  onRecapchaBeforeInteractive: any;\n  public abstract localizationService: LocalizationService;\n  protected abstract chargeManagementService: ChargeManagementService;\n  protected abstract enumService: EnumService;\n  protected abstract eventBus: EventBus;\n  protected abstract signalRNotificationService: SignalRNotificationService;\n  @observable formElement?: HTMLFormElement;\n  @observable isLoading = false;\n  abstract turnstileViewModel: TurnstileViewModel;\n\n  public abstract validate(): boolean;\n  abstract submit(): void;\n  abstract get canEdit(): boolean;\n  abstract get hasSecondStep(): boolean;\n  protected unsubscriptions: Array<() => void> = [];\n  @observable collapsed = true;\n  @observable success = false;\n  @observable secondStepLoading = false;\n  @observable showSecondStep = false;\n  @observable hideConfirmChangeButton = false;\n  @observable warningMessages = [] as string[];\n  @observable secondStepErrorMessage?: string;\n\n  @observable errorMessage?: string;\n  busyWatcher: BusyWatcher = new BusyWatcher();\n\n  get canSubmit() {\n    // Overload if need custom logic\n    return true;\n  }\n\n  protected onDeactivate(isClosing: boolean): Promise<any> | void {\n    if (isClosing) {\n      this.unsubscriptions.forEach(unsubscribe => unsubscribe());\n      this.unsubscriptions = [];\n    }\n\n    return super.onDeactivate(isClosing);\n  }\n\n  @bound\n  translate(code: string, disableUnbreakableRules = false) {\n    return this.localizationService.translateGeneral(`charge.management.edit.${code}`, undefined, disableUnbreakableRules);\n  }\n\n  @bound\n  translateWarningReason(code: string, possibleExemptionReasonIds?: string[]): string {\n    if (code === \"IDENTIFIED_POSSIBLE_EXEMPTION\") {\n      if (!possibleExemptionReasonIds || possibleExemptionReasonIds.length < 1) {\n        return this.localizationService.translateGeneral(\"errors.generic\");\n      }\n      const possibleExemptionReasonId = possibleExemptionReasonIds[0];\n      const exemptionReasons = this.enumService.values(\"exemption_reasons\") as ExemptionReasonResponse[];\n      const matchingReason = exemptionReasons.find(x => x.id === possibleExemptionReasonId);\n      switch (matchingReason?.exemptionReason) {\n        case \"C\":\n          return this.translateWarningReason(\"IDENTIFIED_POSSIBLE_EXEMPTION_C\", possibleExemptionReasonIds);\n        case \"P\":\n          return this.translateWarningReason(\"IDENTIFIED_POSSIBLE_EXEMPTION_P\", possibleExemptionReasonIds);\n        case \"O\":\n        case \"O1\":\n        case \"O2\":\n          return this.translateWarningReason(\"IDENTIFIED_POSSIBLE_EXEMPTION_O\", possibleExemptionReasonIds);\n        default:\n          return this.localizationService.translateGeneral(\"errors.generic\");\n      }\n    }\n    return this.localizationService.translateGeneral(`eshop.order.license.exemptionReasonWarnings.${code}`, undefined, false);\n  }\n\n  @bound\n  translateOverlapReason(code: string): string {\n    return this.localizationService.translateGeneral(`eshop.order.license.overlapWarnings.${code}`, undefined, false);\n  }\n\n  @bound\n  translateOverlappingCharge(chargeOverlap: ChargeOverlapResponse, isDifferentTimeZone: boolean) {\n    return {\n      validSince: chargeOverlap.validSince,\n      validUntil: chargeOverlap.validUntil,\n      isDifferentTimeZone: isDifferentTimeZone,\n      formatDateTime: this.localizationService.formatDateTime,\n      translateGeneral: this.localizationService.translateGeneral,\n    };\n  }\n\n  @bound\n  toggle() {\n    this.collapsed = !this.collapsed;\n  }\n\n  @bound\n  resetSecondStep() {\n    this.showSecondStep = false;\n    this.hideConfirmChangeButton = false;\n    this.secondStepErrorMessage = undefined;\n    this.warningMessages = [];\n  }\n\n  @bound\n  setEmailAddress(emailAddress: string) {\n    if (this.charge?.emailAddress !== emailAddress) {\n      this.charge!.emailAddress = emailAddress;\n    }\n    if (this.charge?.notificationPreferences.emailAddress !== emailAddress) {\n      this.charge!.notificationPreferences.emailAddress = emailAddress;\n    }\n  }\n\n  @computed\n  get charge() {\n    return this.chargeManagementService.charge;\n  }\n\n  @action\n  protected clearAfterAsyncAction = () => {\n    this.signalRNotificationService.serviceStop();\n  };\n\n  @action.bound\n  protected setErrorMessageBasedOnType(type: string) {\n    if (type === WEBSOCKET_CONNECTION_FAILURE) {\n      this.errorMessage = this.websocketError;\n    } else if (type === CHANGE_NOT_ALLOWED_ANOTHER_CHARGE_FOR_VEHICLE_WITH_VALIDITY_OVERLAP_EXISTS) {\n      this.errorMessage = this.changeNotAllowedAnotherChargeForVehicleWithValidityOverlapExistsError;\n      scrollToFirstError(this.formElement);\n    } else {\n      this.errorMessage = this.genericError;\n    }\n  }\n\n  @computed\n  get genericError() {\n    return this.localizationService.translateGeneral(\"errors.generic\");\n  }\n\n  @computed\n  get changeNotAllowedAnotherChargeForVehicleWithValidityOverlapExistsError() {\n    return this.translate(\"changeNotAllowedAnotherChargeForVehicleWithValidityOverlapExists\");\n  }\n\n  @computed\n  get websocketError() {\n    return this.localizationService.translateGeneral(\"errors.websocket\");\n  }\n\n  @computed\n  get emailInputRequired() {\n    return this.charge && !this.charge.emailAddress;\n  }\n\n  @action.bound\n  protected reset() {\n    this.collapsed = true;\n    this.success = false;\n    this.errorMessage = undefined;\n  }\n}\n","import { host } from \"utils/externalServiceUtils\";\n\ntype EdazConfig = {\n  [keyof: string]: string | boolean;\n};\n\ndeclare global {\n  interface Window {\n    edazConfig: EdazConfig;\n  }\n}\n\nconst ENV_PRODUCTION = \"Production\";\n\nexport const parent = window?.edazConfig || {};\n\n// Auth\nexport const tokenUrl = (parent.REACT_APP_TOKEN_URL || process.env.REACT_APP_TOKEN_URL) as string;\nexport const grantType = parent.REACT_APP_FLOW || process.env.REACT_APP_FLOW;\nexport const clientId = (parent.REACT_APP_CLIENT_ID || process.env.REACT_APP_CLIENT_ID) as string;\nexport const clientSecret = (parent.REACT_APP_CLIENT_SECRET || process.env.REACT_APP_CLIENT_SECRET) as string;\nexport const scope = (parent.REACT_APP_SCOPE || process.env.REACT_APP_SCOPE) as string;\nexport const eshopPaymentAPIScope = (parent.REACT_APP_ESHOP_PAYMENT_API_SCOPE ||\n  process.env.REACT_APP_ESHOP_PAYMENT_API_SCOPE) as string;\nexport const accessTokenKey = \"Access-token\";\nexport const accessTokenStoreTimestamp = \"Access-token-timestamp\";\n\n// Sentry\nexport const sentryDSN = (parent.REACT_APP_SENTRY_DSN || process.env.REACT_APP_SENTRY_DSN) as string;\n\n// Environment\nexport const environment = (parent.REACT_APP_ENVIRONMENT || process.env.REACT_APP_ENVIRONMENT) as string;\n\n// Websocket Signal R\nexport const notificationWsHub = (parent.REACT_APP_NOTIFICATION_WS_HUB || process.env.REACT_APP_NOTIFICATION_WS_HUB) as string;\n\n// Payment gateway\nexport const paymentGateway = (parent.REACT_APP_PAYMENT_GATEWAY || process.env.REACT_APP_PAYMENT_GATEWAY) as string;\n\n// Localization\nexport const czechID = (parent.REACT_APP_CZECH_ID ||\n  process.env.REACT_APP_CZECH_ID ||\n  \"3906ba89-153c-4038-8e36-0ca1deb76076\") as string;\nexport const availableLocales = [\"cs\", \"en-GB\", \"de\", \"pl\", \"ru\"];\nexport const czechTimeZone = \"Europe/Prague\";\n\n// API\nexport const apiUrl = parent.REACT_APP_API_URL || process.env.REACT_APP_API_URL || host;\nexport const apiVersion = parent.REACT_APP_API_ENDPOINT || process.env.REACT_APP_API_ENDPOINT || \"/\";\n\n// ISDS\nexport const ISDSUrl = (parent.REACT_APP_ISDS_URL || process.env.REACT_APP_ISDS_URL) as string;\nexport const ISDSAtsId = (parent.REACT_APP_ISDS_ATS_ID || process.env.REACT_APP_ISDS_ATS_ID) as string;\n\n// Sale boundaries\nexport const START_OF_SALE = (parent.REACT_APP_START_OF_SALE || process.env.REACT_APP_START_OF_SALE) as string;\nexport const ORDER_ITEM_MAX_COUNT = 50;\n\n// App wide links\nexport const linkHost = (parent.REACT_APP_GDPR_LINK_HOST ||\n  process.env.REACT_APP_GDPR_LINK_HOST ||\n  window.location.origin) as string;\n\n// Terms agreement\nexport const CSTermsAgreementDocumentPath = `${window.location.origin}${\n  parent.REACT_APP_TERMS_AGREEMENT_DOCUMENT_PATH_CS || process.env.REACT_APP_TERMS_AGREEMENT_DOCUMENT_PATH_CS\n}`;\n\nexport const ENTermsAgreementDocumentPath = `${window.location.origin}${\n  parent.REACT_APP_TERMS_AGREEMENT_DOCUMENT_PATH_EN || process.env.REACT_APP_TERMS_AGREEMENT_DOCUMENT_PATH_EN\n}`;\n\nexport const DETermsAgreementDocumentPath = `${window.location.origin}${\n  parent.REACT_APP_TERMS_AGREEMENT_DOCUMENT_PATH_DE || process.env.REACT_APP_TERMS_AGREEMENT_DOCUMENT_PATH_DE\n}`;\n\n// Google maps\nexport const googleMapsApiKey = (parent.REACT_APP_GOOGLE_MAPS_API_KEY || process.env.REACT_APP_GOOGLE_MAPS_API_KEY) as string;\n\n// Turnstile\nexport const turnstileSiteKey = (parent.REACT_APP_TURNSTILE_SITE_KEY || process.env.REACT_APP_TURNSTILE_SITE_KEY) as string;\n\n// Google analytics\nexport const gaId = (parent.REACT_APP_GA_ID ||\n  process.env.REACT_APP_GA_ID ||\n  (environment === ENV_PRODUCTION ? \"UA-156010888-1\" : \"UA-156010888-2\")) as string;\nexport const gaDebug: boolean =\n  (parent.REACT_APP_GA_DEBUG as boolean) || process.env.REACT_APP_GA_DEBUG === \"true\" || environment !== ENV_PRODUCTION;\n\nexport type KnownErrorCodes = \"internalServerError\" | \"generic\";\n\n// Maximální velikost příloh datové schránky = 20MB\nexport const MAX_FILE_SIZE_IN_BYTES = 20971520;\n","import { ScreenBase } from \"@frui.ts/screens/dist\";\nimport { interfaces } from \"inversify\";\nimport { action, computed } from \"mobx\";\nimport LocalizationService from \"services/localizationService\";\nimport ChargeDetailResponse from \"entities/chargeDetailResponse\";\nimport EmailInputViewModel from \"./common/emailInputViewModel\";\nimport { validateAll } from \"@frui.ts/validation\";\nimport ChargeManagementService from \"../../../services/chargeManagementService\";\nimport EventBus, { sendChargePaymentConfirmationEmailModalClosed } from \"services/eventBus\";\nimport InputEmail from \"entities/InputEmail\";\n\nexport default class ReceiptEmailModalViewModel extends ScreenBase {\n  public contactViewModel: EmailInputViewModel;\n\n  constructor(\n    private charge: ChargeDetailResponse,\n    public localizationService: LocalizationService,\n    protected emailInputViewModelFactory: ReturnType<typeof EmailInputViewModel.Factory>,\n    protected chargeManagementService: ChargeManagementService,\n    private eventBus: EventBus,\n    public onClose: () => void,\n    public onCustomSubmit: () => void\n  ) {\n    super();\n    if (this.charge)\n      this.contactViewModel = this.emailInputViewModelFactory(\n        new InputEmail(this.charge.emailAddress, this.charge.notificationPreferences._emailConfirmation),\n        \"\",\n        \"\"\n      );\n  }\n\n  protected onInitialize(): Promise<any> | void {\n    return super.onInitialize();\n  }\n\n  protected onDeactivate(isClosing: boolean) {\n    if (!validateAll([this.charge.emailAddress, this.notificationPreferences])) {\n      this.notificationPreferences.emailAddress = undefined;\n      this.notificationPreferences._emailConfirmation = \"\";\n    }\n    return super.onDeactivate(isClosing);\n  }\n\n  @computed\n  get code() {\n    return this.charge.authCode;\n  }\n\n  @computed\n  get notificationPreferences() {\n    return this.charge.notificationPreferences;\n  }\n\n  @computed\n  get emailAddress() {\n    if (this.charge.emailAddress) return this.charge.emailAddress;\n    return \"\";\n  }\n\n  @computed\n  get showNotificationPreferences() {\n    return false;\n  }\n\n  @computed\n  get notificationEnabled() {\n    return false;\n  }\n\n  @computed\n  get notificationEnabledInfo() {\n    return false;\n  }\n\n  @computed\n  get isNotificationEmailSame() {\n    return false;\n  }\n\n  @computed\n  get defaultPrefixNumber() {\n    return \"\";\n  }\n\n  @action.bound\n  get onPhoneNumberChanged() {\n    return false;\n  }\n\n  @action.bound\n  onEmailAddressNotificationChanged(): void {\n    //disabled\n  }\n\n  @computed\n  get description() {\n    return this.translate(\"description\")\n      .replace(\"%email%\", this.emailAddress)\n      .replace(\"%code%\", this.code || \"\");\n  }\n\n  @action.bound\n  async onSubmit() {\n    if (!validateAll([this.contactViewModel.inputEmail])) {\n      return;\n    }\n    this.charge.emailAddress = this.notificationPreferences.emailAddress = this.contactViewModel.inputEmail.email;\n    this.notificationPreferences._emailConfirmation = this.contactViewModel.inputEmail.emailConfirmation;\n    this.onCustomSubmit();\n    this.onClose();\n  }\n\n  @action.bound\n  onHide() {\n    this.eventBus.publish(sendChargePaymentConfirmationEmailModalClosed());\n    this.onClose();\n  }\n\n  translate(code: string) {\n    return this.localizationService.translateGeneral(`charge.management.edit.receipt.${code}`);\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (charge: ChargeDetailResponse, onClose: () => void, onSubmit: () => void) => {\n      return new ReceiptEmailModalViewModel(\n        charge,\n        container.get(LocalizationService),\n        container.get(EmailInputViewModel.Factory),\n        container.get(ChargeManagementService),\n        container.get(EventBus),\n        onClose,\n        onSubmit\n      );\n    };\n  }\n}\n","// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nenum ChargeVehicleWarningReason {\n  ChargeWasNotPurchasedBefore = \"CHARGE_WAS_NOT_PURCHASED_BEFORE\",\n  UnusedCharactersInLicensePlate = \"UNUSED_CHARACTERS_IN_LICENSE_PLATE\",\n  IdentifiedPossibleExemption = \"IDENTIFIED_POSSIBLE_EXEMPTION\",\n  VehicleCategoryWithoutChargeObligation = \"VEHICLE_CATEGORY_WITHOUT_CHARGE_OBLIGATION\",\n  VehicleRegisterVerificationDisabled = \"VEHICLE_REGISTER_VERIFICATION_DISABLED\",\n  VehicleNotFoundInVehicleRegister = \"VEHICLE_NOT_FOUND_IN_VEHICLE_REGISTER\",\n  VehicleUnverifiedWithVehicleRegister = \"VEHICLE_UNVERIFIED_WITH_VEHICLE_REGISTER\",\n  InvalidVehicleStatusInVehicleRegister = \"INVALID_VEHICLE_STATUS_IN_VEHICLE_REGISTER\",\n  MissingOrInvalidVehicleFuelTypeInVehicleRegister = \"MISSING_OR_INVALID_VEHICLE_FUEL_TYPE_IN_VEHICLE_REGISTER\",\n  MissingOrInvalidVehicleEmissionsInVehicleRegister = \"MISSING_OR_INVALID_VEHICLE_EMISSIONS_IN_VEHICLE_REGISTER\",\n  MultipleVehiclesFoundInVehicleRegister = \"MULTIPLE_VEHICLES_FOUND_IN_VEHICLE_REGISTER\",\n  VehicleRegisterFuelTypeBasedExemption = \"VEHICLE_REGISTER_FUEL_TYPE_BASED_EXEMPTION\",\n}\nexport default ChargeVehicleWarningReason;\n","import localForage from \"localforage\";\nimport { PersistedBase64 } from \"../models/notice\";\n\nexport async function getFile(key: string): Promise<PersistedBase64 | undefined> {\n  const item = await localForage.getItem<PersistedBase64>(key);\n  return item === null ? undefined : item;\n}\n\nexport async function setFile(file: PersistedBase64) {\n  const persistedFile = await getFile(file.id);\n\n  if (persistedFile) {\n    return file;\n  }\n\n  return localForage.setItem(file.id, file);\n}\n\nexport async function deleteFile(key: string) {\n  return localForage.removeItem(key);\n}\n","import { action, computed, observable } from \"mobx\";\nimport { injectable } from \"inversify\";\nimport type { TurnstileInstance } from \"@marsidev/react-turnstile\";\nimport LocalizationService from \"./localizationService\";\nimport EventBus, { turnstileTokenReceived, turnstileErrorReceived, turnstileReset } from \"./eventBus\";\n\nexport interface ITurnstileService {\n  readonly isInitialized: boolean;\n  readonly token: string | undefined;\n  readonly isValid: boolean;\n  readonly info: string | undefined;\n  readonly error: string | undefined;\n  readonly instance: TurnstileInstance | undefined;\n\n  initialize(context: string): void;\n  reset(): void;\n  setToken(token: string): void;\n  setError(error: string): void;\n  setInfo(info: string): void;\n  setInstance(instance: TurnstileInstance): void;\n  translateTurnstile(key: string): string;\n}\n\nexport default class TurnstileService {\n  @observable private _token?: string;\n  @observable private _error?: string;\n  @observable private _info?: string;\n  @observable private _instance?: TurnstileInstance;\n  @observable private _context?: string;\n  @observable private _isInitialized = false;\n  private unsubscriptions: Array<() => void> = [];\n\n  constructor(private localizationService: LocalizationService) {}\n\n  @computed\n  get isInitialized(): boolean {\n    return this._isInitialized && !!this._instance;\n  }\n\n  @computed\n  get token(): string | undefined {\n    return this._token;\n  }\n\n  @computed\n  get isValid(): boolean {\n    return !!this._token && !this._error;\n  }\n\n  @computed\n  get info(): string | undefined {\n    return this._info;\n  }\n\n  @computed\n  get error(): string | undefined {\n    return this._error;\n  }\n\n  @computed\n  get instance(): TurnstileInstance | undefined {\n    return this._instance;\n  }\n\n  @action.bound\n  initialize(context: string): void {\n    if (this._context !== context) {\n      this._context = context;\n      // Pouze reset stavu, ne instance (ta ještě neexistuje)\n      this._token = undefined;\n      this._error = undefined;\n      this._info = undefined;\n    }\n    this._isInitialized = true;\n  }\n\n  @action.bound\n  reset(): void {\n    this._token = undefined;\n    this._error = undefined;\n    this._info = undefined;\n\n    try {\n      if (this._instance) {\n        this._instance.reset();\n      }\n    } catch (error) {\n      console.warn(\"Failed to reset Turnstile widget\", error);\n    }\n  }\n\n  @action.bound\n  setToken = (token: string): void => {\n    this._token = token;\n    this._error = undefined;\n\n    this.setInfo(this.translateTurnstile(\"success\"));\n  };\n\n  @action.bound\n  setError = (error?: string): void => {\n    this._error = error ?? undefined;\n    this._token = undefined;\n  };\n\n  @action.bound\n  setInfo = (info: string): void => {\n    this._info = info;\n  };\n\n  @action.bound\n  resetToken = (): void => {\n    this._token = undefined;\n  };\n\n  @action.bound\n  setInstance = (instance: TurnstileInstance): void => {\n    this._instance = instance;\n  };\n\n  translateTurnstile(key: string): string {\n    return this.localizationService.translateGeneral(`turnstile.${key}`);\n  }\n}\n","import { Type } from \"class-transformer\";\nimport { computed, observable } from \"mobx\";\nimport type { EntityValidationRules } from \"services/validationService\";\nimport addYears from \"date-fns/addYears\";\n\nexport const FullNameValidationRules: EntityValidationRules<Person> = {\n  fullName: {\n    required: true,\n    prohibitedCharacters: true,\n    isLength: {\n      max: 45,\n    },\n  },\n};\n\nexport const BirthDateValidationRules: EntityValidationRules<Person> = {\n  birthDate: {\n    requiredIf: {\n      condition: (entity: Person) => entity._validateBirthDate === true,\n    },\n    dateRange: {\n      min: addYears(new Date(), -130),\n      max: addYears(new Date(), -18),\n    },\n  },\n};\n\nexport const AddressValidationRules: EntityValidationRules<Person> = {\n  mailingAddress: {\n    required: true,\n    prohibitedCharacters: true,\n    isLength: {\n      max: 75,\n    },\n  },\n};\n\nexport const EmailAddressValidationRules: EntityValidationRules<Person> = {\n  emailAddress: {\n    isEmail: {\n      required: false,\n    },\n    isLength: {\n      max: 254,\n    },\n  },\n};\n\nexport const PhoneNumberValidationRules: EntityValidationRules<Person> = {\n  phoneNumber: {\n    isPhoneNumber: {\n      required: false,\n    },\n  },\n};\n\nexport default class Person {\n  @observable\n  fullName?: string;\n\n  @Type(() => Date)\n  @observable\n  birthDate?: Date;\n\n  @observable\n  _validateBirthDate = true;\n\n  @observable\n  mailingAddress?: string;\n\n  @observable\n  emailAddress?: string;\n\n  @observable\n  phoneNumber?: string;\n\n  @computed\n  get rules(): EntityValidationRules<Person> {\n    return {\n      ...FullNameValidationRules,\n      ...BirthDateValidationRules,\n      ...AddressValidationRules,\n      ...EmailAddressValidationRules,\n      ...PhoneNumberValidationRules,\n    };\n  }\n}\n","// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nenum CustomerRefundApplicationReason {\n  ChargeDuplicityExists = \"CHARGE_DUPLICITY_EXISTS\",\n  IncorrectLicensePlate = \"INCORRECT_LICENSE_PLATE\",\n  IncorrectCountryId = \"INCORRECT_COUNTRY_ID\",\n  ExemptedVehicle = \"EXEMPTED_VEHICLE\",\n  VehicleWithoutChargeObligation = \"VEHICLE_WITHOUT_CHARGE_OBLIGATION\",\n  IncorrectAndCheaperFuelType = \"INCORRECT_AND_CHEAPER_FUEL_TYPE\",\n  IncorrectAndMoreExpensiveFuelType = \"INCORRECT_AND_MORE_EXPENSIVE_FUEL_TYPE\",\n  MoreExpensiveFuelTypeDueToIncorrectDataInVehicleRegister = \"MORE_EXPENSIVE_FUEL_TYPE_DUE_TO_INCORRECT_DATA_IN_VEHICLE_REGISTER\",\n  Other = \"OTHER\",\n}\n\nexport default CustomerRefundApplicationReason;\n","import { observable } from \"mobx\";\nimport FuelType from \"./fuelType\";\nimport Enum from \"../models/enum\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class FuelTypeResponse extends Enum {\n  /**\n   * Fuel type ID.\n   */\n  id!: string;\n\n  @observable\n  fuelType!: FuelType;\n\n  /**\n   * Localized fuel type name.\n   */\n  @observable\n  name!: string;\n\n  /**\n   * Indicates whether fuel type is deleted.\n   */\n  @observable\n  isDeleted!: boolean;\n}\n\n/**\n * Returns order of importance of each fuel type.\n * @param validFor\n */\nexport const fuelTypeOrder = (fuelType: FuelType): number => {\n  switch (fuelType) {\n    case FuelType.Other:\n      return 1;\n    case FuelType.Biomethane:\n      return 2;\n    case FuelType.NaturalGas:\n      return 3;\n    case FuelType.PhevWithLimitedCo2:\n      return 4;\n    default:\n      return 5;\n  }\n};\n","import { computed, observable } from \"mobx\";\nimport type { EntityValidationRules } from \"services/validationService\";\nimport Notice, { SignatureType } from \"./notice\";\nimport type { IVehicle } from \"./types\";\nimport { CountryIdValidationRules, LicensePlateValidationRules } from \"./orderItem\";\n\nexport const NoticeTechnicalLicenseRules: EntityValidationRules<Notice> = {\n  _technicalLicenseFilesBase64: {\n    requiredIf: {\n      condition: (entity: Notice) => entity._signatureType === SignatureType.DataBox,\n      customMessage: \"documentUploadRequired\",\n    },\n  },\n};\nexport default class LicensePlateChange extends Notice implements IVehicle {\n  @observable\n  licensePlate?: string;\n\n  @observable\n  countryId?: string;\n\n  @observable\n  originalVehicle?: IVehicle;\n\n  @observable\n  newVehicle?: IVehicle;\n\n  @computed\n  get rules(): EntityValidationRules<LicensePlateChange> {\n    return {\n      ...LicensePlateValidationRules,\n      ...CountryIdValidationRules,\n      ...NoticeTechnicalLicenseRules,\n    };\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { AutomaticEntityValidator, hasValidation, IEntityValidationRules, IHasValidation } from \"@frui.ts/validation\";\nimport { PropertyName } from \"@frui.ts/helpers\";\nimport { get, observable } from \"mobx\";\nimport { ValidationControlBase } from \"@frui.ts/bootstrap\";\nimport TaggedInput from \"@edaz/edazkit/TaggedInput\";\nimport EdazPhoneInput from \"@edaz/edazkit/InputPhone\";\n\nexport interface IHasBlurValidation<TTarget> {\n  // @ts-ignore\n  __validation: BlurAutomaticEntityValidator<TTarget>;\n}\n\nexport default class BlurAutomaticEntityValidator<TTarget extends Record<string, any>> extends AutomaticEntityValidator<TTarget> {\n  @observable visitedProperties: string[] = [];\n}\n\nexport function hasBlurValidation<TTarget>(target: any): target is IHasBlurValidation<TTarget> {\n  return (\n    (target as IHasValidation<TTarget>)?.__validation !== undefined &&\n    (target as IHasValidation<TTarget>).__validation instanceof BlurAutomaticEntityValidator\n  );\n}\n\nexport function getValidationMessage<TTarget>(target: TTarget, propertyName: PropertyName<TTarget>): string | undefined {\n  if (\n    (hasBlurValidation<TTarget>(target) &&\n      (target.__validation.isErrorsVisible || target.__validation.visitedProperties.includes(propertyName))) ||\n    (hasValidation<TTarget>(target) && target.__validation.isErrorsVisible)\n  ) {\n    return get(target.__validation.errors, propertyName);\n  }\n\n  return undefined;\n}\n\nexport function setVisitedProperty<TTarget>(target: TTarget, propertyName: PropertyName<TTarget>) {\n  if (hasBlurValidation<TTarget>(target)) {\n    target.__validation.visitedProperties.push(propertyName);\n  }\n}\n\nexport function attachAutomaticBlurValidator<TTarget>(\n  target: TTarget,\n  entityValidationRules: IEntityValidationRules<TTarget>,\n  errorsImmediatelyVisible = false\n) {\n  const typedTarget = target as TTarget & IHasValidation<TTarget>;\n  // @ts-ignore\n  typedTarget.__validation = new BlurAutomaticEntityValidator(target, entityValidationRules, errorsImmediatelyVisible);\n  return typedTarget;\n}\n\n/**\n * This monkeyPatch edits ValidationControlBase component to use ours \"getValidationMessage\" function instead of Frui.ts prebuilded one.\n * It deal with validation errors visibility after onBlur action directly.\n *\n * https://github.com/eManPrague/frui.ts/issues/34\n */\nexport function monkeyPatchValidationControlBase() {\n  /* eslint-disable @typescript-eslint/ban-ts-comment */\n\n  // @ts-ignore\n  Object.defineProperty(ValidationControlBase.prototype, \"inheritedProps\", {\n    get: function () {\n      const { target, property, onValueChanged, noValidation, errorMessage, onBlur, ...otherProps } = this.props;\n      const modifiedOnBlur = () => {\n        if (onBlur) {\n          onBlur();\n        }\n        setVisitedProperty(target, property);\n      };\n\n      return {\n        onBlur: modifiedOnBlur,\n        ...otherProps,\n      };\n    },\n  });\n\n  // @ts-ignore\n  ValidationControlBase.prototype.getValidationError =\n    // @ts-ignore\n    EdazPhoneInput.prototype.__proto__.getValidationError =\n    // @ts-ignore\n    TaggedInput.prototype.__proto__.getValidationError =\n      function () {\n        const { noValidation, errorMessage } = this.props;\n\n        if (noValidation === true) {\n          return undefined;\n        }\n\n        if (errorMessage) {\n          return errorMessage;\n        }\n\n        const target = this.props.target;\n        const property = this.props.property as any;\n\n        if (target && property) {\n          return getValidationMessage(target, property);\n        }\n\n        return undefined;\n      };\n\n  /* eslint-enable @typescript-eslint/ban-ts-comment */\n}\n","import { computed, observable } from \"mobx\";\nimport type { EntityValidationRules } from \"services/validationService\";\nimport Notice, { SignatureType } from \"./notice\";\nimport { CountryIdValidationRules, LicensePlateValidationRules } from \"./orderItem\";\nimport CustomerRefundApplicationReason from \"../entities/customerRefundApplicationReason\";\nimport CustomerRefundApplicationOrderSourceType from \"../entities/customerRefundApplicationOrderSourceType\";\nimport Vehicle from \"./vehicle\";\n\nexport const NoticeTechnicalLicenseRules: EntityValidationRules<Notice> = {\n  _technicalLicenseFilesBase64: {\n    requiredIf: {\n      condition: (entity: Notice) => entity._signatureType === SignatureType.DataBox,\n      customMessage: \"documentUploadRequired\",\n    },\n  },\n};\n\nexport default class RefundRequestNotice extends Notice {\n  @observable\n  licensePlate: string;\n\n  @observable\n  countryId: string;\n\n  @observable\n  vehicle: Vehicle = new Vehicle();\n\n  @observable\n  reason: CustomerRefundApplicationReason;\n\n  @observable\n  otherReasonText?: string;\n\n  @observable\n  bankAccount?: string;\n\n  @observable\n  chargeOrderSourceType: CustomerRefundApplicationOrderSourceType = CustomerRefundApplicationOrderSourceType.Eshop;\n\n  @computed\n  get rules(): EntityValidationRules<RefundRequestNotice> {\n    return {\n      ...LicensePlateValidationRules,\n      ...CountryIdValidationRules,\n      ...NoticeTechnicalLicenseRules,\n      reason: {\n        required: true,\n      },\n      chargeOrderSourceType: {\n        required: true,\n      },\n      otherReasonText: {\n        requiredIf: {\n          condition: (entity: RefundRequestNotice) => entity.reason === CustomerRefundApplicationReason.Other,\n        },\n      },\n      bankAccount: {\n        requiredIf: {\n          condition: (entity: RefundRequestNotice) =>\n            entity.chargeOrderSourceType === CustomerRefundApplicationOrderSourceType.Salespoint,\n        },\n        isLength: {\n          max: 42,\n        },\n        // TODO: We don't have translations for the account number validations\n        // isBankAccountNumber: {\n        //   bankCode: true,\n        //   prefix: true,\n        // },\n      },\n    };\n  }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"exemptionBox\":\"electricVehicleExemptionAlert_exemptionBox__1LyOq\",\"content\":\"electricVehicleExemptionAlert_content__162Au\",\"title\":\"electricVehicleExemptionAlert_title__iqA-L\",\"description\":\"electricVehicleExemptionAlert_description__3HPeD\",\"highlight\":\"electricVehicleExemptionAlert_highlight__3n7tH\",\"carImage\":\"electricVehicleExemptionAlert_carImage__1fOpy\"};","import { action } from \"mobx\";\nimport NiaRepository from \"../../repositories/niaRepository\";\nimport EshopError from \"../../models/eshopError\";\nimport EventBus, { NIARedirectFailure } from \"../eventBus\";\nimport { persistCallbackDestination } from \"utils/externalServiceUtils\";\n\nexport const NIA_REDIRECT_FAILURE = \"NIA_REDIRECT_FAILURE\";\n\nexport enum Notice {\n  EXEMPTION = \"exemption\",\n  OMISSION = \"omission\",\n  LICENSE_PLATE_CHANGE = \"license_plate_change\",\n  REFUND_REQUEST = \"refund_request\",\n}\n\nexport const SESSION_STORAGE_NIA_REQUEST_SOURCE_KEY = \"NIA_REQUEST_SOURCE\";\nconst NIA_CALLBACK_DESTINATION_PATH = \"nia\";\n\nexport default class NiaService {\n  constructor(private repository: NiaRepository, private eventBus: EventBus) {}\n\n  @action\n  redirectToNia(notice: Notice) {\n    this.repository\n      .niaRedirect()\n      .then(response => {\n        if (response instanceof EshopError) {\n          this.eventBus.publish(NIARedirectFailure({ type: response.type }));\n        } else {\n          persistCallbackDestination(NIA_CALLBACK_DESTINATION_PATH);\n          sessionStorage.setItem(SESSION_STORAGE_NIA_REQUEST_SOURCE_KEY, notice);\n          window.location.href = response.redirectUrl;\n        }\n      })\n      .catch(() => {\n        this.eventBus.publish(NIARedirectFailure({ type: NIA_REDIRECT_FAILURE }));\n      });\n  }\n}\n","export const getTooltipPosition = (window: any) => (window.innerWidth > 1200 ? \"right-start\" : \"bottom\");\n\nexport const getRightStartOrTopTooltipPosition = (window: any) => (window.innerWidth > 1200 ? \"right-start\" : \"top\");\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargeOverlapResponse {\n  /**\n   * Beginning date and time of charge validity.\n   */\n  @observable\n  @Type(() => Date)\n  validSince!: Date;\n\n  /**\n   * End date and time of charge validity.\n   */\n  @observable\n  @Type(() => Date)\n  validUntil!: Date;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class RequestedChargeValidityResponse {\n  /**\n   * If true - charge is valid from now on.\n   */\n  @observable\n  hasImmediateValidity?: boolean;\n\n  /**\n   * Beginning date of charge validity (must be in future).\n   */\n  @observable\n  @Type(() => Date)\n  validSinceDate?: Date;\n}\n","import LocalizationService from \"../../../services/localizationService\";\nimport Person from \"../../../models/person\";\nimport { ScreenBase } from \"@frui.ts/screens/dist\";\nimport { attachAutomaticBlurValidator } from \"utils/validationPatch\";\nimport { computed, observable, reaction } from \"mobx\";\nimport { bound } from \"@frui.ts/helpers\";\n\nexport default abstract class PersonViewModel extends ScreenBase {\n  private unsubscriptions: Array<() => void> = [];\n  @observable phoneNumberChanged = false;\n\n  @computed\n  get defaultPrefixNumber() {\n    if (!this.phoneNumberChanged) {\n      return this.localizationService.defaultPrefixNumber;\n    }\n    return undefined;\n  }\n\n  @computed\n  get datePickerLocalization() {\n    return this.localizationService.datePickerLocalization;\n  }\n\n  constructor(public person: Person, protected localizationService: LocalizationService) {\n    super();\n    this.attachValidators();\n  }\n\n  protected onInitialize() {\n    this.unsubscriptions.push(reaction(() => this.person.phoneNumber, this.onPhoneNumberChanged));\n    super.onInitialize();\n  }\n\n  protected onDeactivate(isClosing: boolean): Promise<any> | void {\n    if (isClosing) {\n      this.unsubscriptions.forEach(unsubscribe => unsubscribe());\n      this.unsubscriptions = [];\n    }\n    return super.onDeactivate(isClosing);\n  }\n\n  @bound\n  onPhoneNumberChanged() {\n    this.phoneNumberChanged = true;\n  }\n\n  translateGeneral(code: string, size?: number) {\n    return this.localizationService.translateGeneral(code, size);\n  }\n\n  translateAttribute(model: string, attribute: string) {\n    return this.localizationService.translateAttribute(model, attribute);\n  }\n\n  protected attachValidators() {\n    attachAutomaticBlurValidator(this.person, this.person.rules);\n  }\n}\n","import { bound } from \"@frui.ts/helpers\";\r\nimport { ManualEntityValidator } from \"@frui.ts/validation\";\r\nimport { action, computed, observable, reaction } from \"mobx\";\r\nimport { ExemptionState } from \"models/orderItem\";\r\nimport ValidChargeResponse from \"models/validChargeResponse\";\r\nimport Vehicle from \"models/vehicle\";\r\nimport VehicleChangeDuringValidityRequest from \"models/vehicleChangeDuringValidityRequest\";\r\nimport AppRouter from \"services/appRouter\";\r\nimport ChargeManagementService from \"services/chargeManagementService\";\r\nimport ChargeRegistrationService, { RequestSource } from \"services/chargeRegistrationService\";\r\nimport EventBus, {\r\n  emailUpdated,\r\n  putChargeContactFailure,\r\n  putChargeContactSuccess,\r\n  putChargeVehicleFailure,\r\n  putChargeVehicleSuccess,\r\n  vehicleHasValidCharges,\r\n  vehicleRegistration,\r\n} from \"services/eventBus\";\r\nimport LocalizationService from \"services/localizationService\";\r\nimport SignalRNotificationService from \"services/signalR/notification/signalRNotificationService\";\r\nimport { EntityValidationRules } from \"services/validationService\";\r\nimport VehicleInfoViewModel from \"../../common/vehicleInfoViewModel\";\r\nimport exemptionKeys from \"../../utils/exemptionKeys\";\r\nimport ChargeManagementEditPartViewModel from \"./chargeManagementEditPartViewModel\";\r\nimport EmailInputViewModel from \"./common/emailInputViewModel\";\r\nimport VehicleRegistrationResponse from \"entities/vehicleRegistrationResponse\";\r\nimport { scrollToFirstError } from \"utils/scrollTo\";\r\nimport TurnstileViewModel from \"../../common/turnstileViewModel\";\r\nimport ChargeOrderInstructionsResponse from \"entities/chargeOrderInstructionsResponse\";\r\nimport EnumService from \"services/enumService\";\r\nimport ChargeValidityInstructionsResponse from \"entities/chargeValidityInstructionsResponse\";\r\nimport EshopError from \"models/eshopError\";\r\nimport ChargeOverlapType from \"entities/chargeOverlapType\";\r\nimport ChargeVehicleWarningReasonOrder from \"entities/chargeVehicleWarningReasonOrder\";\r\nimport ChargeVehicleWarningReason from \"entities/chargeVehicleWarningReason\";\r\nimport ChargeTypesService from \"services/chargeTypesService\";\r\nimport TimeService from \"services/timeService\";\r\nimport { utcToCZZonedTime, dateToIsoDate } from \"../../../utils/dateUtils\";\r\n\r\nexport default abstract class ChargeManagementLicensePlateChangeViewModel extends ChargeManagementEditPartViewModel {\r\n  abstract get validationRules(): EntityValidationRules<any>;\r\n  abstract get newVehicle(): Vehicle | VehicleChangeDuringValidityRequest | VehicleRegistrationResponse | undefined;\r\n  protected abstract putChargeContactSuccess(data: ReturnType<typeof putChargeContactSuccess>): Promise<void>;\r\n  protected abstract putChargeVehicleSuccess(data: ReturnType<typeof putChargeVehicleSuccess>): Promise<void>;\r\n  abstract submit(): Promise<void> | void;\r\n  abstract onCancelSecondStep(): void;\r\n\r\n  turnstileViewModel: TurnstileViewModel;\r\n  private untilRegex = /%until%/g;\r\n  private sinceRegex = /%since%/g;\r\n  protected manualValidator = new ManualEntityValidator<Vehicle>(false);\r\n  @observable protected _validCharges?: ValidChargeResponse[];\r\n  @observable protected _exemptionState?: ExemptionState;\r\n  @observable protected _licensePlateNumberNotInSystem?: string;\r\n  @observable protected _licensePlateCountryIdNotInSystem?: string;\r\n  @observable originalVehicleInfoViewModel?: VehicleInfoViewModel;\r\n  @observable newVehicleInfoViewModel: VehicleInfoViewModel;\r\n  @observable emailInputViewModel?: EmailInputViewModel;\r\n  @observable overlappingCharges?: any;\r\n\r\n  @computed\r\n  get exemptionInfo() {\r\n    switch (this._exemptionState) {\r\n      case ExemptionState.Exempted:\r\n      case ExemptionState.C:\r\n      case ExemptionState.O:\r\n      case ExemptionState.P:\r\n        const code = exemptionKeys(this._exemptionState);\r\n        return code ? this.ta(code) : undefined;\r\n      default:\r\n        return undefined;\r\n    }\r\n  }\r\n\r\n  @computed\r\n  get validChargesInfo() {\r\n    if (this._validCharges) {\r\n      return this._validCharges\r\n        .map(validCharge =>\r\n          this.ta(\"validSinceRegistrationInfo\")\r\n            .replace(this.untilRegex, this.localizationService.formatDateTime(validCharge.validUntil))\r\n            .replace(this.sinceRegex, this.localizationService.formatDateTime(validCharge.validSince))\r\n        )\r\n        .join(\"\\r\\n\\r\\n\");\r\n    }\r\n\r\n    return undefined;\r\n  }\r\n\r\n  @computed\r\n  get canEdit(): boolean {\r\n    if (!this.charge || !this.charge.validSince) {\r\n      return false;\r\n    }\r\n    const isBeforeValidity = this.timeService.currentServerTime <= utcToCZZonedTime(this.charge.validSince);\r\n    if (isBeforeValidity) {\r\n      return this.charge.permittedActions.vehicleChangeBeforeValidity.isAllowed;\r\n    }\r\n    return this.charge.permittedActions.vehicleChangeDuringValidity.isAllowed;\r\n  }\r\n\r\n  @computed\r\n  get isSameVehicle() {\r\n    return (\r\n      this.charge?.vehicle.countryId === this.newVehicle?.countryId &&\r\n      this.charge?.vehicle.licensePlate === this.newVehicle?.licensePlate\r\n    );\r\n  }\r\n\r\n  constructor(\r\n    public localizationService: LocalizationService,\r\n    protected chargeManagementService: ChargeManagementService,\r\n    protected timeService: TimeService,\r\n    private chargeTypesService: ChargeTypesService,\r\n    protected eventBus: EventBus,\r\n    protected enumService: EnumService,\r\n    protected signalRNotificationService: SignalRNotificationService,\r\n    protected emailInputViewModelFactory: ReturnType<typeof EmailInputViewModel.Factory>,\r\n    protected vehicleInfoViewModelFactory: ReturnType<typeof VehicleInfoViewModel.Factory>,\r\n    protected chargeRegistrationService: ChargeRegistrationService,\r\n    protected router: AppRouter,\r\n    turnstileViewModelFactory: ReturnType<typeof TurnstileViewModel.Factory>\r\n  ) {\r\n    super();\r\n    this.turnstileViewModel = turnstileViewModelFactory(\"chargeManagementLicensePlate\", true);\r\n  }\r\n\r\n  protected onInitialize(): Promise<any> | void {\r\n    this.unsubscriptions.push(\r\n      this.eventBus.subscribe(putChargeVehicleFailure, this.putChargeVehicleFailure),\r\n      this.eventBus.subscribe(putChargeVehicleSuccess, this.putChargeVehicleSuccess),\r\n      this.eventBus.subscribe(vehicleRegistration, this.vehicleRegistration),\r\n      this.eventBus.subscribe(vehicleHasValidCharges, this.vehicleHasValidCharges),\r\n      this.eventBus.subscribe(putChargeContactFailure, this.putChargeContactFailure),\r\n      this.eventBus.subscribe(putChargeContactSuccess, this.putChargeContactSuccess),\r\n      this.eventBus.subscribe(emailUpdated, this.onEmailUpdated)\r\n    );\r\n\r\n    this.originalVehicleInfoViewModel = this.vehicleInfoViewModelFactory(this.charge?.vehicle!, {\r\n      attachValidator: false,\r\n      context: \"old\",\r\n    });\r\n\r\n    this.unsubscriptions.push(\r\n      reaction(\r\n        () => this.newVehicle?.countryId,\r\n        () => {\r\n          this.removeSameVehicleErrors();\r\n          this.resetSecondStep();\r\n        }\r\n      ),\r\n      reaction(\r\n        () => this.newVehicle?.licensePlate,\r\n        () => {\r\n          this.removeSameVehicleErrors();\r\n          this.resetSecondStep();\r\n        }\r\n      ),\r\n      reaction(\r\n        () => this.newVehicle?._countryIdConfirmation,\r\n        () => {\r\n          this.resetSecondStep();\r\n        }\r\n      ),\r\n      reaction(\r\n        () => this.newVehicle?._countryIdConfirmation,\r\n        () => {\r\n          this.resetSecondStep();\r\n        }\r\n      ),\r\n      reaction(\r\n        () => this.newVehicle?._licensePlateConfirmation,\r\n        () => {\r\n          this.resetSecondStep();\r\n        }\r\n      )\r\n    );\r\n\r\n    return super.onInitialize();\r\n  }\r\n\r\n  @computed\r\n  get isDifferentTimeZone() {\r\n    return this.timeService.isFetched && !this.timeService.isServerTimeSame;\r\n  }\r\n\r\n  @computed\r\n  get serverTime() {\r\n    return this.timeService.currentServerTime;\r\n  }\r\n\r\n  @bound\r\n  protected removeSameVehicleErrors() {\r\n    this.manualValidator.removeError(\"licensePlate\");\r\n    this.manualValidator.removeError(\"countryId\");\r\n  }\r\n\r\n  @bound\r\n  protected sameVehicleCheck() {\r\n    this.removeSameVehicleErrors();\r\n\r\n    if (this.isSameVehicle) {\r\n      const errorMessage = this.translate(\"validators.sameVehicle\");\r\n      this.manualValidator.addError(\"licensePlate\", errorMessage);\r\n      this.manualValidator.addError(\"countryId\", errorMessage);\r\n    }\r\n  }\r\n\r\n  @bound\r\n  protected async checkRsvValidity(): Promise<boolean> {\r\n    this.sameVehicleCheck();\r\n    this.success = false;\r\n    this.errorMessage = undefined;\r\n\r\n    if (!this.validate()) {\r\n      scrollToFirstError(this.formElement);\r\n      return false;\r\n    }\r\n\r\n    const newCountryId = this.newVehicle?.countryId;\r\n    const newLicensePlate = this.newVehicle?.licensePlate;\r\n\r\n    if (!newCountryId || !newLicensePlate) return false;\r\n\r\n    this.secondStepLoading = true;\r\n    const [chargeOrderInstructionsResponse, chargeValidityInstructionsResponse] = await Promise.all([\r\n      await this.chargeManagementService.getChargeOrderInstructions(newCountryId, newLicensePlate),\r\n      await this.chargeManagementService.getChargeValidityInstructions(newCountryId, newLicensePlate, undefined, this.charge!.id),\r\n      // Must be loaded here, otherwise it will not work in the translateWarningReason.\r\n      await this.enumService.lazyValues(\"exemption_reasons\"),\r\n    ]);\r\n    this.secondStepLoading = false;\r\n\r\n    this.warningMessages = [];\r\n    this.secondStepErrorMessage = await this.getSecondStepErrorMessage(chargeOrderInstructionsResponse);\r\n    if (chargeOrderInstructionsResponse instanceof ChargeOrderInstructionsResponse) {\r\n      const newMessages = chargeOrderInstructionsResponse.warningReasons\r\n        ?.sort((a, b) => {\r\n          return (\r\n            ChargeVehicleWarningReasonOrder[a as keyof ChargeVehicleWarningReasonOrder] -\r\n            ChargeVehicleWarningReasonOrder[b as keyof ChargeVehicleWarningReasonOrder]\r\n          );\r\n        })\r\n        .map(reason => this.translateWarningReason(reason, chargeOrderInstructionsResponse.possibleExemptionReasonIds));\r\n      if (newMessages) {\r\n        this.warningMessages = [...this.warningMessages, ...newMessages];\r\n      }\r\n    }\r\n    if (chargeValidityInstructionsResponse instanceof ChargeValidityInstructionsResponse) {\r\n      this.overlappingCharges =\r\n        chargeValidityInstructionsResponse.overlappingCharges?.map(overlap =>\r\n          this.translateOverlappingCharge(overlap, this.isDifferentTimeZone ?? false)\r\n        ) ?? [];\r\n      this.warningMessages = [...this.warningMessages];\r\n\r\n      const hasVehicleRegisterExemption =\r\n        chargeOrderInstructionsResponse instanceof ChargeOrderInstructionsResponse &&\r\n        chargeOrderInstructionsResponse.warningReasons?.includes(\r\n          ChargeVehicleWarningReason.VehicleRegisterFuelTypeBasedExemption\r\n        );\r\n\r\n      if (\r\n        chargeValidityInstructionsResponse.overlapTypes?.includes(ChargeOverlapType.ExemptionOverlap) &&\r\n        !hasVehicleRegisterExemption\r\n      ) {\r\n        const exemptionOverlapMessage = this.translateOverlapReason(ChargeOverlapType.ExemptionOverlap);\r\n        this.warningMessages = [exemptionOverlapMessage, ...this.warningMessages];\r\n      }\r\n    }\r\n\r\n    const isAnyFaulted =\r\n      chargeOrderInstructionsResponse instanceof EshopError || chargeValidityInstructionsResponse instanceof EshopError;\r\n    if (isAnyFaulted) {\r\n      return false;\r\n    }\r\n\r\n    const isSuccessful =\r\n      this.warningMessages.length === 0 && this.secondStepErrorMessage === undefined && this.overlappingCharges?.length === 0;\r\n    if (isSuccessful) {\r\n      this.hideConfirmChangeButton = true;\r\n    } else {\r\n      this.showSecondStep = true;\r\n    }\r\n    return isSuccessful;\r\n  }\r\n\r\n  @bound\r\n  protected onEmailUpdated(data: ReturnType<typeof emailUpdated>) {\r\n    this.setEmailAddress(data.payload.emailAddress);\r\n    if (this.emailInputViewModel) {\r\n      this.emailInputViewModel = undefined;\r\n    }\r\n  }\r\n\r\n  @action.bound\r\n  private vehicleHasValidCharges(data: ReturnType<typeof vehicleHasValidCharges>) {\r\n    if (!data.payload.source || !data.payload.validCharges.charges.length) {\r\n      this._validCharges = undefined;\r\n    }\r\n\r\n    if (data.payload.source === RequestSource.NewLicensePlate && data.payload.validCharges.charges.length) {\r\n      this._validCharges = data.payload.validCharges.charges;\r\n    }\r\n  }\r\n\r\n  @action.bound\r\n  vehicleRegistration(data: ReturnType<typeof vehicleRegistration>) {\r\n    const payload = data.payload;\r\n\r\n    if (data.payload.source === RequestSource.NewLicensePlate) {\r\n      if (payload.vehicleRegistration.isGivenExemption) {\r\n        this._exemptionState = ExemptionState.Exempted;\r\n      } else if (payload.vehicleRegistration.possibleExemption) {\r\n        this._exemptionState = payload.vehicleRegistration.possibleExemption;\r\n      }\r\n    }\r\n  }\r\n\r\n  @bound\r\n  protected putChargeContactFailure(data: ReturnType<typeof putChargeContactFailure>) {\r\n    if (data.payload.triggerer !== \"licensePlateChange\") {\r\n      return;\r\n    }\r\n\r\n    this.clearAfterAsyncAction();\r\n    this.setErrorMessageBasedOnType(data.payload.type);\r\n  }\r\n\r\n  @bound\r\n  protected putChargeVehicleFailure(data: ReturnType<typeof putChargeVehicleFailure>) {\r\n    this.clearAfterAsyncAction();\r\n    this.setErrorMessageBasedOnType(data.payload.type);\r\n  }\r\n\r\n  private async getSecondStepErrorMessage(chargeOrderInstructionsResponse: ChargeOrderInstructionsResponse | EshopError) {\r\n    if (chargeOrderInstructionsResponse instanceof EshopError || !this.charge) {\r\n      return undefined;\r\n    }\r\n\r\n    const fuelTypeLimitation = chargeOrderInstructionsResponse.fuelTypeLimitation;\r\n    if (!fuelTypeLimitation) {\r\n      return undefined;\r\n    }\r\n\r\n    await this.enumService.lazyValues(\"fuel_types\");\r\n\r\n    // If the current charge fuel type is the same as the RSV one, it should not show an error.\r\n    const priceListItem = this.chargeTypesService?.getPriceItemList(true);\r\n    const fuelTypeId = priceListItem?.find(x => x.id === this.charge?.priceListItemId)?.fuelTypeId;\r\n    if (fuelTypeLimitation.allowedFuelTypeId === fuelTypeId) {\r\n      return undefined;\r\n    }\r\n\r\n    const matchingFuelType = this.enumService.values(\"fuel_types\").find(x => x.id === fuelTypeLimitation.allowedFuelTypeId);\r\n    const errorMessage = this.localizationService\r\n      .translateAttribute(\"fuelTypeLimitation\", fuelTypeLimitation.limitationReason, undefined, true) // The 'true' is important for markdown links to function correctly.\r\n      .replace(\"%FUEL_TYPE%\", matchingFuelType?.name ?? \"unknown\");\r\n\r\n    return errorMessage;\r\n  }\r\n\r\n  @bound\r\n  private ta(code: string) {\r\n    return this.localizationService.translateAttribute(\"orderItem\", code);\r\n  }\r\n}\r\n","import { ExemptionState } from \"../../models/orderItem\";\n\nexport default function exemptionKeys(registrationState?: ExemptionState) {\n  switch (registrationState) {\n    case ExemptionState.Exempted:\n      return \"exemptedRegistrationInfo\";\n    case ExemptionState.O:\n      return \"possibleElectricVehicleExemption\";\n    case ExemptionState.P:\n      return \"possibleVeteranVehicleExemption\";\n    case ExemptionState.C:\n      return \"possibleMilitaryVehicleExemption\";\n    default:\n      return undefined;\n  }\n}\n","import { computed, observable } from \"mobx\";\nimport Person from \"./person\";\n\nexport default class NaturalPerson extends Person {\n  @observable\n  isRepresentedByProxy = false;\n\n  @computed\n  get validateFullName() {\n    return !!this.mailingAddress || !!this.birthDate;\n  }\n\n  @computed\n  get validateAddress() {\n    return !!this.fullName || !!this.birthDate;\n  }\n\n  @computed\n  get validateBirthDate() {\n    return !!this.fullName || !!this.mailingAddress;\n  }\n\n  @computed\n  get validateNaturalPerson() {\n    return !!this.fullName || !!this.mailingAddress || !!this.birthDate;\n  }\n}\n","import { computed, observable } from \"mobx\";\nimport type { EntityValidationRules } from \"services/validationService\";\nimport Person from \"./person\";\n\nexport const CompanyNameValidationRules: EntityValidationRules<LegalPerson> = {\n  companyName: { required: true, isLength: { max: 45 }, prohibitedCharacters: true },\n};\n\nexport const CompanyAddressValidationRules: EntityValidationRules<LegalPerson> = {\n  companyAddress: { required: true, isLength: { max: 75 }, prohibitedCharacters: true },\n};\n\nexport const CompanyRegistrationNumberValidationRules: EntityValidationRules<LegalPerson> = {\n  companyRegistrationNumber: { isLength: { max: 20 }, prohibitedCharacters: true },\n};\n\nexport default class LegalPerson extends Person {\n  /**\n   * Company name.\n   */\n  @observable\n  companyName!: string;\n\n  /**\n   * Company registration number.\n   */\n  @observable\n  companyRegistrationNumber!: string;\n\n  /**\n   * Company address.\n   */\n  @observable\n  companyAddress!: string;\n\n  @computed\n  get rules(): EntityValidationRules<LegalPerson> {\n    return {\n      ...CompanyNameValidationRules,\n      ...CompanyAddressValidationRules,\n      ...CompanyRegistrationNumberValidationRules,\n    };\n  }\n\n  @computed\n  get validateCompanyName() {\n    return !!this.companyRegistrationNumber || !!this.companyAddress;\n  }\n\n  @computed\n  get validateAddress() {\n    return !!this.companyRegistrationNumber || !!this.companyName;\n  }\n\n  @computed\n  get validateCompanyRegistrationNumber() {\n    return !!this.companyRegistrationNumber || !!this.companyName || !!this.companyAddress;\n  }\n\n  @computed\n  get validateLegalPerson() {\n    return !!this.companyAddress || !!this.companyName || !!this.companyRegistrationNumber;\n  }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"popupViewContainer\":\"popupView_popupViewContainer__eU1jw\",\"h100\":\"popupView_h100__1MCjU\",\"scroll\":\"popupView_scroll__1MCv6\",\"styledScrollbars\":\"popupView_styledScrollbars__3olko\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filterContainer\":\"tradingPlacesAutosuggest_filterContainer__2Gscg\",\"mapSearchIcon\":\"tradingPlacesAutosuggest_mapSearchIcon__1wLYy\",\"suggestion\":\"tradingPlacesAutosuggest_suggestion__1bCx_\",\"suggestionLabel\":\"tradingPlacesAutosuggest_suggestionLabel__26xvD\",\"suggestionIcon\":\"tradingPlacesAutosuggest_suggestionIcon__WrvHk\"};","import min from \"lodash/min\";\n\nfunction scrollTo(options?: ScrollToOptions) {\n  const supportsScrollBehavior = \"scrollBehavior\" in document.documentElement.style;\n\n  if (supportsScrollBehavior) {\n    window.scrollTo(options);\n  } else {\n    window.scrollTo(options?.left || 0, options?.top || 0);\n  }\n}\n\nfunction offset(el: Element) {\n  const rect = el.getBoundingClientRect(),\n    scrollLeft = window.pageXOffset || document.documentElement.scrollLeft,\n    scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n\n  return { top: rect.top + scrollTop, left: rect.left + scrollLeft };\n}\n\nexport function scrollToTop(behavior: ScrollBehavior = \"smooth\") {\n  scrollTo({ top: 0, left: 0, behavior });\n}\n\nexport function scrollToElement(targetElement?: HTMLElement) {\n  if (targetElement) {\n    const offsetTarget = offset(targetElement);\n    scrollTo({ top: offsetTarget.top, left: 0, behavior: \"smooth\" });\n  }\n}\n\nexport function scrollToFirstError(rootElement?: HTMLElement) {\n  // There is delay between error showup\n  setTimeout(() => {\n    if (rootElement) {\n      const invalidElements = rootElement.getElementsByClassName(\"is-invalid\");\n\n      if (invalidElements.length) {\n        const topOffsets = Array.from(invalidElements).map(invalidElement => offset(invalidElement).top);\n        const minTopOffset = min(topOffsets) || 50;\n        scrollTo({ top: minTopOffset - 120, left: 0, behavior: \"smooth\" });\n        return;\n      }\n\n      scrollToElement(rootElement);\n      return;\n    }\n\n    scrollToTop();\n  }, 200);\n}\n","import ChargeOrderItem from \"./chargeOrderItem\";\nimport { Type } from \"class-transformer\";\nimport { observable } from \"mobx\";\nimport { EntityValidationRules } from \"../services/validationService\";\nimport NotificationPreferences from \"./notificationPreferences\";\nimport Payment, { PaymentType } from \"./payment\";\nimport ProposedAfterPurchaseRedirectResponse from \"entities/proposedAfterPurchaseRedirectResponse\";\nimport TransferPaymentInstructionsResponse from \"entities/transferPaymentInstructionsResponse\";\n\nexport enum ChargeOrderStatus {\n  Open = \"OPEN\",\n  PaidBankTransfer = \"PAID_BANK_TRANSFER\",\n  Paid = \"PAID\",\n  Deferred = \"DEFERRED\",\n  Failed = \"FAILED\",\n}\nexport default class ChargeOrder {\n  id: string;\n\n  @observable\n  emailAddress: string;\n\n  @observable\n  paymentType?: PaymentType;\n\n  @Type(() => NotificationPreferences)\n  @observable\n  notificationPreferences: NotificationPreferences = new NotificationPreferences();\n\n  @observable\n  proposedPurchaseRequestId?: string;\n\n  @observable\n  _isProposedPurchase = false;\n\n  @Type(() => ChargeOrderItem)\n  @observable\n  charges: ChargeOrderItem[] = [new ChargeOrderItem()];\n\n  @observable\n  @Type(() => ProposedAfterPurchaseRedirectResponse)\n  _proposedAfterPurchaseRedirect?: ProposedAfterPurchaseRedirectResponse;\n\n  _createdAt: Date = new Date();\n\n  @Type(() => TransferPaymentInstructionsResponse)\n  @observable\n  transferPaymentInstructions?: TransferPaymentInstructionsResponse = new TransferPaymentInstructionsResponse();\n\n  @observable\n  _termsAgreement = false;\n\n  @observable\n  @Type(() => Date)\n  _earliestPossibleValidSinceDate?: Date;\n\n  @observable\n  _earliestPossibleValidSinceDaysBefore?: number;\n\n  @observable\n  _wasReopen = false;\n\n  @observable\n  _status: ChargeOrderStatus = ChargeOrderStatus.Open;\n\n  _origin: \"single\" | \"multiple\" = \"single\";\n}\n\nexport const ChargeOrderValidationRules: EntityValidationRules<ChargeOrder> = {\n  _termsAgreement: {\n    isTrue: true,\n  },\n  paymentType: {\n    required: true,\n  },\n};\n","import { observable } from \"mobx\";\r\nimport { Type } from \"class-transformer\";\r\n\r\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\r\nexport default class ServerTimeResponse {\r\n  /**\r\n   * Response model containing server time data.\r\n   */\r\n  @observable\r\n  @Type(() => Date)\r\n  currentServerTime!: Date;\r\n}\r\n","import { fileFormat } from \"./fileUtils\";\n\nexport const base64ToFile = async (base64: string, fileName: string) => {\n  const blob: any = await fetch(base64).then(response => response.blob());\n  blob.lastModifiedDate = new Date();\n  blob.name = fileName;\n\n  return blob.slice(0, blob.size, fileFormat(base64)) as File;\n};\n\nexport const blobToBase64 = (blob: Blob): Promise<string> => {\n  const reader = new FileReader();\n  reader.readAsDataURL(blob);\n  return new Promise(resolve => {\n    reader.onloadend = () => {\n      resolve(reader.result as string);\n    };\n  });\n};\n","// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nenum OpeningHoursKind {\n  Standard = \"STANDARD\",\n  Holiday = \"HOLIDAY\",\n  Closure = \"CLOSURE\",\n}\nexport default OpeningHoursKind;\n","import { observable } from \"mobx\";\nimport DomesticBankAccountResponse from \"./domesticBankAccountResponse\";\nimport { Type } from \"class-transformer\";\nimport CurrencyCode from \"./currencyCode\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class DomesticTransferPaymentResponse {\n  @observable\n  @Type(() => DomesticBankAccountResponse)\n  bankAccount!: DomesticBankAccountResponse;\n\n  @observable\n  qrCode!: string;\n\n  @observable\n  amount!: number;\n\n  @observable\n  messageForRecipient!: string;\n\n  @observable\n  currencyCode!: CurrencyCode;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport DomesticBankAccountResponse from \"./domesticBankAccountResponse\";\nimport CurrencyCode from \"./currencyCode\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class SepaTransferPaymentResponse {\n  @observable\n  iban!: string;\n\n  @observable\n  swiftCode!: string;\n\n  @observable\n  qrCode!: string;\n\n  @observable\n  amount!: number;\n\n  @observable\n  counterpartyName!: string;\n\n  @observable\n  additionalInformation!: string;\n\n  @observable\n  currencyCode!: CurrencyCode;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport DomesticTransferPaymentResponse from \"./domesticTransferPaymentResponse\";\nimport SepaTransferPaymentResponse from \"./sepaTransferPaymentResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class TransferPaymentInstructionsResponse {\n  /**\n   * Variable symbol, main payment demand identification.\n   */\n  @observable\n  variableSymbol!: number;\n\n  @observable\n  @Type(() => DomesticTransferPaymentResponse)\n  domesticPayment!: DomesticTransferPaymentResponse;\n\n  @observable\n  @Type(() => SepaTransferPaymentResponse)\n  sepaPayment!: SepaTransferPaymentResponse;\n\n  /**\n   * Due date for transfer payment.\n   */\n  @observable\n  @Type(() => Date)\n  dueDate!: Date;\n}\n","import { observable } from \"mobx\";\nimport LanguageCode from \"./languageCode\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class SystemComponentOutageLocalizationResponse {\n  @observable\n  languageCode!: LanguageCode;\n\n  /**\n   * Localized description.\n   */\n  @observable\n  description!: string;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport SystemComponentOutageLocalizationResponse from \"./systemComponentOutageLocalizationResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class SystemComponentOutageResponse {\n  /**\n   * System component outage ID.\n   */\n  id!: string;\n\n  /**\n   * System component code.\n   */\n  @observable\n  systemComponentCode!: string;\n\n  /**\n   * System component outage is supposed to be visible since.\n   */\n  @observable\n  @Type(() => Date)\n  visibleSince!: Date;\n\n  /**\n   * System component outage valid since.\n   */\n  @observable\n  @Type(() => Date)\n  validSince!: Date;\n\n  /**\n   * System component outage valid until.\n   */\n  @observable\n  @Type(() => Date)\n  validUntil?: Date;\n\n  /**\n   * System component outage description in default language.\n   */\n  @observable\n  description?: string;\n\n  /**\n   * The list of description localizations.\n   */\n  @observable\n  @Type(() => SystemComponentOutageLocalizationResponse)\n  localizations!: SystemComponentOutageLocalizationResponse[];\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"checkboxGroup\":\"tradingPlacesFilter_checkboxGroup__3F3Tk\",\"checkbox\":\"tradingPlacesFilter_checkbox__Vbw_A\"};","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport ChargePriceListResponse from \"./chargePriceListResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargePriceListsResponse {\n  /**\n   * The price lists.\n   */\n  @observable\n  @Type(() => ChargePriceListResponse)\n  items!: ChargePriceListResponse[];\n}\n","import { czechID } from \"config\";\nimport { action, computed, observable, toJS, set, runInAction } from \"mobx\";\nimport ChargeOrder, { ChargeOrderStatus } from \"models/chargeOrder\";\nimport LocalizationService from \"./localizationService\";\nimport ChargeOrderStorageRepository from \"../repositories/chargeOrderStorageRepository/chargeOrderStorageRepository\";\nimport { attachAutomaticBlurValidator } from \"utils/validationPatch\";\nimport ChargeOrderItem, { ChargeOrderItemValidationRules } from \"models/chargeOrderItem\";\nimport ChargeOrderRepository from \"repositories/chargeOrderRepository\";\nimport { isAfter, isBefore } from \"date-fns\";\nimport OutageService from \"./outageService\";\nimport {\n  CHARGE_ORDER_REQUEST_PROCESSING_FAILED,\n  FUEL_TYPE_NOT_ALLOWED,\n  NOTIFICATION_SERVICE_CONNECTION_ID_UNDEFINED,\n  NOTIFICATION_SERVICE_INIT_FAILURE,\n  NOTIFICATION_SERVICE_START_FAILURE,\n  NOTIFICATION_SERVICE_STOP_FAILURE,\n  OUTAGE_ACTIVATED,\n  PERSISTENCE_ORDER_UPDATE_FAILURE,\n  POST_CHARGE_ORDER_FAILURE,\n  VALID_SINCE_INVALID,\n} from \"repositories/order/constants\";\nimport EventBus, {\n  multiOrderIsInvalid,\n  orderIsInvalid,\n  paymentEmailAddressInvalid,\n  paymentFailed,\n  paymentFuelTypeNotAllowed,\n  paymentMultiEmailAddressInvalid,\n  paymentMultiFuelTypeNotAllowed,\n  paymentValidSinceInvalid,\n  preselectChargeType,\n  proposedPurchageCharge,\n} from \"./eventBus\";\nimport SignalRNotificationService from \"./signalR/notification/signalRNotificationService\";\nimport { IHasValidation, validate, validateAll } from \"@frui.ts/validation\";\nimport NotificationPreferences from \"models/notificationPreferences\";\nimport { PaymentType } from \"models/payment\";\nimport ChargeOrderResponse from \"entities/chargeOrderResponse\";\nimport copyChargeOrderDeep from \"utils/copyChargeOrderDeep\";\nimport PaymentResult from \"models/paymentResult\";\nimport GetApiV3ChargeProposedPurchaseQuery from \"entities/getApiV3ChargeProposedPurchaseQuery\";\nimport ChargeTypesService from \"./chargeTypesService\";\nimport * as Sentry from \"@sentry/react\";\nimport ChargeValidity, { daysValidFor } from \"entities/chargeValidity\";\nimport PriceService from \"./priceService\";\nimport { ChargeOrderItemBatchValidationRules } from \"../models/chargeOrderItem\";\nimport Vehicle from \"models/vehicle\";\nimport { forEach, isEqual } from \"lodash\";\nimport { dateToIsoDate, endOfCzechDay, isSameOrBeforePragueDay, startOfCzechDay } from \"utils/dateUtils\";\nimport TimeService from \"./timeService\";\nimport EnumService from \"./enumService\";\nimport ChargeTypeResponse from \"entities/chargeTypeResponse\";\nimport ChargeProposedPurchaseResponse from \"../entities/chargeProposedPurchaseResponse\";\nimport VehicleRepository from \"repositories/vehicleRepository\";\nimport EshopError from \"models/eshopError\";\n\nexport const validForToNotificationDays = (\n  tg: (code: string) => string,\n  notifyDaysBefore?: number,\n  isSmartRedirect = true,\n  isMulti = false\n) => {\n  const countRegex = /%count%/g;\n  const daysRegex = /%days%/g;\n  const localizedString = notifyDaysBefore === 2 ? tg(\"2days\") : tg(\"days\");\n  const result = localizedString.replace(countRegex, notifyDaysBefore ? notifyDaysBefore.toString() : \"\");\n  let infoKey: string;\n  if (isMulti) {\n    infoKey = \"notificationEnabledInfoMulti\";\n  } else {\n    infoKey = isSmartRedirect ? \"notificationEnabledInfo\" : \"classicNotificationEnabledInfo\";\n  }\n\n  return tg(infoKey).replace(daysRegex, result);\n};\n\nexport default class ChargeOrderService {\n  private readonly countRegex = /%count%/g;\n  private readonly indexRegex = /%index%/g;\n  @observable paymentError: string;\n  @observable chargeTypes: string;\n  @observable earliestPossibleValidSinceDate: Date;\n  @observable earliestPossibleValidSinceDaysBefore: number;\n  @observable chargeOrder: ChargeOrder = new ChargeOrder();\n  postChargeOrder: ChargeOrder = new ChargeOrder();\n  chargePrice = this.priceService.chargePrice;\n  orderItemTotal = this.priceService.chargeOrderItemTotal;\n\n  // Smart redirect validation results\n  @observable smartRedirectRequiresReset = false;\n  @observable smartRedirectFuelTypeLocked = false;\n\n  constructor(\n    private storage: ChargeOrderStorageRepository,\n    private chargeTypeService: ChargeTypesService,\n    private enumService: EnumService,\n    private timeService: TimeService,\n    private localizationService: LocalizationService,\n    private notificationService: SignalRNotificationService,\n    private outageService: OutageService,\n    private priceService: PriceService,\n    private chargeOrderRepository: ChargeOrderRepository,\n    private eventBus: EventBus,\n    private vehicleRepository: VehicleRepository\n  ) {\n    this.getTransferPaymentRestrictions();\n    const chargeOrder = this.storage.getLastChargeOrder();\n    if (chargeOrder !== undefined) {\n      this.chargeOrder = chargeOrder;\n      this.attachOrderValidators(this.chargeOrder);\n      // Don't reset order when user move in history\n    } else {\n      this.createNewChargeOrder();\n    }\n  }\n\n  @computed\n  get chargeOrderItem() {\n    if (!this.chargeOrder.charges.length) {\n      this.chargeOrder.charges.push(new ChargeOrderItem());\n    }\n    return this.chargeOrder.charges[0];\n  }\n\n  @computed\n  get chargeOrderItems() {\n    return this.chargeOrder.charges;\n  }\n\n  @computed\n  get isTransferDisabled() {\n    if (this.earliestPossibleValidSinceDate) {\n      return this.chargeOrder.charges.reduce(\n        (summary, item) =>\n          summary ||\n          (item.validity.validSinceDate !== undefined &&\n            isAfter(\n              startOfCzechDay(new Date(this.earliestPossibleValidSinceDate)),\n              startOfCzechDay(new Date(item.validity.validSinceDate))\n            )),\n        false\n      );\n    }\n    return false;\n  }\n\n  @computed\n  get eshopOutage() {\n    return this.outageService.eshopActiveOutage;\n  }\n\n  @computed\n  get isOrderComplete() {\n    return this.chargeOrder._status === ChargeOrderStatus.Paid || this.chargeOrder._status === ChargeOrderStatus.PaidBankTransfer;\n  }\n\n  @computed\n  get payGateOutage() {\n    return this.outageService.payGateActiveOutage;\n  }\n\n  @computed\n  get areOrderItemsValid() {\n    return this.chargeOrder.charges.reduce((isValid, item) => {\n      const itemValidation = (item as any as IHasValidation<ChargeOrderItem>).__validation;\n      return !!isValid && !!itemValidation?.isValid;\n    }, true);\n  }\n\n  @computed\n  get orderIsEmptyOrIncomplete() {\n    if (!this.chargeOrder.charges.length) return true;\n\n    for (const item of this.chargeOrder.charges) {\n      if (!item.licensePlates.length || !item._chargeTypeId) return true;\n    }\n\n    return false;\n  }\n\n  @computed\n  get isWholeOrderValid() {\n    const isOrderValid = (this.chargeOrder as any as IHasValidation<ChargeOrder>).__validation?.isValid;\n    const isNotificationPreferences = (this.chargeOrder.notificationPreferences as any as IHasValidation<NotificationPreferences>)\n      .__validation?.isValid;\n    return !!isOrderValid && !!isNotificationPreferences && this.areOrderItemsValid;\n  }\n\n  private async formatOrder() {\n    const serverDate = await this.timeService.getCurrentServerTime();\n    this.postChargeOrder.charges = this.postChargeOrder.charges.map((item: ChargeOrderItem) => {\n      if (item.licensePlate && item.licensePlates.length === 0) {\n        item.licensePlates = [item.licensePlate];\n        item.licensePlate = undefined;\n      }\n      if (item.licensePlate && item.licensePlates.length > 0) {\n        item.licensePlate = undefined;\n      }\n      if (item.validity.validSinceDate && isSameOrBeforePragueDay(item.validity.validSinceDate, serverDate)) {\n        item.validity.hasImmediateValidity = true;\n        item.validity.validSinceDate = undefined;\n      }\n      if (item.validity.validSinceDate && !isSameOrBeforePragueDay(item.validity.validSinceDate, serverDate)) {\n        item.validity.hasImmediateValidity = undefined;\n      }\n      return item;\n    });\n    if (this.postChargeOrder.notificationPreferences.emailNotificationEnabled === false) {\n      this.postChargeOrder.notificationPreferences.emailAddress = undefined;\n    }\n    if (\n      this.postChargeOrder.notificationPreferences.emailNotificationEnabled &&\n      this.postChargeOrder.notificationPreferences._emailAddressNotification\n    ) {\n      this.postChargeOrder.notificationPreferences.emailAddress =\n        this.postChargeOrder.notificationPreferences._emailAddressNotification;\n    }\n    if (this.postChargeOrder.paymentType === PaymentType.GooglePay) {\n      this.postChargeOrder.paymentType = PaymentType.PayGate;\n    }\n    this.postChargeOrder.id = \"\";\n  }\n\n  private async startOrderCreationProcess(turnstileToken: string | undefined | null) {\n    return this.notificationService\n      .serviceStart()\n      .then(async () => {\n        if (!this.notificationService.connectionId) {\n          this.eventBus.publish(paymentFailed({ message: NOTIFICATION_SERVICE_CONNECTION_ID_UNDEFINED }));\n          return;\n        }\n\n        this.chargeOrderRepository.post(this.postChargeOrder, this.notificationService.connectionId, turnstileToken).catch(() => {\n          this.eventBus.publish(paymentFailed({ message: POST_CHARGE_ORDER_FAILURE }));\n        });\n      })\n      .catch(() => {\n        this.eventBus.publish(paymentFailed({ message: NOTIFICATION_SERVICE_START_FAILURE }));\n      });\n  }\n\n  private translateGeneral(code: string) {\n    return this.localizationService.translateGeneral(`multiEshop.${code}`);\n  }\n\n  private attachOrderValidators(chargeOrder?: ChargeOrder) {\n    if (chargeOrder?._origin === \"multiple\") {\n      attachAutomaticBlurValidator(chargeOrder || this.chargeOrder, ChargeOrderItemBatchValidationRules);\n    } else {\n      attachAutomaticBlurValidator(chargeOrder || this.chargeOrder, ChargeOrderItemValidationRules);\n    }\n  }\n\n  @action.bound\n  getPaymentConfirmation() {\n    return this.chargeOrderRepository.getPaymentConfirmation(this.chargeOrder.id);\n  }\n\n  @action.bound\n  setChargeOrderStatus(status: ChargeOrderStatus) {\n    return this.storage.storeChargeStatus(status);\n  }\n\n  @action.bound\n  getChargeOrderStatus() {\n    return this.storage.getChargeStatus();\n  }\n\n  @action.bound\n  clearChargeOrderStatus() {\n    return this.storage.clearChargeStatus();\n  }\n\n  @computed\n  get isSmartRedirect() {\n    return !!this.chargeOrder.proposedPurchaseRequestId || this.chargeOrder._isProposedPurchase;\n  }\n\n  @action.bound\n  notificationInfoMulti() {\n    const orderItem = this.chargeOrderItem;\n    let genericInfo = false;\n\n    if (!orderItem) {\n      return undefined;\n    }\n\n    forEach(this.chargeOrderItems, item => {\n      if (item._chargeTypeId !== orderItem._chargeTypeId) {\n        genericInfo = true;\n      }\n    });\n\n    const chargeType = this.chargeTypeService.findChargeType(orderItem._chargeTypeId);\n    if (genericInfo || !chargeType?.notifyDaysBefore) {\n      const infoKey = this.isSmartRedirect ? \"notificationEnabledInfoGenericMulti\" : \"classicNotificationEnabledInfoGenericMulti\";\n      return this.translateNotificationInfo(infoKey);\n    }\n\n    return validForToNotificationDays(this.translateNotificationInfo, chargeType.notifyDaysBefore, this.isSmartRedirect, true);\n  }\n\n  @action.bound\n  notificationInfoSingle() {\n    const orderItem = this.chargeOrderItem;\n    if (!orderItem) {\n      return undefined;\n    }\n\n    const chargeType = this.chargeTypeService.findChargeType(orderItem._chargeTypeId);\n\n    if (!chargeType?.notifyDaysBefore) {\n      return this.translateNotificationInfo(\"notificationEnabledInfoGeneric\");\n    }\n\n    return validForToNotificationDays(this.translateNotificationInfo, chargeType.notifyDaysBefore, true);\n  }\n\n  @action.bound\n  translateNotificationInfo(code: string, disableUnbreakableRules = false) {\n    return this.localizationService.translateGeneral(`eshop.order.contact.${code}`, undefined, disableUnbreakableRules);\n  }\n\n  @action.bound\n  reopenOrder() {\n    this.chargeOrder._status = ChargeOrderStatus.Open;\n    this.chargeOrder._wasReopen = true;\n    this.persistChargeOrder();\n  }\n\n  @action.bound\n  preselectChargeType(days: number, chargeTypes: ChargeTypeResponse[]) {\n    if (!this.chargeOrder.charges.length) return;\n    const validFor = daysValidFor(days);\n    this.chargeTypeService.setChargeTypes(chargeTypes);\n    const chargeType = chargeTypes.find(item => item.validFor === validFor);\n    this.chargeOrderItem._chargeTypeId = this.chargeOrderItem.chargeTypeId = chargeType?.id;\n    if (chargeType?.id) {\n      this.eventBus.publish(preselectChargeType({ chargeType }));\n    }\n    this.persistChargeOrder();\n  }\n\n  @action.bound\n  async prefillPremadeOrder({ chargeId, proposedPurchaseRequestID }: GetApiV3ChargeProposedPurchaseQuery) {\n    let proposedPurchase: ChargeProposedPurchaseResponse | undefined;\n    try {\n      if (chargeId) {\n        proposedPurchase = await this.chargeOrderRepository.getProposedPurchase({\n          chargeId,\n        });\n      } else if (proposedPurchaseRequestID) {\n        proposedPurchase = await this.chargeOrderRepository.postProposedPurchaseRequest({\n          proposedPurchaseRequestID,\n        });\n      }\n\n      if (!proposedPurchase) {\n        return;\n      }\n\n      const orderItem = this.chargeOrderItem;\n      orderItem.priceListItemId = \"\";\n      orderItem.licensePlate = orderItem._licensePlateConfirmation = proposedPurchase.vehicle?.licensePlate;\n      orderItem.countryId = proposedPurchase.vehicle?.countryId;\n      orderItem._fuelTypeId = proposedPurchase.fuelTypeId;\n      orderItem._chargeTypeId = proposedPurchase.chargeTypeId;\n      orderItem.validSince = orderItem.validity.validSinceDate = proposedPurchase.validity?.validSinceDate\n        ? startOfCzechDay(proposedPurchase.validity?.validSinceDate)\n        : undefined;\n      orderItem.validity.hasImmediateValidity = proposedPurchase.validity?.hasImmediateValidity;\n      orderItem._hasImmediateValidity = proposedPurchase.validity?.hasImmediateValidity;\n\n      const validChargeTypes = this.chargeTypeService.validChargeTypes;\n      const allChargeTypes = this.chargeTypeService.chargeTypes;\n      const proposedChargeTypeId = proposedPurchase.chargeTypeId;\n      const prefilledValidChargeType = validChargeTypes.find(x => x.id == proposedChargeTypeId);\n      if (!prefilledValidChargeType) {\n        const invalidPrefilledChargeType = allChargeTypes.find(x => x.id == proposedChargeTypeId);\n\n        if (invalidPrefilledChargeType) {\n          const closestValidCharge = validChargeTypes.find(x => x.validFor == invalidPrefilledChargeType.validFor);\n          orderItem._chargeTypeId = closestValidCharge?.id;\n        } else {\n          orderItem._chargeTypeId = undefined;\n        }\n      }\n\n      if (orderItem._fuelTypeId) {\n        orderItem._priceListItems = this.chargeTypeService.chargePriceList?.items.filter(\n          item => item.fuelTypeId === orderItem._fuelTypeId\n        );\n      }\n\n      if (orderItem._chargeTypeId) {\n        const priceListItem = orderItem._priceListItems?.find(item => item.chargeTypeId === orderItem._chargeTypeId);\n        if (priceListItem) {\n          orderItem.priceListItemId = priceListItem.id;\n        }\n      }\n\n      const proposedChargeType = allChargeTypes.find(x => x.id === proposedChargeTypeId);\n      const isSingleDayCharge = proposedChargeType?.validFor === ChargeValidity.SingleDay;\n\n      orderItem._singleChargeType = isSingleDayCharge;\n\n      const notificationPreferences = this.chargeOrder.notificationPreferences;\n      this.chargeOrder.emailAddress = proposedPurchase.emailAddress ?? \"\";\n      notificationPreferences.emailAddress = proposedPurchase.emailAddress ?? \"\";\n      notificationPreferences._emailConfirmation = proposedPurchase.emailAddress ?? \"\";\n\n      if (!isSingleDayCharge) {\n        notificationPreferences.emailNotificationEnabled =\n          proposedPurchase.notificationPreferences?.emailNotificationEnabled || false;\n\n        notificationPreferences.smsNotificationEnabled =\n          proposedPurchase.notificationPreferences?.smsNotificationEnabled || false;\n\n        notificationPreferences._emailAddressNotification = proposedPurchase.notificationPreferences?.emailAddress || undefined;\n\n        notificationPreferences._isNotificationEmailSame =\n          proposedPurchase.notificationPreferences?.emailAddress === proposedPurchase.emailAddress &&\n          !!proposedPurchase.notificationPreferences?.emailAddress &&\n          !!proposedPurchase.emailAddress;\n        notificationPreferences._notificationEnabled =\n          !!proposedPurchase.notificationPreferences?.smsNotificationEnabled ||\n          !!proposedPurchase.notificationPreferences?.emailNotificationEnabled;\n\n        notificationPreferences.phoneNumber = proposedPurchase.notificationPreferences?.phoneNumber;\n      } else {\n        notificationPreferences.emailNotificationEnabled = false;\n        notificationPreferences.smsNotificationEnabled = false;\n        notificationPreferences._notificationEnabled = false;\n      }\n\n      this.chargeOrder.proposedPurchaseRequestId = proposedPurchase.proposedPurchaseRequestId;\n      this.chargeOrder._isProposedPurchase = true;\n      this.chargeOrder.notificationPreferences = notificationPreferences;\n      this.persistChargeOrder();\n\n      const hasRequiredData =\n        proposedPurchase.vehicle?.licensePlate &&\n        proposedPurchase.vehicle?.countryId &&\n        proposedPurchase.emailAddress &&\n        proposedPurchase.fuelTypeId &&\n        proposedPurchase.chargeTypeId;\n\n      if (!hasRequiredData) {\n        this.smartRedirectRequiresReset = true;\n        this.eventBus.publish(proposedPurchageCharge({ proposedPurchase }));\n        return;\n      }\n\n      await this.validateSmartRedirectVehicle(orderItem);\n\n      this.eventBus.publish(proposedPurchageCharge({ proposedPurchase }));\n    } catch (error) {\n      Sentry.withScope(scope => {\n        scope.setTag(\"proposedPurchase\", \"prefill\");\n        Sentry.captureException(error);\n      });\n    }\n  }\n\n  @action.bound\n  private async validateSmartRedirectVehicle(orderItem: ChargeOrderItem) {\n    this.smartRedirectRequiresReset = false;\n    this.smartRedirectFuelTypeLocked = false;\n\n    if (!orderItem.countryId || !orderItem.licensePlate) {\n      return;\n    }\n\n    try {\n      const orderInstructions = await this.vehicleRepository.getChargeOrderInstruction(\n        orderItem.countryId,\n        orderItem.licensePlate\n      );\n\n      if (orderInstructions && !(orderInstructions instanceof EshopError)) {\n        if (orderInstructions.warningReasons && orderInstructions.warningReasons.length > 0) {\n          this.smartRedirectRequiresReset = true;\n          return;\n        }\n\n        if (orderInstructions.fuelTypeLimitation?.allowedFuelTypeId) {\n          this.smartRedirectFuelTypeLocked = true;\n          orderItem._fuelTypeLimitation = orderInstructions.fuelTypeLimitation;\n\n          if (!orderItem._fuelTypeId) {\n            orderItem._fuelTypeId = orderInstructions.fuelTypeLimitation.allowedFuelTypeId;\n          }\n        } else {\n          orderItem._fuelTypeLimitation = undefined;\n        }\n      }\n\n      // If validity data is completely missing from API response, require reset to step 1\n      const hasValidityDataFromApi =\n        orderItem._hasImmediateValidity !== undefined || orderItem.validity?.validSinceDate !== undefined;\n      if (!hasValidityDataFromApi) {\n        this.smartRedirectRequiresReset = true;\n        return;\n      }\n\n      const hasImmediateValidity = orderItem._hasImmediateValidity ?? true;\n      const hasRequiredValidityData = hasImmediateValidity || orderItem.validity?.validSinceDate;\n\n      if (orderItem.priceListItemId && orderItem._chargeTypeId && orderItem._fuelTypeId && hasRequiredValidityData) {\n        const validityInstructions = await this.vehicleRepository.proposedValidity(\n          orderItem.countryId,\n          orderItem.licensePlate,\n          orderItem.priceListItemId,\n          hasImmediateValidity,\n          orderItem.validity?.validSinceDate\n        );\n\n        if (validityInstructions && !(validityInstructions instanceof EshopError)) {\n          if (validityInstructions.overlapTypes && validityInstructions.overlapTypes.length > 0) {\n            this.smartRedirectRequiresReset = true;\n            return;\n          }\n\n          if (validityInstructions.proposedValidity) {\n            this.smartRedirectRequiresReset = true;\n            return;\n          }\n\n          if (orderItem._hasImmediateValidity && !orderItem.validity?.validSinceDate && validityInstructions.validSince) {\n            orderItem.validSince = orderItem.validity.validSinceDate = new Date(validityInstructions.validSince);\n            orderItem._validUntil = new Date(validityInstructions.validUntil);\n          }\n        }\n      }\n    } catch (error) {\n      console.error(\"Error validating smart redirect vehicle:\", error);\n      Sentry.withScope(scope => {\n        scope.setTag(\"smartRedirect\", \"validation\");\n        Sentry.captureException(error);\n      });\n    }\n  }\n\n  @action.bound\n  filterEmptyChargeOrderCharges() {\n    if (this.chargeOrderItems.length > 1) {\n      const noneEmptyOrderItems = this.chargeOrderItems.filter(item => item.licensePlates.length > 0);\n      this.chargeOrder.charges = noneEmptyOrderItems.length ? noneEmptyOrderItems : [this.chargeOrder.charges[0]];\n    }\n  }\n\n  @action.bound\n  chargeLabel(chargeTypeId: string) {\n    const chargeValidFor = this.chargeTypeService.validChargeTypes.find(charge => charge.id === chargeTypeId)?.validFor;\n    if (!chargeValidFor) return \"\";\n    return this.localizationService.translateAttribute(\"chargeType\", chargeValidFor);\n  }\n\n  @action.bound\n  async payOrder(\n    turnstileToken: string | undefined | null,\n    isSingleOrder: boolean,\n    completion: (chargeOrder: ChargeOrderResponse) => void\n  ) {\n    if (this.eshopOutage !== undefined) {\n      this.eventBus.publish(paymentFailed({ message: OUTAGE_ACTIVATED }));\n      return;\n    }\n    this.postChargeOrder = toJS(this.chargeOrder);\n    await this.formatOrder();\n    await this.notificationService.initialize().catch(() => {\n      this.eventBus.publish(paymentFailed({ message: NOTIFICATION_SERVICE_INIT_FAILURE }));\n    });\n    this.notificationService.subscribeToPostChargeOrderResult(async (chargeOrder?: ChargeOrderResponse, code?: string) => {\n      if (code === VALID_SINCE_INVALID) {\n        this.eventBus.publish(paymentValidSinceInvalid({ message: code }));\n        return;\n      }\n      if (code === FUEL_TYPE_NOT_ALLOWED && isSingleOrder) {\n        this.eventBus.publish(paymentFuelTypeNotAllowed({ message: code }));\n        return;\n      }\n      if (code === FUEL_TYPE_NOT_ALLOWED && !isSingleOrder) {\n        this.eventBus.publish(paymentMultiFuelTypeNotAllowed({ message: code }));\n        return;\n      }\n      if (code === CHARGE_ORDER_REQUEST_PROCESSING_FAILED && isSingleOrder) {\n        this.eventBus.publish(paymentEmailAddressInvalid({ message: code }));\n        return;\n      }\n      if (code === CHARGE_ORDER_REQUEST_PROCESSING_FAILED && !isSingleOrder) {\n        this.eventBus.publish(paymentMultiEmailAddressInvalid({ message: code }));\n        return;\n      }\n      if (code) {\n        this.eventBus.publish(paymentFailed({ message: code }));\n        return;\n      }\n\n      if (!chargeOrder) {\n        this.eventBus.publish(paymentFailed({ message: POST_CHARGE_ORDER_FAILURE }));\n        return;\n      }\n      await Promise.all([\n        await this.updateOrder(chargeOrder).catch(() => {\n          this.eventBus.publish(paymentFailed({ message: PERSISTENCE_ORDER_UPDATE_FAILURE }));\n        }),\n        this.notificationService.serviceStop().catch(() => {\n          this.eventBus.publish(paymentFailed({ message: NOTIFICATION_SERVICE_STOP_FAILURE }));\n        }),\n      ]);\n\n      completion(chargeOrder);\n    });\n\n    await this.startOrderCreationProcess(turnstileToken);\n  }\n\n  @action.bound\n  updatePaymentMethod() {\n    if (this.isTransferDisabled && this.chargeOrder.paymentType === PaymentType.Transfer) {\n      this.chargeOrder.paymentType = undefined;\n    }\n  }\n\n  @action.bound\n  async updateOrder(chargeOrder: ChargeOrderResponse) {\n    const { charges, transferPaymentInstructions } = chargeOrder;\n    const newOrder = copyChargeOrderDeep(this.chargeOrder);\n\n    newOrder.charges.forEach((item, index) => {\n      item.validity.validSinceDate = charges[index].validSince;\n      item.validity._validUntilDate = charges[index].validUntil;\n      item.countryId = charges[index].vehicle.countryId;\n      item.licensePlate = charges[index].vehicle.licensePlate;\n      if (charges.length === 1) {\n        item.authCode = charges[index].authCode;\n      }\n    });\n\n    newOrder._status = chargeOrder.status;\n    newOrder._proposedAfterPurchaseRedirect = chargeOrder.proposedAfterPurchaseRedirect;\n    newOrder.transferPaymentInstructions = transferPaymentInstructions;\n    newOrder.id = chargeOrder.id;\n\n    this.storage.addChargeOrder(newOrder);\n    this.storage.removeChargeOrder(this.chargeOrder.id);\n    this.chargeOrder = newOrder;\n    this.persistStoredChargeOrder(this.chargeOrder);\n  }\n\n  @action.bound\n  createNewChargeOrder(vehicle?: Vehicle) {\n    this.chargeOrder = new ChargeOrder();\n    if (vehicle) {\n      this.chargeOrder.charges[0].countryId = vehicle.countryId;\n      this.chargeOrder.charges[0].licensePlate = vehicle.licensePlate;\n      this.chargeOrder.charges[0]._licensePlateConfirmation = vehicle.licensePlate;\n    } else if (this.localizationService.locale === \"cs\") {\n      this.chargeOrder.charges[0].countryId = czechID;\n    }\n    this.storage.addChargeOrder(this.chargeOrder);\n    const chargeOrder = this.storage.getLastChargeOrder();\n    if (chargeOrder) {\n      this.chargeOrder = chargeOrder;\n    }\n  }\n\n  @action.bound\n  validateOrder(silent = false) {\n    const hasValidItems = this.chargeOrder.charges.reduce((isValid, item) => {\n      return validate(item) && isValid;\n    }, true);\n    const isValid = validateAll([this.chargeOrder, this.chargeOrder.notificationPreferences]) && hasValidItems;\n    if (!isValid && !silent) {\n      this.eventBus.publish(orderIsInvalid());\n    }\n\n    return isValid;\n  }\n\n  @action.bound\n  validateMultiOrder() {\n    const hasValidItems = this.chargeOrder.charges.reduce(item => {\n      return validate(item);\n    }, true);\n    const isValid = validate(this.chargeOrder.notificationPreferences) && hasValidItems && validate(this.chargeOrder);\n    if (!isValid) {\n      this.eventBus.publish(multiOrderIsInvalid());\n    }\n\n    return isValid;\n  }\n\n  @action.bound\n  orderPaidByBankTransfer() {\n    const chargeOrderId = this.chargeOrder.id;\n    this.chargeOrder._status = ChargeOrderStatus.PaidBankTransfer;\n    this.persistChargeOrder();\n\n    return chargeOrderId;\n  }\n\n  @action.bound\n  async getStoredChargeOrder(chargeOrderId: string) {\n    const order = await this.storage.getChargeOrder(chargeOrderId);\n    this.attachOrderValidators(order);\n\n    return order;\n  }\n\n  @action.bound\n  persistChargeOrder() {\n    if (!this.chargeOrder.id) return;\n\n    const stored = this.storage.getChargeOrder(this.chargeOrder.id);\n    const plainNew = toJS(this.chargeOrder);\n    this.clearValidation(plainNew);\n\n    if (!isEqual(stored, plainNew)) {\n      this.storage.updateChargeOrder(this.chargeOrder);\n    }\n  }\n\n  @action.bound\n  persistStoredChargeOrder(chargeOrder: ChargeOrder) {\n    if (!chargeOrder.id) return;\n\n    const stored = this.storage.getChargeOrder(chargeOrder.id);\n    const plain = toJS(chargeOrder);\n    this.clearValidation(plain);\n\n    if (!isEqual(stored, plain)) {\n      this.storage.updateChargeOrder(plain);\n    }\n  }\n\n  @action.bound\n  translateVehicleCount(count: number, index: number) {\n    const string = this.translateGeneral(\"vehicleCount\");\n\n    return string.replace(this.countRegex, count.toString()).replace(this.indexRegex, index.toString());\n  }\n\n  @action.bound\n  addChargeOrderItem() {\n    const item = new ChargeOrderItem();\n    if (this.localizationService.locale === \"cs\") {\n      item.countryId = czechID;\n    }\n\n    item.id = Math.random().toString();\n    this.chargeOrder.charges.push(item);\n    this.chargeOrder._origin = \"multiple\";\n    return item;\n  }\n\n  @action.bound\n  removeChargeOrderItem(chargeOrderItem: ChargeOrderItem) {\n    this.chargeOrder.charges.splice(this.chargeOrder.charges.indexOf(chargeOrderItem), 1);\n    if (this.chargeOrder.charges.length === 1) {\n      this.chargeOrder.charges[0]._visible = true;\n    }\n  }\n\n  @action.bound\n  async updateChargeOrderStatus(paymentResult: PaymentResult, chargeOrder: ChargeOrder, chargeOrderId?: string) {\n    switch (paymentResult) {\n      case PaymentResult.SUCCESS:\n        chargeOrder._status = ChargeOrderStatus.Paid;\n        if (!chargeOrderId) {\n          chargeOrderId = this.chargeOrder.id;\n        }\n        const remoteOrder = await this.chargeOrderRepository.get(chargeOrderId);\n        this.updateOrder(remoteOrder);\n        break;\n      case PaymentResult.DEFERRED:\n        chargeOrder._status = ChargeOrderStatus.Deferred;\n        break;\n      case PaymentResult.FAILURE:\n        chargeOrder._status = ChargeOrderStatus.Failed;\n        this.chargeOrder = chargeOrder;\n        break;\n    }\n\n    this.persistStoredChargeOrder(chargeOrder);\n  }\n\n  @action.bound\n  async getTransferPaymentRestrictions() {\n    const res = await this.chargeOrderRepository.getTransferPaymentRestrictions();\n    this.earliestPossibleValidSinceDaysBefore = res.transferPayment?.earliestPossibleValidSinceDaysBefore;\n    this.earliestPossibleValidSinceDate = res.transferPayment?.earliestPossibleValidSinceDate;\n    this.chargeOrder._earliestPossibleValidSinceDaysBefore = res.transferPayment?.earliestPossibleValidSinceDaysBefore;\n    this.chargeOrder._earliestPossibleValidSinceDate = res.transferPayment?.earliestPossibleValidSinceDate;\n    this.persistChargeOrder();\n  }\n\n  @action.bound\n  resetNotificationPreferences(notificationPreferences: NotificationPreferences) {\n    notificationPreferences._notificationEnabled = false;\n    notificationPreferences.emailAddress = undefined;\n    notificationPreferences._emailConfirmation = undefined;\n    notificationPreferences._emailAddressNotification = undefined;\n    notificationPreferences.emailNotificationEnabled = false;\n    notificationPreferences._isNotificationEmailSame = false;\n    notificationPreferences.smsNotificationEnabled = false;\n    notificationPreferences.phoneNumber = undefined;\n\n    return notificationPreferences;\n  }\n\n  @action.bound\n  reset() {\n    this.storage.clearChargeOrders();\n    this.createNewChargeOrder();\n  }\n\n  @action.bound\n  clearValidation(object: any) {\n    for (const key in object) {\n      if (key === \"__validation\") {\n        delete object[key];\n      } else if (typeof object[key] === \"object\" && object[key] !== null) {\n        this.clearValidation(object[key]);\n      }\n    }\n  }\n}\n","import { plainToClass } from \"class-transformer\";\nimport { toJS } from \"mobx\";\nimport ChargeOrder from \"models/chargeOrder\";\n\nexport default function (chargeOrder: ChargeOrder): ChargeOrder {\n  return plainToClass(ChargeOrder, {\n    ...chargeOrder,\n    charges: [...toJS(chargeOrder.charges)],\n    notificationPreferences: { ...chargeOrder.notificationPreferences },\n  });\n}\n","// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nenum ChargeChangeRejectionReason {\n  RefundedCharge = \"REFUNDED_CHARGE\",\n  MaximumChangeCountExceeded = \"MAXIMUM_CHANGE_COUNT_EXCEEDED\",\n  InvalidChargeValidityStatus = \"INVALID_CHARGE_VALIDITY_STATUS\",\n  DeniedForChargeType = \"DENIED_FOR_CHARGE_TYPE\",\n}\nexport default ChargeChangeRejectionReason;\n","import { BaseEnumModel } from \"@edaz/services/baseEnumService\";\n\nexport interface IEnum extends BaseEnumModel {\n  name?: string;\n  code?: string;\n}\n\nexport default class Enum implements IEnum {\n  id: number | string;\n  code?: string;\n  name?: string;\n}\n","import { observable } from \"mobx\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class DomesticBankAccountResponse {\n  @observable\n  accountNumber!: string;\n\n  @observable\n  bankCode!: string;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargeValidityRequest {\n  /**\n   * If true - charge is valid from now on.\n   */\n  @observable\n  hasImmediateValidity?: boolean;\n\n  /**\n   * Beginning date of charge validity (must be in future).\n   */\n  @observable\n  @Type(() => Date)\n  validSinceDate?: Date;\n\n  @observable\n  @Type(() => Date)\n  _validUntilDate?: Date;\n\n  @observable\n  @Type(() => Date)\n  _validUntilOverlap?: Date;\n\n  @observable\n  _proposedValidityExist?: boolean;\n}\n","import { observable } from \"mobx\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ProposedAfterPurchaseRedirectResponse {\n  /**\n   * Redirect URL.\n   */\n  @observable\n  redirectUrl!: string;\n\n  /**\n   * Redirect website name.\n   */\n  @observable\n  redirectWebsiteName!: string;\n}\n","export enum PaymentMethodType {\n  CARD = \"CARD\",\n  PAYPAL = \"PAYPAL\",\n}\n\nexport enum GooglePayCardNetwork {\n  AMEX = \"AMEX\",\n  DISCOVER = \"DISCOVER\",\n  INTERAC = \"INTERAC\",\n  JCB = \"JCB\",\n  MASTERCARD = \"MASTERCARD\",\n  VISA = \"VISA\",\n}\n\nexport enum GooglePayCardAuthMethod {\n  PAN_ONLY = \"PAN_ONLY\",\n  CRYPTOGRAM_3DS = \"CRYPTOGRAM_3DS\",\n}\n\nexport enum GooglePayTokenizationSpecificationType {\n  PAYMENT_GATEWAY = \"PAYMENT_GATEWAY\",\n  DIRECT = \"DIRECT\",\n}\n\nexport enum GooglePayEnvironment {\n  TEST = \"TEST\",\n  PRODUCTION = \"PRODUCTION\",\n}\n\nexport default class GooglePayMetadata {\n  apiVersion: number;\n  apiVersionMinor: number;\n  paymentMethodType: PaymentMethodType;\n  allowedCardNetworks: GooglePayCardNetwork[];\n  allowedCardAuthMethods: GooglePayCardAuthMethod[];\n  tokenizationSpecificationType: GooglePayTokenizationSpecificationType;\n  gateway: string;\n  gatewayMerchantId: string;\n  googlePayMerchantId: string;\n  merchantName: string;\n  environment: GooglePayEnvironment;\n}\n","export const clearSearchParameters = () => {\n  // clear search path without affecting browser history\n  window.history.replaceState({}, document.title, location.hash.split(\"?\")[0]);\n};\n","enum LanguageCode {\n  Cs = \"CS\",\n  En = \"EN\",\n  De = \"DE\",\n  Ru = \"RU\",\n  Pl = \"PL\",\n  Hu = \"HU\",\n}\n\nexport default LanguageCode;\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport SystemComponentOutageResponse from \"./systemComponentOutageResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class SystemComponentOutagesResponse {\n  /**\n   * The list of system component outages.\n   */\n  @observable\n  @Type(() => SystemComponentOutageResponse)\n  items!: SystemComponentOutageResponse[];\n}\n","import { observable } from \"mobx\";\n\nclass VehicleChangeDuringValidityRequest {\n  @observable\n  licensePlate!: string;\n\n  @observable\n  countryId!: string;\n\n  @observable\n  emailAddress?: string;\n}\n\nexport default class VehicleChangeDuringValidity extends VehicleChangeDuringValidityRequest {\n  @observable\n  _licensePlateConfirmation!: string;\n\n  @observable\n  _countryIdConfirmation!: string;\n\n  @observable\n  _originalLicensePlate!: string;\n\n  @observable\n  emailAddress?: string;\n\n  @observable\n  _agreement?: boolean;\n}\n","import BaseEnumService, * as baseEnumService from \"@edaz/services/baseEnumService\";\nimport EnumRepository, { SupportedEnumAPIVersions } from \"repositories/enumRepository\";\nimport Enum from \"models/enum\";\nimport { action, observable, set, when } from \"mobx\";\nimport { bound } from \"@frui.ts/helpers\";\n\nexport type EnumTypes = \"countries\" | \"exemption_reasons\" | \"charge_validity_rules\" | \"fuel_types\" | \"charge_types\";\n\n/**\n * Enum service\n */\nexport default class EnumService extends BaseEnumService<Enum, EnumTypes> {\n  @observable initializationInProgress = false;\n  @observable isInitialized = false;\n  @observable enums: baseEnumService.EnumContainer<Enum> = {};\n  @observable currentlyFetchingEnums: Map<EnumTypes, boolean> = new Map();\n  protected enumCache = {};\n\n  constructor(protected repository: EnumRepository) {\n    super(repository);\n  }\n\n  @action.bound\n  async initialize() {\n    if (this.initializationInProgress) {\n      await when(() => !this.initializationInProgress);\n      return;\n    }\n\n    this.initializationInProgress = true;\n    await Promise.all([\n      this.fetchEnum(\"countries\"),\n      this.fetchEnum(\"fuel_types\"),\n      this.fetchEnum(\"charge_types\"),\n      this.fetchEnum(\"charge_validity_rules\"),\n      this.fetchEnum(\"exemption_reasons\"),\n    ]);\n    this.isInitialized = true;\n    this.initializationInProgress = false;\n  }\n\n  @bound\n  async startInitialization() {\n    this.initialize();\n  }\n\n  isEnumLoaded(enumName: EnumTypes) {\n    return this.enums.hasOwnProperty(enumName);\n  }\n\n  getEnumAPIVersionByName(enumName: EnumTypes): SupportedEnumAPIVersions {\n    switch (enumName) {\n      case \"countries\":\n        return 3.0;\n      case \"exemption_reasons\":\n        return 3.0;\n      case \"charge_validity_rules\":\n        return 3.0;\n      case \"fuel_types\":\n        return 3.0;\n      case \"charge_types\":\n        return 3.0;\n    }\n  }\n\n  async fetchEnum(enumName: EnumTypes) {\n    if (!this.currentlyFetchingEnums.get(enumName)) {\n      this.currentlyFetchingEnums.set(enumName, true);\n      const apiVersion = this.getEnumAPIVersionByName(enumName);\n      const enumValues = await this.repository.getEnum(enumName, apiVersion);\n      set(this.enums, enumName, enumValues);\n      this.currentlyFetchingEnums.set(enumName, false);\n    } else {\n      await when(() => this.currentlyFetchingEnums.get(enumName) === false);\n    }\n  }\n\n  values(name: EnumTypes): Enum[] {\n    if (!this.enums[name]) {\n      this.fetchEnum(name);\n      return [];\n    }\n\n    return this.enums[name] || [];\n  }\n\n  async lazyValues(name: EnumTypes): Promise<any> {\n    if (!this.enums[name]) {\n      await this.fetchEnum(name);\n    }\n\n    return this.values(name);\n  }\n\n  async lazyValue(name: EnumTypes, code: string | number): Promise<Enum | undefined> {\n    if (!this.enums[name]) {\n      await this.fetchEnum(name);\n    }\n\n    return super.value(name, code);\n  }\n}\n","import { observable } from \"mobx\";\nimport ChargeValidity from \"./chargeValidity\";\nimport Enum from \"models/enum\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargeTypeResponse extends Enum {\n  /**\n   * Charge type ID.\n   */\n  id!: string;\n\n  @observable\n  validFor!: ChargeValidity;\n\n  /**\n   * Localized charge type description.\n   */\n  @observable\n  description!: string;\n\n  /**\n   * Notify days before.\n   */\n  @observable\n  notifyDaysBefore?: number;\n\n  /**\n   * Indicates whether charge type is deleted.\n   */\n  @observable\n  isDeleted!: boolean;\n\n  @observable\n  _standardPrice?: number = 0;\n\n  @observable\n  _ecoPriceMin?: number = 0;\n\n  @observable\n  _ecoPriceMax?: number = 0;\n}\n","import { Type } from \"class-transformer\";\nimport { observable } from \"mobx\";\nimport \"reflect-metadata\";\nimport { EntityValidationRules } from \"services/validationService\";\n\nexport const ChargeTypeIdValidationRules: EntityValidationRules<ChargeOrderChargeItem> = {\n  chargeTypeId: {\n    required: true,\n  },\n};\n\nexport default class ChargeOrderChargeItem {\n  @Type(() => Date)\n  @observable\n  validSince?: Date;\n\n  @Type(() => Date)\n  @observable\n  _validUntil?: Date;\n\n  @observable\n  chargeTypeId?: string;\n\n  @observable\n  _hasImmediateValidity?: boolean;\n\n  @Type(() => Date)\n  @observable\n  _validSinceDaysBefore?: Date;\n\n  constructor(validSince?: Date, chargeTypeId?: string, hasImmediateValidity?: boolean) {\n    this.validSince = validSince;\n    this.chargeTypeId = chargeTypeId;\n    this._hasImmediateValidity = hasImmediateValidity;\n  }\n}\n\nexport const OrderChargeItemValidationRules: EntityValidationRules<ChargeOrderChargeItem> = {\n  ...ChargeTypeIdValidationRules,\n};\n\nexport const OrderChargeItemBatchValidationRules: EntityValidationRules<ChargeOrderChargeItem> = {\n  ...ChargeTypeIdValidationRules,\n};\n","import { Type } from \"class-transformer\";\nimport FuelTypeLimitationResponse from \"entities/fuelTypeLimitationResponse\";\nimport { observable } from \"mobx\";\nimport \"reflect-metadata\";\nimport { EntityValidationRules } from \"services/validationService\";\n\nexport const FuelTypeValidationRules: EntityValidationRules<ChargeOrderFuelItem> = {\n  fuelTypeId: { required: true },\n};\n\nexport default class ChargeOrderFuelItem {\n  @observable fuelTypeId?: string;\n\n  @observable\n  @Type(() => FuelTypeLimitationResponse)\n  _fuelTypeLimitation?: FuelTypeLimitationResponse;\n\n  @observable\n  _fuelTypeLimitationOrder?: string[];\n\n  constructor(_fuelTypeLimitation?: FuelTypeLimitationResponse | undefined, fuelTypeId?: string | undefined) {\n    this._fuelTypeLimitation = _fuelTypeLimitation;\n    this.fuelTypeId = fuelTypeId;\n  }\n}\n","// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nenum FuelTypeLimitationReason {\n  DerivedFromVehicleRegisterData = \"DERIVED_FROM_VEHICLE_REGISTER_DATA\",\n  VehicleNotFoundInVehicleRegister = \"VEHICLE_NOT_FOUND_IN_VEHICLE_REGISTER\",\n  InvalidVehicleStatusInVehicleRegister = \"INVALID_VEHICLE_STATUS_IN_VEHICLE_REGISTER\",\n  MissingOrInvalidVehicleFuelTypeInVehicleRegister = \"MISSING_OR_INVALID_VEHICLE_FUEL_TYPE_IN_VEHICLE_REGISTER\",\n  MissingOrInvalidVehicleEmissionsInVehicleRegister = \"MISSING_OR_INVALID_VEHICLE_EMISSIONS_IN_VEHICLE_REGISTER\",\n}\nexport default FuelTypeLimitationReason;\n","import { Type } from \"class-transformer\";\nimport { observable } from \"mobx\";\nimport \"reflect-metadata\";\nimport NotificationPreferences from \"./notificationPreferences\";\n\nexport default class ChargeOrderContactItem {\n  @Type(() => NotificationPreferences)\n  @observable\n  notificationPreferences: NotificationPreferences;\n\n  constructor(notificationPreferences: NotificationPreferences) {\n    this.notificationPreferences = notificationPreferences;\n  }\n}\n","import React, { createContext, useEffect, useState } from \"react\";\nimport { View } from \"@frui.ts/views/dist\";\n\nimport \"assets/themes/default.theme.scss\";\nimport \"@edaz/edazkit/style.css\";\nimport LoadingPane from \"controls/loadingPane\";\nimport Alert from \"react-bootstrap/Alert\";\nimport RootViewModel from \"../viewModels/rootViewModel\";\nimport * as Sentry from \"@sentry/react\";\n\nexport type PlainWidgetInitializer = () => Promise<RootViewModel | null>;\nexport type BoxWidgetProps = {\n  init: PlainWidgetInitializer;\n  identifier: string;\n};\n\nexport const BoxWidgetContext = createContext<HTMLDivElement | null>(null);\n\nconst BoxWidgetView = ({ init, identifier }: BoxWidgetProps) => {\n  const [viewModel, setViewModel] = useState<RootViewModel | null>(null);\n\n  useEffect(() => {\n    Sentry.setTags({\n      widget: identifier,\n      scope: `error-boundary-${identifier}`,\n      release: \"eshop-fe@\" + process.env.REACT_APP_VERSION,\n    });\n  }, [identifier]);\n\n  useEffect(() => {\n    if (init && !viewModel) {\n      init().then(model => setViewModel(model));\n    }\n  }, [viewModel, init]);\n\n  const outagesWidget = identifier === \"edaz-outages\";\n  const children = viewModel ? <View vm={viewModel} useLifecycle /> : !outagesWidget && <LoadingPane />;\n\n  return (\n    <Sentry.ErrorBoundary\n      key={identifier}\n      fallback={\n        <Alert variant=\"danger\">\n          {viewModel\n            ? viewModel.localizationService.translateGeneral(\"errors.viewError\")\n            : \"An unexpected error has occurred. Try to reload page.\"}\n        </Alert>\n      }>\n      {outagesWidget ? children : <div id=\"root\">{children}</div>}\n    </Sentry.ErrorBoundary>\n  );\n};\n\nexport default BoxWidgetView;\n","import { IValidationResult } from \"@edaz/services/baseValidationService\";\n\nexport interface LicensePlateChangeValidatorOptions<TEntity> {\n  originalProperty: keyof TEntity;\n}\n\nexport interface LicensePlateChangeValidatorParams<TEntity> {\n  entity: TEntity;\n}\n\nexport function compareStringsWithIndexes(a: string, b: string) {\n  const aArray = Array.from(a);\n  const bArray = Array.from(b);\n  const differentCharacterIndexes = [] as number[];\n\n  if (aArray.length === bArray.length) {\n    aArray.forEach((character, index) => {\n      if (bArray[index] !== character) {\n        differentCharacterIndexes.push(index);\n      }\n    });\n  }\n\n  return differentCharacterIndexes;\n}\n\nexport function licensePlateChangeValidator<TEntity>(\n  value: string,\n  options?: LicensePlateChangeValidatorOptions<TEntity>,\n  params?: LicensePlateChangeValidatorParams<TEntity>\n): IValidationResult {\n  const entity: TEntity = params?.entity!;\n  const originalLicensePlate = `${entity[options?.originalProperty!]}`;\n\n  const sameLength = originalLicensePlate.length === value.length;\n  const differentCharacters = compareStringsWithIndexes(originalLicensePlate, value);\n\n  if (!sameLength || differentCharacters.length > 2) {\n    return {\n      isValid: false,\n      errors: {\n        value: value,\n        constraints: {\n          invalidLicensePlateChange: \"false\",\n        },\n      },\n    };\n  }\n\n  return {\n    isValid: true,\n  };\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"fingerprintIframe\":\"toolboxView_fingerprintIframe__QED8X\"};","import { observable } from \"mobx\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class TimeSpan {\n  @observable\n  ticks?: number;\n\n  readonly days?: number;\n\n  readonly hours?: number;\n\n  readonly milliseconds?: number;\n\n  readonly microseconds?: number;\n\n  readonly nanoseconds?: number;\n\n  readonly minutes?: number;\n\n  readonly seconds?: number;\n\n  readonly totalDays?: number;\n\n  readonly totalHours?: number;\n\n  readonly totalMilliseconds?: number;\n\n  readonly totalMicroseconds?: number;\n\n  readonly totalNanoseconds?: number;\n\n  readonly totalMinutes?: number;\n\n  readonly totalSeconds?: number;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport TimeSpan from \"./timeSpan\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class OpeningHoursIntervalResponse {\n  @observable\n  @Type(() => TimeSpan)\n  from!: TimeSpan;\n\n  @observable\n  @Type(() => TimeSpan)\n  to!: TimeSpan;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport OpeningHoursIntervalResponse from \"./openingHoursIntervalResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class OpeningHoursWeekResponse {\n  /**\n   * The list of opening hours for Monday.\n   */\n  @observable\n  @Type(() => OpeningHoursIntervalResponse)\n  monday?: OpeningHoursIntervalResponse[];\n\n  /**\n   * The list of opening hours for Tuesday.\n   */\n  @observable\n  @Type(() => OpeningHoursIntervalResponse)\n  tuesday?: OpeningHoursIntervalResponse[];\n\n  /**\n   * The list of opening hours for Wednesday.\n   */\n  @observable\n  @Type(() => OpeningHoursIntervalResponse)\n  wednesday?: OpeningHoursIntervalResponse[];\n\n  /**\n   * The list of opening hours for Thursday.\n   */\n  @observable\n  @Type(() => OpeningHoursIntervalResponse)\n  thursday?: OpeningHoursIntervalResponse[];\n\n  /**\n   * The list of opening hours for Friday.\n   */\n  @observable\n  @Type(() => OpeningHoursIntervalResponse)\n  friday?: OpeningHoursIntervalResponse[];\n\n  /**\n   * The list of opening hours for Saturday.\n   */\n  @observable\n  @Type(() => OpeningHoursIntervalResponse)\n  saturday?: OpeningHoursIntervalResponse[];\n\n  /**\n   * The list of opening hours for Sunday.\n   */\n  @observable\n  @Type(() => OpeningHoursIntervalResponse)\n  sunday?: OpeningHoursIntervalResponse[];\n}\n","import { observable } from \"mobx\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargePriceListItemResponse {\n  /**\n   * Price list item ID.\n   */\n  id!: string;\n\n  /**\n   * Charge type ID.\n   */\n  @observable\n  chargeTypeId!: string;\n\n  /**\n   * Fuel type ID.\n   */\n  @observable\n  fuelTypeId!: string;\n\n  /**\n   * Charge type price.\n   */\n  @observable\n  price!: number;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport ChargePriceListItemResponse from \"./chargePriceListItemResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargePriceListResponse {\n  /**\n   * Price list ID.\n   */\n  id!: string;\n\n  /**\n   * Price list name in default language.\n   */\n  @observable\n  name!: string;\n\n  /**\n   * Beginning date of price list validity (included).\n   */\n  @observable\n  @Type(() => Date)\n  validSinceDate!: Date;\n\n  /**\n   * End date of price list validity (included).\n   */\n  @observable\n  @Type(() => Date)\n  validUntilDate?: Date;\n\n  /**\n   * The IDs of included charge types.\n   */\n  @observable\n  includedChargeTypeIds!: string[];\n\n  /**\n   * The IDs of included fuel types.\n   */\n  @observable\n  includedFuelTypeIds!: string[];\n\n  /**\n   * The list of price list items - prices for all combinations of included charge types and fuel types.\n   */\n  @observable\n  @Type(() => ChargePriceListItemResponse)\n  items!: ChargePriceListItemResponse[];\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class RegisteredChargeResponse {\n  /**\n   * Price list item ID.\n   */\n  @observable\n  priceListItemId!: string;\n\n  /**\n   * Beginning date of charge validity.\n   */\n  @observable\n  @Type(() => Date)\n  validSince!: Date;\n\n  /**\n   * End date of charge validity.\n   */\n  @observable\n  @Type(() => Date)\n  validUntil!: Date;\n\n  /**\n   * Charge is currently valid\n   */\n  @observable\n  isCurrentlyValid!: boolean;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport RegisteredChargeResponse from \"./registeredChargeResponse\";\nimport VehicleRegistrationResponse from \"./vehicleRegistrationResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargeRegistrationsResponse {\n  @observable\n  @Type(() => VehicleRegistrationResponse)\n  vehicle!: VehicleRegistrationResponse;\n\n  /**\n   * Vehicle was given exemption from charges.\n   */\n  @observable\n  isGivenExemption!: boolean;\n\n  /**\n   * Possible exemption reason IDs.\n   */\n  @observable\n  possibleExemptionReasonIds!: string[];\n\n  /**\n   * Information about an existing valid charges.\n   */\n  @observable\n  @Type(() => RegisteredChargeResponse)\n  charges!: RegisteredChargeResponse[];\n}\n","import { observable } from \"mobx\";\nimport { EntityValidationRules } from \"services/validationService\";\nimport { Type } from \"class-transformer\";\nimport DomesticBankAccountResponse from \"entities/domesticBankAccountResponse\";\n\nexport enum PaymentType {\n  GooglePay = \"GOOGLE_PAY\",\n  PayGate = \"PAY_GATE\",\n  Transfer = \"TRANSFER\",\n}\n\nexport default class Payment {\n  @observable\n  paymentType?: PaymentType;\n\n  variableSymbol?: number;\n\n  specificSymbol?: number;\n\n  paymentAmount?: number;\n\n  @Type(() => DomesticBankAccountResponse)\n  bankAccount?: DomesticBankAccountResponse;\n\n  iban?: string;\n\n  message?: string;\n\n  dueDate?: Date;\n}\n\nexport const PaymentValidationRules: EntityValidationRules<Payment> = {\n  paymentType: {\n    required: true,\n  },\n};\n","import { bound } from \"@frui.ts/helpers\";\r\nimport { onlyResolvesLast } from \"awesome-only-resolves-last-promise/dist\";\r\nimport { action, computed, observable, when } from \"mobx\";\r\nimport ChargeRepository from \"repositories/chargeRepository\";\r\nimport ChargePriceListsResponse from \"entities/chargePriceListsResponse\";\r\nimport ChargePriceListResponse from \"entities/chargePriceListResponse\";\r\nimport ChargeTypeResponse from \"entities/chargeTypeResponse\";\r\nimport ChargeValidity from \"entities/chargeValidity\";\r\nimport EnumService from \"./enumService\";\r\nimport ChargePriceListStorageRepository from \"../repositories/chargePriceListStorageRepository/chargePriceListStorageRepository\";\r\nimport ChargeTypesStorageRepository from \"repositories/chargeTypesStorageRepository/chargeTypesStorageRepository\";\r\nimport FuelTypeResponse, { fuelTypeOrder } from \"entities/fuelTypeResponse\";\r\nimport FuelType from \"entities/fuelType\";\r\nimport ChargePriceListItemResponse from \"entities/chargePriceListItemResponse\";\r\n\r\nexport default class ChargeTypesService {\r\n  @observable private _chargeTypes: ChargeTypeResponse[] = [];\r\n  @observable private _fuelTypes: FuelTypeResponse[] = [];\r\n  @observable private _chargePriceListItemsFlattened: ChargePriceListItemResponse[];\r\n  @observable private _chargePriceList: ChargePriceListResponse;\r\n  @observable isInitialized = false;\r\n  @observable initializationInProgress = false;\r\n  getUntilValidity = onlyResolvesLast(this.getValidity);\r\n\r\n  constructor(\r\n    private repository: ChargeRepository,\r\n    private enumService: EnumService,\r\n    private priceListStorage: ChargePriceListStorageRepository,\r\n    private chargeTypesStorage: ChargeTypesStorageRepository\r\n  ) {}\r\n\r\n  @action.bound\r\n  async initialize(includeInvalid: boolean) {\r\n    if (this.initializationInProgress) {\r\n      await when(() => !this.initializationInProgress);\r\n      return;\r\n    }\r\n\r\n    this.initializationInProgress = true;\r\n    const priceLists = await this.repository.chargePriceList(includeInvalid);\r\n    if (priceLists instanceof ChargePriceListsResponse) {\r\n      this._chargePriceListItemsFlattened = priceLists.items.flatMap(x => x.items.flatMap(y => y));\r\n\r\n      // If includeInvalid is false, the BE always returns only one currently valid charge price list, so no need to filter it.\r\n      this._chargePriceList = priceLists.items[0];\r\n      if (this._chargePriceList) {\r\n        this.priceListStorage.addPriceList(this._chargePriceList);\r\n      }\r\n    }\r\n    this._chargeTypes = (await this.enumService.lazyValues(\"charge_types\")) as ChargeTypeResponse[];\r\n    this._fuelTypes = (await this.enumService.lazyValues(\"fuel_types\")) as FuelTypeResponse[];\r\n    this.chargeTypesStorage.addChargeTypes(this._chargeTypes);\r\n    this.isInitialized = true;\r\n    this.initializationInProgress = false;\r\n  }\r\n\r\n  @bound\r\n  private getValidity(chargeTypeId: string, validSince: Date) {\r\n    return this.repository.chargeValidity(chargeTypeId, validSince);\r\n  }\r\n\r\n  @bound\r\n  async startInitialization(includeInvalid = false) {\r\n    this.initialize(includeInvalid);\r\n  }\r\n\r\n  @computed\r\n  get chargeTypes() {\r\n    if (!this.isInitialized) {\r\n      this.startInitialization();\r\n      const chargeTypes = this.chargeTypesStorage.getChargeTypes();\r\n\r\n      if (chargeTypes) {\r\n        return chargeTypes;\r\n      } else {\r\n        return [\r\n          this.generateMockChargeType(ChargeValidity.Annual),\r\n          this.generateMockChargeType(ChargeValidity.Days10),\r\n          this.generateMockChargeType(ChargeValidity.Days30),\r\n          this.generateMockChargeType(ChargeValidity.SingleDay),\r\n        ] as ChargeTypeResponse[];\r\n      }\r\n    }\r\n    return this._chargeTypes;\r\n  }\r\n\r\n  @computed\r\n  get chargePriceList() {\r\n    return this._chargePriceList ?? this.priceListStorage.getPriceList();\r\n  }\r\n\r\n  @computed\r\n  get validChargeTypes() {\r\n    return this.chargeTypes.filter(type => !type.isDeleted);\r\n  }\r\n\r\n  generateMockChargeType(chargeValidity: ChargeValidity) {\r\n    return {\r\n      id: chargeValidity,\r\n      isDeleted: false,\r\n      validFor: chargeValidity,\r\n    };\r\n  }\r\n\r\n  findChargeType(chargeTypeId?: string) {\r\n    return this.chargeTypes.find(chargeType => chargeType.id === chargeTypeId);\r\n  }\r\n\r\n  hasPrices(item: ChargeTypeResponse) {\r\n    const isMockChargeType = item.id == item.validFor;\r\n    if (!this.chargePriceList?.includedChargeTypeIds || isMockChargeType) {\r\n      return true;\r\n    }\r\n    return this.chargePriceList.includedChargeTypeIds.includes(item.id);\r\n  }\r\n\r\n  populatePrices(item: ChargeTypeResponse) {\r\n    const prices = this.chargePriceList?.items?.filter(x => x.chargeTypeId === item.id);\r\n    if (!prices) {\r\n      return item;\r\n    }\r\n\r\n    const standardFuelType = this._fuelTypes.find(x => x.fuelType === FuelType.Other);\r\n    const standardPrice = prices.find(x => x.fuelTypeId === standardFuelType?.id)?.price;\r\n    item._standardPrice = standardPrice;\r\n\r\n    const ecoPrices = prices.filter(x => x.fuelTypeId !== standardFuelType?.id).map(x => x.price);\r\n    item._ecoPriceMin = Math.min(...ecoPrices);\r\n    item._ecoPriceMax = Math.max(...ecoPrices);\r\n    return item;\r\n  }\r\n\r\n  getPrice(priceListItemId: string, includeInvalid = false) {\r\n    return this.getPriceItemList(includeInvalid)?.find(x => x.id === priceListItemId)?.price;\r\n  }\r\n\r\n  getPriceListItemFuelType(id: string, includeInvalid = false) {\r\n    const chargePriceListItem = this.getPriceItemList(includeInvalid)?.find(x => x.id === id);\r\n    if (!chargePriceListItem) {\r\n      return undefined;\r\n    }\r\n\r\n    return this._fuelTypes.find(x => x.id === chargePriceListItem.fuelTypeId)?.fuelType;\r\n  }\r\n\r\n  getPriceListItemChargeType(id: string, includeInvalid = false) {\r\n    const chargePriceListItem = this.getPriceItemList(includeInvalid)?.find(x => x.id === id);\r\n    if (!chargePriceListItem) {\r\n      return undefined;\r\n    }\r\n\r\n    return this._chargeTypes.find(x => x.id === chargePriceListItem.chargeTypeId);\r\n  }\r\n\r\n  getPriceItemList(includeInvalid: boolean) {\r\n    return includeInvalid ? this._chargePriceListItemsFlattened : this.chargePriceList?.items;\r\n  }\r\n\r\n  setChargeTypes(chargeTypes: ChargeTypeResponse[]) {\r\n    this._chargeTypes = chargeTypes;\r\n  }\r\n\r\n  getPricesWithFuelTypes(chargeType: ChargeTypeResponse) {\r\n    const fuelPrices = this.getPriceItemList(false).filter(x => x.chargeTypeId === chargeType.id);\r\n    const fuelTypePrices = this._fuelTypes\r\n      .map(type => {\r\n        const matchingFuelPrice = fuelPrices.find(x => x.fuelTypeId === type.id);\r\n        if (!matchingFuelPrice) {\r\n          return undefined;\r\n        }\r\n\r\n        return {\r\n          id: type.id,\r\n          fuelType: type.fuelType,\r\n          price: matchingFuelPrice.price,\r\n        };\r\n      })\r\n      .filter(x => x !== undefined)\r\n      .map(x => x!)\r\n      .sort((a, b) => {\r\n        return fuelTypeOrder(a.fuelType) - fuelTypeOrder(b.fuelType);\r\n      });\r\n\r\n    //edaz-task #1167\r\n    fuelTypePrices.push({\r\n      id: Math.random().toString(),\r\n      fuelType: FuelType.Electromobile,\r\n      price: 0,\r\n    });\r\n\r\n    return {\r\n      id: chargeType.id,\r\n      description: chargeType.description,\r\n      validFor: chargeType.validFor,\r\n      prices: fuelTypePrices,\r\n    };\r\n  }\r\n\r\n  getAvailableFuelTypesSorted() {\r\n    const availableFuelTypeIds = this.getPriceItemList(false).map(x => x.fuelTypeId);\r\n    return this._fuelTypes\r\n      .filter(x => availableFuelTypeIds.includes(x.id))\r\n      .sort((a, b) => {\r\n        return fuelTypeOrder(a.fuelType) - fuelTypeOrder(b.fuelType);\r\n      });\r\n  }\r\n}\r\n","// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nenum ChargeValidity {\n  Days10 = \"DAYS10\",\n  Days30 = \"DAYS30\",\n  Annual = \"ANNUAL\",\n  SingleDay = \"SINGLE_DAY\",\n}\n\n/**\n * Return number of days for given charge type. It is used to sort charge types in ascending/descending order and calculate approximate valid until.\n * @param validFor\n */\nexport const validityDays = (validFor: ChargeValidity): number => {\n  switch (validFor) {\n    case ChargeValidity.Days10:\n      return 10;\n    case ChargeValidity.Days30:\n      return 30;\n    case ChargeValidity.Annual:\n      return 365;\n    case ChargeValidity.SingleDay:\n      return 1;\n  }\n};\n\n/**\n * Return price for charge type.\n * @param validFor\n */\nexport const mockChargePrice = (validFor: ChargeValidity): number => {\n  switch (validFor) {\n    case ChargeValidity.Days10:\n      return 270;\n    case ChargeValidity.Days30:\n      return 430;\n    case ChargeValidity.Annual:\n      return 2300;\n    case ChargeValidity.SingleDay:\n      return 200;\n  }\n};\n\n/**\n * Takes number of days from URL prefilled order and selects appropriate charge type\n * @param days\n */\nexport const daysValidFor = (days: number) => {\n  if (days <= 1) return ChargeValidity.SingleDay;\n  if (days <= 10) return ChargeValidity.Days10;\n  if (days <= 30) return ChargeValidity.Days30;\n  return ChargeValidity.Annual;\n};\n\nexport default ChargeValidity;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"chargeTypeIcon\":\"chargeTypesView_chargeTypeIcon__3wqVz\",\"chargePrice\":\"chargeTypesView_chargePrice__1fFg2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dialogIframeWrapper\":\"googlePay3DSecureModal_dialogIframeWrapper__8egnP\",\"dialogIframe\":\"googlePay3DSecureModal_dialogIframe__1bgUI\"};","import { Router } from \"@frui.ts/screens\";\n\nexport default class AppRouter extends Router {}\n","import { ScreenBase } from \"@frui.ts/screens/dist\";\nimport { action, computed, observable, reaction } from \"mobx\";\nimport { interfaces } from \"inversify\";\nimport ChargeOrder from \"models/chargeOrder\";\nimport ChargeOrderRepository from \"repositories/chargeOrderRepository\";\nimport type PayGatePaymentResponse from \"models/payGatePaymentResponse\";\nimport { PayGatePaymentStatus, PayGatePaymentType } from \"models/payGatePaymentResponse\";\nimport LocalizationService from \"services/localizationService\";\nimport ChargeTypesService from \"services/chargeTypesService\";\nimport EnumService from \"services/enumService\";\nimport PriceService from \"services/priceService\";\nimport TimeService from \"services/timeService\";\nimport FuelType from \"entities/fuelType\";\nimport ChargeValidity from \"entities/chargeValidity\";\nimport GooglePayMetadata from \"models/googlePayMetadata\";\nimport PaymentService from \"services/payment/paymentService\";\nimport EventBus, {\n  getGooglePayMetadataFailure,\n  getGooglePayMetadataSuccess,\n  googlePayPaymentBrowserFingerprintLoaded,\n  submitGooglePayPaymentBrowserFingerprint,\n  submitGooglePayPaymentDeferred,\n  submitGooglePayPaymentFailure,\n  submitGooglePayPaymentSuccess,\n} from \"services/eventBus\";\n\nexport const PaymentRetryNavigationName = \"retry\";\n\nconst RETRY_CONSUMED_PREFIX = \"retry_consumed_\";\n\nif (typeof window !== \"undefined\" && typeof performance !== \"undefined\" && performance.getEntriesByType) {\n  const nav = performance.getEntriesByType(\"navigation\")[0] as PerformanceNavigationTiming | undefined;\n  let isLangChange = false;\n  try {\n    isLangChange = sessionStorage.getItem(\"lang-change\") === \"1\";\n  } catch {\n    /* ignore */\n  }\n\n  if (nav?.type === \"reload\" || isLangChange) {\n    try {\n      sessionStorage.removeItem(\"lang-change\");\n      Object.keys(sessionStorage)\n        .filter(k => k.startsWith(RETRY_CONSUMED_PREFIX))\n        .forEach(k => sessionStorage.removeItem(k));\n    } catch {\n      /* ignore */\n    }\n  } else if (nav?.type === \"navigate\") {\n    try {\n      const hash = window.location.hash;\n      const retryIdx = hash.indexOf(`/${PaymentRetryNavigationName}/`);\n      if (retryIdx !== -1) {\n        const afterRetry = hash.slice(retryIdx + `/${PaymentRetryNavigationName}/`.length);\n        const orderId = afterRetry.split(/[/?#]/)[0];\n        if (orderId) {\n          clearRetryConsumed(orderId);\n        }\n      } else {\n      }\n    } catch {\n      /* ignore */\n    }\n  }\n}\n\n// Permanent popstate guard — intercepts browser Back/Forward to a consumed retry\n// URL regardless of which widget is currently active. Replaces the retry entry in\n// history with the parent module's base path and re-triggers hashchange so the\n// frui.ts router navigates to the appropriate default screen.\nif (typeof window !== \"undefined\") {\n  window.addEventListener(\"popstate\", () => {\n    const hash = window.location.hash;\n    const retryIdx = hash.indexOf(`/${PaymentRetryNavigationName}/`);\n    if (retryIdx === -1) return;\n    const afterRetry = hash.slice(retryIdx + `/${PaymentRetryNavigationName}/`.length);\n    const orderId = afterRetry.split(/[/?#]/)[0];\n    if (!orderId || !isRetryBlocked(orderId)) return;\n\n    // Replace the blocked retry URL with the parent module's base hash\n    // (e.g. \"#/eshop\" or \"#/multi_eshop\") so it disappears from history.\n    const baseHash = hash.slice(0, retryIdx) || \"#/\";\n    window.history.replaceState(null, \"\", baseHash);\n    // Re-trigger routing so frui.ts navigates to the default child screen.\n    window.dispatchEvent(new Event(\"hashchange\"));\n  });\n}\n\nexport function markRetryConsumed(orderId?: string) {\n  if (!orderId) return;\n  try {\n    sessionStorage.setItem(`${RETRY_CONSUMED_PREFIX}${orderId}`, \"1\");\n  } catch {\n    /* ignore */\n  }\n}\n\nexport function clearRetryConsumed(orderId?: string) {\n  if (!orderId) return;\n  try {\n    sessionStorage.removeItem(`${RETRY_CONSUMED_PREFIX}${orderId}`);\n  } catch {\n    /* ignore */\n  }\n}\n\nexport function isRetryBlocked(orderId?: string): boolean {\n  if (!orderId) return false;\n  try {\n    return sessionStorage.getItem(`${RETRY_CONSUMED_PREFIX}${orderId}`) === \"1\";\n  } catch {\n    return false;\n  }\n}\n\nexport default class PaymentRetryViewModel extends ScreenBase {\n  readonly IDLE_TIMER_DELAY = 1000 * 150; // Time before countdown tooltip is shown (150 seconds)\n  readonly IDLE_TIMER_TIMEOUT = 1000 * 270; // Time when idle modal is shown (270 seconds)\n  readonly IDLE_PROMPT_TIMEOUT = 1000 * 30; // Time in modal before form deletion (30 seconds) - Total: 300s\n  readonly IDLE_TIMER_DEBOUNCE = 250;\n\n  @observable isLoading = false;\n  @observable payGatePaymentResponse?: PayGatePaymentResponse;\n  @observable retryBlocked = false;\n  @observable googlePayMetadata: GooglePayMetadata | undefined;\n  @observable googlePayPaymentFingerprint?: string;\n  @observable googlePayFingerprintProcessed = false;\n  @observable showIdleModal = false;\n  @observable counter: number;\n  private intervalId?: any;\n  private unsubscriptions: Array<() => void> = [];\n\n  constructor(\n    public chargeOrder: ChargeOrder,\n    public localizationService: LocalizationService,\n    public timeService: TimeService,\n    private chargeOrderRepository: ChargeOrderRepository,\n    private chargeTypesService: ChargeTypesService,\n    private enumService: EnumService,\n    private priceService: PriceService,\n    private paymentService: PaymentService,\n    private eventBus: EventBus,\n    private onRetryPayment: () => void,\n    private onBackToPurchase: () => void,\n    private onPaymentSucceeded: () => void,\n    private onPaymentInProgress: () => void,\n    private onRetryGooglePayPayment?: (paymentData: google.payments.api.PaymentData) => Promise<void> | void,\n    private onIdleTimeoutCallback?: () => void\n  ) {\n    super();\n    this.navigationName = `${PaymentRetryNavigationName}/${this.chargeOrder.id}`;\n    this.counter = this.IDLE_PROMPT_TIMEOUT;\n    this.ensureInitialized();\n    this.unsubscriptions.push(\n      this.eventBus.subscribe(getGooglePayMetadataSuccess, this.receivedGooglePayMetadata),\n      this.eventBus.subscribe(getGooglePayMetadataFailure, this.googlePayMetadataFetchFailure),\n      this.eventBus.subscribe(submitGooglePayPaymentBrowserFingerprint, this.googlePayPaymentBrowserFingerprint),\n      this.eventBus.subscribe(submitGooglePayPaymentFailure, this.googlePayFingerprintReset),\n      this.eventBus.subscribe(submitGooglePayPaymentSuccess, this.onSubmitGooglePayPaymentSuccess),\n      this.eventBus.subscribe(submitGooglePayPaymentDeferred, this.onSubmitGooglePayPaymentDeferred),\n      reaction(\n        () => this.isGooglePayAllowed,\n        allowed => allowed && this.ensureGooglePayMetadata(),\n        { fireImmediately: true }\n      )\n    );\n  }\n\n  protected async onActivate(): Promise<void> {\n    // When activated via the URL (refresh / lang switch / direct nav), the\n    // payGatePayment response may not be set yet — fetch it once so the view\n    // can render the retry buttons.\n    if (!this.payGatePaymentResponse) {\n      await this.fetchPayGatePayment();\n    }\n    // Tag this retry as consumed when the page is unloaded (external link click,\n    // full navigation away). Refresh (F5) and language change also fire pagehide\n    // but are exempted: F5 via nav.type===\"reload\", language change via the\n    // \"lang-change\" sessionStorage flag set in app.tsx before the reload.\n    const onPageHide = () => {\n      let isLangChange = false;\n      try {\n        isLangChange = sessionStorage.getItem(\"lang-change\") === \"1\";\n      } catch {\n        /* ignore */\n      }\n      if (!isLangChange) {\n        markRetryConsumed(this.chargeOrder.id);\n      }\n    };\n    const onPageShow = (event: PageTransitionEvent) => {\n      if (event.persisted && isRetryBlocked(this.chargeOrder.id)) {\n        const currentHash = window.location.hash;\n        const retryPath = `/${PaymentRetryNavigationName}/${this.chargeOrder.id}`;\n        const idx = currentHash.indexOf(retryPath);\n        const baseHash = idx !== -1 ? currentHash.slice(0, idx) : \"#/\";\n        window.history.replaceState(null, \"\", baseHash || \"#/\");\n        window.dispatchEvent(new Event(\"hashchange\"));\n      }\n    };\n    window.addEventListener(\"pagehide\", onPageHide);\n    window.addEventListener(\"pageshow\", onPageShow);\n    this.unsubscriptions.push(\n      () => window.removeEventListener(\"pagehide\", onPageHide),\n      () => window.removeEventListener(\"pageshow\", onPageShow)\n    );\n  }\n\n  protected async onDeactivate(isClosing: boolean): Promise<void> {\n    let isLangChange = false;\n    try {\n      isLangChange = sessionStorage.getItem(\"lang-change\") === \"1\";\n    } catch {\n      /* ignore */\n    }\n\n    if (!isLangChange) {\n      markRetryConsumed(this.chargeOrder.id);\n      const retryPath = `/${PaymentRetryNavigationName}/${this.chargeOrder.id}`;\n      const currentHash = window.location.hash;\n      const idx = currentHash.indexOf(retryPath);\n      if (idx !== -1) {\n        window.history.replaceState(null, \"\", currentHash.slice(0, idx) || window.location.pathname);\n      }\n    }\n\n    this.clearTimeoutInterval();\n\n    if (isClosing) {\n      this.unsubscriptions.forEach(u => u());\n      this.unsubscriptions = [];\n    }\n    await super.onDeactivate(isClosing);\n  }\n\n  @action.bound\n  private async ensureInitialized() {\n    if (!this.chargeTypesService.isInitialized) {\n      this.isLoading = true;\n      await this.chargeTypesService.initialize(false);\n      this.isLoading = false;\n    }\n  }\n\n  @computed\n  get isMultiple() {\n    return this.chargeOrder._origin === \"multiple\";\n  }\n\n  @computed\n  get isDifferentTimeZone() {\n    return this.timeService.isFetched && !this.timeService.isServerTimeSame;\n  }\n\n  @computed\n  get isRetryAllowed() {\n    return this.payGatePaymentResponse?.permittedActions?.paymentRetry?.isAllowed ?? false;\n  }\n\n  @computed\n  get isPaymentInProgress() {\n    return this.payGatePaymentResponse?.status === PayGatePaymentStatus.IN_PROGRESS;\n  }\n\n  @computed\n  get allowedPaymentTypes(): PayGatePaymentType[] {\n    return this.payGatePaymentResponse?.permittedActions?.paymentRetry?.allowedPayGatePaymentTypes ?? [];\n  }\n\n  @computed\n  get isGooglePayAllowed() {\n    return (\n      !this.retryBlocked && !!this.onRetryGooglePayPayment && this.allowedPaymentTypes.includes(PayGatePaymentType.GOOGLE_PAY)\n    );\n  }\n\n  @computed\n  get isCardPayAllowed() {\n    return !this.retryBlocked && this.allowedPaymentTypes.includes(PayGatePaymentType.STANDARD);\n  }\n\n  @computed\n  get isGooglePayMetadataReady() {\n    return !this.paymentService.isFetchingGooglePayMetadata && this.googlePayMetadata !== undefined;\n  }\n\n  @computed\n  get grandTotalRawForGooglePay() {\n    return (\n      this.chargeOrder.charges?.reduce((sum, item) => {\n        const chargeTypeId = item.chargeTypeId ?? item._chargeTypeId;\n        const fuelTypeId = item.fuelTypeId ?? item._fuelTypeId;\n        const count = item.licensePlates?.length || (item.licensePlate ? 1 : 0) || 1;\n        return sum + this.priceService.chargePrice(chargeTypeId, fuelTypeId) * count;\n      }, 0) || 0\n    );\n  }\n\n  @computed\n  get vehicleInfo() {\n    if (!this.chargeOrder.charges?.length) return \"\";\n    const item = this.chargeOrder.charges[0];\n    if (!item) return \"\";\n    const country = this.enumService.values(\"countries\").find((c: any) => c.id === item.countryId);\n    if (!country?.code) return \"\";\n    const plate = item.licensePlates?.length > 0 ? item.licensePlates[0] : item.licensePlate ?? \"\";\n    return `${country.code} – ${plate}`;\n  }\n\n  @computed\n  get chargeType() {\n    if (!this.chargeOrder.charges?.length) return \"\";\n    const item = this.chargeOrder.charges[0];\n    let chargeType = this.chargeTypesService.getPriceListItemChargeType(item.priceListItemId);\n    if (!chargeType && item._chargeTypeId) {\n      chargeType = this.chargeTypesService.findChargeType(item._chargeTypeId);\n    }\n    if (!chargeType && item.chargeTypeId) {\n      chargeType = this.chargeTypesService.findChargeType(item.chargeTypeId);\n    }\n    return chargeType?.description ?? \"\";\n  }\n\n  @computed\n  get isSingleDay() {\n    if (!this.chargeOrder.charges?.length) return false;\n    const item = this.chargeOrder.charges[0];\n    let chargeType = this.chargeTypesService.getPriceListItemChargeType(item.priceListItemId);\n    if (!chargeType && item._chargeTypeId) {\n      chargeType = this.chargeTypesService.findChargeType(item._chargeTypeId);\n    }\n    if (!chargeType && item.chargeTypeId) {\n      chargeType = this.chargeTypesService.findChargeType(item.chargeTypeId);\n    }\n    return chargeType?.validFor === ChargeValidity.SingleDay;\n  }\n\n  @computed\n  get fuelType() {\n    if (!this.chargeOrder.charges?.length) return \"\";\n    const item = this.chargeOrder.charges[0];\n    let fuelType = this.chargeTypesService.getPriceListItemFuelType(item.priceListItemId);\n    if (!fuelType) {\n      const fuelTypeId = item._fuelTypeId ?? item.fuelTypeId;\n      if (fuelTypeId) {\n        const fuelTypes = this.enumService.values(\"fuel_types\") as { id: string; fuelType: FuelType }[];\n        fuelType = fuelTypes?.find(x => x.id === fuelTypeId)?.fuelType;\n      }\n    }\n    return fuelType ? this.localizationService.translateAttribute(\"fuelType\", fuelType) : \"\";\n  }\n\n  @computed\n  get validSince() {\n    if (!this.chargeOrder.charges?.length) return null;\n    return this.chargeOrder.charges[0]?.validity?.validSinceDate ?? null;\n  }\n\n  @computed\n  get validUntil() {\n    if (!this.chargeOrder.charges?.length) return null;\n    return this.chargeOrder.charges[0]?.validity?._validUntilDate ?? null;\n  }\n\n  @computed\n  get email() {\n    return this.chargeOrder.emailAddress;\n  }\n\n  @computed\n  get notificationEmail() {\n    const prefs = this.chargeOrder.notificationPreferences;\n    if (!prefs?.emailNotificationEnabled) return undefined;\n    return prefs._emailAddressNotification ?? prefs.emailAddress;\n  }\n\n  @computed\n  get notificationPhone() {\n    const prefs = this.chargeOrder.notificationPreferences;\n    if (!prefs?.smsNotificationEnabled) return undefined;\n    return prefs.phoneNumber;\n  }\n\n  @computed\n  get singlePrice() {\n    if (!this.chargeOrder.charges?.length) return \"\";\n    const item = this.chargeOrder.charges[0];\n    const chargeTypeId = item.chargeTypeId ?? item._chargeTypeId;\n    const fuelTypeId = item.fuelTypeId ?? item._fuelTypeId;\n    const count = item.licensePlates?.length || (item.licensePlate ? 1 : 0) || 1;\n    const price = this.priceService.chargePrice(chargeTypeId, fuelTypeId) * count;\n    return this.localizationService.formatPrice(price);\n  }\n\n  @computed\n  get grandTotal() {\n    const total = this.priceService.grandTotal(this.chargeOrder);\n    return this.localizationService.formatPrice(total);\n  }\n\n  @computed\n  get grandTotalRaw() {\n    return this.priceService.grandTotal(this.chargeOrder);\n  }\n\n  uniqueCharges(): { chargeTypeId: string; fuelTypeId: string; index: number; count: number }[] {\n    return this.chargeOrder.charges\n      .map((item, index) => ({\n        chargeTypeId: item.chargeTypeId ?? item._chargeTypeId ?? \"\",\n        fuelTypeId: item.fuelTypeId ?? item._fuelTypeId ?? \"\",\n        index: index + 1,\n        count: item.licensePlates?.length ?? (item.licensePlate ? 1 : 0) ?? 1,\n      }))\n      .filter(d => d.chargeTypeId && d.fuelTypeId);\n  }\n\n  chargeTypeTotal(chargeTypeId: string, fuelTypeId: string, count: number) {\n    const price = this.priceService.chargePrice(chargeTypeId, fuelTypeId) * count;\n    return this.localizationService.formatPrice(price);\n  }\n\n  chargeTypeLabel(chargeTypeId: string) {\n    const chargeType = this.chargeTypesService.findChargeType(chargeTypeId);\n    if (!chargeType) return \"\";\n    return this.localizationService.translateAttribute(\"chargeType\", chargeType.validFor);\n  }\n\n  vehicleCountLabel(index: number) {\n    const template = this.localizationService.translateGeneral(`eshop.payment.retry.setLabel`);\n    return template.replace(/%index%/g, index.toString());\n  }\n\n  pluralizeVehicles(count: number) {\n    const tr = (code: string) => this.localizationService.translateGeneral(`eshop.payment.retry.${code}`);\n    let key = \"vehicleCount\";\n    if (count === 1) {\n      key = \"vehicleCount1\";\n    } else if (count >= 2 && count <= 4) {\n      key = \"vehicleCount234\";\n    }\n    return tr(key).replace(/%count%/g, count.toString());\n  }\n\n  @action.bound\n  async fetchPayGatePayment() {\n    if (!this.chargeOrder.id) return;\n    this.isLoading = true;\n    try {\n      const response = await this.chargeOrderRepository.getPayGatePayment(this.chargeOrder.id);\n      this.payGatePaymentResponse = response;\n      if (response?.status === PayGatePaymentStatus.SUCCEEDED) {\n        this.onPaymentSucceeded();\n      } else if (response?.status === PayGatePaymentStatus.IN_PROGRESS) {\n        this.onPaymentInProgress();\n      }\n    } catch {\n      this.payGatePaymentResponse = undefined;\n    } finally {\n      this.isLoading = false;\n    }\n  }\n\n  @action.bound\n  private async ensureGooglePayMetadata() {\n    if (this.googlePayMetadata) return;\n    await this.paymentService.getGooglePayMetadata();\n  }\n\n  @action.bound\n  private receivedGooglePayMetadata(data: { type: string; payload: { googlePayMetadata: GooglePayMetadata } }) {\n    this.googlePayMetadata = data.payload.googlePayMetadata;\n  }\n\n  @action.bound\n  private googlePayMetadataFetchFailure() {\n    this.googlePayMetadata = undefined;\n  }\n\n  @action.bound\n  private googlePayPaymentBrowserFingerprint(event: { payload: { url: string } }) {\n    this.googlePayPaymentFingerprint = event.payload.url;\n    this.googlePayFingerprintProcessed = false;\n  }\n\n  @action.bound\n  private googlePayFingerprintReset() {\n    this.googlePayPaymentFingerprint = undefined;\n    this.googlePayFingerprintProcessed = false;\n  }\n\n  @action.bound\n  private onSubmitGooglePayPaymentSuccess() {\n    this.googlePayPaymentFingerprint = undefined;\n    this.googlePayFingerprintProcessed = false;\n    this.isLoading = false;\n    this.onPaymentSucceeded();\n  }\n\n  @action.bound\n  private onSubmitGooglePayPaymentDeferred() {\n    this.googlePayPaymentFingerprint = undefined;\n    this.googlePayFingerprintProcessed = false;\n    this.isLoading = false;\n    this.onPaymentInProgress();\n  }\n\n  @action.bound\n  onGooglePayPaymentFingerprintLoaded = () => {\n    if (!this.googlePayFingerprintProcessed) {\n      this.googlePayFingerprintProcessed = true;\n      this.eventBus.publish(googlePayPaymentBrowserFingerprintLoaded());\n    }\n  };\n\n  @action.bound\n  async handleRetryPayment() {\n    if (!this.chargeOrder.id) return;\n    this.isLoading = true;\n    try {\n      const response = await this.chargeOrderRepository.getPayGatePayment(this.chargeOrder.id);\n      this.payGatePaymentResponse = response;\n\n      if (response?.permittedActions?.paymentRetry?.isAllowed) {\n        this.onRetryPayment();\n      } else if (response?.status === PayGatePaymentStatus.SUCCEEDED) {\n        this.onPaymentSucceeded();\n      } else if (response?.status === PayGatePaymentStatus.IN_PROGRESS) {\n        this.onPaymentInProgress();\n      } else {\n        this.retryBlocked = true;\n      }\n    } catch {\n      this.payGatePaymentResponse = undefined;\n    } finally {\n      this.isLoading = false;\n    }\n  }\n\n  @action.bound\n  async handleRetryGooglePayPayment(paymentData: google.payments.api.PaymentData) {\n    if (!this.chargeOrder.id || !this.onRetryGooglePayPayment) return;\n    this.isLoading = true;\n    try {\n      const response = await this.chargeOrderRepository.getPayGatePayment(this.chargeOrder.id);\n      this.payGatePaymentResponse = response;\n\n      if (!response?.permittedActions?.paymentRetry?.isAllowed) {\n        if (response?.status === PayGatePaymentStatus.SUCCEEDED) {\n          this.onPaymentSucceeded();\n        } else if (response?.status === PayGatePaymentStatus.IN_PROGRESS) {\n          this.onPaymentInProgress();\n        } else {\n          this.retryBlocked = true;\n        }\n        return;\n      }\n\n      await this.onRetryGooglePayPayment(paymentData);\n    } catch {\n      this.payGatePaymentResponse = undefined;\n    } finally {\n      this.isLoading = false;\n    }\n  }\n\n  @action.bound\n  validateForGooglePay() {\n    return !!this.chargeOrder.id && this.isGooglePayAllowed;\n  }\n\n  @action.bound\n  handleBackToPurchase() {\n    this.onBackToPurchase();\n  }\n\n  @action.bound\n  closeIdleModal() {\n    this.showIdleModal = false;\n    this.clearTimeoutInterval();\n  }\n\n  @action.bound\n  onIdleTimeout() {\n    this.showIdleModal = false;\n    this.clearTimeoutInterval();\n    if (this.onIdleTimeoutCallback) {\n      this.onIdleTimeoutCallback();\n    } else {\n      window.location.href = this.localizationService.translateGeneral(\"eshop.idle.timeoutRedirect\", undefined, true);\n    }\n  }\n\n  @action.bound\n  private clearTimeoutInterval() {\n    if (this.intervalId) {\n      clearInterval(this.intervalId);\n      this.intervalId = undefined;\n    }\n  }\n\n  @action.bound\n  async handleOnIdle() {\n    if (this.showIdleModal || this.isLoading) return;\n\n    this.counter = this.IDLE_PROMPT_TIMEOUT;\n    this.showIdleModal = true;\n    this.intervalId = setInterval(async () => {\n      this.counter = this.counter - 1000;\n      if (this.counter === 0) {\n        this.onIdleTimeout();\n      }\n    }, 1000);\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (\n      chargeOrder: ChargeOrder,\n      onRetryPayment: () => void,\n      onBackToPurchase: () => void,\n      onPaymentSucceeded: () => void,\n      onPaymentInProgress: () => void,\n      onRetryGooglePayPayment?: (paymentData: google.payments.api.PaymentData) => Promise<void> | void,\n      onIdleTimeoutCallback?: () => void\n    ) =>\n      new PaymentRetryViewModel(\n        chargeOrder,\n        container.get(LocalizationService),\n        container.get(TimeService),\n        container.get(ChargeOrderRepository),\n        container.get(ChargeTypesService),\n        container.get(EnumService),\n        container.get(PriceService),\n        container.get(PaymentService),\n        container.get(EventBus),\n        onRetryPayment,\n        onBackToPurchase,\n        onPaymentSucceeded,\n        onPaymentInProgress,\n        onRetryGooglePayPayment,\n        onIdleTimeoutCallback\n      );\n  }\n}\n","import { computed, observable } from \"mobx\";\nimport NaturalPerson from \"./naturalPerson\";\nimport LegalPerson from \"./legalPerson\";\nimport { Type } from \"class-transformer\";\n\nexport default class VehicleOperator {\n  @observable\n  isLegalPerson = false;\n\n  @Type(() => NaturalPerson)\n  @observable\n  naturalPerson?: NaturalPerson = new NaturalPerson();\n\n  @Type(() => LegalPerson)\n  @observable\n  legalPerson?: LegalPerson = new LegalPerson();\n\n  /*\n   * True = Provozovatel je jiný než osoba oznamovatel - je ním zastoupen\n   * False = Provozovatel je stejný jako oznamnovatel\n   */\n  @computed\n  get _isRepresentedByProxy() {\n    return (!this.isLegalPerson && this.naturalPerson!.isRepresentedByProxy) || this.isLegalPerson;\n  }\n}\n","import { Type } from \"class-transformer\";\nimport { observable } from \"mobx\";\nimport Person from \"./person\";\nimport Vehicle from \"./vehicle\";\nimport VehicleOperator from \"./vehicleOperator\";\n\nexport enum SignatureType {\n  DataBox = \"DATA_BOX\",\n  ElectronicSignature = \"ELECTRONIC_SIGNATURE\",\n  OfficiallyVerifiedSignature = \"OFFICIALLY_VERIFIED_SIGNATURE\",\n}\n\nexport interface PersistedBase64 {\n  id: string;\n  fileName: string;\n  fileSize: number;\n  base64?: string;\n}\n\nexport default class Notice {\n  @Type(() => Person)\n  @observable\n  applicant: Person = new Person();\n\n  @observable\n  _signatureType: SignatureType = SignatureType.ElectronicSignature;\n\n  @Type(() => Vehicle)\n  @observable\n  vehicle?: Vehicle = new Vehicle();\n\n  @Type(() => VehicleOperator)\n  @observable\n  vehicleOperator?: VehicleOperator = new VehicleOperator();\n\n  @observable\n  _noticeBlob?: Blob;\n\n  @observable\n  _noticeBase64?: PersistedBase64;\n\n  @observable\n  _noticeURL?: string;\n\n  @observable\n  _powerOfAttorneyFilesBase64: PersistedBase64[] = [];\n\n  @observable\n  _technicalLicenseFilesBase64: PersistedBase64[] = [];\n}\n","import { Type } from \"class-transformer\";\nimport { observable } from \"mobx\";\n\nexport default class ValidChargeResponse {\n  @observable chargeId: string;\n  @observable chargeTypeId: string;\n  @Type(() => Date)\n  @observable\n  validSince: Date;\n  @Type(() => Date)\n  @observable\n  validUntil: Date;\n  @observable isOverlapped: boolean;\n}\n","import { Type } from \"class-transformer\";\nimport { computed, observable } from \"mobx\";\nimport \"reflect-metadata\";\nimport { EntityValidationRules } from \"services/validationService\";\nimport { maxValidSince, minValidSince } from \"../utils/dateUtils\";\nimport FuelType from \"entities/fuelType\";\nimport { IVehicle } from \"./types\";\nimport ValidChargeResponse from \"./validChargeResponse\";\nimport Vehicle from \"./vehicle\";\n\nexport enum ExemptionState {\n  Exempted = \"EXEMPTED\",\n  O = \"O\",\n  C = \"C\",\n  P = \"P\",\n}\n\nexport const LicensePlateValidationRules: EntityValidationRules<IVehicle> = {\n  licensePlate: {\n    hasRequiredLength: { min: 1, max: 10 },\n    isLicensePlate: true,\n  },\n};\n\nexport const LicensePlateConfirmationValidationRules: EntityValidationRules<OrderItem> = {\n  _licensePlateConfirmation: {\n    equalWith: { property: \"licensePlate\" as const },\n    hasRequiredLength: { min: 1, max: 10 },\n    isLicensePlate: true,\n  },\n};\n\nexport const ValidSinceValidationRules: EntityValidationRules<OrderItem> = {\n  validSince: {\n    dateRange: {\n      min: minValidSince(),\n      max: maxValidSince(),\n    },\n    required: true,\n  },\n};\n\nexport const ChargeTypeIdValidationRules: EntityValidationRules<OrderItem> = {\n  chargeTypeId: {\n    required: true,\n  },\n};\n\nexport const CountryIdValidationRules: EntityValidationRules<IVehicle> = {\n  countryId: { required: \"requiredCountryId\" },\n};\n\nexport const FuelTypeValidationRules: EntityValidationRules<OrderItem> = {\n  fuelType: { required: true },\n};\n\nexport const LicensePlatesValidationRules: EntityValidationRules<OrderItem> = {\n  licensePlates: {\n    required: true,\n    hasRequiredLength: {\n      min: 1,\n      max: 200,\n    },\n  },\n};\n\nexport default class OrderItem implements IVehicle {\n  id?: string;\n\n  authCode: string;\n\n  @observable licensePlates: string[] = [];\n\n  @observable licensePlate?: string;\n\n  @observable _licensePlateConfirmation?: string;\n\n  @observable countryId?: string;\n\n  @observable canBeChanged?: boolean;\n\n  @observable fuelType?: FuelType = FuelType.Other;\n\n  @observable authCodes: string[] = [];\n\n  @Type(() => Vehicle)\n  @observable\n  _vehicle: Vehicle;\n\n  @Type(() => Date)\n  @observable\n  validSince?: Date;\n\n  @Type(() => Date)\n  @observable\n  validUntil?: Date;\n\n  @observable\n  chargeTypeId?: string;\n\n  @observable\n  _registrationState?: ExemptionState;\n\n  @observable\n  _licensePlateNumberNotInSystem?: string;\n\n  @observable\n  _licensePlateCountryIdNotInSystem?: string;\n\n  @observable\n  _duplicities = 0;\n\n  @observable\n  _visible = true;\n\n  @Type(() => ValidChargeResponse)\n  @observable\n  _validCharges: ValidChargeResponse[] = [];\n\n  @observable\n  _proposedValidSince?: Date;\n\n  @computed\n  get _alreadyPaidSince() {\n    if (!this._validCharges.length) {\n      return undefined;\n    }\n\n    return this._validCharges[0].validSince;\n  }\n\n  @computed\n  get _alreadyPaidUntil() {\n    return this._validCharges.reduce((acc: undefined | Date, item) => {\n      if (!item.isOverlapped) {\n        return item.validUntil;\n      }\n      return acc;\n    }, undefined);\n  }\n\n  @computed\n  get _licensePlateNotInSystem() {\n    return (\n      this._licensePlateNumberNotInSystem &&\n      this._licensePlateNumberNotInSystem === this.licensePlate &&\n      this._licensePlateCountryIdNotInSystem &&\n      this._licensePlateCountryIdNotInSystem === this.countryId\n    );\n  }\n}\n\nexport const OrderItemValidationRules: EntityValidationRules<OrderItem> = {\n  ...ValidSinceValidationRules,\n  ...ChargeTypeIdValidationRules,\n  ...LicensePlateValidationRules,\n  ...LicensePlateConfirmationValidationRules,\n  ...CountryIdValidationRules,\n  ...FuelTypeValidationRules,\n};\n\nexport const OrderItemBatchValidationRules: EntityValidationRules<OrderItem> = {\n  ...ValidSinceValidationRules,\n  ...ChargeTypeIdValidationRules,\n  ...CountryIdValidationRules,\n  ...FuelTypeValidationRules,\n  ...LicensePlatesValidationRules,\n};\n","import { action, computed, observable } from \"mobx\";\nimport SystemRepository from \"repositories/systemRepository\";\nimport ServerTimeResponse from \"entities/serverTimeResponse\";\nimport { format, getTimezoneOffset, utcToZonedTime, zonedTimeToUtc } from \"date-fns-tz\";\n\nfunction parseServerDateAsLocal(serverDate: Date): Date {\n  const pragueDate = utcToZonedTime(serverDate, \"Europe/Prague\");\n  return new Date(\n    pragueDate.getFullYear(),\n    pragueDate.getMonth(),\n    pragueDate.getDate(),\n    pragueDate.getHours(),\n    pragueDate.getMinutes(),\n    pragueDate.getSeconds(),\n    pragueDate.getMilliseconds()\n  );\n}\n\nexport default class TimeService {\n  @observable isServerTimeSame?: boolean;\n  @observable currentServerTime: Date;\n  @observable isPositivezone = new Date().getTimezoneOffset() <= 0;\n  @observable isFetched: Boolean;\n  private serverTimeFetched = false; // Flag pro kontrolu, zda už byl server time načten\n\n  constructor(private systemRepository: SystemRepository) {\n    this.isFetched = false;\n  }\n\n  @computed\n  get serverTime(): Date {\n    return this.currentServerTime;\n  }\n\n  @action.bound\n  async getCurrentServerTime(onflyFetch = false) {\n    const response = await this.systemRepository.getCurrentServerTime();\n    if (onflyFetch && response instanceof ServerTimeResponse) {\n      return response.currentServerTime;\n    }\n    if (response instanceof ServerTimeResponse) {\n      const serverDate = response.currentServerTime;\n      const finalDate = parseServerDateAsLocal(serverDate);\n\n      const userTZ = Intl.DateTimeFormat().resolvedOptions().timeZone;\n      const serverOffset = getTimezoneOffset(\"Europe/Prague\", serverDate);\n      const userOffset = getTimezoneOffset(userTZ, new Date());\n\n      const serverDay = format(serverDate, \"yyyy-MM-dd\", { timeZone: \"Europe/Prague\" });\n      const userDay = format(new Date(), \"yyyy-MM-dd\", { timeZone: userTZ });\n      this.isServerTimeSame = serverOffset === userOffset && serverDay === userDay;\n      this.currentServerTime = finalDate;\n      this.isFetched = true;\n      this.serverTimeFetched = true; // Označíme, že server time byl načten\n    } else {\n      this.isFetched = false;\n      this.currentServerTime = new Date();\n    }\n    return this.currentServerTime;\n  }\n}\n","import { registerView, ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { Alert, Col, Row } from \"react-bootstrap\";\nimport AlertViewModel from \"viewModels/alertViewModel\";\nimport Icon from \"@edaz/edazkit/Icon\";\n\nconst alertView: ViewComponent<AlertViewModel> = observer(({ vm }) => {\n  let alertContent;\n\n  const alertSectionClassName = `d-flex flex-row ${\n    vm.notification.contentCenter ? \"justify-content-center\" : \"\"\n  } align-items-center`;\n\n  if (vm.notification.action) {\n    // Action title supplied - create link with action title on the right side of alert\n    if (vm.notification.action.title) {\n      alertContent = (\n        <div className=\"d-flex justify-content-between align-items-center\">\n          <div className={alertSectionClassName}>\n            {vm.notification.icon && (\n              <Icon\n                className=\"mr-2\"\n                icon={vm.notification.icon}\n                width={vm.notification.iconWidth || 24}\n                height={vm.notification.iconHeight || 24}\n              />\n            )}\n            <span>{vm.notification.title}</span>\n          </div>\n          <a href={vm.notification.action.link} onClick={vm.notification.action.func}>\n            {vm.notification.action.title}\n          </a>\n        </div>\n      );\n    } else {\n      // Action title NOT supplied - create link with as alert's main content\n      alertContent = (\n        <a href={vm.notification.action.link} onClick={vm.notification.action.func}>\n          <div className={alertSectionClassName}>\n            {vm.notification.icon && (\n              <Icon\n                className=\"mr-2\"\n                icon={vm.notification.icon}\n                width={vm.notification.iconWidth || 24}\n                height={vm.notification.iconHeight || 24}\n              />\n            )}\n            <span>{vm.notification.title}</span>\n          </div>\n        </a>\n      );\n    }\n  } else {\n    // Just static alert without any action/link\n    alertContent = (\n      <div className={alertSectionClassName}>\n        <Row>\n          {vm.notification.icon && (\n            <Col xs=\"auto\" className=\"mr-0 pr-1 align-items-center d-flex flex-row\">\n              <Icon\n                className=\"mr-2\"\n                icon={vm.notification.icon}\n                width={vm.notification.iconWidth || 24}\n                height={vm.notification.iconHeight || 24}\n              />\n            </Col>\n          )}\n          <Col className=\"ml-0 pl-1 align-items-center d-flex flex-row\">\n            <span>{vm.notification.title}</span>\n          </Col>\n        </Row>\n      </div>\n    );\n  }\n\n  return (\n    <Alert className=\"border-none\" variant={vm.variant} dismissible={!!vm.onClose} closeLabel=\"&times;\" onClose={vm.onClose}>\n      {alertContent}\n    </Alert>\n  );\n});\n\nexport default registerView(alertView, AlertViewModel);\n","import { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent, useRef } from \"react\";\nimport Modal from \"react-bootstrap/Modal\";\n\nconst LoadingModal: FunctionComponent<{ translate: (code: string) => string; isVisible: boolean }> = observer(\n  ({ translate, isVisible }) => {\n    const rootRef = useRef<HTMLDivElement>(null);\n\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    const onHide = () => {};\n\n    return (\n      <div ref={rootRef}>\n        <Modal className=\"loading-modal-dialog\" dialogClassName=\"loading-modal\" show={isVisible} onHide={onHide} centered>\n          <Modal.Body className=\"text-center pb-7\">\n            <div className=\"spinner-border text-danger my-4\" role=\"status\">\n              <span className=\"sr-only\">{translate(\"loading\")}</span>\n            </div>\n            <h6 className=\"mb-auto\">{translate(\"loading\").toUpperCase()}</h6>\n          </Modal.Body>\n        </Modal>\n      </div>\n    );\n  }\n);\n\nexport default LoadingModal;\n","import React, { FunctionComponent, useEffect, useState } from \"react\";\nimport LoadingModal from \"./loadingModal\";\n\ninterface ExtendedLoadingModalProps {\n  translate: (code: string) => string;\n  isLoading: boolean;\n  isBusy: boolean;\n  minDuration?: number; // in milliseconds, default 5000ms\n}\n\nconst ExtendedLoadingModal: FunctionComponent<ExtendedLoadingModalProps> = ({\n  translate,\n  isLoading,\n  isBusy,\n  minDuration = 1500,\n}) => {\n  const [shouldShow, setShouldShow] = useState(false);\n  const [startTime, setStartTime] = useState<number | null>(null);\n\n  useEffect(() => {\n    if (isLoading || isBusy) {\n      // Show loading immediately when needed\n      if (!shouldShow) {\n        setShouldShow(true);\n        setStartTime(Date.now());\n      }\n    } else {\n      // Both isLoading and isBusy are false, check if minimum time has passed\n      if (shouldShow && startTime) {\n        const elapsed = Date.now() - startTime;\n        if (elapsed >= minDuration) {\n          // Minimum time has passed, hide immediately\n          setShouldShow(false);\n          setStartTime(null);\n        } else {\n          // Wait for the remaining time\n          const remainingTime = minDuration - elapsed;\n          const timeoutId = setTimeout(() => {\n            setShouldShow(false);\n            setStartTime(null);\n          }, remainingTime);\n\n          return () => clearTimeout(timeoutId);\n        }\n      }\n    }\n  }, [isLoading, isBusy, shouldShow, startTime, minDuration]);\n\n  return <LoadingModal translate={translate} isVisible={shouldShow} />;\n};\n\nexport default ExtendedLoadingModal;\n","import Icon, { IconType } from \"@edaz/edazkit/Icon\";\nimport { useWindowWidth } from \"@react-hook/window-size\";\nimport classNames from \"classnames\";\nimport React from \"react\";\nimport { Alert } from \"react-bootstrap\";\nimport { Variant } from \"react-bootstrap/types\";\n\nexport interface AlertWithInfoIconProps {\n  children: React.ReactNode;\n  variant?: Variant;\n  className?: string;\n  onClose?: (a: any, b: any) => void;\n  dismissible?: boolean;\n}\n\nexport default function alertWithInfoIcon(props: AlertWithInfoIconProps) {\n  const currentWidth = useWindowWidth();\n  const mobileView = currentWidth <= 767;\n  const isInfo = props.variant === \"info-light\" || props.variant === \"info\";\n  const updatedClassNames = classNames(\n    \"d-flex  align-items-center text-shadow-none py-3\",\n    {\n      \"text-muted\": props.variant === \"light\",\n      \"border-none\": props.variant !== \"warning\" && props.variant !== \"info-light\",\n      \"flex-column\": mobileView,\n    },\n    props.className\n  );\n\n  return (\n    <Alert\n      variant={props.variant || \"info\"}\n      className={updatedClassNames}\n      onClose={props.onClose}\n      dismissible={props.dismissible}>\n      <div className={classNames(\"row\", { \"flex-column\": mobileView })}>\n        <div className={classNames(\"pr-0 col col-auto\", { \"pb-1\": mobileView })}>\n          <Icon icon={isInfo ? IconType.Info : IconType.CircleWarning} width={24} height={24} className=\"d-sm-block\" />\n        </div>\n        <div className=\"col\">{props.children}</div>\n      </div>\n    </Alert>\n  );\n}\n","import Button from \"@edaz/edazkit/Button/index\";\nimport Icon, { IconType } from \"@edaz/edazkit/Icon\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { Col, Row } from \"react-bootstrap\";\n\nexport interface CollapsibleProps {\n  title: string;\n  collapse: string;\n  collapsed: boolean;\n  icon: IconType;\n  toggle: () => void;\n  children: React.ReactNode;\n}\n\nconst Collapsible = observer((props: CollapsibleProps) => {\n  const { collapsed, collapse, children, icon, title, toggle } = props;\n\n  return (\n    <>\n      <Row className=\"d-flex justify-content-between align-items-center\" onClick={toggle} style={{ cursor: \"pointer\" }}>\n        <Col className=\"d-flex align-items-center\">\n          <div\n            className=\"bg-secondary d-flex align-items-center justify-content-center rounded-circle text-white mr-3\"\n            style={{ height: 40, width: 40, minWidth: 40 }}>\n            <Icon icon={icon} width={20} height={20} />\n          </div>\n          <h6 className=\"mb-0 text-break\">{title}</h6>\n        </Col>\n        <Col xs=\"auto\" className=\"mx-0\">\n          <Row className=\"mx-0\">\n            {!collapsed && (\n              <Button\n                variant=\"link\"\n                className=\"d-none d-md-block m-0 mr-2 py-0 px-1 text-wrap text-left text-body box-shadow-none link-underline font-weight-bold\">\n                {collapse}\n              </Button>\n            )}\n            <Button variant=\"light\" className=\"m-0 p-2 box-shadow-none\" size={\"sm\"}>\n              <Icon\n                style={{ transform: collapsed ? \"rotate(180deg)\" : \"none\" }}\n                icon={IconType.ArrowSubmenuTop}\n                width={10}\n                height={10}\n                className=\"d-block\"\n              />\n            </Button>\n          </Row>\n        </Col>\n      </Row>\n      {!collapsed && <>{children}</>}\n    </>\n  );\n});\n\nexport default Collapsible;\n","import React, { useContext } from \"react\";\nimport BaseTooltip from \"@edaz/edazkit/Tooltip\";\nimport { OverlayTriggerProps as OverlayTriggerBootstrapProps } from \"react-bootstrap/OverlayTrigger\";\nimport { Col, Row } from \"react-bootstrap\";\nimport Button from \"@edaz/edazkit/Button\";\nimport Icon, { IconType } from \"@edaz/edazkit/Icon\";\nimport { BoxWidgetContext } from \"../views/boxWidgetView\";\n\ninterface OverlayTriggerBaseProps extends Omit<Omit<OverlayTriggerBootstrapProps, \"overlay\">, \"container\"> {\n  tooltip: React.ReactElement | React.ReactNode | React.ReactNodeArray;\n  id: string;\n  className?: string;\n  onClose?: () => void;\n}\n\nconst Tooltip = (props: OverlayTriggerBaseProps) => {\n  const container = useContext(BoxWidgetContext);\n\n  return (\n    <BaseTooltip\n      {...props}\n      tooltip={\n        <div className=\"m-2 position-relative\">\n          {props.onClose && (\n            <Button variant=\"link\" onClick={props.onClose} className=\"p-0 m-0 right-corner\">\n              <Icon width={8} height={8} className=\"text-white-50\" icon={IconType.Cross} />\n            </Button>\n          )}\n          <Row>\n            <Col xs={12}>{props.tooltip}</Col>\n          </Row>\n        </div>\n      }\n      container={container}>\n      {props.children}\n    </BaseTooltip>\n  );\n};\n\nexport default Tooltip;\n","import ScreenBase from \"@frui.ts/screens/dist/structure/screenBase\";\nimport { IconType } from \"@edaz/edazkit/Icon\";\nimport { observer } from \"mobx-react-lite\";\nimport classnames from \"classnames\";\nimport React, { FormEvent, FunctionComponent, useCallback, useEffect, useState } from \"react\";\nimport { Alert, Form } from \"react-bootstrap\";\nimport Button from \"@edaz/edazkit/Button\";\nimport ReactMarkdown from \"react-markdown\";\nimport AlertWithInfoIcon from \"views/common/alertWithInfoIcon/alertWithInfoIcon\";\nimport { IChargeManagementEditPartViewModel } from \"viewModels/chargeManagement/chargeManagementEdit/types\";\nimport Collapsible from \"../../common/collapsible/collapsible\";\nimport { preventDefault, View } from \"@frui.ts/views\";\nimport Tooltip from \"controls/tooltip\";\nimport { getTimeZoneLabel } from \"utils/dateUtils\";\nimport { isMobile } from \"react-device-detect\";\nimport ChargeChangeRejectionReason from \"entities/chargeChangeRejectionReason\";\nimport ChargeManagementEditViewModel from \"viewModels/chargeManagement/chargeManagementEdit/chargeManagementEditViewModel\";\n\nconst ChargeEditForm: FunctionComponent<{\n  vm: ScreenBase & IChargeManagementEditPartViewModel;\n  vmParent: ChargeManagementEditViewModel;\n  localize: (code: string) => string;\n  collapsed: boolean;\n  onSubmit?: (event: FormEvent, token?: string) => void;\n  onValidate?: () => void;\n  onCancelSecondStep?: () => void;\n  showSecondStep?: boolean;\n  secondStepLoading?: boolean;\n  secondStepErrorMessage?: string;\n  hideConfirmChangeButton?: boolean;\n  warningMessages?: string[];\n  extendedLoading?: boolean; // Pro 2.5s loading\n  toggle: () => void;\n  icon: IconType;\n  children?: React.ReactNode;\n  warning?: boolean;\n  info?: boolean;\n  toolbox?: boolean;\n  className?: string;\n  canEdit: boolean;\n  afterValidityStart?: boolean;\n  afterValidity?: boolean;\n  notAllowedBySourceType?: boolean;\n  success?: boolean;\n  customSuccessMessage?: string;\n  rejectedReason?: string;\n  chargeType?: string;\n  customInfoMessage?: string;\n  errorMessage?: string;\n  name?: IChargeManagementEditPartViewModel | ScreenBase;\n}> = observer(\n  ({\n    vm,\n    vmParent,\n    localize,\n    children,\n    icon,\n    warning = true,\n    info = true,\n    toolbox = true,\n    className,\n    collapsed,\n    toggle,\n    onSubmit,\n    onCancelSecondStep,\n    showSecondStep = false,\n    secondStepLoading = false,\n    secondStepErrorMessage = undefined,\n    hideConfirmChangeButton = false,\n    warningMessages = [],\n    extendedLoading = false,\n    canEdit,\n    afterValidityStart = false,\n    afterValidity = false,\n    notAllowedBySourceType = false,\n    success,\n    customSuccessMessage,\n    rejectedReason,\n    chargeType,\n    customInfoMessage,\n    errorMessage,\n    name,\n  }) => {\n    const formRef = useCallback(node => {\n      if (node !== null) {\n        vm.formElement = node;\n      }\n    }, []);\n    const infoMessage = rejectedReason\n      ? rejectedReason === ChargeChangeRejectionReason.DeniedForChargeType\n        ? localize(rejectedReason).replace(\"%CHARGE_TYPE%\", chargeType ?? \"\")\n        : localize(rejectedReason)\n      : localize(\"successInfo\");\n\n    const resetSecondStep = () => {\n      vm.showSecondStep = false;\n      vm.warningMessages = [];\n      vm.overlappingCharges = undefined;\n      vm.overlappingCharges = undefined;\n      vm.secondStepErrorMessage = undefined;\n      if (vm.turnstileViewModel) {\n        vm.turnstileViewModel.isDisabledByTurnsitel = false;\n        vm.turnstileViewModel.reset();\n      }\n      onCancelSecondStep?.();\n    };\n\n    const distinct = (value: string, index: number, array: string[]) => {\n      return array.indexOf(value) === index;\n    };\n\n    const translateOverlappingCharge = (charge: any) => {\n      const renderDateWithTimeZone = (date: Date) => {\n        const formatted = charge.formatDateTime(date);\n        return !charge.isDifferentTimeZone ? (\n          <span>{formatted}</span>\n        ) : (\n          <>\n            <span>{formatted}</span>\n            <Tooltip\n              id=\"cet-tooltip\"\n              placement={isMobile ? \"bottom\" : \"right\"}\n              tooltip={charge.translateGeneral(\"timezoneTooltip\")}\n              trigger={[\"hover\", \"focus\"]}>\n              <span style={{ marginLeft: 4, textDecoration: \"underline\", textDecorationStyle: \"dotted\" }}>\n                {getTimeZoneLabel(date)}\n              </span>\n            </Tooltip>\n          </>\n        );\n      };\n\n      return (\n        <span>\n          {charge.translateGeneral(\"charge.management.edit.validity.overlappingChargeStart\")}\n          {renderDateWithTimeZone(charge.validSince)}\n          {charge.translateGeneral(\"charge.management.edit.validity.overlappingChargeEnd\")}\n          {renderDateWithTimeZone(charge.validUntil)}\n          {\".\"}\n        </span>\n      );\n    };\n    const showAlert = warning && !customInfoMessage && canEdit && !rejectedReason && !notAllowedBySourceType && !afterValidity;\n    const showChargeNotEditableInfo =\n      info && !customInfoMessage && (!canEdit || rejectedReason || notAllowedBySourceType || afterValidity);\n    const showEditForm = canEdit && !rejectedReason;\n    const showConfirmChangeButton = !hideConfirmChangeButton && toolbox && canEdit && !secondStepLoading && !showSecondStep;\n    const showConfirmChangeSecondStepButton = toolbox && canEdit && !secondStepLoading && showSecondStep;\n\n    return (\n      <div className={classnames(\"py-2\", \"py-lg-3\", className)}>\n        <Collapsible\n          title={localize(\"title\")}\n          collapse={vm.translate(\"collapse\")}\n          collapsed={collapsed}\n          icon={icon}\n          toggle={toggle}>\n          <Form ref={formRef} onSubmit={onSubmit} className=\"mt-4 mb-4\">\n            {showAlert && <AlertWithInfoIcon variant=\"warning\">{localize(\"alert\")}</AlertWithInfoIcon>}\n            {errorMessage && (\n              <Alert variant=\"danger\" className={\"border-none text-center mb-4 is-invalid\"}>\n                {errorMessage}\n              </Alert>\n            )}\n            {success && customSuccessMessage && (\n              <AlertWithInfoIcon variant=\"success\">{customSuccessMessage || localize(\"success\")}</AlertWithInfoIcon>\n            )}\n            {showChargeNotEditableInfo && (\n              <AlertWithInfoIcon variant=\"warning\">\n                <ReactMarkdown className=\"markdown\" linkTarget=\"_blank\">\n                  {infoMessage}\n                </ReactMarkdown>\n              </AlertWithInfoIcon>\n            )}\n            {customInfoMessage && <AlertWithInfoIcon variant=\"warning\">{customInfoMessage}</AlertWithInfoIcon>}\n            {showEditForm ? children : undefined}\n            {secondStepErrorMessage && (\n              <AlertWithInfoIcon variant=\"danger\">\n                <ReactMarkdown className=\"font-weight-400 markdown\" linkTarget=\"_blank\">\n                  {secondStepErrorMessage}\n                </ReactMarkdown>\n              </AlertWithInfoIcon>\n            )}\n            {!success &&\n              secondStepErrorMessage === undefined &&\n              warningMessages.filter(distinct).map(message => (\n                <AlertWithInfoIcon variant=\"warning\" key={message}>\n                  {message}\n                </AlertWithInfoIcon>\n              ))}\n\n            {!success && secondStepErrorMessage === undefined && vm.overlappingCharges && vm.overlappingCharges.length > 0 && (\n              <AlertWithInfoIcon variant=\"warning\">\n                {vm.overlappingCharges.map((charge, index) => {\n                  return <p key={index}>{translateOverlappingCharge(charge)}</p>;\n                })}\n              </AlertWithInfoIcon>\n            )}\n\n            <div>\n              {(showConfirmChangeButton || showConfirmChangeSecondStepButton) && <View vm={vm.turnstileViewModel} />}\n\n              {showConfirmChangeButton && (\n                <Button\n                  type=\"button\"\n                  className=\"d-block mx-auto mt-2 mb-2 text-wrap mw-100\"\n                  disabled={!vm.canSubmit || vm.turnstileViewModel.isDisabledByTurnsitel}\n                  onClick={async e => {\n                    if (!vm.validate()) {\n                      return;\n                    }\n                    e.preventDefault();\n\n                    if (vm.hasSecondStep) {\n                      if (onSubmit) {\n                        onSubmit(e);\n                      }\n                      return;\n                    }\n\n                    vm.turnstileViewModel.showInteractive = true;\n                    let token: string | undefined;\n                    if (vm.turnstileViewModel?.turnstileRef?.current?.execute) {\n                      vm.turnstileViewModel.onTurnstileLoad();\n                      vm.turnstileViewModel.isDisabledByTurnsitel = true;\n                      await vm.turnstileViewModel.turnstileRef.current.execute();\n                      token = await vm.turnstileViewModel.turnstileRef.current.getResponsePromise();\n                      if (token) {\n                        vm.turnstileViewModel.onTurnstileVerify(token);\n                        await new Promise(resolve => setTimeout(resolve, 10));\n                      }\n                    }\n                    if (token && onSubmit) {\n                      vm.turnstileViewModel.isDisabledByTurnsitel = false;\n                      vm.turnstileViewModel.onSetInfo(vm.turnstileViewModel.translateTurnstile(\"success\"));\n                      onSubmit(e, token);\n                      vm.turnstileViewModel.reset();\n                    }\n                  }}>\n                  {vm.hasSecondStep ? localize(\"continue\") : localize(\"confirmChange\")}\n                </Button>\n              )}\n              {secondStepLoading && (\n                <div className=\"d-flex align-items-center justify-content-center\">\n                  <div className=\"spinner-border spinner-border-sm text-success\" role=\"status\">\n                    <span className=\"sr-only\">Loading...</span>\n                  </div>\n                  <div className=\"ml-3\">{localize(\"validatingLicensePlate\")}</div>\n                </div>\n              )}\n              {showConfirmChangeSecondStepButton && (\n                <div className=\"d-flex flex-column-reverse flex-sm-row justify-content-center mt-2\">\n                  <Button\n                    type=\"button\"\n                    variant=\"light\"\n                    onClick={preventDefault(resetSecondStep)}\n                    className=\"d-block mx-2 text-wrap\">\n                    {localize(\"cancelChange\")}\n                  </Button>\n                  <Button\n                    type=\"button\"\n                    className=\"d-block mx-2 mb-3 mb-sm-0 text-wrap\"\n                    disabled={\n                      !vm.canSubmit || vm.turnstileViewModel.isDisabledByTurnsitel || secondStepErrorMessage !== undefined\n                    }\n                    onClick={async e => {\n                      if (!vm.validate()) {\n                        return;\n                      }\n                      e.preventDefault();\n                      vm.turnstileViewModel.showInteractive = true;\n                      if (vm.turnstileViewModel?.turnstileRef?.current?.execute) {\n                        vm.turnstileViewModel.onTurnstileLoad();\n                        vm.turnstileViewModel.isDisabledByTurnsitel = true;\n                        await vm.turnstileViewModel.turnstileRef.current.execute();\n                        const token = await vm.turnstileViewModel.turnstileRef.current.getResponsePromise();\n                        if (token) {\n                          vm.turnstileViewModel.onTurnstileVerify(token);\n                          await new Promise(resolve => setTimeout(resolve, 10));\n                        }\n\n                        if (onSubmit && token) {\n                          vm.turnstileViewModel.isDisabledByTurnsitel = false;\n                          vm.turnstileViewModel.onSetInfo(vm.turnstileViewModel.translateTurnstile(\"success\"));\n                          onSubmit(e, token);\n                          vm.turnstileViewModel.reset();\n                        }\n                      }\n                    }}>\n                    {localize(\"confirmChange\")}\n                  </Button>\n                </div>\n              )}\n            </div>\n          </Form>\n        </Collapsible>\n      </div>\n    );\n  }\n);\n\nexport default ChargeEditForm;\n","import { ViewComponent } from \"@frui.ts/views\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport React from \"react\";\r\nimport { Col, Jumbotron, Row } from \"react-bootstrap\";\r\nimport ReactMarkdown from \"react-markdown\";\r\nimport ChargeManagementEditViewModel from \"viewModels/chargeManagement/chargeManagementEdit/chargeManagementEditViewModel\";\r\nimport AlertWithInfoIcon from \"views/common/alertWithInfoIcon/alertWithInfoIcon\";\r\nimport classNames from \"classnames\";\r\nimport Tooltip from \"controls/tooltip\";\r\nimport { getTimeZoneLabel } from \"utils/dateUtils\";\r\nimport { isMobile } from \"react-device-detect\";\r\n\r\nconst ChargeInfo: ViewComponent<ChargeManagementEditViewModel> = observer(({ vm }) => {\r\n  const renderDateWithTimeZone = (date: Date) => {\r\n    const formatted = vm.localizationService.formatDateTime(date);\r\n    return !vm.isDifferentTimeZone ? (\r\n      <span>{formatted}</span>\r\n    ) : (\r\n      <>\r\n        <span>{formatted}</span>\r\n        <Tooltip\r\n          id=\"cet-tooltip\"\r\n          placement={isMobile ? \"bottom\" : \"right\"}\r\n          tooltip={vm.localizationService.translateGeneral(\"timezoneTooltip\")}\r\n          trigger={[\"hover\", \"focus\"]}>\r\n          <span style={{ marginLeft: 4, textDecoration: \"underline\", textDecorationStyle: \"dotted\" }}>\r\n            {getTimeZoneLabel(date)}\r\n          </span>\r\n        </Tooltip>\r\n      </>\r\n    );\r\n  };\r\n\r\n  return (\r\n    <Jumbotron className=\"bg-light pt-5 pb-3\">\r\n      <Row className=\"d-flex align-items-top justify-content-between\">\r\n        <Col xs={12} md={4} className=\"mb-3\">\r\n          <h6 className=\"mb-1\">{vm.translate(\"countryOfRegistration\")}</h6>\r\n          <span>{vm.registrationCountry}</span>\r\n        </Col>\r\n        <Col xs={12} md={4} className=\"mb-3\">\r\n          <h6 className=\"mb-1\">{vm.translate(\"licensePlateLabel\")}</h6>\r\n          <span>{vm.licensePlate}</span>\r\n        </Col>\r\n        <Col xs={12} md={4} className=\"mb-3\">\r\n          <h6 className=\"mb-1\">{vm.translate(\"typeOfStamp\")}</h6>\r\n          <span>{vm.chargeTypeWithPrice}</span>\r\n        </Col>\r\n        <Col xs={12} md={4} className=\"mb-3\">\r\n          <h6 className=\"mb-1\">{vm.translate(\"drive\")}</h6>\r\n          <span>{vm.drive}</span>\r\n        </Col>\r\n        <Col xs={12} md={4} className=\"mb-3\">\r\n          <h6 className=\"mb-1\">{vm.translate(\"validFrom\")}</h6>\r\n          <span className={classNames(vm.isRefunded && \"invalidated\")}>\r\n            {vm.validSince !== \"-\" ? renderDateWithTimeZone(new Date(vm.validSince)) : \"-\"}\r\n          </span>\r\n        </Col>\r\n        <Col xs={12} md={4} className=\"mb-3\">\r\n          <h6 className=\"mb-1\">{vm.translate(\"validTo\")}</h6>\r\n          <span className={classNames(vm.isRefunded && \"invalidated\")}>\r\n            {vm.validUntil !== \"-\" ? renderDateWithTimeZone(new Date(vm.validUntil)) : \"-\"}\r\n          </span>\r\n        </Col>\r\n      </Row>\r\n      {vm.newChargePurchaseUrl && (\r\n        <AlertWithInfoIcon variant=\"warning\" className=\"mt-4\">\r\n          <ReactMarkdown linkTarget=\"_blank\">\r\n            {vm.translate(\"nextChargePurchase\").replace(\"%link%\", vm.newChargePurchaseUrl)}\r\n          </ReactMarkdown>\r\n        </AlertWithInfoIcon>\r\n      )}\r\n    </Jumbotron>\r\n  );\r\n});\r\n\r\nexport default ChargeInfo;\r\n","import { ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { Button, Col, Row } from \"react-bootstrap\";\nimport ChargeManagementEditViewModel from \"viewModels/chargeManagement/chargeManagementEdit/chargeManagementEditViewModel\";\nimport Icon, { IconType } from \"@edaz/edazkit/Icon\";\n\nconst ChargeManagementHeader: ViewComponent<ChargeManagementEditViewModel> = observer(({ vm }) => (\n  <div className=\"mb-7 mx-0 px-0\">\n    <Row>\n      <Col md=\"auto\" className=\"position-md-absolute z-index-1\">\n        <Button onClick={vm.back} variant=\"link\" className=\"font-weight-bold px-0 py-2 d-flex align-items-center link-underline\">\n          <div\n            className={\"bg-danger d-flex align-items-center justify-content-center rounded-circle text-white mr-2\"}\n            style={{ height: 40, width: 40 }}>\n            <Icon icon={IconType.ArrowLeft} width={12} height={12} />\n          </div>\n          {vm.translate(\"back\")}\n        </Button>\n      </Col>\n      <Col className=\"text-center\">\n        <h2 className=\"mb-0 text-wrap\">{vm.vehicle}</h2>\n        {vm.isRefunded ? <span className=\"invalidated-heading\">{vm.translate(\"invalid\")}</span> : <span>{vm.authCode}</span>}\n      </Col>\n    </Row>\n  </div>\n));\n\nexport default ChargeManagementHeader;\n","import React from \"react\";\nimport { ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport ChargeManagementEditViewModel from \"../../../viewModels/chargeManagement/chargeManagementEdit/chargeManagementEditViewModel\";\nimport AlertWithInfoIcon from \"views/common/alertWithInfoIcon/alertWithInfoIcon\";\n\nconst ChargeRefund: ViewComponent<ChargeManagementEditViewModel> = observer(({ vm }) => (\n  <AlertWithInfoIcon variant=\"danger\">\n    <span>{vm.refundMessage}</span>\n  </AlertWithInfoIcon>\n));\n\nexport default ChargeRefund;\n","import { IconType } from \"@edaz/edazkit/Icon\";\nimport { preventDefault, registerView, View, ViewComponent } from \"@frui.ts/views/dist\";\nimport { Observer, observer } from \"mobx-react-lite\";\nimport * as React from \"react\";\nimport { Jumbotron } from \"react-bootstrap\";\nimport ChargeManagementContactViewModel from \"viewModels/chargeManagement/chargeManagementEdit/chargeManagementContactViewModel\";\nimport ChargeManagementActiveChargeLicensePlateChangeViewModel from \"viewModels/chargeManagement/chargeManagementEdit/chargeManagementActiveChargeLicensePlateChangeViewModel\";\nimport ChargeManagementEditViewModel from \"viewModels/chargeManagement/chargeManagementEdit/chargeManagementEditViewModel\";\nimport ChargeManagementReceiptViewModel from \"viewModels/chargeManagement/chargeManagementEdit/chargeManagementReceiptViewModel\";\nimport ChargeManagementValidityViewModel from \"viewModels/chargeManagement/chargeManagementEdit/chargeManagementValidityViewModel\";\nimport LoadingModal from \"../../common/loadingModal/loadingModal\";\nimport ExtendedLoadingModal from \"../../common/loadingModal/extendedLoadingModal\";\nimport ChargeEditForm from \"./chargeEditForm\";\nimport ChargeInfo from \"./chargeInfo\";\nimport ChargeManagementHeader from \"./chargeManagementHeader\";\nimport ChargeRefund from \"./chargeRefund\";\nimport Portal from \"../../eshop/order/components/portal\";\nimport { turnstileSiteKey } from \"../../../config\";\nimport ChargeManagementLicensePlateChangeViewModel from \"viewModels/chargeManagement/chargeManagementEdit/chargeManagementLicensePlateChangeViewModel\";\nimport ChargeManagementBeforeValidChargeLicensePlateChangeViewModel from \"viewModels/chargeManagement/chargeManagementEdit/chargeManagementBeforeValidChargeLicensePlateChangeViewModel\";\n\nfunction getIconType(child: any) {\n  let icon: IconType;\n  if (child instanceof ChargeManagementReceiptViewModel) {\n    icon = IconType.Mail;\n  } else if (child instanceof ChargeManagementContactViewModel) {\n    icon = IconType.Bell;\n  } else if (child instanceof ChargeManagementValidityViewModel) {\n    icon = IconType.CalendarWithArrow;\n  } else {\n    icon = IconType.Car;\n  }\n\n  return icon;\n}\n\nfunction getRejectedReason(child: any, vm: ChargeManagementEditViewModel) {\n  let reason: any;\n  if (child instanceof ChargeManagementReceiptViewModel) {\n    reason = vm.rejectionReasonObtainingPaymentConfirmation;\n  } else if (child instanceof ChargeManagementContactViewModel) {\n    reason = vm.rejectionReasonContact;\n  } else if (child instanceof ChargeManagementValidityViewModel) {\n    reason = vm.rejectionReasonValidityChange;\n  } else if (child instanceof ChargeManagementActiveChargeLicensePlateChangeViewModel) {\n    reason = vm.rejectionReasonVehicleChangeDuringValidity;\n  } else if (child instanceof ChargeManagementBeforeValidChargeLicensePlateChangeViewModel) {\n    reason = vm.rejectionReasonVehicleChangeBeforeValidity;\n  }\n\n  return reason;\n}\n\nconst ChargeManagementEditView: ViewComponent<ChargeManagementEditViewModel> = observer(({ vm }) => (\n  <Jumbotron className=\"p-3 p-lg-4 p-xl-7 col-12\">\n    <div className=\"p-3 p-lg-4 p-xl-7\">\n      <ChargeManagementHeader vm={vm} />\n      {vm.isRefunded && vm.charge?.refund && <ChargeRefund vm={vm} />}\n      <div>\n        <ChargeInfo vm={vm} />\n        {!vm.isRefunded &&\n          vm.sectionsChildren.map((child, index) => (\n            <div key={index}>\n              <ChargeEditForm\n                key={child.navigationName}\n                onSubmit={(e, token) => {\n                  e.preventDefault();\n                  if (\n                    child instanceof ChargeManagementValidityViewModel ||\n                    child instanceof ChargeManagementActiveChargeLicensePlateChangeViewModel ||\n                    child instanceof ChargeManagementBeforeValidChargeLicensePlateChangeViewModel\n                  ) {\n                    child.submit(token);\n                  } else {\n                    child.submit();\n                  }\n                }}\n                onValidate={child.validate}\n                onCancelSecondStep={\n                  child instanceof ChargeManagementValidityViewModel ||\n                  child instanceof ChargeManagementLicensePlateChangeViewModel\n                    ? child.onCancelSecondStep\n                    : undefined\n                }\n                toggle={child.toggle}\n                collapsed={child.collapsed}\n                notAllowedBySourceType={\n                  child instanceof ChargeManagementReceiptViewModel || child instanceof ChargeManagementContactViewModel\n                    ? false\n                    : vm.notAllowedByOrderSourceType\n                }\n                afterValidityStart={\n                  child instanceof ChargeManagementReceiptViewModel || child instanceof ChargeManagementContactViewModel\n                    ? false\n                    : vm.afterValidityStart\n                }\n                rejectedReason={getRejectedReason(child, vm)}\n                chargeType={vm.getChargeType}\n                icon={getIconType(child)}\n                className={index === vm.children.length - 1 ? \"border-top border-bottom\" : \"border-top\"}\n                warning={child instanceof ChargeManagementReceiptViewModel ? false : undefined}\n                info={child instanceof ChargeManagementReceiptViewModel ? false : undefined}\n                toolbox={child instanceof ChargeManagementReceiptViewModel ? false : undefined}\n                customSuccessMessage={\n                  child instanceof ChargeManagementReceiptViewModel && child.charge?.emailAddress\n                    ? child.customSuccessMessage\n                    : undefined\n                }\n                customInfoMessage={child instanceof ChargeManagementContactViewModel ? child.customInfoMessage : undefined}\n                vm={child}\n                vmParent={vm}\n                success={child.success}\n                errorMessage={child.errorMessage}\n                canEdit={child.canEdit}\n                secondStepErrorMessage={child.secondStepErrorMessage}\n                secondStepLoading={child.secondStepLoading}\n                showSecondStep={child.showSecondStep}\n                hideConfirmChangeButton={child.hideConfirmChangeButton}\n                warningMessages={child.warningMessages}\n                localize={(code: string) => child.translate(`${child.navigationName}.${code}`)}>\n                <Observer>{() => <View vm={child} />}</Observer>\n                <ExtendedLoadingModal translate={vm.translate} isLoading={child.isLoading} isBusy={child.busyWatcher.isBusy} />\n              </ChargeEditForm>\n            </div>\n          ))}\n      </div>\n      {vm.codeChangedAlertViewModel && <Observer>{() => <View vm={vm.codeChangedAlertViewModel} />}</Observer>}\n    </div>\n  </Jumbotron>\n));\n\nregisterView(ChargeManagementEditView, ChargeManagementEditViewModel);\n","import { registerView, View } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport { Button, Col, Row } from \"react-bootstrap\";\nimport ChargeManagementReceiptViewModel from \"../../../viewModels/chargeManagement/chargeManagementEdit/chargeManagementReceiptViewModel\";\nimport { turnstileSiteKey } from \"../../../config\";\nimport Portal from \"../../eshop/order/components/portal\";\nimport Icon, { IconType } from \"@edaz/edazkit/Icon\";\n\nconst ChargeReceiptView: FunctionComponent<{\n  vm: ChargeManagementReceiptViewModel;\n}> = observer(({ vm }) => (\n  <>\n    <Col>\n      <>\n        <View vm={vm.turnstileViewModel} />\n        <Row className=\"mb-3\">\n          <Button\n            variant=\"link\"\n            onClick={async () => {\n              if (vm.turnstileViewModel?.turnstileRef?.current?.execute) {\n                vm.turnstileViewModel.showInteractive = true;\n                vm.turnstileViewModel.onTurnstileLoad();\n\n                await vm.turnstileViewModel.turnstileRef.current.execute();\n                const token = await vm.turnstileViewModel.turnstileRef.current.getResponsePromise();\n                if (token) {\n                  vm.turnstileViewModel.onSetInfo(vm.turnstileViewModel.translateTurnstile(\"success\"));\n                  vm.downloadPaymentConfirmation(token);\n                }\n              }\n            }}\n            className=\"d-flex align-items-center box-shadow-none p-0 no-border-radius font-weight-normal text-body text-left link-underline text-wrap\">\n            <div\n              className=\"d-flex align-items-center justify-content-center bg-primary mr-3 rounded-circle text-white\"\n              style={{ height: 40, width: 40, minWidth: 40 }}>\n              <Icon icon={IconType.Pdf} width={20} height={20} />\n            </div>\n            {vm.translate(\"receipt.downloadReceiptInPDF\")}\n          </Button>\n        </Row>\n        <Row>\n          <Button\n            variant=\"link\"\n            onClick={async () => {\n              if (vm.turnstileViewModel?.turnstileRef?.current?.execute) {\n                vm.turnstileViewModel.showInteractive = true;\n                vm.turnstileViewModel.onTurnstileLoad();\n                await vm.turnstileViewModel.turnstileRef.current.execute();\n                const token = await vm.turnstileViewModel.turnstileRef.current.getResponsePromise();\n                if (token) {\n                  vm.turnstileViewModel.onSetInfo(vm.turnstileViewModel.translateTurnstile(\"success\"));\n                  vm.sendPaymentConfirmationEmail(token);\n                }\n              }\n            }}\n            className=\"d-flex align-items-center box-shadow-none p-0 no-border-radius font-weight-normal text-body text-left link-underline text-wrap\">\n            <div\n              className=\"d-flex align-items-center justify-content-center bg-primary mr-3 rounded-circle text-white\"\n              style={{ height: 40, width: 40, minWidth: 40 }}>\n              <Icon icon={IconType.MailOpen} width={20} height={20} />\n            </div>\n            {vm.translate(\"receipt.sendReceiptToEmail\")}\n          </Button>\n          {vm.showModal && <View vm={vm.emailInputViewModel} />}\n        </Row>\n      </>\n    </Col>\n  </>\n));\n\nregisterView(ChargeReceiptView, ChargeManagementReceiptViewModel);\n","const relatedTargetClassNames = [\n  \"DayPicker-TodayButton\",\n  \"DayPicker-Day\",\n  \"DayPicker-wrapper\",\n  \"DayPicker-Day DayPicker-Day--disabled\",\n  \"DayPicker-Day DayPicker-Day--outside\",\n  \"DayPicker-Day DayPicker-Day--today\",\n];\nconst relatedTargetNames = [\"year\", \"month\"];\n\nexport function isDatepicker(target: HTMLInputElement) {\n  return relatedTargetNames.includes(target.name) || relatedTargetClassNames.includes(target.className);\n}\n","import { ValidationControlBase } from \"@frui.ts/bootstrap\";\r\nimport { bound } from \"@frui.ts/helpers\";\r\nimport { IBindingProps } from \"@frui.ts/views\";\r\nimport DatePicker from \"@edaz/edazkit/DatePicker\";\r\nimport { action, observable } from \"mobx\";\r\nimport format from \"date-fns-tz/format\";\r\nimport React from \"react\";\r\nimport { Form } from \"react-bootstrap\";\r\nimport { START_OF_SALE } from \"../../config\";\r\nimport { Modifier } from \"react-day-picker\";\r\nimport { setVisitedProperty } from \"utils/validationPatch\";\r\nimport { isDatepicker } from \"./utils\";\r\nimport { utcToCZZonedTime, zonedCZTimeToUtc } from \"../../utils/dateUtils\";\r\nimport { startOfDay } from \"date-fns\";\r\n\r\nexport interface DatePickerBoxProps {\r\n  ignoreTime?: boolean;\r\n  id?: string;\r\n  datePickerLocalization: any;\r\n  errorLocalization: (code: string) => string;\r\n  errorMessage?: string;\r\n  value?: Date;\r\n  fromMonth?: Date;\r\n  toMonth?: Date;\r\n  month?: Date;\r\n  today?: Date;\r\n  forSale?: boolean;\r\n  disabledDays?: Modifier | Modifier[];\r\n  onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;\r\n  useEndBoundaryAsDefault?: boolean;\r\n  autoComplete?: \"off\" | \"on\";\r\n}\r\n\r\nexport default class DatePickerBox<TTarget, TProperty> extends ValidationControlBase<\r\n  TTarget,\r\n  DatePickerBoxProps & IBindingProps<TTarget>\r\n> {\r\n  private dateRegex = /%date%/g;\r\n  @observable closePicker = false;\r\n  @observable inputValue?: string;\r\n\r\n  @bound\r\n  protected handleValueChanged(formattedDate: string, date?: Date, inputValue?: string) {\r\n    this.inputValue = inputValue;\r\n    // Select date in czech midnight or current time for czech current day\r\n    let czechDate;\r\n    if (date) {\r\n      const czechToday = utcToCZZonedTime(this.props.today ?? new Date());\r\n      const dateFormat = \"yyyy-MM-dd\";\r\n      if (format(date, dateFormat) === format(czechToday, dateFormat)) {\r\n        czechDate = this.props.today ?? new Date();\r\n      } else if (!this.props.ignoreTime) {\r\n        czechDate = zonedCZTimeToUtc(format(date, dateFormat));\r\n      } else {\r\n        date.setHours(0, 0, 0, 0);\r\n        czechDate = date;\r\n      }\r\n    }\r\n\r\n    this.setValue(czechDate);\r\n  }\r\n\r\n  @action\r\n  formatValue = (date: any) => {\r\n    let newDate = null;\r\n    if (typeof date === \"string\") {\r\n      newDate = new Date(date);\r\n    }\r\n    if (date instanceof Date) {\r\n      newDate = date;\r\n    }\r\n    if (newDate instanceof Date) {\r\n      return utcToCZZonedTime(newDate);\r\n    } else {\r\n      return date;\r\n    }\r\n  };\r\n\r\n  @bound\r\n  protected onBlur(e: React.FocusEvent<HTMLInputElement>) {\r\n    const { target, property } = this.props as { target: TTarget; property: keyof TTarget & string };\r\n\r\n    if (this.props.onBlur) {\r\n      this.props.onBlur(e);\r\n    }\r\n\r\n    const inputElement = e.relatedTarget as HTMLInputElement | null;\r\n    if (!inputElement || !isDatepicker(inputElement)) {\r\n      setVisitedProperty(target, property);\r\n    }\r\n  }\r\n\r\n  @bound\r\n  protected onDayPickerHide() {\r\n    const { target, property } = this.props as { target: TTarget; property: keyof TTarget & string };\r\n    setVisitedProperty(target, property);\r\n  }\r\n\r\n  @bound\r\n  protected renderInner() {\r\n    let validationError = this.getValidationError() || this.props.errorMessage;\r\n    const { useEndBoundaryAsDefault, errorLocalization, forSale, datePickerLocalization, placeholder, id, today } = this.props;\r\n\r\n    const date = this.formatValue(this.value);\r\n    const isBeforeSale = forSale && date && START_OF_SALE && new Date(START_OF_SALE) > new Date(date);\r\n    if (isBeforeSale) {\r\n      validationError = \"min\";\r\n    }\r\n\r\n    const hasInvalidInputValue = this.inputValue && !this.value && validationError;\r\n    if (hasInvalidInputValue) {\r\n      validationError = \"invalidDateFormat\";\r\n    }\r\n    return (\r\n      <>\r\n        <DatePicker\r\n          localization={datePickerLocalization}\r\n          {...this.props}\r\n          onChange={this.handleValueChanged}\r\n          value={this.formatValue(this.value as TProperty)}\r\n          hideOnDayClick={true}\r\n          onDayPickerHide={this.onDayPickerHide}\r\n          placeholder={placeholder}\r\n          isInvalid={!!validationError}\r\n          useEndBoundaryAsDefault={useEndBoundaryAsDefault}\r\n          today={startOfDay(today ?? new Date())}\r\n          inputProps={{\r\n            id,\r\n            \"data-testid\": id,\r\n            onBlur: this.onBlur,\r\n            autoComplete: this.props.autoComplete,\r\n          }}\r\n        />\r\n        {validationError && (\r\n          <Form.Control.Feedback type=\"invalid\" className=\"pre-line\">\r\n            {errorLocalization(validationError)}\r\n          </Form.Control.Feedback>\r\n        )}\r\n      </>\r\n    );\r\n  }\r\n}\r\n","import DatePickerBox from \"controls/datePickerBox/datePickerBox\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport React, { FunctionComponent } from \"react\";\r\nimport { Alert, Col, Form } from \"react-bootstrap\";\r\nimport ReactMarkdown from \"react-markdown\";\r\nimport { dateStringWithServerZone, disabledDaysRange, maxValidSince, minValidSince } from \"utils/dateUtils\";\r\nimport ChargeManagementValidityViewModel from \"viewModels/chargeManagement/chargeManagementEdit/chargeManagementValidityViewModel\";\r\nimport { registerView, View } from \"@frui.ts/views/dist\";\r\nimport { isSafari9OrLess } from \"utils/iOS\";\r\nimport AlertWithInfoIcon from \"views/common/alertWithInfoIcon/alertWithInfoIcon\";\r\nimport { startOfCzechDay, utcToCZZonedTime } from \"../../../utils/dateUtils\";\r\nimport { startOfDay, subDays, endOfDay } from \"date-fns\";\r\n\r\nconst ChargeManagementValidityView: FunctionComponent<{\r\n  vm: ChargeManagementValidityViewModel;\r\n}> = observer(({ vm }) => {\r\n  const taErrorValidity = (code: string) => {\r\n    if ([\"min\", \"max\"].includes(code)) {\r\n      if (code === \"max\" && vm.postponedValidityRule?.postponedValidityMaxDays) {\r\n        return vm.localizationService\r\n          .translateAttribute(\"validSince\", code)\r\n          .replace(\"%amount%\", `${vm.postponedValidityRule.postponedValidityMaxDays}`);\r\n      }\r\n      return vm.localizationService.translateAttribute(\"validity\", code).replace(\"%amount%\", `${30}`);\r\n    } else if (code === \"invalidDateFormat\") {\r\n      return vm.localizationService.translateGeneral(code);\r\n    } else {\r\n      return code;\r\n    }\r\n  };\r\n  const datePickerLocalization = vm.localizationService.datePickerLocalization;\r\n  const placeholder = vm.localizationService.translateGeneral(\"datepicker.placeholder\");\r\n  const disabledDays = disabledDaysRange(\r\n    vm.serverTime,\r\n    vm.charge?.chargeOrderConfirmedAt ? utcToCZZonedTime(vm.charge?.chargeOrderConfirmedAt) : new Date(),\r\n    vm.postponedValidityRule?.postponedValidityMaxDays\r\n  );\r\n  let fromMonth = isSafari9OrLess ? startOfDay(disabledDays.before) : minValidSince();\r\n  let toMonth = disabledDays.after\r\n    ? endOfDay(disabledDays.after)\r\n    : maxValidSince(fromMonth, vm.postponedValidityRule?.postponedValidityMaxDays);\r\n  if (vm.charge?.newValidSince) {\r\n    if (vm.charge?.newValidSince < fromMonth) {\r\n      fromMonth = vm.charge?.newValidSince;\r\n    } else if (vm.charge?.newValidSince > toMonth) {\r\n      toMonth = vm.charge?.newValidSince;\r\n    }\r\n  }\r\n\r\n  return (\r\n    <>\r\n      <Form.Row className=\"align-items-baseline\">\r\n        <Form.Group as={Col} sm={6}>\r\n          <Form.Label>{vm.translate(\"validity.oldValidity\")}</Form.Label>\r\n          <Form.Control value={vm.validSince} disabled={true} />\r\n        </Form.Group>\r\n        <Form.Group as={Col} sm={6}>\r\n          <Form.Label>{vm.translate(\"validity.newValidity\")}</Form.Label>\r\n          <DatePickerBox\r\n            target={vm.charge}\r\n            property=\"newValidSince\"\r\n            placeholder={placeholder}\r\n            disabledDays={disabledDays}\r\n            fromMonth={subDays(fromMonth, 1)}\r\n            toMonth={toMonth}\r\n            today={startOfDay(vm.serverTime)}\r\n            errorMessage={vm.sameValidSinceError}\r\n            datePickerLocalization={datePickerLocalization}\r\n            errorLocalization={taErrorValidity}\r\n            onValueChanged={vm.onNewValidityChanged}\r\n            forSale={true}\r\n          />\r\n        </Form.Group>\r\n      </Form.Row>\r\n      <div className=\"mt-n3 mb-5\">\r\n        {vm.isSingleCharTypeToday && (\r\n          <AlertWithInfoIcon variant=\"warning-dark\">\r\n            <span>{vm.translate(\"isSingleCharTypeToday\")}</span>\r\n          </AlertWithInfoIcon>\r\n        )}\r\n        {vm.isDifferentTimeZone && (\r\n          <AlertWithInfoIcon variant=\"warning\">\r\n            <span>{vm.translate(\"differentTimeZone\")}</span>\r\n          </AlertWithInfoIcon>\r\n        )}\r\n        {vm.validChargesInfo && (\r\n          <Alert variant=\"warning\" className=\"border-none\">\r\n            <strong className=\"font-size-sm\">\r\n              <ReactMarkdown className=\"markdown\">{vm.validChargesInfo}</ReactMarkdown>\r\n            </strong>\r\n          </Alert>\r\n        )}\r\n        {vm.exemptionInfo && (\r\n          <Alert variant=\"warning\" className=\"border-none\">\r\n            <strong className=\"font-size-sm\">{vm.exemptionInfo}</strong>\r\n          </Alert>\r\n        )}\r\n      </div>\r\n      {vm.emailInputViewModel && <View vm={vm.emailInputViewModel} />}\r\n    </>\r\n  );\r\n});\r\n\r\nregisterView(ChargeManagementValidityView, ChargeManagementValidityViewModel);\r\n","import Button from \"@edaz/edazkit/Button/index\";\nimport { registerView } from \"@frui.ts/views\";\nimport { ViewComponent } from \"@frui.ts/views/dist\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { Modal } from \"react-bootstrap\";\nimport ReactMarkdown from \"react-markdown\";\nimport CodeChangedAlertViewModel from \"viewModels/chargeManagement/chargeManagementEdit/codeChangedAlertViewModel\";\n\nconst CodeChangedAlertView: ViewComponent<CodeChangedAlertViewModel> = observer(({ vm }) => {\n  return (\n    <Modal show={true} onHide={vm.onHide} centered>\n      <Modal.Header>\n        <Modal.Title>{vm.translate(\"title\")}</Modal.Title>\n      </Modal.Header>\n      <Modal.Body>\n        <div className=\"mt-n4 mb-4\">\n          <ReactMarkdown className=\"markdown\">{vm.description}</ReactMarkdown>\n        </div>\n        <Button onClick={vm.onHide}>{vm.translate(\"ok\")}</Button>\n      </Modal.Body>\n    </Modal>\n  );\n});\n\nregisterView(CodeChangedAlertView, CodeChangedAlertViewModel);\n","import { Input, ValidationControlBase } from \"@frui.ts/bootstrap\";\nimport { bound } from \"@frui.ts/helpers\";\nimport { IBindingProps } from \"@frui.ts/views\";\nimport React from \"react\";\n\nexport interface AdvancedInputProps {\n  id?: string;\n  testId?: string;\n  transformation?: Transformation;\n  errorMessage?: string;\n  disabled?: boolean;\n  trim?: boolean;\n  disableCopy?: boolean;\n  disablePaste?: boolean;\n  ignoredCharacters?: RegExp;\n  onBlur?: (e: React.FormEvent<any>) => void;\n  className?: string;\n  autoComplete?: \"on\" | \"off\";\n  maxLength?: number;\n}\n\nexport enum Transformation {\n  UpperCased,\n  LowerCased,\n}\n\nexport default class AdvancedInput<TTarget> extends ValidationControlBase<TTarget, AdvancedInputProps & IBindingProps<TTarget>> {\n  @bound\n  protected onInput(e: any) {\n    const { transformation, trim = false, ignoredCharacters } = this.props;\n    const start = e.target.selectionStart;\n    let formattedValue = \"\" + e.target.value;\n    const originalValueLength = formattedValue.length;\n\n    if (trim) {\n      formattedValue = formattedValue.trim();\n    }\n\n    if (ignoredCharacters) {\n      formattedValue = formattedValue.replace(ignoredCharacters, \"\");\n    }\n\n    if (transformation !== undefined) {\n      if (transformation === Transformation.UpperCased) {\n        formattedValue = formattedValue.toUpperCase();\n      } else if (transformation === Transformation.LowerCased) {\n        formattedValue.toLowerCase();\n      }\n    }\n\n    let position = start;\n    if (originalValueLength > formattedValue.length) {\n      position--;\n    }\n\n    e.target.value = formattedValue;\n    e.target.setSelectionRange(position, position);\n  }\n\n  @bound\n  interceptKeys(event: React.KeyboardEvent<any>) {\n    const { disableCopy = false, disablePaste = false } = this.props;\n\n    if (!disableCopy && !disablePaste) return;\n\n    event = event || window.event; // IE support\n    const keyCode = event.keyCode;\n\n    if (event.altKey) return;\n\n    const ctrlDown = event.ctrlKey || event.metaKey; // Mac support\n    // Check for Alt+Gr (http://en.wikipedia.org/wiki/AltGr_key)\n    // Check for ctrl+c, v and x\n    if ((ctrlDown && (keyCode === 67 || keyCode === 88) && disableCopy) || (ctrlDown && keyCode === 86 && disablePaste))\n      event.preventDefault();\n\n    // Otherwise allow\n    return;\n  }\n\n  @bound\n  onPaste(event: React.SyntheticEvent<any>) {\n    const { disablePaste = false } = this.props;\n\n    if (!disablePaste) return;\n\n    event.preventDefault();\n  }\n\n  @bound\n  protected renderInner() {\n    const { id, testId, disabled, target, property, placeholder, maxLength, errorMessage, className, autoComplete, onBlur } =\n      this.props;\n\n    return (\n      <Input\n        id={id}\n        data-testid={testId}\n        onBlur={onBlur}\n        className={className}\n        disabled={disabled}\n        target={target}\n        property={property}\n        maxLength={maxLength}\n        onKeyDown={this.interceptKeys}\n        onPaste={this.onPaste}\n        onInput={this.onInput}\n        errorMessage={errorMessage}\n        placeholder={placeholder}\n        autoComplete={autoComplete}\n      />\n    );\n  }\n}\n","import { ValidationControlBase } from \"@frui.ts/bootstrap\";\nimport { bound } from \"@frui.ts/helpers\";\nimport { IBindingProps } from \"@frui.ts/views\";\nimport React from \"react\";\nimport { Col, Form } from \"react-bootstrap\";\nimport AdvancedInput from \"controls/advancedInput\";\n\nexport interface EmailInputProps {\n  id?: string;\n  translate: (code: string) => string;\n  label?: string;\n  disabled?: boolean;\n  disableCopy?: boolean;\n  disablePaste?: boolean;\n  onBlur?: (e: React.FormEvent<any>) => void;\n  xl?: number;\n  className?: string;\n}\n\nexport default class EmailInput<TTarget> extends ValidationControlBase<TTarget, EmailInputProps & IBindingProps<TTarget>> {\n  @bound\n  protected renderInner() {\n    const { id, target, property, translate, disabled, disableCopy, disablePaste, onBlur, xl = 8, label, className } = this.props;\n\n    return (\n      <Form.Group controlId={id} as={Col} sm={12} xl={xl} className={className}>\n        <Form.Label>{label || translate(\"email\")}</Form.Label>\n        <AdvancedInput\n          testId={id}\n          trim={true}\n          target={target}\n          property={property}\n          placeholder={translate(\"emailPlaceholder\")}\n          disabled={disabled}\n          disableCopy={disableCopy}\n          disablePaste={disablePaste}\n          onBlur={onBlur}\n          maxLength={256}\n        />\n      </Form.Group>\n    );\n  }\n}\n","import { registerView, View, ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport * as React from \"react\";\nimport Form from \"react-bootstrap/Form\";\nimport EmailInputViewModel from \"viewModels/chargeManagement/chargeManagementEdit/common/emailInputViewModel\";\nimport EmailInput from \"views/common/emailInput/emailInput\";\n\nconst EmailInputView: ViewComponent<EmailInputViewModel> = observer(({ vm }) => {\n  return (\n    <>\n      <Form.Row>\n        <EmailInput translate={vm.translate} target={vm.inputEmail} property=\"email\" disablePaste={true} xl={12} />\n        <EmailInput\n          translate={vm.translateConfirmation}\n          target={vm.inputEmail}\n          property=\"emailConfirmation\"\n          disablePaste={true}\n          xl={12}\n        />\n      </Form.Row>\n      {vm.emailUsageInfo && <label>{vm.emailUsageInfo}</label>}\n      <View vm={vm.gdprViewModel} />\n    </>\n  );\n});\n\nregisterView(EmailInputView, EmailInputViewModel);\n","import { registerView, View } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport { Check } from \"@frui.ts/bootstrap\";\nimport ReactMarkdown from \"react-markdown\";\nimport { Col, Form } from \"react-bootstrap\";\nimport ChargeManagementActiveChargeLicensePlateChangeViewModel from \"viewModels/chargeManagement/chargeManagementEdit/chargeManagementActiveChargeLicensePlateChangeViewModel\";\nimport ChargeManagementBeforeValidChargeLicensePlateChangeViewModel from \"viewModels/chargeManagement/chargeManagementEdit/chargeManagementBeforeValidChargeLicensePlateChangeViewModel\";\nimport Icon, { IconType } from \"@edaz/edazkit/Icon\";\nimport AlertWithInfoIcon from \"views/common/alertWithInfoIcon/alertWithInfoIcon\";\n\nexport const LicensePlateChangeView: FunctionComponent<{\n  vm: ChargeManagementBeforeValidChargeLicensePlateChangeViewModel | ChargeManagementActiveChargeLicensePlateChangeViewModel;\n}> = observer(({ vm }) => (\n  <>\n    {vm.originalVehicleInfoViewModel && <View vm={vm.originalVehicleInfoViewModel} />}\n    {vm.newVehicleInfoViewModel && <View vm={vm.newVehicleInfoViewModel} />}\n    <div className=\"mt-n3 mb-5\">\n      {vm.validChargesInfo && (\n        <AlertWithInfoIcon variant=\"warning\">\n          <strong className=\"font-size-sm\">\n            <ReactMarkdown className=\"markdown\">{vm.validChargesInfo}</ReactMarkdown>\n          </strong>\n        </AlertWithInfoIcon>\n      )}\n      {vm.exemptionInfo && (\n        <AlertWithInfoIcon variant=\"warning\">\n          <strong className=\"font-size-sm\">{vm.exemptionInfo}</strong>\n        </AlertWithInfoIcon>\n      )}\n    </div>\n    {vm.emailInputViewModel && <View vm={vm.emailInputViewModel} />}\n    {vm instanceof ChargeManagementActiveChargeLicensePlateChangeViewModel && (\n      <Form.Row>\n        <Form.Group as={Col}>\n          <Check\n            autoComplete=\"off\"\n            custom\n            target={vm.request}\n            property={\"_agreement\"}\n            label={vm.translate(\"vehicleChangeDuringValidity.agreement\")}\n          />\n          {vm.agreementError && (\n            <div className=\"d-flex justify-content-center bg-danger-light mt-3 p-2 py-0 font-size-sm font-weight-bold text-danger\">\n              <Icon className=\"mr-2\" icon={IconType.InvertedError} height={18} width={18} />\n              <span>{vm.translate(\"alertAgreement\")}</span>\n            </div>\n          )}\n        </Form.Group>\n      </Form.Row>\n    )}\n  </>\n));\n\nregisterView(LicensePlateChangeView, ChargeManagementBeforeValidChargeLicensePlateChangeViewModel);\nregisterView(LicensePlateChangeView, ChargeManagementActiveChargeLicensePlateChangeViewModel);\n","import Button from \"@edaz/edazkit/Button/index\";\nimport { View, registerView } from \"@frui.ts/views\";\nimport { ViewComponent } from \"@frui.ts/views/dist\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { Modal } from \"react-bootstrap\";\nimport ReceiptEmailModalViewModel from \"viewModels/chargeManagement/chargeManagementEdit/receiptEmailModalViewModel\";\n\nconst ReceiptEmailModalView: ViewComponent<ReceiptEmailModalViewModel> = observer(({ vm }) => {\n  return (\n    <Modal size=\"lg\" show={true} onHide={vm.onHide} centered>\n      <Modal.Header className=\"d-flex justify-content-center text-center\">\n        <Modal.Title>{vm.translate(\"sendReceiptToEmail\")}</Modal.Title>\n      </Modal.Header>\n      <Modal.Body>\n        <div className=\"pt-4 px-0 px-sm-4 px-lg-7 mt-n4\">\n          <View vm={vm.contactViewModel} />\n        </div>\n      </Modal.Body>\n      <Modal.Footer className=\"d-flex justify-content-center\">\n        <Button className=\"px-7 px-sm-10\" onClick={vm.onSubmit}>\n          {vm.translate(\"confirmChange\")}\n        </Button>\n      </Modal.Footer>\n    </Modal>\n  );\n});\n\nregisterView(ReceiptEmailModalView, ReceiptEmailModalViewModel);\n","import classNames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { Alert } from \"react-bootstrap\";\r\nimport { CSSProperties, FunctionComponent } from \"react\";\r\n\r\nexport interface ErrorCardProps {\r\n  message?: string;\r\n  sticky?: boolean;\r\n}\r\n\r\nconst ErrorCard: FunctionComponent<ErrorCardProps> = ({ message, sticky }) => {\r\n  if (!message) {\r\n    return null;\r\n  }\r\n\r\n  const className = classNames(\"text-center mb-3 mb-md-7 w-100\", { \"position-sticky\": sticky });\r\n  const style: CSSProperties = {};\r\n  if (sticky) {\r\n    style.top = 10;\r\n    style.zIndex = 5;\r\n  }\r\n\r\n  return (\r\n    <Alert variant={\"danger\"} className={className} style={style}>\r\n      <span>{message}</span>\r\n    </Alert>\r\n  );\r\n};\r\n\r\nexport default ErrorCard;\r\n","import React from \"react\";\nimport { Col, Form } from \"react-bootstrap\";\nimport AdvancedInput, { Transformation } from \"controls/advancedInput\";\nimport { ValidationControlBase } from \"@frui.ts/bootstrap\";\nimport { IBindingProps } from \"@frui.ts/views\";\nimport { bound } from \"@frui.ts/helpers\";\n\nexport interface AuthCodeInputProps {\n  translate: (code: string) => string;\n  onBlur?: (e: React.FormEvent<any>) => void;\n}\n\nexport default class AuthCodeInput<TTarget> extends ValidationControlBase<TTarget, AuthCodeInputProps & IBindingProps<TTarget>> {\n  ignoredCharacters = new RegExp(/[^A-Z0-9]+/gi);\n\n  @bound\n  protected renderInner() {\n    const { target, property, translate, onBlur } = this.props;\n\n    return (\n      <Form.Group controlId=\"auth-code-input\" as={Col} sm={12} xl={6}>\n        <Form.Label>{translate(\"authorizationCode\")}</Form.Label>\n        <AdvancedInput\n          transformation={Transformation.UpperCased}\n          target={target}\n          property={property}\n          ignoredCharacters={this.ignoredCharacters}\n          onBlur={onBlur}\n          autoComplete=\"off\"\n        />\n      </Form.Group>\n    );\n  }\n}\n","import { preventDefault, registerView, View, ViewComponent } from \"@frui.ts/views\";\r\nimport { observer, Observer } from \"mobx-react-lite\";\r\nimport * as React from \"react\";\r\nimport { Alert, Button, Col, Form } from \"react-bootstrap\";\r\nimport ChargeManagementViewModel from \"../../viewModels/chargeManagement/chargeManagementViewModel\";\r\nimport LoadingModal from \"views/common/loadingModal/loadingModal\";\r\nimport ErrorCard from \"views/common/error/errorCard\";\r\nimport AuthCodeInput from \"../common/authCodeInput/authCodeInput\";\r\nimport { useCallback } from \"react\";\r\n\r\nconst ChargeManagementView: ViewComponent<ChargeManagementViewModel> = observer(({ vm }) => {\r\n  const formRef = useCallback(node => {\r\n    if (node !== null) {\r\n      vm.formElement = node;\r\n    }\r\n  }, []);\r\n\r\n  if (vm.activeChild) {\r\n    return <Observer>{() => <View vm={vm.activeChild} />}</Observer>;\r\n  }\r\n\r\n  const tg = (code: string) => vm.localizationService.translateGeneral(`chargeManagement.${code}`);\r\n  const translate = (code: string) => vm.localizationService.translateAttribute(\"charge\", code);\r\n  const getCurrentLanguageUrl = () => {\r\n    const currentLang = document.documentElement.lang;\r\n    const langMap: { [key: string]: string } = {\r\n      \"en-GB\": \"en\",\r\n      \"de-DE\": \"de\",\r\n      \"cs-CZ\": \"cs\",\r\n      en: \"en\",\r\n      de: \"de\",\r\n      cs: \"cs\",\r\n    };\r\n\r\n    const mappedLang = langMap[currentLang] || currentLang?.split(\"-\")[0];\r\n\r\n    if (mappedLang && mappedLang !== \"cs\") {\r\n      return `/${mappedLang}/`;\r\n    }\r\n    return \"/\";\r\n  };\r\n  return (\r\n    <div className=\"bg-white p-3 p-lg-4 p-xl-7 rounded\">\r\n      <Form ref={formRef} onSubmit={preventDefault(vm.verifyCharge)} className=\"p-3 p-lg-4 p-xl-7\">\r\n        <h3>{tg(\"title\")}</h3>\r\n        {vm.errorMessage && <ErrorCard message={vm.errorMessage} />}\r\n        <View vm={vm.vehicleInfoViewModel} />\r\n        <Form.Row className=\"align-items-start\">\r\n          <AuthCodeInput target={vm.vignette} property=\"authCode\" translate={translate} />\r\n          <Form.Group as={Col} sm={12} xl={6}>\r\n            <Alert variant=\"info\" className=\"mt-3 mt-xl-5 mb-0 py-2 border-none w-100\">\r\n              <Form.Label className=\"mb-0\">{translate(\"authorizationCodeTooltip\")}</Form.Label>\r\n            </Alert>\r\n          </Form.Group>\r\n        </Form.Row>\r\n        <View vm={vm.turnstileViewModel} />\r\n        <div className=\"d-flex flex-column-reverse flex-md-row align-items-center justify-content-center mx-auto mx-md-10\">\r\n          <a className=\"btn-block d-block mt-3 mr-md-2 mb-2 mb-lg-0 mw-100 btn btn-light\" href={getCurrentLanguageUrl()}>\r\n            {tg(\"leave\")}\r\n          </a>\r\n          <Button\r\n            disabled={!vm.turnstileViewModel.turnstileToken || vm.turnstileViewModel.isDisabledByTurnsitel}\r\n            type=\"submit\"\r\n            className=\"btn-block d-block mt-3 mb-2 mb-lg-0 ml-md-2 mw-100\">\r\n            {tg(\"validateCharge\")}\r\n          </Button>\r\n        </div>\r\n        <LoadingModal translate={vm.translate} isVisible={vm.busyWatcher.isBusy} />\r\n      </Form>\r\n    </div>\r\n  );\r\n});\r\n\r\nregisterView(ChargeManagementView, ChargeManagementViewModel);\r\n","import React from \"react\";\n\nconst DotLoader = () => {\n  return (\n    <div className=\"dot-loader\">\n      <div></div>\n      <div></div>\n      <div></div>\n      <div></div>\n    </div>\n  );\n};\n\nexport default DotLoader;\n","import ChargeValidity from \"entities/chargeValidity\";\nimport {\n  vignetteOneDay,\n  vignetteOneDayShadow,\n  vignette10Days,\n  vignette10DaysShadow,\n  vignetteAnnual,\n  vignetteAnnualShadow,\n  vignetteMonth,\n  vignetteMonthShadow,\n} from \"./vignetteAssets\";\nimport {\n  vignetteOneDayEN,\n  vignetteOneDayENShadow,\n  vignette10DaysEN,\n  vignette10DaysENShadow,\n  vignetteAnnualEN,\n  vignetteAnnualENShadow,\n  vignetteMonthEN,\n  vignetteMonthENShadow,\n} from \"./vignetteAssetsEN\";\n\nexport const chargeTypeIconWithShadow = (validFor: ChargeValidity, isCSLocale: boolean) => {\n  switch (validFor) {\n    case ChargeValidity.Annual:\n      return isCSLocale ? vignetteAnnualShadow : vignetteAnnualENShadow;\n    case ChargeValidity.Days30:\n      return isCSLocale ? vignetteMonthShadow : vignetteMonthENShadow;\n    case ChargeValidity.Days10:\n      return isCSLocale ? vignette10DaysShadow : vignette10DaysENShadow;\n    case ChargeValidity.SingleDay:\n      return isCSLocale ? vignetteOneDayShadow : vignetteOneDayENShadow;\n  }\n};\n\nexport const chargeTypeIcon = (validFor: ChargeValidity, isCSLocale: boolean) => {\n  switch (validFor) {\n    case ChargeValidity.Annual:\n      return isCSLocale ? vignetteAnnual : vignetteAnnualEN;\n    case ChargeValidity.Days30:\n      return isCSLocale ? vignetteMonth : vignetteMonthEN;\n    case ChargeValidity.Days10:\n      return isCSLocale ? vignette10Days : vignette10DaysEN;\n    case ChargeValidity.SingleDay:\n      return isCSLocale ? vignetteOneDay : vignetteOneDayEN;\n  }\n};\n","const vignetteAnnualShadow =\n  \"data:image/svg+xml,%3Csvg viewBox='0 0 170 170' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg filter='url(%23filter0_d_4698_11886)'%3E%3Crect x='20' y='15' width='130' height='130' rx='16' fill='white'/%3E%3C/g%3E%3Cpath d='M108.334 29C114.792 29 119.721 30.1786 123.122 32.5357C126.566 34.8929 128.288 38.4929 128.288 43.3357C128.288 49.3786 125.296 53.4714 119.312 55.6143C120.13 56.6 121.055 57.8 122.089 59.2143C123.122 60.6286 124.177 62.1714 125.253 63.8429C126.329 65.4714 127.362 67.1643 128.352 68.9214C129.343 70.6357 130.225 72.3286 131 74H121.895C121.077 72.4571 120.194 70.9143 119.247 69.3714C118.3 67.7857 117.331 66.2643 116.341 64.8071C115.394 63.3071 114.447 61.9143 113.5 60.6286C112.553 59.3 111.67 58.1214 110.852 57.0929C110.25 57.1357 109.733 57.1571 109.303 57.1571C108.872 57.1571 108.463 57.1571 108.076 57.1571H104.137V74H96V30.0929C97.9803 29.6643 100.09 29.3857 102.328 29.2571C104.567 29.0857 106.569 29 108.334 29ZM108.915 36.0071C107.193 36.0071 105.6 36.0714 104.137 36.2V50.6H107.688C109.669 50.6 111.412 50.4929 112.919 50.2786C114.426 50.0643 115.674 49.6786 116.664 49.1214C117.697 48.5643 118.472 47.8143 118.989 46.8714C119.506 45.9286 119.764 44.7286 119.764 43.2714C119.764 41.9 119.506 40.7429 118.989 39.8C118.472 38.8571 117.719 38.1071 116.729 37.55C115.782 36.9929 114.641 36.6071 113.306 36.3929C111.972 36.1357 110.508 36.0071 108.915 36.0071Z' fill='%235DA231'/%3E%3Crect x='34' y='97' width='102' height='34' rx='8' fill='%235DA231'/%3E%3Cpath d='M54.9517 109.922C55.8023 109.585 56.653 109.152 57.5037 108.624C58.369 108.096 59.1317 107.473 59.7917 106.754H61.6617V122H58.9997V110.318C58.6037 110.626 58.105 110.927 57.5037 111.22C56.9023 111.513 56.323 111.755 55.7657 111.946L54.9517 109.922ZM76.6384 106.6C78.8384 106.6 80.5177 107.003 81.6764 107.81C82.8497 108.617 83.4364 109.849 83.4364 111.506C83.4364 113.574 82.417 114.975 80.3784 115.708C80.657 116.045 80.9724 116.456 81.3244 116.94C81.6764 117.424 82.0357 117.952 82.4024 118.524C82.769 119.081 83.121 119.661 83.4584 120.262C83.7957 120.849 84.0964 121.428 84.3604 122H81.2584C80.9797 121.472 80.679 120.944 80.3564 120.416C80.0337 119.873 79.7037 119.353 79.3664 118.854C79.0437 118.341 78.721 117.864 78.3984 117.424C78.0757 116.969 77.775 116.566 77.4964 116.214C77.291 116.229 77.115 116.236 76.9684 116.236C76.8217 116.236 76.6824 116.236 76.5504 116.236H75.2084V122H72.4364V106.974C73.111 106.827 73.8297 106.732 74.5924 106.688C75.355 106.629 76.037 106.6 76.6384 106.6ZM76.8364 108.998C76.2497 108.998 75.707 109.02 75.2084 109.064V113.992H76.4184C77.093 113.992 77.687 113.955 78.2004 113.882C78.7137 113.809 79.139 113.677 79.4764 113.486C79.8284 113.295 80.0924 113.039 80.2684 112.716C80.4444 112.393 80.5324 111.983 80.5324 111.484C80.5324 111.015 80.4444 110.619 80.2684 110.296C80.0924 109.973 79.8357 109.717 79.4984 109.526C79.1757 109.335 78.787 109.203 78.3324 109.13C77.8777 109.042 77.379 108.998 76.8364 108.998ZM88.5813 114.366C88.5813 115.202 88.6839 115.965 88.8893 116.654C89.0946 117.329 89.3879 117.908 89.7693 118.392C90.1653 118.861 90.6419 119.228 91.1993 119.492C91.7566 119.756 92.3873 119.888 93.0913 119.888C93.7806 119.888 94.4039 119.756 94.9613 119.492C95.5186 119.228 95.9879 118.861 96.3693 118.392C96.7653 117.908 97.0659 117.329 97.2713 116.654C97.4766 115.965 97.5793 115.202 97.5793 114.366C97.5793 113.53 97.4766 112.775 97.2713 112.1C97.0659 111.411 96.7653 110.831 96.3693 110.362C95.9879 109.878 95.5186 109.504 94.9613 109.24C94.4039 108.976 93.7806 108.844 93.0913 108.844C92.3873 108.844 91.7566 108.976 91.1993 109.24C90.6419 109.504 90.1653 109.878 89.7693 110.362C89.3879 110.846 89.0946 111.425 88.8893 112.1C88.6839 112.775 88.5813 113.53 88.5813 114.366ZM100.483 114.366C100.483 115.671 100.285 116.823 99.8893 117.82C99.5079 118.817 98.9799 119.653 98.3053 120.328C97.6453 120.988 96.8679 121.487 95.9733 121.824C95.0786 122.161 94.1253 122.33 93.1133 122.33C92.1013 122.33 91.1406 122.161 90.2313 121.824C89.3366 121.487 88.5519 120.988 87.8773 120.328C87.2173 119.653 86.6893 118.817 86.2933 117.82C85.8973 116.823 85.6993 115.671 85.6993 114.366C85.6993 113.061 85.8973 111.917 86.2933 110.934C86.6893 109.937 87.2246 109.101 87.8993 108.426C88.5886 107.751 89.3806 107.245 90.2753 106.908C91.1699 106.571 92.1159 106.402 93.1133 106.402C94.1106 106.402 95.0566 106.571 95.9513 106.908C96.8459 107.245 97.6233 107.751 98.2833 108.426C98.9579 109.101 99.4933 109.937 99.8893 110.934C100.285 111.917 100.483 113.061 100.483 114.366ZM112.632 122C112.251 121.413 111.811 120.797 111.312 120.152C110.814 119.507 110.286 118.883 109.728 118.282C109.186 117.681 108.621 117.109 108.034 116.566C107.448 116.023 106.868 115.554 106.296 115.158V122H103.524V106.754H106.296V113.046C106.78 112.562 107.286 112.049 107.814 111.506C108.342 110.949 108.863 110.391 109.376 109.834C109.904 109.262 110.403 108.712 110.872 108.184C111.342 107.656 111.767 107.179 112.148 106.754H115.47C114.986 107.311 114.473 107.891 113.93 108.492C113.388 109.093 112.83 109.702 112.258 110.318C111.686 110.919 111.107 111.521 110.52 112.122C109.948 112.723 109.384 113.295 108.826 113.838C109.442 114.307 110.066 114.857 110.696 115.488C111.342 116.104 111.972 116.771 112.588 117.49C113.204 118.194 113.791 118.935 114.348 119.712C114.92 120.475 115.441 121.237 115.91 122H112.632Z' fill='white'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M64.3332 53.9621C65.1075 53.5602 65.9983 53.4363 66.8545 53.6109L66.187 49.7308H70.252C70.9482 49.7326 71.5141 49.1749 71.5156 48.4857V48.4739V43.4843C71.5156 42.7951 70.9511 42.2362 70.255 42.2362H70.252H64.9263L63.8415 35.7861C63.742 35.1877 63.2231 34.7463 62.6107 34.7387H58.8109C58.1129 34.7369 57.5461 35.2957 57.5443 35.9868V35.9897V42.2362H55.026V35.9897C55.026 35.2987 54.4603 34.7387 53.7624 34.7387H49.9775C49.3594 34.7392 48.8325 35.1824 48.7317 35.7861L47.6439 42.2362H42.3212C41.6251 42.2345 41.0594 42.7921 41.0576 43.4814V43.4843V48.4739C41.0576 49.1631 41.6221 49.722 42.3183 49.722H42.3212H46.3863L43.6832 65.9299C43.5697 66.61 44.0343 67.2523 44.7212 67.3647C44.7901 67.376 44.8595 67.3816 44.9289 67.3816H53.7624C54.4603 67.3816 55.026 66.8215 55.026 66.1305V49.7308H57.5443V66.1393C57.544 66.4565 57.6668 66.7616 57.887 66.9921L60.0685 64.8322V49.7308H63.6299L64.3332 53.9621ZM60.0715 37.2378H61.5259L62.3693 42.2362H60.0715V37.2378ZM52.5017 37.2378H51.0474L50.204 42.2362H52.5017V37.2378ZM52.5017 64.8912H46.4161L48.9433 49.7308H52.5017V64.8912ZM68.9884 44.7354H43.5819V47.2317H68.9884V44.7354Z' fill='%23283277'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M78.8826 83.4633C79.0537 83.7292 79.3252 83.9162 79.6366 83.9826L79.6426 83.9738C79.9501 84.0396 80.2714 83.9823 80.5367 83.8144L84.2947 81.4392C84.5638 81.271 84.7537 81.0034 84.8222 80.6956C84.8896 80.3914 84.8327 80.0733 84.6643 79.8104L79.8303 72.3011L84.7626 70.7549C85.0282 70.6755 85.2574 70.5071 85.4108 70.2787C85.7756 69.7358 85.6266 69.0034 85.0785 68.6422L66.771 56.3233C66.6458 56.2383 66.5051 56.1782 66.3567 56.1463C66.1925 56.1073 66.0217 56.1035 65.8557 56.1348C65.209 56.2569 64.7849 56.8751 64.9083 57.5154L68.4846 79.1436C68.5618 79.5903 68.8869 79.9559 69.325 80.0878L69.4114 80.1114C69.8296 80.2031 70.2653 80.0656 70.5529 79.7514L74.0487 75.9569L78.8826 83.4633ZM75.2348 73.3662C75.0626 73.1027 74.7931 72.9162 74.4838 72.8469V72.8558C74.4325 72.8448 74.381 72.8369 74.3288 72.8322C73.9575 72.8018 73.5927 72.9422 73.3394 73.2128L70.4545 76.3316L67.7306 59.8434L81.684 69.2324L77.622 70.4982C77.5165 70.5304 77.4163 70.5767 77.3237 70.636C76.7714 70.991 76.6141 71.7218 76.9723 72.2686L82.0059 80.076L80.2684 81.1736L75.2348 73.3662Z' fill='%235DA231'/%3E%3Cpath d='M63.5043 65.0421L57.9253 70.5745H36.5839V43.2191C36.5904 36.7817 41.8598 31.5647 48.3617 31.5582H75.9885V52.6877L71.9533 56.6829L74.1259 58.1582L78.1939 54.1335C78.4353 53.8937 78.5715 53.5694 78.5724 53.2306V30.2806C78.5742 29.5751 77.9975 29.0018 77.2849 29H77.2819H48.3737C40.4412 29.0032 34.0098 35.3657 34 43.2191V71.8403C34 72.5458 34.5779 73.118 35.2904 73.118H58.4588C58.8009 73.1177 59.129 72.9828 59.3707 72.7432L64.0229 68.1373L63.5043 65.0421Z' fill='%23283277'/%3E%3Cdefs%3E%3Cfilter id='filter0_d_4698_11886' x='0' y='0' width='170' height='170' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'%3E%3CfeFlood flood-opacity='0' result='BackgroundImageFix'/%3E%3CfeColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/%3E%3CfeOffset dy='5'/%3E%3CfeGaussianBlur stdDeviation='10'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.178622 0'/%3E%3CfeBlend mode='normal' in2='BackgroundImageFix' result='effect1_dropShadow_4698_11886'/%3E%3CfeBlend mode='normal' in='SourceGraphic' in2='effect1_dropShadow_4698_11886' result='shape'/%3E%3C/filter%3E%3C/defs%3E%3C/svg%3E%0A\";\n\nconst vignetteAnnual =\n  \"data:image/svg+xml,%3Csvg viewBox='0 0 160 160' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M103.334 29C109.792 29 114.721 30.1786 118.122 32.5357C121.566 34.8929 123.288 38.4929 123.288 43.3357C123.288 49.3786 120.296 53.4714 114.312 55.6143C115.13 56.6 116.055 57.8 117.089 59.2143C118.122 60.6286 119.177 62.1714 120.253 63.8429C121.329 65.4714 122.362 67.1643 123.352 68.9214C124.343 70.6357 125.225 72.3286 126 74H116.895C116.077 72.4571 115.194 70.9143 114.247 69.3714C113.3 67.7857 112.331 66.2643 111.341 64.8071C110.394 63.3071 109.447 61.9143 108.5 60.6286C107.553 59.3 106.67 58.1214 105.852 57.0929C105.25 57.1357 104.733 57.1571 104.303 57.1571C103.872 57.1571 103.463 57.1571 103.076 57.1571H99.1365V74H91V30.0929C92.9803 29.6643 95.0898 29.3857 97.3284 29.2571C99.567 29.0857 101.569 29 103.334 29ZM103.915 36.0071C102.193 36.0071 100.6 36.0714 99.1365 36.2V50.6H102.688C104.669 50.6 106.412 50.4929 107.919 50.2786C109.426 50.0643 110.674 49.6786 111.664 49.1214C112.697 48.5643 113.472 47.8143 113.989 46.8714C114.506 45.9286 114.764 44.7286 114.764 43.2714C114.764 41.9 114.506 40.7429 113.989 39.8C113.472 38.8571 112.719 38.1071 111.729 37.55C110.782 36.9929 109.641 36.6071 108.306 36.3929C106.972 36.1357 105.508 36.0071 103.915 36.0071Z' fill='%235DA231'/%3E%3Crect x='29' y='97' width='102' height='34' rx='8' fill='%235DA231'/%3E%3Cpath d='M49.9517 109.922C50.8023 109.585 51.653 109.152 52.5037 108.624C53.369 108.096 54.1317 107.473 54.7917 106.754H56.6617V122H53.9997V110.318C53.6037 110.626 53.105 110.927 52.5037 111.22C51.9023 111.513 51.323 111.755 50.7657 111.946L49.9517 109.922ZM71.6384 106.6C73.8384 106.6 75.5177 107.003 76.6764 107.81C77.8497 108.617 78.4364 109.849 78.4364 111.506C78.4364 113.574 77.417 114.975 75.3784 115.708C75.657 116.045 75.9724 116.456 76.3244 116.94C76.6764 117.424 77.0357 117.952 77.4024 118.524C77.769 119.081 78.121 119.661 78.4584 120.262C78.7957 120.849 79.0964 121.428 79.3604 122H76.2584C75.9797 121.472 75.679 120.944 75.3564 120.416C75.0337 119.873 74.7037 119.353 74.3664 118.854C74.0437 118.341 73.721 117.864 73.3984 117.424C73.0757 116.969 72.775 116.566 72.4964 116.214C72.291 116.229 72.115 116.236 71.9684 116.236C71.8217 116.236 71.6824 116.236 71.5504 116.236H70.2084V122H67.4364V106.974C68.111 106.827 68.8297 106.732 69.5924 106.688C70.355 106.629 71.037 106.6 71.6384 106.6ZM71.8364 108.998C71.2497 108.998 70.707 109.02 70.2084 109.064V113.992H71.4184C72.093 113.992 72.687 113.955 73.2004 113.882C73.7137 113.809 74.139 113.677 74.4764 113.486C74.8284 113.295 75.0924 113.039 75.2684 112.716C75.4444 112.393 75.5324 111.983 75.5324 111.484C75.5324 111.015 75.4444 110.619 75.2684 110.296C75.0924 109.973 74.8357 109.717 74.4984 109.526C74.1757 109.335 73.787 109.203 73.3324 109.13C72.8777 109.042 72.379 108.998 71.8364 108.998ZM83.5813 114.366C83.5813 115.202 83.6839 115.965 83.8893 116.654C84.0946 117.329 84.3879 117.908 84.7693 118.392C85.1653 118.861 85.6419 119.228 86.1993 119.492C86.7566 119.756 87.3873 119.888 88.0913 119.888C88.7806 119.888 89.4039 119.756 89.9613 119.492C90.5186 119.228 90.9879 118.861 91.3693 118.392C91.7653 117.908 92.0659 117.329 92.2713 116.654C92.4766 115.965 92.5793 115.202 92.5793 114.366C92.5793 113.53 92.4766 112.775 92.2713 112.1C92.0659 111.411 91.7653 110.831 91.3693 110.362C90.9879 109.878 90.5186 109.504 89.9613 109.24C89.4039 108.976 88.7806 108.844 88.0913 108.844C87.3873 108.844 86.7566 108.976 86.1993 109.24C85.6419 109.504 85.1653 109.878 84.7693 110.362C84.3879 110.846 84.0946 111.425 83.8893 112.1C83.6839 112.775 83.5813 113.53 83.5813 114.366ZM95.4833 114.366C95.4833 115.671 95.2853 116.823 94.8893 117.82C94.5079 118.817 93.9799 119.653 93.3053 120.328C92.6453 120.988 91.8679 121.487 90.9733 121.824C90.0786 122.161 89.1253 122.33 88.1133 122.33C87.1013 122.33 86.1406 122.161 85.2313 121.824C84.3366 121.487 83.5519 120.988 82.8773 120.328C82.2173 119.653 81.6893 118.817 81.2933 117.82C80.8973 116.823 80.6993 115.671 80.6993 114.366C80.6993 113.061 80.8973 111.917 81.2933 110.934C81.6893 109.937 82.2246 109.101 82.8993 108.426C83.5886 107.751 84.3806 107.245 85.2753 106.908C86.1699 106.571 87.1159 106.402 88.1133 106.402C89.1106 106.402 90.0566 106.571 90.9513 106.908C91.8459 107.245 92.6233 107.751 93.2833 108.426C93.9579 109.101 94.4933 109.937 94.8893 110.934C95.2853 111.917 95.4833 113.061 95.4833 114.366ZM107.632 122C107.251 121.413 106.811 120.797 106.312 120.152C105.814 119.507 105.286 118.883 104.728 118.282C104.186 117.681 103.621 117.109 103.034 116.566C102.448 116.023 101.868 115.554 101.296 115.158V122H98.5242V106.754H101.296V113.046C101.78 112.562 102.286 112.049 102.814 111.506C103.342 110.949 103.863 110.391 104.376 109.834C104.904 109.262 105.403 108.712 105.872 108.184C106.342 107.656 106.767 107.179 107.148 106.754H110.47C109.986 107.311 109.473 107.891 108.93 108.492C108.388 109.093 107.83 109.702 107.258 110.318C106.686 110.919 106.107 111.521 105.52 112.122C104.948 112.723 104.384 113.295 103.826 113.838C104.442 114.307 105.066 114.857 105.696 115.488C106.342 116.104 106.972 116.771 107.588 117.49C108.204 118.194 108.791 118.935 109.348 119.712C109.92 120.475 110.441 121.237 110.91 122H107.632Z' fill='white'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M59.3332 53.9621C60.1075 53.5602 60.9983 53.4363 61.8545 53.6109L61.187 49.7308H65.252C65.9482 49.7326 66.5141 49.1749 66.5156 48.4857V48.4739V43.4843C66.5156 42.7951 65.9511 42.2362 65.255 42.2362H65.252H59.9263L58.8415 35.7861C58.742 35.1877 58.2231 34.7463 57.6107 34.7387H53.8109C53.1129 34.7369 52.5461 35.2957 52.5443 35.9868V35.9897V42.2362H50.026V35.9897C50.026 35.2987 49.4603 34.7387 48.7624 34.7387H44.9775C44.3594 34.7392 43.8325 35.1824 43.7317 35.7861L42.6439 42.2362H37.3212C36.6251 42.2345 36.0594 42.7921 36.0576 43.4814V43.4843V48.4739C36.0576 49.1631 36.6221 49.722 37.3183 49.722H37.3212H41.3863L38.6832 65.9299C38.5697 66.61 39.0343 67.2523 39.7212 67.3647C39.7901 67.376 39.8595 67.3816 39.9289 67.3816H48.7624C49.4603 67.3816 50.026 66.8215 50.026 66.1305V49.7308H52.5443V66.1393C52.544 66.4565 52.6668 66.7616 52.887 66.9921L55.0685 64.8322V49.7308H58.6299L59.3332 53.9621ZM55.0715 37.2378H56.5259L57.3693 42.2362H55.0715V37.2378ZM47.5017 37.2378H46.0474L45.204 42.2362H47.5017V37.2378ZM47.5017 64.8912H41.4161L43.9433 49.7308H47.5017V64.8912ZM63.9884 44.7354H38.5819V47.2317H63.9884V44.7354Z' fill='%23283277'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M73.8826 83.4633C74.0537 83.7292 74.3252 83.9162 74.6366 83.9826L74.6426 83.9738C74.9501 84.0396 75.2714 83.9823 75.5367 83.8144L79.2947 81.4392C79.5638 81.271 79.7537 81.0034 79.8222 80.6956C79.8896 80.3914 79.8327 80.0733 79.6643 79.8104L74.8303 72.3011L79.7626 70.7549C80.0282 70.6755 80.2574 70.5071 80.4108 70.2787C80.7756 69.7358 80.6266 69.0034 80.0785 68.6422L61.771 56.3233C61.6458 56.2383 61.5051 56.1782 61.3567 56.1463C61.1925 56.1073 61.0217 56.1035 60.8557 56.1348C60.209 56.2569 59.7849 56.8751 59.9083 57.5154L63.4846 79.1436C63.5618 79.5903 63.8869 79.9559 64.325 80.0878L64.4114 80.1114C64.8296 80.2031 65.2653 80.0656 65.5529 79.7514L69.0487 75.9569L73.8826 83.4633ZM70.2348 73.3662C70.0626 73.1027 69.7931 72.9162 69.4838 72.8469V72.8558C69.4325 72.8448 69.381 72.8369 69.3288 72.8322C68.9575 72.8018 68.5927 72.9422 68.3394 73.2128L65.4545 76.3316L62.7306 59.8434L76.684 69.2324L72.622 70.4982C72.5165 70.5304 72.4163 70.5767 72.3237 70.636C71.7714 70.991 71.6141 71.7218 71.9723 72.2686L77.0059 80.076L75.2684 81.1736L70.2348 73.3662Z' fill='%235DA231'/%3E%3Cpath d='M58.5043 65.0421L52.9253 70.5745H31.5839V43.2191C31.5904 36.7817 36.8598 31.5647 43.3617 31.5582H70.9885V52.6877L66.9533 56.6829L69.1259 58.1582L73.1939 54.1335C73.4353 53.8937 73.5715 53.5694 73.5724 53.2306V30.2806C73.5742 29.5751 72.9975 29.0018 72.2849 29H72.2819H43.3737C35.4412 29.0032 29.0098 35.3657 29 43.2191V71.8403C29 72.5458 29.5779 73.118 30.2904 73.118H53.4588C53.8009 73.1177 54.129 72.9828 54.3707 72.7432L59.0229 68.1373L58.5043 65.0421Z' fill='%23283277'/%3E%3C/svg%3E%0A\";\n\nconst vignetteMonthShadow =\n  \"data:image/svg+xml,%3Csvg viewBox='0 0 170 170' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg filter='url(%23filter0_d_4698_11867)'%3E%3Crect x='20' y='15' width='130' height='130' rx='16' fill='white'/%3E%3C/g%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M64.3332 53.9621C65.1075 53.5602 65.9983 53.4363 66.8545 53.6109L66.187 49.7308H70.252C70.9482 49.7326 71.5141 49.1749 71.5156 48.4857V48.4739V43.4843C71.5156 42.7951 70.9511 42.2362 70.255 42.2362H70.252H64.9263L63.8415 35.7861C63.742 35.1877 63.2231 34.7463 62.6107 34.7387H58.8109C58.1129 34.7369 57.5461 35.2957 57.5443 35.9868V35.9897V42.2362H55.026V35.9897C55.026 35.2987 54.4603 34.7387 53.7624 34.7387H49.9775C49.3594 34.7392 48.8325 35.1824 48.7317 35.7861L47.6439 42.2362H42.3212C41.6251 42.2345 41.0594 42.7921 41.0576 43.4814V43.4843V48.4739C41.0576 49.1631 41.6221 49.722 42.3183 49.722H42.3212H46.3863L43.6832 65.9299C43.5697 66.61 44.0343 67.2523 44.7212 67.3647C44.7901 67.376 44.8595 67.3816 44.9289 67.3816H53.7624C54.4603 67.3816 55.026 66.8215 55.026 66.1305V49.7308H57.5443V66.1393C57.544 66.4565 57.6668 66.7616 57.887 66.9921L60.0685 64.8322V49.7308H63.6299L64.3332 53.9621ZM60.0715 37.2378H61.5259L62.3693 42.2362H60.0715V37.2378ZM52.5017 37.2378H51.0474L50.204 42.2362H52.5017V37.2378ZM52.5017 64.8912H46.4161L48.9433 49.7308H52.5017V64.8912ZM68.9884 44.7354H43.5819V47.2317H68.9884V44.7354Z' fill='%23283277'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M78.8826 83.4633C79.0537 83.7292 79.3252 83.9162 79.6366 83.9826L79.6426 83.9738C79.9501 84.0396 80.2714 83.9823 80.5367 83.8144L84.2947 81.4392C84.5638 81.271 84.7537 81.0034 84.8222 80.6956C84.8896 80.3914 84.8327 80.0733 84.6643 79.8104L79.8303 72.3011L84.7626 70.7549C85.0282 70.6755 85.2574 70.5071 85.4108 70.2787C85.7756 69.7358 85.6266 69.0034 85.0785 68.6422L66.771 56.3233C66.6458 56.2383 66.5051 56.1782 66.3567 56.1463C66.1925 56.1073 66.0217 56.1035 65.8557 56.1348C65.209 56.2569 64.7849 56.8751 64.9083 57.5154L68.4846 79.1436C68.5618 79.5903 68.8869 79.9559 69.325 80.0878L69.4114 80.1114C69.8296 80.2031 70.2653 80.0656 70.5529 79.7514L74.0487 75.9569L78.8826 83.4633ZM75.2348 73.3662C75.0626 73.1027 74.7931 72.9162 74.4838 72.8469V72.8558C74.4325 72.8448 74.381 72.8369 74.3288 72.8322C73.9575 72.8018 73.5927 72.9422 73.3394 73.2128L70.4545 76.3316L67.7306 59.8434L81.684 69.2324L77.622 70.4982C77.5165 70.5304 77.4163 70.5767 77.3237 70.636C76.7714 70.991 76.6141 71.7218 76.9723 72.2686L82.0059 80.076L80.2684 81.1736L75.2348 73.3662Z' fill='%23E9AF00'/%3E%3Cpath d='M63.5043 65.0421L57.9253 70.5745H36.5839V43.2191C36.5904 36.7817 41.8598 31.5647 48.3617 31.5582H75.9885V52.6877L71.9533 56.6829L74.1259 58.1582L78.1939 54.1335C78.4353 53.8937 78.5715 53.5694 78.5724 53.2306V30.2806C78.5742 29.5751 77.9975 29.0018 77.2849 29H77.2819H48.3737C40.4412 29.0032 34.0098 35.3657 34 43.2191V71.8403C34 72.5458 34.5779 73.118 35.2904 73.118H58.4588C58.8009 73.1177 59.129 72.9828 59.3707 72.7432L64.0229 68.1373L63.5043 65.0421Z' fill='%23283277'/%3E%3Crect x='34.0586' y='97' width='102' height='34' rx='8' fill='%23E9AF00'/%3E%3Cpath d='M55.2848 122.33C54.8888 122.33 54.4781 122.301 54.0528 122.242C53.6421 122.198 53.2461 122.132 52.8648 122.044C52.4981 121.971 52.1608 121.89 51.8528 121.802C51.5448 121.699 51.3101 121.604 51.1488 121.516L51.6768 119.25C51.9848 119.397 52.4321 119.565 53.0188 119.756C53.6054 119.932 54.3314 120.02 55.1968 120.02C56.3554 120.02 57.1914 119.8 57.7048 119.36C58.2181 118.905 58.4748 118.304 58.4748 117.556C58.4748 117.072 58.3721 116.669 58.1668 116.346C57.9761 116.023 57.7048 115.767 57.3528 115.576C57.0154 115.371 56.6194 115.231 56.1648 115.158C55.7248 115.07 55.2554 115.026 54.7568 115.026H53.8548V112.87H54.9548C55.2921 112.87 55.6294 112.841 55.9668 112.782C56.3188 112.709 56.6341 112.591 56.9128 112.43C57.1914 112.254 57.4188 112.027 57.5948 111.748C57.7708 111.469 57.8588 111.11 57.8588 110.67C57.8588 110.318 57.7928 110.017 57.6608 109.768C57.5288 109.519 57.3528 109.313 57.1328 109.152C56.9274 108.991 56.6854 108.873 56.4068 108.8C56.1281 108.727 55.8348 108.69 55.5268 108.69C54.8668 108.69 54.2801 108.793 53.7668 108.998C53.2534 109.189 52.7988 109.409 52.4028 109.658L51.4348 107.678C51.6401 107.546 51.8894 107.407 52.1828 107.26C52.4761 107.113 52.7988 106.974 53.1508 106.842C53.5174 106.71 53.9061 106.607 54.3168 106.534C54.7274 106.446 55.1601 106.402 55.6148 106.402C56.4654 106.402 57.1988 106.505 57.8148 106.71C58.4308 106.915 58.9368 107.209 59.3328 107.59C59.7434 107.957 60.0441 108.397 60.2348 108.91C60.4401 109.409 60.5428 109.959 60.5428 110.56C60.5428 111.264 60.3448 111.895 59.9488 112.452C59.5674 113.009 59.0688 113.435 58.4528 113.728C59.2448 114.007 59.8974 114.469 60.4108 115.114C60.9388 115.759 61.2028 116.588 61.2028 117.6C61.2028 118.275 61.0854 118.905 60.8508 119.492C60.6161 120.064 60.2568 120.563 59.7728 120.988C59.2888 121.399 58.6728 121.729 57.9248 121.978C57.1914 122.213 56.3114 122.33 55.2848 122.33ZM74.1467 114.366C74.1467 116.933 73.6773 118.905 72.7387 120.284C71.8 121.648 70.502 122.33 68.8447 122.33C67.1873 122.33 65.8893 121.648 64.9507 120.284C64.012 118.905 63.5427 116.933 63.5427 114.366C63.5427 113.09 63.66 111.961 63.8947 110.978C64.144 109.981 64.496 109.145 64.9507 108.47C65.42 107.795 65.9773 107.282 66.6227 106.93C67.2827 106.578 68.0233 106.402 68.8447 106.402C70.502 106.402 71.8 107.091 72.7387 108.47C73.6773 109.834 74.1467 111.799 74.1467 114.366ZM71.3967 114.366C71.3967 113.574 71.3527 112.833 71.2647 112.144C71.1767 111.455 71.03 110.861 70.8247 110.362C70.634 109.849 70.3773 109.445 70.0547 109.152C69.732 108.859 69.3287 108.712 68.8447 108.712C68.3607 108.712 67.95 108.859 67.6127 109.152C67.29 109.445 67.026 109.849 66.8207 110.362C66.63 110.861 66.4907 111.455 66.4027 112.144C66.3293 112.833 66.2927 113.574 66.2927 114.366C66.2927 115.158 66.3293 115.899 66.4027 116.588C66.4907 117.277 66.63 117.879 66.8207 118.392C67.026 118.891 67.29 119.287 67.6127 119.58C67.95 119.873 68.3607 120.02 68.8447 120.02C69.3287 120.02 69.732 119.873 70.0547 119.58C70.3773 119.287 70.634 118.891 70.8247 118.392C71.03 117.879 71.1767 117.277 71.2647 116.588C71.3527 115.899 71.3967 115.158 71.3967 114.366ZM84.8334 119.712C84.9947 119.727 85.2074 119.741 85.4714 119.756C85.7354 119.756 86.0947 119.756 86.5494 119.756C88.412 119.756 89.798 119.287 90.7074 118.348C91.6314 117.395 92.0934 116.067 92.0934 114.366C92.0934 112.635 91.646 111.308 90.7514 110.384C89.8567 109.46 88.4707 108.998 86.5934 108.998C85.772 108.998 85.1854 109.02 84.8334 109.064V119.712ZM94.9974 114.366C94.9974 115.686 94.792 116.837 94.3814 117.82C93.9707 118.788 93.384 119.602 92.6214 120.262C91.8734 120.907 90.964 121.391 89.8934 121.714C88.8374 122.022 87.664 122.176 86.3734 122.176C85.7574 122.176 85.0607 122.147 84.2834 122.088C83.506 122.044 82.7654 121.941 82.0614 121.78V106.974C82.7654 106.813 83.5134 106.71 84.3054 106.666C85.0974 106.622 85.8014 106.6 86.4174 106.6C87.6934 106.6 88.8594 106.754 89.9154 107.062C90.9714 107.355 91.8734 107.825 92.6214 108.47C93.384 109.101 93.9707 109.907 94.3814 110.89C94.792 111.858 94.9974 113.017 94.9974 114.366ZM108.298 122C107.8 121.164 107.242 120.269 106.626 119.316C106.01 118.348 105.372 117.38 104.712 116.412C104.052 115.429 103.378 114.483 102.688 113.574C102.014 112.65 101.368 111.821 100.752 111.088V122H98.0242V106.754H100.29C100.877 107.37 101.508 108.103 102.182 108.954C102.857 109.79 103.532 110.663 104.206 111.572C104.896 112.481 105.556 113.398 106.186 114.322C106.832 115.231 107.404 116.082 107.902 116.874V106.754H110.652V122H108.298ZM114.309 106.754H117.081V122H114.309V106.754ZM119.281 102.222L115.695 105.698L114.375 104.51L117.609 100.66L119.281 102.222Z' fill='white'/%3E%3Cpath d='M98.0185 29C98.9691 30.645 100.028 32.658 101.194 35.039C102.361 37.4199 103.549 39.9307 104.759 42.5714C105.969 45.1688 107.157 47.8312 108.324 50.5584C109.534 53.2424 110.636 55.7316 111.63 58.026C112.623 55.7316 113.704 53.2424 114.87 50.5584C116.037 47.8312 117.225 45.1688 118.435 42.5714C119.645 39.9307 120.833 37.4199 122 35.039C123.167 32.658 124.225 30.645 125.176 29H132.565C132.954 32.29 133.321 35.7965 133.667 39.5195C134.012 43.1991 134.315 46.987 134.574 50.8831C134.877 54.7359 135.136 58.632 135.352 62.5714C135.611 66.4675 135.827 70.2771 136 74H127.963C127.79 68.7619 127.574 63.3723 127.315 57.8312C127.099 52.29 126.753 46.9221 126.278 41.7273C125.802 42.7229 125.241 43.9134 124.593 45.2987C123.944 46.684 123.253 48.1991 122.519 49.8442C121.784 51.4459 121.028 53.1126 120.25 54.8442C119.515 56.5758 118.781 58.2641 118.046 59.9091C117.355 61.5108 116.707 63.026 116.102 64.4545C115.497 65.8398 114.978 67.0303 114.546 68.026H108.454C108.022 67.0303 107.503 65.8182 106.898 64.3896C106.293 62.961 105.623 61.4459 104.889 59.8442C104.198 58.1991 103.463 56.5108 102.685 54.7792C101.951 53.0476 101.216 51.3809 100.481 49.7792C99.7469 48.1775 99.0556 46.684 98.4074 45.2987C97.7593 43.8701 97.1975 42.6797 96.7222 41.7273C96.2469 46.9221 95.8796 52.29 95.6204 57.8312C95.4043 63.3723 95.2099 68.7619 95.037 74H87C87.1728 70.2771 87.3673 66.4242 87.5833 62.4416C87.8426 58.4589 88.1019 54.5195 88.3611 50.6234C88.6636 46.684 88.9877 42.8745 89.3333 39.1948C89.679 35.5151 90.0463 32.1169 90.4352 29H98.0185Z' fill='%23E9AF00'/%3E%3Cdefs%3E%3Cfilter id='filter0_d_4698_11867' x='0' y='0' width='170' height='170' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'%3E%3CfeFlood flood-opacity='0' result='BackgroundImageFix'/%3E%3CfeColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/%3E%3CfeOffset dy='5'/%3E%3CfeGaussianBlur stdDeviation='10'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.178622 0'/%3E%3CfeBlend mode='normal' in2='BackgroundImageFix' result='effect1_dropShadow_4698_11867'/%3E%3CfeBlend mode='normal' in='SourceGraphic' in2='effect1_dropShadow_4698_11867' result='shape'/%3E%3C/filter%3E%3C/defs%3E%3C/svg%3E%0A\";\n\nconst vignetteMonth =\n  \"data:image/svg+xml,%3Csvg viewBox='0 0 160 160' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M59.3332 53.9621C60.1075 53.5602 60.9983 53.4363 61.8545 53.6109L61.187 49.7308H65.252C65.9482 49.7326 66.5141 49.1749 66.5156 48.4857V48.4739V43.4843C66.5156 42.7951 65.9511 42.2362 65.255 42.2362H65.252H59.9263L58.8415 35.7861C58.742 35.1877 58.2231 34.7463 57.6107 34.7387H53.8109C53.1129 34.7369 52.5461 35.2957 52.5443 35.9868V35.9897V42.2362H50.026V35.9897C50.026 35.2987 49.4603 34.7387 48.7624 34.7387H44.9775C44.3594 34.7392 43.8325 35.1824 43.7317 35.7861L42.6439 42.2362H37.3212C36.6251 42.2345 36.0594 42.7921 36.0576 43.4814V43.4843V48.4739C36.0576 49.1631 36.6221 49.722 37.3183 49.722H37.3212H41.3863L38.6832 65.9299C38.5697 66.61 39.0343 67.2523 39.7212 67.3647C39.7901 67.376 39.8595 67.3816 39.9289 67.3816H48.7624C49.4603 67.3816 50.026 66.8215 50.026 66.1305V49.7308H52.5443V66.1393C52.544 66.4565 52.6668 66.7616 52.887 66.9921L55.0685 64.8322V49.7308H58.6299L59.3332 53.9621ZM55.0715 37.2378H56.5259L57.3693 42.2362H55.0715V37.2378ZM47.5017 37.2378H46.0474L45.204 42.2362H47.5017V37.2378ZM47.5017 64.8912H41.4161L43.9433 49.7308H47.5017V64.8912ZM63.9884 44.7354H38.5819V47.2317H63.9884V44.7354Z' fill='%23283277'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M73.8826 83.4633C74.0537 83.7292 74.3252 83.9162 74.6366 83.9826L74.6426 83.9738C74.9501 84.0396 75.2714 83.9823 75.5367 83.8144L79.2947 81.4392C79.5638 81.271 79.7537 81.0034 79.8222 80.6956C79.8896 80.3914 79.8327 80.0733 79.6643 79.8104L74.8303 72.3011L79.7626 70.7549C80.0282 70.6755 80.2574 70.5071 80.4108 70.2787C80.7756 69.7358 80.6266 69.0034 80.0785 68.6422L61.771 56.3233C61.6458 56.2383 61.5051 56.1782 61.3567 56.1463C61.1925 56.1073 61.0217 56.1035 60.8557 56.1348C60.209 56.2569 59.7849 56.8751 59.9083 57.5154L63.4846 79.1436C63.5618 79.5903 63.8869 79.9559 64.325 80.0878L64.4114 80.1114C64.8296 80.2031 65.2653 80.0656 65.5529 79.7514L69.0487 75.9569L73.8826 83.4633ZM70.2348 73.3662C70.0626 73.1027 69.7931 72.9162 69.4838 72.8469V72.8558C69.4325 72.8448 69.381 72.8369 69.3288 72.8322C68.9575 72.8018 68.5927 72.9422 68.3394 73.2128L65.4545 76.3316L62.7306 59.8434L76.684 69.2324L72.622 70.4982C72.5165 70.5304 72.4163 70.5767 72.3237 70.636C71.7714 70.991 71.6141 71.7218 71.9723 72.2686L77.0059 80.076L75.2684 81.1736L70.2348 73.3662Z' fill='%23E9AF00'/%3E%3Cpath d='M58.5043 65.0421L52.9253 70.5745H31.5839V43.2191C31.5904 36.7817 36.8598 31.5647 43.3617 31.5582H70.9885V52.6877L66.9533 56.6829L69.1259 58.1582L73.1939 54.1335C73.4353 53.8937 73.5715 53.5694 73.5724 53.2306V30.2806C73.5742 29.5751 72.9975 29.0018 72.2849 29H72.2819H43.3737C35.4412 29.0032 29.0098 35.3657 29 43.2191V71.8403C29 72.5458 29.5779 73.118 30.2904 73.118H53.4588C53.8009 73.1177 54.129 72.9828 54.3707 72.7432L59.0229 68.1373L58.5043 65.0421Z' fill='%23283277'/%3E%3Crect x='29.0586' y='97' width='102' height='34' rx='8' fill='%23E9AF00'/%3E%3Cpath d='M50.2848 122.33C49.8888 122.33 49.4781 122.301 49.0528 122.242C48.6421 122.198 48.2461 122.132 47.8648 122.044C47.4981 121.971 47.1608 121.89 46.8528 121.802C46.5448 121.699 46.3101 121.604 46.1488 121.516L46.6768 119.25C46.9848 119.397 47.4321 119.565 48.0188 119.756C48.6054 119.932 49.3314 120.02 50.1968 120.02C51.3554 120.02 52.1914 119.8 52.7048 119.36C53.2181 118.905 53.4748 118.304 53.4748 117.556C53.4748 117.072 53.3721 116.669 53.1668 116.346C52.9761 116.023 52.7048 115.767 52.3528 115.576C52.0154 115.371 51.6194 115.231 51.1648 115.158C50.7248 115.07 50.2554 115.026 49.7568 115.026H48.8548V112.87H49.9548C50.2921 112.87 50.6294 112.841 50.9668 112.782C51.3188 112.709 51.6341 112.591 51.9128 112.43C52.1914 112.254 52.4188 112.027 52.5948 111.748C52.7708 111.469 52.8588 111.11 52.8588 110.67C52.8588 110.318 52.7928 110.017 52.6608 109.768C52.5288 109.519 52.3528 109.313 52.1328 109.152C51.9274 108.991 51.6854 108.873 51.4068 108.8C51.1281 108.727 50.8348 108.69 50.5268 108.69C49.8668 108.69 49.2801 108.793 48.7668 108.998C48.2534 109.189 47.7988 109.409 47.4028 109.658L46.4348 107.678C46.6401 107.546 46.8894 107.407 47.1828 107.26C47.4761 107.113 47.7988 106.974 48.1508 106.842C48.5174 106.71 48.9061 106.607 49.3168 106.534C49.7274 106.446 50.1601 106.402 50.6148 106.402C51.4654 106.402 52.1988 106.505 52.8148 106.71C53.4308 106.915 53.9368 107.209 54.3328 107.59C54.7434 107.957 55.0441 108.397 55.2348 108.91C55.4401 109.409 55.5428 109.959 55.5428 110.56C55.5428 111.264 55.3448 111.895 54.9488 112.452C54.5674 113.009 54.0688 113.435 53.4528 113.728C54.2448 114.007 54.8974 114.469 55.4108 115.114C55.9388 115.759 56.2028 116.588 56.2028 117.6C56.2028 118.275 56.0854 118.905 55.8508 119.492C55.6161 120.064 55.2568 120.563 54.7728 120.988C54.2888 121.399 53.6728 121.729 52.9248 121.978C52.1914 122.213 51.3114 122.33 50.2848 122.33ZM69.1467 114.366C69.1467 116.933 68.6773 118.905 67.7387 120.284C66.8 121.648 65.502 122.33 63.8447 122.33C62.1873 122.33 60.8893 121.648 59.9507 120.284C59.012 118.905 58.5427 116.933 58.5427 114.366C58.5427 113.09 58.66 111.961 58.8947 110.978C59.144 109.981 59.496 109.145 59.9507 108.47C60.42 107.795 60.9773 107.282 61.6227 106.93C62.2827 106.578 63.0233 106.402 63.8447 106.402C65.502 106.402 66.8 107.091 67.7387 108.47C68.6773 109.834 69.1467 111.799 69.1467 114.366ZM66.3967 114.366C66.3967 113.574 66.3527 112.833 66.2647 112.144C66.1767 111.455 66.03 110.861 65.8247 110.362C65.634 109.849 65.3773 109.445 65.0547 109.152C64.732 108.859 64.3287 108.712 63.8447 108.712C63.3607 108.712 62.95 108.859 62.6127 109.152C62.29 109.445 62.026 109.849 61.8207 110.362C61.63 110.861 61.4907 111.455 61.4027 112.144C61.3293 112.833 61.2927 113.574 61.2927 114.366C61.2927 115.158 61.3293 115.899 61.4027 116.588C61.4907 117.277 61.63 117.879 61.8207 118.392C62.026 118.891 62.29 119.287 62.6127 119.58C62.95 119.873 63.3607 120.02 63.8447 120.02C64.3287 120.02 64.732 119.873 65.0547 119.58C65.3773 119.287 65.634 118.891 65.8247 118.392C66.03 117.879 66.1767 117.277 66.2647 116.588C66.3527 115.899 66.3967 115.158 66.3967 114.366ZM79.8334 119.712C79.9947 119.727 80.2074 119.741 80.4714 119.756C80.7354 119.756 81.0947 119.756 81.5494 119.756C83.412 119.756 84.798 119.287 85.7074 118.348C86.6314 117.395 87.0934 116.067 87.0934 114.366C87.0934 112.635 86.646 111.308 85.7514 110.384C84.8567 109.46 83.4707 108.998 81.5934 108.998C80.772 108.998 80.1854 109.02 79.8334 109.064V119.712ZM89.9974 114.366C89.9974 115.686 89.792 116.837 89.3814 117.82C88.9707 118.788 88.384 119.602 87.6214 120.262C86.8734 120.907 85.964 121.391 84.8934 121.714C83.8374 122.022 82.664 122.176 81.3734 122.176C80.7574 122.176 80.0607 122.147 79.2834 122.088C78.506 122.044 77.7654 121.941 77.0614 121.78V106.974C77.7654 106.813 78.5134 106.71 79.3054 106.666C80.0974 106.622 80.8014 106.6 81.4174 106.6C82.6934 106.6 83.8594 106.754 84.9154 107.062C85.9714 107.355 86.8734 107.825 87.6214 108.47C88.384 109.101 88.9707 109.907 89.3814 110.89C89.792 111.858 89.9974 113.017 89.9974 114.366ZM103.298 122C102.8 121.164 102.242 120.269 101.626 119.316C101.01 118.348 100.372 117.38 99.7122 116.412C99.0522 115.429 98.3776 114.483 97.6882 113.574C97.0136 112.65 96.3682 111.821 95.7522 111.088V122H93.0242V106.754H95.2902C95.8769 107.37 96.5076 108.103 97.1822 108.954C97.8569 109.79 98.5316 110.663 99.2062 111.572C99.8956 112.481 100.556 113.398 101.186 114.322C101.832 115.231 102.404 116.082 102.902 116.874V106.754H105.652V122H103.298ZM109.309 106.754H112.081V122H109.309V106.754ZM114.281 102.222L110.695 105.698L109.375 104.51L112.609 100.66L114.281 102.222Z' fill='white'/%3E%3Cpath d='M93.0185 29C93.9691 30.645 95.0278 32.658 96.1944 35.039C97.3611 37.4199 98.5494 39.9307 99.7593 42.5714C100.969 45.1688 102.157 47.8312 103.324 50.5584C104.534 53.2424 105.636 55.7316 106.63 58.026C107.623 55.7316 108.704 53.2424 109.87 50.5584C111.037 47.8312 112.225 45.1688 113.435 42.5714C114.645 39.9307 115.833 37.4199 117 35.039C118.167 32.658 119.225 30.645 120.176 29H127.565C127.954 32.29 128.321 35.7965 128.667 39.5195C129.012 43.1991 129.315 46.987 129.574 50.8831C129.877 54.7359 130.136 58.632 130.352 62.5714C130.611 66.4675 130.827 70.2771 131 74H122.963C122.79 68.7619 122.574 63.3723 122.315 57.8312C122.099 52.29 121.753 46.9221 121.278 41.7273C120.802 42.7229 120.241 43.9134 119.593 45.2987C118.944 46.684 118.253 48.1991 117.519 49.8442C116.784 51.4459 116.028 53.1126 115.25 54.8442C114.515 56.5758 113.781 58.2641 113.046 59.9091C112.355 61.5108 111.707 63.026 111.102 64.4545C110.497 65.8398 109.978 67.0303 109.546 68.026H103.454C103.022 67.0303 102.503 65.8182 101.898 64.3896C101.293 62.961 100.623 61.4459 99.8889 59.8442C99.1975 58.1991 98.463 56.5108 97.6852 54.7792C96.9506 53.0476 96.216 51.3809 95.4815 49.7792C94.7469 48.1775 94.0556 46.684 93.4074 45.2987C92.7593 43.8701 92.1975 42.6797 91.7222 41.7273C91.2469 46.9221 90.8796 52.29 90.6204 57.8312C90.4043 63.3723 90.2099 68.7619 90.037 74H82C82.1728 70.2771 82.3673 66.4242 82.5833 62.4416C82.8426 58.4589 83.1019 54.5195 83.3611 50.6234C83.6636 46.684 83.9877 42.8745 84.3333 39.1948C84.679 35.5151 85.0463 32.1169 85.4352 29H93.0185Z' fill='%23E9AF00'/%3E%3C/svg%3E%0A\";\n\nconst vignette10DaysShadow =\n  \"data:image/svg+xml,%3Csvg viewBox='0 0 170 170' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg filter='url(%23filter0_d_4698_11827)'%3E%3Crect x='20' y='15' width='130' height='130' rx='16' fill='white'/%3E%3C/g%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M64.3332 53.9621C65.1075 53.5602 65.9983 53.4363 66.8545 53.6109L66.187 49.7308H70.252C70.9482 49.7326 71.5141 49.1749 71.5156 48.4857V48.4739V43.4843C71.5156 42.7951 70.9511 42.2362 70.255 42.2362H70.252H64.9263L63.8415 35.7861C63.742 35.1877 63.2231 34.7463 62.6107 34.7387H58.8109C58.1129 34.7369 57.5461 35.2957 57.5443 35.9868V35.9897V42.2362H55.026V35.9897C55.026 35.2987 54.4603 34.7387 53.7624 34.7387H49.9775C49.3594 34.7392 48.8325 35.1824 48.7317 35.7861L47.6439 42.2362H42.3212C41.6251 42.2345 41.0594 42.7921 41.0576 43.4814V43.4843V48.4739C41.0576 49.1631 41.6221 49.722 42.3183 49.722H42.3212H46.3863L43.6832 65.9299C43.5697 66.61 44.0343 67.2523 44.7212 67.3647C44.7901 67.376 44.8595 67.3816 44.9289 67.3816H53.7624C54.4603 67.3816 55.026 66.8215 55.026 66.1305V49.7308H57.5443V66.1393C57.544 66.4565 57.6668 66.7616 57.887 66.9921L60.0685 64.8322V49.7308H63.6299L64.3332 53.9621ZM60.0715 37.2378H61.5259L62.3693 42.2362H60.0715V37.2378ZM52.5017 37.2378H51.0474L50.204 42.2362H52.5017V37.2378ZM52.5017 64.8912H46.4161L48.9433 49.7308H52.5017V64.8912ZM68.9884 44.7354H43.5819V47.2317H68.9884V44.7354Z' fill='%23283277'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M78.8826 83.4633C79.0537 83.7292 79.3252 83.9162 79.6366 83.9826L79.6426 83.9738C79.9501 84.0396 80.2714 83.9823 80.5367 83.8144L84.2947 81.4392C84.5638 81.271 84.7537 81.0034 84.8222 80.6956C84.8896 80.3914 84.8327 80.0733 84.6643 79.8104L79.8303 72.3011L84.7626 70.7549C85.0282 70.6755 85.2574 70.5071 85.4108 70.2787C85.7756 69.7358 85.6266 69.0034 85.0785 68.6422L66.771 56.3233C66.6458 56.2383 66.5051 56.1782 66.3567 56.1463C66.1925 56.1073 66.0217 56.1035 65.8557 56.1348C65.209 56.2569 64.7849 56.8751 64.9083 57.5154L68.4846 79.1436C68.5618 79.5903 68.8869 79.9559 69.325 80.0878L69.4114 80.1114C69.8296 80.2031 70.2653 80.0656 70.5529 79.7514L74.0487 75.9569L78.8826 83.4633ZM75.2348 73.3662C75.0626 73.1027 74.7931 72.9162 74.4838 72.8469V72.8558C74.4325 72.8448 74.381 72.8369 74.3288 72.8322C73.9575 72.8018 73.5927 72.9422 73.3394 73.2128L70.4545 76.3316L67.7306 59.8434L81.684 69.2324L77.622 70.4982C77.5165 70.5304 77.4163 70.5767 77.3237 70.636C76.7714 70.991 76.6141 71.7218 76.9723 72.2686L82.0059 80.076L80.2684 81.1736L75.2348 73.3662Z' fill='%23D00F31'/%3E%3Cpath d='M63.5043 65.0421L57.9253 70.5745H36.5839V43.2191C36.5904 36.7817 41.8598 31.5647 48.3617 31.5582H75.9885V52.6877L71.9533 56.6829L74.1259 58.1582L78.1939 54.1335C78.4353 53.8937 78.5715 53.5694 78.5724 53.2306V30.2806C78.5742 29.5751 77.9975 29.0018 77.2849 29H77.2819H48.3737C40.4412 29.0032 34.0098 35.3657 34 43.2191V71.8403C34 72.5458 34.5779 73.118 35.2904 73.118H58.4588C58.8009 73.1177 59.129 72.9828 59.3707 72.7432L64.0229 68.1373L63.5043 65.0421Z' fill='%23283277'/%3E%3Crect x='34.0586' y='97' width='102' height='34' rx='8' fill='%23D00F31'/%3E%3Cpath d='M52.0728 109.922C52.9234 109.585 53.7741 109.152 54.6248 108.624C55.4901 108.096 56.2528 107.473 56.9128 106.754H58.7828V122H56.1208V110.318C55.7248 110.626 55.2261 110.927 54.6248 111.22C54.0234 111.513 53.4441 111.755 52.8868 111.946L52.0728 109.922ZM74.1467 114.366C74.1467 116.933 73.6773 118.905 72.7387 120.284C71.8 121.648 70.502 122.33 68.8447 122.33C67.1873 122.33 65.8893 121.648 64.9507 120.284C64.012 118.905 63.5427 116.933 63.5427 114.366C63.5427 113.09 63.66 111.961 63.8947 110.978C64.144 109.981 64.496 109.145 64.9507 108.47C65.42 107.795 65.9773 107.282 66.6227 106.93C67.2827 106.578 68.0233 106.402 68.8447 106.402C70.502 106.402 71.8 107.091 72.7387 108.47C73.6773 109.834 74.1467 111.799 74.1467 114.366ZM71.3967 114.366C71.3967 113.574 71.3527 112.833 71.2647 112.144C71.1767 111.455 71.03 110.861 70.8247 110.362C70.634 109.849 70.3773 109.445 70.0547 109.152C69.732 108.859 69.3287 108.712 68.8447 108.712C68.3607 108.712 67.95 108.859 67.6127 109.152C67.29 109.445 67.026 109.849 66.8207 110.362C66.63 110.861 66.4907 111.455 66.4027 112.144C66.3293 112.833 66.2927 113.574 66.2927 114.366C66.2927 115.158 66.3293 115.899 66.4027 116.588C66.4907 117.277 66.63 117.879 66.8207 118.392C67.026 118.891 67.29 119.287 67.6127 119.58C67.95 119.873 68.3607 120.02 68.8447 120.02C69.3287 120.02 69.732 119.873 70.0547 119.58C70.3773 119.287 70.634 118.891 70.8247 118.392C71.03 117.879 71.1767 117.277 71.2647 116.588C71.3527 115.899 71.3967 115.158 71.3967 114.366ZM84.8334 119.712C84.9947 119.727 85.2074 119.741 85.4714 119.756C85.7354 119.756 86.0947 119.756 86.5494 119.756C88.412 119.756 89.798 119.287 90.7074 118.348C91.6314 117.395 92.0934 116.067 92.0934 114.366C92.0934 112.635 91.646 111.308 90.7514 110.384C89.8567 109.46 88.4707 108.998 86.5934 108.998C85.772 108.998 85.1854 109.02 84.8334 109.064V119.712ZM94.9974 114.366C94.9974 115.686 94.792 116.837 94.3814 117.82C93.9707 118.788 93.384 119.602 92.6214 120.262C91.8734 120.907 90.964 121.391 89.8934 121.714C88.8374 122.022 87.664 122.176 86.3734 122.176C85.7574 122.176 85.0607 122.147 84.2834 122.088C83.506 122.044 82.7654 121.941 82.0614 121.78V106.974C82.7654 106.813 83.5134 106.71 84.3054 106.666C85.0974 106.622 85.8014 106.6 86.4174 106.6C87.6934 106.6 88.8594 106.754 89.9154 107.062C90.9714 107.355 91.8734 107.825 92.6214 108.47C93.384 109.101 93.9707 109.907 94.3814 110.89C94.792 111.858 94.9974 113.017 94.9974 114.366ZM108.298 122C107.8 121.164 107.242 120.269 106.626 119.316C106.01 118.348 105.372 117.38 104.712 116.412C104.052 115.429 103.378 114.483 102.688 113.574C102.014 112.65 101.368 111.821 100.752 111.088V122H98.0242V106.754H100.29C100.877 107.37 101.508 108.103 102.182 108.954C102.857 109.79 103.532 110.663 104.206 111.572C104.896 112.481 105.556 113.398 106.186 114.322C106.832 115.231 107.404 116.082 107.902 116.874V106.754H110.652V122H108.298ZM114.309 106.754H117.081V122H114.309V106.754ZM119.281 102.222L115.695 105.698L114.375 104.51L117.609 100.66L119.281 102.222Z' fill='white'/%3E%3Cpath d='M103.786 71.9322C104.297 71.9802 104.971 72.0282 105.808 72.0763C106.645 72.0763 107.783 72.0763 109.224 72.0763C115.128 72.0763 119.521 70.5395 122.403 67.4661C125.332 64.3446 126.796 59.9986 126.796 54.428C126.796 48.7613 125.378 44.4153 122.543 41.3898C119.707 38.3644 115.314 36.8517 109.364 36.8517C106.761 36.8517 104.901 36.9237 103.786 37.0678V71.9322ZM136 54.428C136 58.75 135.349 62.5198 134.048 65.7373C132.746 68.9068 130.887 71.572 128.469 73.733C126.099 75.846 123.217 77.4308 119.823 78.4873C116.476 79.4958 112.757 80 108.667 80C106.714 80 104.506 79.9039 102.043 79.7119C99.5788 79.5678 97.2313 79.2316 95 78.7034V30.2246C97.2313 29.6963 99.602 29.3602 102.112 29.2161C104.622 29.072 106.854 29 108.806 29C112.85 29 116.546 29.5042 119.893 30.5127C123.24 31.4732 126.099 33.0099 128.469 35.1229C130.887 37.1879 132.746 39.8291 134.048 43.0466C135.349 46.2161 136 50.0099 136 54.428Z' fill='%23D00F31'/%3E%3Cdefs%3E%3Cfilter id='filter0_d_4698_11827' x='0' y='0' width='170' height='170' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'%3E%3CfeFlood flood-opacity='0' result='BackgroundImageFix'/%3E%3CfeColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/%3E%3CfeOffset dy='5'/%3E%3CfeGaussianBlur stdDeviation='10'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.178622 0'/%3E%3CfeBlend mode='normal' in2='BackgroundImageFix' result='effect1_dropShadow_4698_11827'/%3E%3CfeBlend mode='normal' in='SourceGraphic' in2='effect1_dropShadow_4698_11827' result='shape'/%3E%3C/filter%3E%3C/defs%3E%3C/svg%3E%0A\";\n\nconst vignette10Days =\n  \"data:image/svg+xml,%3Csvg viewBox='0 0 160 160' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M59.3332 53.9621C60.1075 53.5602 60.9983 53.4363 61.8545 53.6109L61.187 49.7308H65.252C65.9482 49.7326 66.5141 49.1749 66.5156 48.4857V48.4739V43.4843C66.5156 42.7951 65.9511 42.2362 65.255 42.2362H65.252H59.9263L58.8415 35.7861C58.742 35.1877 58.2231 34.7463 57.6107 34.7387H53.8109C53.1129 34.7369 52.5461 35.2957 52.5443 35.9868V35.9897V42.2362H50.026V35.9897C50.026 35.2987 49.4603 34.7387 48.7624 34.7387H44.9775C44.3594 34.7392 43.8325 35.1824 43.7317 35.7861L42.6439 42.2362H37.3212C36.6251 42.2345 36.0594 42.7921 36.0576 43.4814V43.4843V48.4739C36.0576 49.1631 36.6221 49.722 37.3183 49.722H37.3212H41.3863L38.6832 65.9299C38.5697 66.61 39.0343 67.2523 39.7212 67.3647C39.7901 67.376 39.8595 67.3816 39.9289 67.3816H48.7624C49.4603 67.3816 50.026 66.8215 50.026 66.1305V49.7308H52.5443V66.1393C52.544 66.4565 52.6668 66.7616 52.887 66.9921L55.0685 64.8322V49.7308H58.6299L59.3332 53.9621ZM55.0715 37.2378H56.5259L57.3693 42.2362H55.0715V37.2378ZM47.5017 37.2378H46.0474L45.204 42.2362H47.5017V37.2378ZM47.5017 64.8912H41.4161L43.9433 49.7308H47.5017V64.8912ZM63.9884 44.7354H38.5819V47.2317H63.9884V44.7354Z' fill='%23283277'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M73.8826 83.4633C74.0537 83.7292 74.3252 83.9162 74.6366 83.9826L74.6426 83.9738C74.9501 84.0396 75.2714 83.9823 75.5367 83.8144L79.2947 81.4392C79.5638 81.271 79.7537 81.0034 79.8222 80.6956C79.8896 80.3914 79.8327 80.0733 79.6643 79.8104L74.8303 72.3011L79.7626 70.7549C80.0282 70.6755 80.2574 70.5071 80.4108 70.2787C80.7756 69.7358 80.6266 69.0034 80.0785 68.6422L61.771 56.3233C61.6458 56.2383 61.5051 56.1782 61.3567 56.1463C61.1925 56.1073 61.0217 56.1035 60.8557 56.1348C60.209 56.2569 59.7849 56.8751 59.9083 57.5154L63.4846 79.1436C63.5618 79.5903 63.8869 79.9559 64.325 80.0878L64.4114 80.1114C64.8296 80.2031 65.2653 80.0656 65.5529 79.7514L69.0487 75.9569L73.8826 83.4633ZM70.2348 73.3662C70.0626 73.1027 69.7931 72.9162 69.4838 72.8469V72.8558C69.4325 72.8448 69.381 72.8369 69.3288 72.8322C68.9575 72.8018 68.5927 72.9422 68.3394 73.2128L65.4545 76.3316L62.7306 59.8434L76.684 69.2324L72.622 70.4982C72.5165 70.5304 72.4163 70.5767 72.3237 70.636C71.7714 70.991 71.6141 71.7218 71.9723 72.2686L77.0059 80.076L75.2684 81.1736L70.2348 73.3662Z' fill='%23D00F31'/%3E%3Cpath d='M58.5043 65.0421L52.9253 70.5745H31.5839V43.2191C31.5904 36.7817 36.8598 31.5647 43.3617 31.5582H70.9885V52.6877L66.9533 56.6829L69.1259 58.1582L73.1939 54.1335C73.4353 53.8937 73.5715 53.5694 73.5724 53.2306V30.2806C73.5742 29.5751 72.9975 29.0018 72.2849 29H72.2819H43.3737C35.4412 29.0032 29.0098 35.3657 29 43.2191V71.8403C29 72.5458 29.5779 73.118 30.2904 73.118H53.4588C53.8009 73.1177 54.129 72.9828 54.3707 72.7432L59.0229 68.1373L58.5043 65.0421Z' fill='%23283277'/%3E%3Crect x='29.0586' y='97' width='102' height='34' rx='8' fill='%23D00F31'/%3E%3Cpath d='M47.0728 109.922C47.9234 109.585 48.7741 109.152 49.6248 108.624C50.4901 108.096 51.2528 107.473 51.9128 106.754H53.7828V122H51.1208V110.318C50.7248 110.626 50.2261 110.927 49.6248 111.22C49.0234 111.513 48.4441 111.755 47.8868 111.946L47.0728 109.922ZM69.1467 114.366C69.1467 116.933 68.6773 118.905 67.7387 120.284C66.8 121.648 65.502 122.33 63.8447 122.33C62.1873 122.33 60.8893 121.648 59.9507 120.284C59.012 118.905 58.5427 116.933 58.5427 114.366C58.5427 113.09 58.66 111.961 58.8947 110.978C59.144 109.981 59.496 109.145 59.9507 108.47C60.42 107.795 60.9773 107.282 61.6227 106.93C62.2827 106.578 63.0233 106.402 63.8447 106.402C65.502 106.402 66.8 107.091 67.7387 108.47C68.6773 109.834 69.1467 111.799 69.1467 114.366ZM66.3967 114.366C66.3967 113.574 66.3527 112.833 66.2647 112.144C66.1767 111.455 66.03 110.861 65.8247 110.362C65.634 109.849 65.3773 109.445 65.0547 109.152C64.732 108.859 64.3287 108.712 63.8447 108.712C63.3607 108.712 62.95 108.859 62.6127 109.152C62.29 109.445 62.026 109.849 61.8207 110.362C61.63 110.861 61.4907 111.455 61.4027 112.144C61.3293 112.833 61.2927 113.574 61.2927 114.366C61.2927 115.158 61.3293 115.899 61.4027 116.588C61.4907 117.277 61.63 117.879 61.8207 118.392C62.026 118.891 62.29 119.287 62.6127 119.58C62.95 119.873 63.3607 120.02 63.8447 120.02C64.3287 120.02 64.732 119.873 65.0547 119.58C65.3773 119.287 65.634 118.891 65.8247 118.392C66.03 117.879 66.1767 117.277 66.2647 116.588C66.3527 115.899 66.3967 115.158 66.3967 114.366ZM79.8334 119.712C79.9947 119.727 80.2074 119.741 80.4714 119.756C80.7354 119.756 81.0947 119.756 81.5494 119.756C83.412 119.756 84.798 119.287 85.7074 118.348C86.6314 117.395 87.0934 116.067 87.0934 114.366C87.0934 112.635 86.646 111.308 85.7514 110.384C84.8567 109.46 83.4707 108.998 81.5934 108.998C80.772 108.998 80.1854 109.02 79.8334 109.064V119.712ZM89.9974 114.366C89.9974 115.686 89.792 116.837 89.3814 117.82C88.9707 118.788 88.384 119.602 87.6214 120.262C86.8734 120.907 85.964 121.391 84.8934 121.714C83.8374 122.022 82.664 122.176 81.3734 122.176C80.7574 122.176 80.0607 122.147 79.2834 122.088C78.506 122.044 77.7654 121.941 77.0614 121.78V106.974C77.7654 106.813 78.5134 106.71 79.3054 106.666C80.0974 106.622 80.8014 106.6 81.4174 106.6C82.6934 106.6 83.8594 106.754 84.9154 107.062C85.9714 107.355 86.8734 107.825 87.6214 108.47C88.384 109.101 88.9707 109.907 89.3814 110.89C89.792 111.858 89.9974 113.017 89.9974 114.366ZM103.298 122C102.8 121.164 102.242 120.269 101.626 119.316C101.01 118.348 100.372 117.38 99.7122 116.412C99.0522 115.429 98.3776 114.483 97.6882 113.574C97.0136 112.65 96.3682 111.821 95.7522 111.088V122H93.0242V106.754H95.2902C95.8769 107.37 96.5076 108.103 97.1822 108.954C97.8569 109.79 98.5316 110.663 99.2062 111.572C99.8956 112.481 100.556 113.398 101.186 114.322C101.832 115.231 102.404 116.082 102.902 116.874V106.754H105.652V122H103.298ZM109.309 106.754H112.081V122H109.309V106.754ZM114.281 102.222L110.695 105.698L109.375 104.51L112.609 100.66L114.281 102.222Z' fill='white'/%3E%3Cpath d='M98.7857 71.9322C99.2971 71.9802 99.9711 72.0282 100.808 72.0763C101.645 72.0763 102.783 72.0763 104.224 72.0763C110.128 72.0763 114.521 70.5395 117.403 67.4661C120.332 64.3446 121.796 59.9986 121.796 54.428C121.796 48.7613 120.378 44.4153 117.543 41.3898C114.707 38.3644 110.314 36.8517 104.364 36.8517C101.761 36.8517 99.9014 36.9237 98.7857 37.0678V71.9322ZM131 54.428C131 58.75 130.349 62.5198 129.048 65.7373C127.746 68.9068 125.887 71.572 123.469 73.733C121.099 75.846 118.217 77.4308 114.823 78.4873C111.476 79.4958 107.757 80 103.667 80C101.714 80 99.5062 79.9039 97.0425 79.7119C94.5788 79.5678 92.2313 79.2316 90 78.7034V30.2246C92.2313 29.6963 94.602 29.3602 97.1122 29.2161C99.6224 29.072 101.854 29 103.806 29C107.85 29 111.546 29.5042 114.893 30.5127C118.24 31.4732 121.099 33.0099 123.469 35.1229C125.887 37.1879 127.746 39.8291 129.048 43.0466C130.349 46.2161 131 50.0099 131 54.428Z' fill='%23D00F31'/%3E%3C/svg%3E%0A\";\n\nconst vignetteOneDayShadow =\n  \"data:image/svg+xml,%3Csvg viewBox='0 0 170 170' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg filter='url(%23filter0_d_4698_11755)'%3E%3Crect x='20' y='15' width='130' height='130' rx='16' fill='white'/%3E%3C/g%3E%3Crect x='34' y='97' width='102' height='34' rx='11.0345' fill='%230549A3'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M64.3342 53.9619C65.1085 53.5601 65.9993 53.4361 66.8555 53.6108L66.1879 49.7307H70.253C70.9491 49.7325 71.5151 49.1748 71.5166 48.4856V48.4738V43.4842C71.5166 42.795 70.9521 42.2361 70.256 42.2361H70.253H64.9273L63.8425 35.786C63.7429 35.1876 63.2241 34.7462 62.6116 34.7385H58.8118C58.1139 34.7368 57.547 35.2956 57.5452 35.9866V35.9896V42.2361H55.0269V35.9896C55.0269 35.2986 54.4613 34.7385 53.7633 34.7385H49.9784C49.3603 34.7391 48.8334 35.1823 48.7327 35.786L47.6449 42.2361H42.3222C41.626 42.2343 41.0604 42.792 41.0586 43.4813V43.4842V48.4738C41.0586 49.163 41.6231 49.7219 42.3192 49.7219H42.3222H46.3873L43.6842 65.9297C43.5706 66.6099 44.0353 67.2522 44.7222 67.3646C44.791 67.3758 44.8605 67.3815 44.9299 67.3815H53.7633C54.4613 67.3815 55.0269 66.8214 55.0269 66.1304V49.7307H57.5452V66.1392C57.5449 66.4564 57.6677 66.7615 57.888 66.992L60.0695 64.8321V49.7307H63.6309L64.3342 53.9619ZM60.0723 37.2377H61.5266L62.37 42.2361H60.0723V37.2377ZM52.5019 37.2377H51.0476L50.2042 42.236H52.5019V37.2377ZM52.5026 64.8911H46.417L48.9442 49.7307H52.5026V64.8911ZM68.9895 44.7354H43.583V47.2316H68.9895V44.7354Z' fill='%23283277'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M78.8824 83.4633C79.0534 83.7292 79.325 83.9162 79.6364 83.9826L79.6423 83.9738C79.9499 84.0396 80.2712 83.9823 80.5364 83.8144L84.2945 81.4392C84.5636 81.271 84.7534 81.0034 84.822 80.6956C84.8893 80.3914 84.8324 80.0733 84.664 79.8104L79.8301 72.3011L84.7624 70.7549C85.0279 70.6755 85.2571 70.5071 85.4106 70.2787C85.7754 69.7358 85.6264 69.0034 85.0783 68.6423L66.7707 56.3233C66.6455 56.2383 66.5049 56.1782 66.3565 56.1463C66.1922 56.1073 66.0215 56.1035 65.8555 56.1348C65.2088 56.2569 64.7847 56.8751 64.9081 57.5154L68.4844 79.1436C68.5615 79.5903 68.8867 79.9559 69.3248 80.0878L69.4112 80.1114C69.8293 80.2032 70.265 80.0657 70.5526 79.7514L74.0484 75.9569L78.8824 83.4633ZM75.2337 73.3663C75.0615 73.1028 74.792 72.9163 74.4827 72.847V72.8558C74.4314 72.8449 74.3799 72.8369 74.3277 72.8322C73.9564 72.8018 73.5916 72.9423 73.3383 73.2129L70.4534 76.3317L67.7295 59.8435L81.6829 69.2325L77.6209 70.4983C77.5154 70.5304 77.4152 70.5767 77.3226 70.6361C76.7703 70.991 76.613 71.7219 76.9712 72.2687L82.0048 80.0761L80.2673 81.1737L75.2337 73.3663Z' fill='%230549A3'/%3E%3Cpath d='M63.5053 65.0421L57.9263 70.5745H36.5848V43.2191C36.5914 36.7817 41.8607 31.5647 48.3627 31.5582H75.9895V52.6877L71.9543 56.6829L74.1268 58.1582L78.1949 54.1335C78.4363 53.8937 78.5725 53.5694 78.5733 53.2307V30.2806C78.5751 29.5751 77.9985 29.0018 77.2859 29H77.2829H48.3746C40.4422 29.0032 34.0108 35.3657 34.001 43.2191V71.8403C34.001 72.5458 34.5788 73.118 35.2914 73.118H58.4598C58.8019 73.1177 59.13 72.9828 59.3717 72.7432L64.0238 68.1373L63.5053 65.0421Z' fill='%23283277'/%3E%3Cpath d='M122.112 59.3269C122.112 61.4841 121.879 63.4933 121.414 65.3545C120.948 67.2156 120.124 68.8441 118.939 70.24C117.797 71.6358 116.232 72.7356 114.244 73.5393C112.298 74.343 109.824 74.7448 106.821 74.7448C104.029 74.7448 101.597 74.3641 99.524 73.6027C97.4936 72.7991 95.9286 71.9531 94.8288 71.0648L97.684 64.7834C98.7414 65.5025 100.032 66.2004 101.554 66.8772C103.119 67.5117 104.706 67.829 106.313 67.829C109.02 67.829 110.987 67.1522 112.214 65.7986C113.44 64.445 114.054 62.1186 114.054 58.8193V29.8234H122.112V59.3269Z' fill='%230549A3'/%3E%3Cpath d='M55.0913 109.922C55.942 109.585 56.7927 109.152 57.6433 108.624C58.5087 108.096 59.2713 107.473 59.9313 106.754H61.8013V122H59.1393V110.318C58.7433 110.626 58.2447 110.927 57.6433 111.22C57.042 111.513 56.4627 111.755 55.9053 111.946L55.0913 109.922ZM75.348 119.712C75.5093 119.727 75.722 119.741 75.986 119.756C76.25 119.756 76.6093 119.756 77.064 119.756C78.9267 119.756 80.3127 119.287 81.222 118.348C82.146 117.395 82.608 116.067 82.608 114.366C82.608 112.635 82.1607 111.308 81.266 110.384C80.3713 109.46 78.9853 108.998 77.108 108.998C76.2867 108.998 75.7 109.02 75.348 109.064V119.712ZM85.512 114.366C85.512 115.686 85.3067 116.837 84.896 117.82C84.4853 118.788 83.8987 119.602 83.136 120.262C82.388 120.907 81.4787 121.391 80.408 121.714C79.352 122.022 78.1787 122.176 76.888 122.176C76.272 122.176 75.5753 122.147 74.798 122.088C74.0207 122.044 73.28 121.941 72.576 121.78V106.974C73.28 106.813 74.028 106.71 74.82 106.666C75.612 106.622 76.316 106.6 76.932 106.6C78.208 106.6 79.374 106.754 80.43 107.062C81.486 107.355 82.388 107.825 83.136 108.47C83.8987 109.101 84.4853 109.907 84.896 110.89C85.3067 111.858 85.512 113.017 85.512 114.366ZM88.5389 122V106.754H98.3289V109.108H91.3109V112.87H97.5589V115.18H91.3109V119.646H98.8569V122H88.5389ZM111.704 122C111.205 121.164 110.648 120.269 110.032 119.316C109.416 118.348 108.778 117.38 108.118 116.412C107.458 115.429 106.783 114.483 106.094 113.574C105.419 112.65 104.774 111.821 104.158 111.088V122H101.43V106.754H103.696C104.282 107.37 104.913 108.103 105.588 108.954C106.262 109.79 106.937 110.663 107.612 111.572C108.301 112.481 108.961 113.398 109.592 114.322C110.237 115.231 110.809 116.082 111.308 116.874V106.754H114.058V122H111.704Z' fill='white'/%3E%3Cdefs%3E%3Cfilter id='filter0_d_4698_11755' x='0' y='0' width='170' height='170' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'%3E%3CfeFlood flood-opacity='0' result='BackgroundImageFix'/%3E%3CfeColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/%3E%3CfeOffset dy='5'/%3E%3CfeGaussianBlur stdDeviation='10'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.178622 0'/%3E%3CfeBlend mode='normal' in2='BackgroundImageFix' result='effect1_dropShadow_4698_11755'/%3E%3CfeBlend mode='normal' in='SourceGraphic' in2='effect1_dropShadow_4698_11755' result='shape'/%3E%3C/filter%3E%3C/defs%3E%3C/svg%3E%0A\";\n\nconst vignetteOneDay =\n  \"data:image/svg+xml,%3Csvg viewBox='0 0 160 160' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='29' y='97' width='102' height='34' rx='11.0345' fill='%230549A3'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M59.3342 53.9619C60.1085 53.5601 60.9993 53.4361 61.8555 53.6108L61.1879 49.7307H65.253C65.9491 49.7325 66.5151 49.1748 66.5166 48.4856V48.4738V43.4842C66.5166 42.795 65.9521 42.2361 65.256 42.2361H65.253H59.9273L58.8425 35.786C58.7429 35.1876 58.2241 34.7462 57.6116 34.7385H53.8118C53.1139 34.7368 52.547 35.2956 52.5452 35.9866V35.9896V42.2361H50.0269V35.9896C50.0269 35.2986 49.4613 34.7385 48.7633 34.7385H44.9784C44.3603 34.7391 43.8334 35.1823 43.7327 35.786L42.6449 42.2361H37.3222C36.626 42.2343 36.0604 42.792 36.0586 43.4813V43.4842V48.4738C36.0586 49.163 36.6231 49.7219 37.3192 49.7219H37.3222H41.3873L38.6842 65.9297C38.5706 66.6099 39.0353 67.2522 39.7222 67.3646C39.791 67.3758 39.8605 67.3815 39.9299 67.3815H48.7633C49.4613 67.3815 50.0269 66.8214 50.0269 66.1304V49.7307H52.5452V66.1392C52.5449 66.4564 52.6677 66.7615 52.888 66.992L55.0695 64.8321V49.7307H58.6309L59.3342 53.9619ZM55.0723 37.2377H56.5266L57.37 42.2361H55.0723V37.2377ZM47.5019 37.2377H46.0476L45.2042 42.236H47.5019V37.2377ZM47.5026 64.8911H41.417L43.9442 49.7307H47.5026V64.8911ZM63.9895 44.7354H38.583V47.2316H63.9895V44.7354Z' fill='%23283277'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M73.8824 83.4633C74.0534 83.7292 74.325 83.9162 74.6364 83.9826L74.6423 83.9738C74.9499 84.0396 75.2712 83.9823 75.5364 83.8144L79.2945 81.4392C79.5636 81.271 79.7534 81.0034 79.822 80.6956C79.8893 80.3914 79.8324 80.0733 79.664 79.8104L74.8301 72.3011L79.7624 70.7549C80.0279 70.6755 80.2571 70.5071 80.4106 70.2787C80.7754 69.7358 80.6264 69.0034 80.0783 68.6423L61.7707 56.3233C61.6455 56.2383 61.5049 56.1782 61.3565 56.1463C61.1922 56.1073 61.0215 56.1035 60.8555 56.1348C60.2088 56.2569 59.7847 56.8751 59.9081 57.5154L63.4844 79.1436C63.5615 79.5903 63.8867 79.9559 64.3248 80.0878L64.4112 80.1114C64.8293 80.2032 65.265 80.0657 65.5526 79.7514L69.0484 75.9569L73.8824 83.4633ZM70.2337 73.3663C70.0615 73.1028 69.792 72.9163 69.4827 72.847V72.8558C69.4314 72.8449 69.3799 72.8369 69.3277 72.8322C68.9564 72.8018 68.5916 72.9423 68.3383 73.2129L65.4534 76.3317L62.7295 59.8435L76.6829 69.2325L72.6209 70.4983C72.5154 70.5304 72.4152 70.5767 72.3226 70.6361C71.7703 70.991 71.613 71.7219 71.9712 72.2687L77.0048 80.0761L75.2673 81.1737L70.2337 73.3663Z' fill='%230549A3'/%3E%3Cpath d='M58.5053 65.0421L52.9263 70.5745H31.5848V43.2191C31.5914 36.7817 36.8607 31.5647 43.3627 31.5582H70.9895V52.6877L66.9543 56.6829L69.1268 58.1582L73.1949 54.1335C73.4363 53.8937 73.5725 53.5694 73.5733 53.2307V30.2806C73.5751 29.5751 72.9985 29.0018 72.2859 29H72.2829H43.3746C35.4422 29.0032 29.0108 35.3657 29.001 43.2191V71.8403C29.001 72.5458 29.5788 73.118 30.2914 73.118H53.4598C53.8019 73.1177 54.13 72.9828 54.3717 72.7432L59.0238 68.1373L58.5053 65.0421Z' fill='%23283277'/%3E%3Cpath d='M117.112 59.3269C117.112 61.4841 116.879 63.4933 116.414 65.3545C115.948 67.2156 115.124 68.8441 113.939 70.24C112.797 71.6358 111.232 72.7356 109.244 73.5393C107.298 74.343 104.824 74.7448 101.821 74.7448C99.0288 74.7448 96.5966 74.3641 94.524 73.6027C92.4936 72.7991 90.9286 71.9531 89.8288 71.0648L92.684 64.7834C93.7414 65.5025 95.0316 66.2004 96.5543 66.8772C98.1194 67.5117 99.7056 67.829 101.313 67.829C104.02 67.829 105.987 67.1522 107.214 65.7986C108.44 64.445 109.054 62.1186 109.054 58.8193V29.8234H117.112V59.3269Z' fill='%230549A3'/%3E%3Cpath d='M50.0913 109.922C50.942 109.585 51.7927 109.152 52.6433 108.624C53.5087 108.096 54.2713 107.473 54.9313 106.754H56.8013V122H54.1393V110.318C53.7433 110.626 53.2447 110.927 52.6433 111.22C52.042 111.513 51.4627 111.755 50.9053 111.946L50.0913 109.922ZM70.348 119.712C70.5093 119.727 70.722 119.741 70.986 119.756C71.25 119.756 71.6093 119.756 72.064 119.756C73.9267 119.756 75.3127 119.287 76.222 118.348C77.146 117.395 77.608 116.067 77.608 114.366C77.608 112.635 77.1607 111.308 76.266 110.384C75.3713 109.46 73.9853 108.998 72.108 108.998C71.2867 108.998 70.7 109.02 70.348 109.064V119.712ZM80.512 114.366C80.512 115.686 80.3067 116.837 79.896 117.82C79.4853 118.788 78.8987 119.602 78.136 120.262C77.388 120.907 76.4787 121.391 75.408 121.714C74.352 122.022 73.1787 122.176 71.888 122.176C71.272 122.176 70.5753 122.147 69.798 122.088C69.0207 122.044 68.28 121.941 67.576 121.78V106.974C68.28 106.813 69.028 106.71 69.82 106.666C70.612 106.622 71.316 106.6 71.932 106.6C73.208 106.6 74.374 106.754 75.43 107.062C76.486 107.355 77.388 107.825 78.136 108.47C78.8987 109.101 79.4853 109.907 79.896 110.89C80.3067 111.858 80.512 113.017 80.512 114.366ZM83.5389 122V106.754H93.3289V109.108H86.3109V112.87H92.5589V115.18H86.3109V119.646H93.8569V122H83.5389ZM106.704 122C106.205 121.164 105.648 120.269 105.032 119.316C104.416 118.348 103.778 117.38 103.118 116.412C102.458 115.429 101.783 114.483 101.094 113.574C100.419 112.65 99.7735 111.821 99.1575 111.088V122H96.4295V106.754H98.6955C99.2822 107.37 99.9128 108.103 100.588 108.954C101.262 109.79 101.937 110.663 102.612 111.572C103.301 112.481 103.961 113.398 104.592 114.322C105.237 115.231 105.809 116.082 106.308 116.874V106.754H109.058V122H106.704Z' fill='white'/%3E%3C/svg%3E%0A\";\n\nexport {\n  vignetteAnnual,\n  vignetteAnnualShadow,\n  vignetteMonth,\n  vignetteMonthShadow,\n  vignette10Days,\n  vignette10DaysShadow,\n  vignetteOneDay,\n  vignetteOneDayShadow,\n};\n","const vignetteAnnualENShadow =\n  \"data:image/svg+xml,%3Csvg viewBox='0 0 170 170' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg filter='url(%23filter0_d_4698_11736)'%3E%3Crect x='20' y='15' width='130' height='130' rx='16' fill='white'/%3E%3C/g%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M64.3332 53.9621C65.1075 53.5602 65.9983 53.4363 66.8545 53.6109L66.187 49.7308H70.252C70.9482 49.7326 71.5141 49.1749 71.5156 48.4857V48.4739V43.4843C71.5156 42.7951 70.9511 42.2362 70.255 42.2362H70.252H64.9263L63.8415 35.7861C63.742 35.1877 63.2231 34.7463 62.6107 34.7387H58.8109C58.1129 34.7369 57.5461 35.2957 57.5443 35.9868V35.9897V42.2362H55.026V35.9897C55.026 35.2987 54.4603 34.7387 53.7624 34.7387H49.9775C49.3594 34.7392 48.8325 35.1824 48.7317 35.7861L47.6439 42.2362H42.3212C41.6251 42.2345 41.0594 42.7921 41.0576 43.4814V43.4843V48.4739C41.0576 49.1631 41.6221 49.722 42.3183 49.722H42.3212H46.3863L43.6832 65.9299C43.5697 66.61 44.0343 67.2523 44.7212 67.3647C44.7901 67.376 44.8595 67.3816 44.9289 67.3816H53.7624C54.4603 67.3816 55.026 66.8215 55.026 66.1305V49.7308H57.5443V66.1393C57.544 66.4565 57.6668 66.7616 57.887 66.9921L60.0685 64.8322V49.7308H63.6299L64.3332 53.9621ZM60.0715 37.2378H61.5259L62.3693 42.2362H60.0715V37.2378ZM52.5017 37.2378H51.0474L50.204 42.2362H52.5017V37.2378ZM52.5017 64.8912H46.4161L48.9433 49.7308H52.5017V64.8912ZM68.9884 44.7354H43.5819V47.2317H68.9884V44.7354Z' fill='%23283277'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M78.8826 83.4633C79.0537 83.7292 79.3252 83.9162 79.6366 83.9826L79.6426 83.9738C79.9501 84.0396 80.2714 83.9823 80.5367 83.8144L84.2947 81.4392C84.5638 81.271 84.7537 81.0034 84.8222 80.6956C84.8896 80.3914 84.8327 80.0733 84.6643 79.8104L79.8303 72.3011L84.7626 70.7549C85.0282 70.6755 85.2574 70.5071 85.4108 70.2787C85.7756 69.7358 85.6266 69.0034 85.0785 68.6422L66.771 56.3233C66.6458 56.2383 66.5051 56.1782 66.3567 56.1463C66.1925 56.1073 66.0217 56.1035 65.8557 56.1348C65.209 56.2569 64.7849 56.8751 64.9083 57.5154L68.4846 79.1436C68.5618 79.5903 68.8869 79.9559 69.325 80.0878L69.4114 80.1114C69.8296 80.2031 70.2653 80.0656 70.5529 79.7514L74.0487 75.9569L78.8826 83.4633ZM75.2348 73.3662C75.0626 73.1027 74.7931 72.9162 74.4838 72.8469V72.8558C74.4325 72.8448 74.381 72.8369 74.3288 72.8322C73.9575 72.8018 73.5927 72.9422 73.3394 73.2128L70.4545 76.3316L67.7306 59.8434L81.684 69.2324L77.622 70.4982C77.5165 70.5304 77.4163 70.5767 77.3237 70.636C76.7714 70.991 76.6141 71.7218 76.9723 72.2686L82.0059 80.076L80.2684 81.1736L75.2348 73.3662Z' fill='%235DA231'/%3E%3Cpath d='M63.5043 65.0421L57.9253 70.5745H36.5839V43.2191C36.5904 36.7817 41.8598 31.5647 48.3617 31.5582H75.9885V52.6877L71.9533 56.6829L74.1259 58.1582L78.1939 54.1335C78.4353 53.8937 78.5715 53.5694 78.5724 53.2306V30.2806C78.5742 29.5751 77.9975 29.0018 77.2849 29H77.2819H48.3737C40.4412 29.0032 34.0098 35.3657 34 43.2191V71.8403C34 72.5458 34.5779 73.118 35.2904 73.118H58.4588C58.8009 73.1177 59.129 72.9828 59.3707 72.7432L64.0229 68.1373L63.5043 65.0421Z' fill='%23283277'/%3E%3Crect x='33.9414' y='97' width='102' height='34' rx='8' fill='%235DA231'/%3E%3Cpath d='M49.6236 109.922C50.4742 109.585 51.3249 109.152 52.1756 108.624C53.0409 108.096 53.8036 107.473 54.4636 106.754H56.3336V122H53.6716V110.318C53.2756 110.626 52.7769 110.927 52.1756 111.22C51.5742 111.513 50.9949 111.755 50.4376 111.946L49.6236 109.922ZM72.2342 113.508C72.8942 112.408 73.5396 111.293 74.1702 110.164C74.8009 109.035 75.3729 107.898 75.8862 106.754H78.9662C78.1449 108.309 77.2869 109.856 76.3922 111.396C75.5122 112.921 74.5662 114.461 73.5542 116.016V122H70.7822V116.06C69.7702 114.491 68.8169 112.936 67.9222 111.396C67.0276 109.856 66.1696 108.309 65.3482 106.754H68.6042C69.1176 107.898 69.6822 109.035 70.2982 110.164C70.9142 111.293 71.5596 112.408 72.2342 113.508ZM80.8582 122V106.754H90.6482V109.108H83.6302V112.87H89.8782V115.18H83.6302V119.646H91.1762V122H80.8582ZM104.191 122C103.986 121.399 103.773 120.805 103.553 120.218C103.333 119.631 103.12 119.03 102.915 118.414H96.4911C96.2858 119.03 96.0731 119.639 95.8531 120.24C95.6478 120.827 95.4425 121.413 95.2371 122H92.3551C92.9271 120.372 93.4698 118.869 93.9831 117.49C94.4965 116.111 94.9951 114.806 95.4791 113.574C95.9778 112.342 96.4691 111.169 96.9531 110.054C97.4371 108.939 97.9358 107.839 98.4491 106.754H101.067C101.58 107.839 102.079 108.939 102.563 110.054C103.047 111.169 103.531 112.342 104.015 113.574C104.514 114.806 105.02 116.111 105.533 117.49C106.061 118.869 106.611 120.372 107.183 122H104.191ZM99.7031 109.702C99.3658 110.479 98.9771 111.425 98.5371 112.54C98.1118 113.655 97.6645 114.865 97.1951 116.17H102.211C101.742 114.865 101.287 113.647 100.847 112.518C100.407 111.389 100.026 110.45 99.7031 109.702ZM113.312 106.6C115.512 106.6 117.192 107.003 118.35 107.81C119.524 108.617 120.11 109.849 120.11 111.506C120.11 113.574 119.091 114.975 117.052 115.708C117.331 116.045 117.646 116.456 117.998 116.94C118.35 117.424 118.71 117.952 119.076 118.524C119.443 119.081 119.795 119.661 120.132 120.262C120.47 120.849 120.77 121.428 121.034 122H117.932C117.654 121.472 117.353 120.944 117.03 120.416C116.708 119.873 116.378 119.353 116.04 118.854C115.718 118.341 115.395 117.864 115.072 117.424C114.75 116.969 114.449 116.566 114.17 116.214C113.965 116.229 113.789 116.236 113.642 116.236C113.496 116.236 113.356 116.236 113.224 116.236H111.882V122H109.11V106.974C109.785 106.827 110.504 106.732 111.266 106.688C112.029 106.629 112.711 106.6 113.312 106.6ZM113.51 108.998C112.924 108.998 112.381 109.02 111.882 109.064V113.992H113.092C113.767 113.992 114.361 113.955 114.874 113.882C115.388 113.809 115.813 113.677 116.15 113.486C116.502 113.295 116.766 113.039 116.942 112.716C117.118 112.393 117.206 111.983 117.206 111.484C117.206 111.015 117.118 110.619 116.942 110.296C116.766 109.973 116.51 109.717 116.172 109.526C115.85 109.335 115.461 109.203 115.006 109.13C114.552 109.042 114.053 108.998 113.51 108.998Z' fill='white'/%3E%3Cpath d='M111.732 48.9351C113.719 45.6883 115.662 42.3983 117.561 39.0649C119.459 35.7316 121.181 32.3766 122.727 29H132C129.527 33.5887 126.944 38.1558 124.25 42.7013C121.601 47.2035 118.753 51.7489 115.706 56.3377V74H107.36V56.4675C104.313 51.8355 101.443 47.2467 98.7496 42.7013C96.056 38.1558 93.4728 33.5887 91 29H100.803C102.348 32.3766 104.048 35.7316 105.903 39.0649C107.758 42.3983 109.701 45.6883 111.732 48.9351Z' fill='%235DA231'/%3E%3Cdefs%3E%3Cfilter id='filter0_d_4698_11736' x='0' y='0' width='170' height='170' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'%3E%3CfeFlood flood-opacity='0' result='BackgroundImageFix'/%3E%3CfeColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/%3E%3CfeOffset dy='5'/%3E%3CfeGaussianBlur stdDeviation='10'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.178622 0'/%3E%3CfeBlend mode='normal' in2='BackgroundImageFix' result='effect1_dropShadow_4698_11736'/%3E%3CfeBlend mode='normal' in='SourceGraphic' in2='effect1_dropShadow_4698_11736' result='shape'/%3E%3C/filter%3E%3C/defs%3E%3C/svg%3E%0A\";\n\nconst vignetteAnnualEN =\n  \"data:image/svg+xml,%3Csvg viewBox='0 0 160 160' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M59.3332 53.9621C60.1075 53.5602 60.9983 53.4363 61.8545 53.6109L61.187 49.7308H65.252C65.9482 49.7326 66.5141 49.1749 66.5156 48.4857V48.4739V43.4843C66.5156 42.7951 65.9511 42.2362 65.255 42.2362H65.252H59.9263L58.8415 35.7861C58.742 35.1877 58.2231 34.7463 57.6107 34.7387H53.8109C53.1129 34.7369 52.5461 35.2957 52.5443 35.9868V35.9897V42.2362H50.026V35.9897C50.026 35.2987 49.4603 34.7387 48.7624 34.7387H44.9775C44.3594 34.7392 43.8325 35.1824 43.7317 35.7861L42.6439 42.2362H37.3212C36.6251 42.2345 36.0594 42.7921 36.0576 43.4814V43.4843V48.4739C36.0576 49.1631 36.6221 49.722 37.3183 49.722H37.3212H41.3863L38.6832 65.9299C38.5697 66.61 39.0343 67.2523 39.7212 67.3647C39.7901 67.376 39.8595 67.3816 39.9289 67.3816H48.7624C49.4603 67.3816 50.026 66.8215 50.026 66.1305V49.7308H52.5443V66.1393C52.544 66.4565 52.6668 66.7616 52.887 66.9921L55.0685 64.8322V49.7308H58.6299L59.3332 53.9621ZM55.0715 37.2378H56.5259L57.3693 42.2362H55.0715V37.2378ZM47.5017 37.2378H46.0474L45.204 42.2362H47.5017V37.2378ZM47.5017 64.8912H41.4161L43.9433 49.7308H47.5017V64.8912ZM63.9884 44.7354H38.5819V47.2317H63.9884V44.7354Z' fill='%23283277'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M73.8826 83.4633C74.0537 83.7292 74.3252 83.9162 74.6366 83.9826L74.6426 83.9738C74.9501 84.0396 75.2714 83.9823 75.5367 83.8144L79.2947 81.4392C79.5638 81.271 79.7537 81.0034 79.8222 80.6956C79.8896 80.3914 79.8327 80.0733 79.6643 79.8104L74.8303 72.3011L79.7626 70.7549C80.0282 70.6755 80.2574 70.5071 80.4108 70.2787C80.7756 69.7358 80.6266 69.0034 80.0785 68.6422L61.771 56.3233C61.6458 56.2383 61.5051 56.1782 61.3567 56.1463C61.1925 56.1073 61.0217 56.1035 60.8557 56.1348C60.209 56.2569 59.7849 56.8751 59.9083 57.5154L63.4846 79.1436C63.5618 79.5903 63.8869 79.9559 64.325 80.0878L64.4114 80.1114C64.8296 80.2031 65.2653 80.0656 65.5529 79.7514L69.0487 75.9569L73.8826 83.4633ZM70.2348 73.3662C70.0626 73.1027 69.7931 72.9162 69.4838 72.8469V72.8558C69.4325 72.8448 69.381 72.8369 69.3288 72.8322C68.9575 72.8018 68.5927 72.9422 68.3394 73.2128L65.4545 76.3316L62.7306 59.8434L76.684 69.2324L72.622 70.4982C72.5165 70.5304 72.4163 70.5767 72.3237 70.636C71.7714 70.991 71.6141 71.7218 71.9723 72.2686L77.0059 80.076L75.2684 81.1736L70.2348 73.3662Z' fill='%235DA231'/%3E%3Cpath d='M58.5043 65.0421L52.9253 70.5745H31.5839V43.2191C31.5904 36.7817 36.8598 31.5647 43.3617 31.5582H70.9885V52.6877L66.9533 56.6829L69.1259 58.1582L73.1939 54.1335C73.4353 53.8937 73.5715 53.5694 73.5724 53.2306V30.2806C73.5742 29.5751 72.9975 29.0018 72.2849 29H72.2819H43.3737C35.4412 29.0032 29.0098 35.3657 29 43.2191V71.8403C29 72.5458 29.5779 73.118 30.2904 73.118H53.4588C53.8009 73.1177 54.129 72.9828 54.3707 72.7432L59.0229 68.1373L58.5043 65.0421Z' fill='%23283277'/%3E%3Crect x='28.9414' y='97' width='102' height='34' rx='8' fill='%235DA231'/%3E%3Cpath d='M44.6236 109.922C45.4742 109.585 46.3249 109.152 47.1756 108.624C48.0409 108.096 48.8036 107.473 49.4636 106.754H51.3336V122H48.6716V110.318C48.2756 110.626 47.7769 110.927 47.1756 111.22C46.5742 111.513 45.9949 111.755 45.4376 111.946L44.6236 109.922ZM67.2342 113.508C67.8942 112.408 68.5396 111.293 69.1702 110.164C69.8009 109.035 70.3729 107.898 70.8862 106.754H73.9662C73.1449 108.309 72.2869 109.856 71.3922 111.396C70.5122 112.921 69.5662 114.461 68.5542 116.016V122H65.7822V116.06C64.7702 114.491 63.8169 112.936 62.9222 111.396C62.0276 109.856 61.1696 108.309 60.3482 106.754H63.6042C64.1176 107.898 64.6822 109.035 65.2982 110.164C65.9142 111.293 66.5596 112.408 67.2342 113.508ZM75.8582 122V106.754H85.6482V109.108H78.6302V112.87H84.8782V115.18H78.6302V119.646H86.1762V122H75.8582ZM99.1911 122C98.9858 121.399 98.7731 120.805 98.5531 120.218C98.3331 119.631 98.1205 119.03 97.9151 118.414H91.4911C91.2858 119.03 91.0731 119.639 90.8531 120.24C90.6478 120.827 90.4425 121.413 90.2371 122H87.3551C87.9271 120.372 88.4698 118.869 88.9831 117.49C89.4965 116.111 89.9951 114.806 90.4791 113.574C90.9778 112.342 91.4691 111.169 91.9531 110.054C92.4371 108.939 92.9358 107.839 93.4491 106.754H96.0671C96.5805 107.839 97.0791 108.939 97.5631 110.054C98.0471 111.169 98.5311 112.342 99.0151 113.574C99.5138 114.806 100.02 116.111 100.533 117.49C101.061 118.869 101.611 120.372 102.183 122H99.1911ZM94.7031 109.702C94.3658 110.479 93.9771 111.425 93.5371 112.54C93.1118 113.655 92.6645 114.865 92.1951 116.17H97.2111C96.7418 114.865 96.2871 113.647 95.8471 112.518C95.4071 111.389 95.0258 110.45 94.7031 109.702ZM108.312 106.6C110.512 106.6 112.192 107.003 113.35 107.81C114.524 108.617 115.11 109.849 115.11 111.506C115.11 113.574 114.091 114.975 112.052 115.708C112.331 116.045 112.646 116.456 112.998 116.94C113.35 117.424 113.71 117.952 114.076 118.524C114.443 119.081 114.795 119.661 115.132 120.262C115.47 120.849 115.77 121.428 116.034 122H112.932C112.654 121.472 112.353 120.944 112.03 120.416C111.708 119.873 111.378 119.353 111.04 118.854C110.718 118.341 110.395 117.864 110.072 117.424C109.75 116.969 109.449 116.566 109.17 116.214C108.965 116.229 108.789 116.236 108.642 116.236C108.496 116.236 108.356 116.236 108.224 116.236H106.882V122H104.11V106.974C104.785 106.827 105.504 106.732 106.266 106.688C107.029 106.629 107.711 106.6 108.312 106.6ZM108.51 108.998C107.924 108.998 107.381 109.02 106.882 109.064V113.992H108.092C108.767 113.992 109.361 113.955 109.874 113.882C110.388 113.809 110.813 113.677 111.15 113.486C111.502 113.295 111.766 113.039 111.942 112.716C112.118 112.393 112.206 111.983 112.206 111.484C112.206 111.015 112.118 110.619 111.942 110.296C111.766 109.973 111.51 109.717 111.172 109.526C110.85 109.335 110.461 109.203 110.006 109.13C109.552 109.042 109.053 108.998 108.51 108.998Z' fill='white'/%3E%3Cpath d='M106.732 48.9351C108.719 45.6883 110.662 42.3983 112.561 39.0649C114.459 35.7316 116.181 32.3766 117.727 29H127C124.527 33.5887 121.944 38.1558 119.25 42.7013C116.601 47.2035 113.753 51.7489 110.706 56.3377V74H102.36V56.4675C99.3134 51.8355 96.4432 47.2467 93.7496 42.7013C91.056 38.1558 88.4728 33.5887 86 29H95.8029C97.3484 32.3766 99.0485 35.7316 100.903 39.0649C102.758 42.3983 104.701 45.6883 106.732 48.9351Z' fill='%235DA231'/%3E%3C/svg%3E%0A\";\n\nconst vignetteMonthENShadow =\n  \"data:image/svg+xml,%3Csvg viewBox='0 0 170 170' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg filter='url(%23filter0_d_4698_11848)'%3E%3Crect x='20' y='15' width='130' height='130' rx='16' fill='white'/%3E%3C/g%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M64.3332 53.9621C65.1075 53.5602 65.9983 53.4363 66.8545 53.6109L66.187 49.7308H70.252C70.9482 49.7326 71.5141 49.1749 71.5156 48.4857V48.4739V43.4843C71.5156 42.7951 70.9511 42.2362 70.255 42.2362H70.252H64.9263L63.8415 35.7861C63.742 35.1877 63.2231 34.7463 62.6107 34.7387H58.8109C58.1129 34.7369 57.5461 35.2957 57.5443 35.9868V35.9897V42.2362H55.026V35.9897C55.026 35.2987 54.4603 34.7387 53.7624 34.7387H49.9775C49.3594 34.7392 48.8325 35.1824 48.7317 35.7861L47.6439 42.2362H42.3212C41.6251 42.2345 41.0594 42.7921 41.0576 43.4814V43.4843V48.4739C41.0576 49.1631 41.6221 49.722 42.3183 49.722H42.3212H46.3863L43.6832 65.9299C43.5697 66.61 44.0343 67.2523 44.7212 67.3647C44.7901 67.376 44.8595 67.3816 44.9289 67.3816H53.7624C54.4603 67.3816 55.026 66.8215 55.026 66.1305V49.7308H57.5443V66.1393C57.544 66.4565 57.6668 66.7616 57.887 66.9921L60.0685 64.8322V49.7308H63.6299L64.3332 53.9621ZM60.0715 37.2378H61.5259L62.3693 42.2362H60.0715V37.2378ZM52.5017 37.2378H51.0474L50.204 42.2362H52.5017V37.2378ZM52.5017 64.8912H46.4161L48.9433 49.7308H52.5017V64.8912ZM68.9884 44.7354H43.5819V47.2317H68.9884V44.7354Z' fill='%23283277'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M78.8826 83.4633C79.0537 83.7292 79.3252 83.9162 79.6366 83.9826L79.6426 83.9738C79.9501 84.0396 80.2714 83.9823 80.5367 83.8144L84.2947 81.4392C84.5638 81.271 84.7537 81.0034 84.8222 80.6956C84.8896 80.3914 84.8327 80.0733 84.6643 79.8104L79.8303 72.3011L84.7626 70.7549C85.0282 70.6755 85.2574 70.5071 85.4108 70.2787C85.7756 69.7358 85.6266 69.0034 85.0785 68.6422L66.771 56.3233C66.6458 56.2383 66.5051 56.1782 66.3567 56.1463C66.1925 56.1073 66.0217 56.1035 65.8557 56.1348C65.209 56.2569 64.7849 56.8751 64.9083 57.5154L68.4846 79.1436C68.5618 79.5903 68.8869 79.9559 69.325 80.0878L69.4114 80.1114C69.8296 80.2031 70.2653 80.0656 70.5529 79.7514L74.0487 75.9569L78.8826 83.4633ZM75.2348 73.3662C75.0626 73.1027 74.7931 72.9162 74.4838 72.8469V72.8558C74.4325 72.8448 74.381 72.8369 74.3288 72.8322C73.9575 72.8018 73.5927 72.9422 73.3394 73.2128L70.4545 76.3316L67.7306 59.8434L81.684 69.2324L77.622 70.4982C77.5165 70.5304 77.4163 70.5767 77.3237 70.636C76.7714 70.991 76.6141 71.7218 76.9723 72.2686L82.0059 80.076L80.2684 81.1736L75.2348 73.3662Z' fill='%23E9AF00'/%3E%3Cpath d='M63.5043 65.0421L57.9253 70.5745H36.5839V43.2191C36.5904 36.7817 41.8598 31.5647 48.3617 31.5582H75.9885V52.6877L71.9533 56.6829L74.1259 58.1582L78.1939 54.1335C78.4353 53.8937 78.5715 53.5694 78.5724 53.2306V30.2806C78.5742 29.5751 77.9975 29.0018 77.2849 29H77.2819H48.3737C40.4412 29.0032 34.0098 35.3657 34 43.2191V71.8403C34 72.5458 34.5779 73.118 35.2904 73.118H58.4588C58.8009 73.1177 59.129 72.9828 59.3707 72.7432L64.0229 68.1373L63.5043 65.0421Z' fill='%23283277'/%3E%3Crect x='34' y='97' width='102' height='34' rx='8' fill='%23E9AF00'/%3E%3Cpath d='M47.2711 122.33C46.8751 122.33 46.4644 122.301 46.0391 122.242C45.6284 122.198 45.2324 122.132 44.8511 122.044C44.4844 121.971 44.1471 121.89 43.8391 121.802C43.5311 121.699 43.2964 121.604 43.1351 121.516L43.6631 119.25C43.9711 119.397 44.4184 119.565 45.0051 119.756C45.5918 119.932 46.3178 120.02 47.1831 120.02C48.3418 120.02 49.1778 119.8 49.6911 119.36C50.2044 118.905 50.4611 118.304 50.4611 117.556C50.4611 117.072 50.3584 116.669 50.1531 116.346C49.9624 116.023 49.6911 115.767 49.3391 115.576C49.0018 115.371 48.6058 115.231 48.1511 115.158C47.7111 115.07 47.2418 115.026 46.7431 115.026H45.8411V112.87H46.9411C47.2784 112.87 47.6158 112.841 47.9531 112.782C48.3051 112.709 48.6204 112.591 48.8991 112.43C49.1778 112.254 49.4051 112.027 49.5811 111.748C49.7571 111.469 49.8451 111.11 49.8451 110.67C49.8451 110.318 49.7791 110.017 49.6471 109.768C49.5151 109.519 49.3391 109.313 49.1191 109.152C48.9138 108.991 48.6718 108.873 48.3931 108.8C48.1144 108.727 47.8211 108.69 47.5131 108.69C46.8531 108.69 46.2664 108.793 45.7531 108.998C45.2398 109.189 44.7851 109.409 44.3891 109.658L43.4211 107.678C43.6264 107.546 43.8758 107.407 44.1691 107.26C44.4624 107.113 44.7851 106.974 45.1371 106.842C45.5038 106.71 45.8924 106.607 46.3031 106.534C46.7138 106.446 47.1464 106.402 47.6011 106.402C48.4518 106.402 49.1851 106.505 49.8011 106.71C50.4171 106.915 50.9231 107.209 51.3191 107.59C51.7298 107.957 52.0304 108.397 52.2211 108.91C52.4264 109.409 52.5291 109.959 52.5291 110.56C52.5291 111.264 52.3311 111.895 51.9351 112.452C51.5538 113.009 51.0551 113.435 50.4391 113.728C51.2311 114.007 51.8838 114.469 52.3971 115.114C52.9251 115.759 53.1891 116.588 53.1891 117.6C53.1891 118.275 53.0718 118.905 52.8371 119.492C52.6024 120.064 52.2431 120.563 51.7591 120.988C51.2751 121.399 50.6591 121.729 49.9111 121.978C49.1778 122.213 48.2978 122.33 47.2711 122.33ZM66.133 114.366C66.133 116.933 65.6637 118.905 64.725 120.284C63.7863 121.648 62.4883 122.33 60.831 122.33C59.1737 122.33 57.8757 121.648 56.937 120.284C55.9983 118.905 55.529 116.933 55.529 114.366C55.529 113.09 55.6463 111.961 55.881 110.978C56.1303 109.981 56.4823 109.145 56.937 108.47C57.4063 107.795 57.9637 107.282 58.609 106.93C59.269 106.578 60.0097 106.402 60.831 106.402C62.4883 106.402 63.7863 107.091 64.725 108.47C65.6637 109.834 66.133 111.799 66.133 114.366ZM63.383 114.366C63.383 113.574 63.339 112.833 63.251 112.144C63.163 111.455 63.0163 110.861 62.811 110.362C62.6203 109.849 62.3637 109.445 62.041 109.152C61.7183 108.859 61.315 108.712 60.831 108.712C60.347 108.712 59.9363 108.859 59.599 109.152C59.2763 109.445 59.0123 109.849 58.807 110.362C58.6163 110.861 58.477 111.455 58.389 112.144C58.3157 112.833 58.279 113.574 58.279 114.366C58.279 115.158 58.3157 115.899 58.389 116.588C58.477 117.277 58.6163 117.879 58.807 118.392C59.0123 118.891 59.2763 119.287 59.599 119.58C59.9363 119.873 60.347 120.02 60.831 120.02C61.315 120.02 61.7183 119.873 62.041 119.58C62.3637 119.287 62.6203 118.891 62.811 118.392C63.0163 117.879 63.163 117.277 63.251 116.588C63.339 115.899 63.383 115.158 63.383 114.366ZM76.8197 119.712C76.981 119.727 77.1937 119.741 77.4577 119.756C77.7217 119.756 78.081 119.756 78.5357 119.756C80.3983 119.756 81.7843 119.287 82.6937 118.348C83.6177 117.395 84.0797 116.067 84.0797 114.366C84.0797 112.635 83.6323 111.308 82.7377 110.384C81.843 109.46 80.457 108.998 78.5797 108.998C77.7583 108.998 77.1717 109.02 76.8197 109.064V119.712ZM86.9837 114.366C86.9837 115.686 86.7783 116.837 86.3677 117.82C85.957 118.788 85.3703 119.602 84.6077 120.262C83.8597 120.907 82.9503 121.391 81.8797 121.714C80.8237 122.022 79.6503 122.176 78.3597 122.176C77.7437 122.176 77.047 122.147 76.2697 122.088C75.4923 122.044 74.7517 121.941 74.0477 121.78V106.974C74.7517 106.813 75.4997 106.71 76.2917 106.666C77.0837 106.622 77.7877 106.6 78.4037 106.6C79.6797 106.6 80.8457 106.754 81.9017 107.062C82.9577 107.355 83.8597 107.825 84.6077 108.47C85.3703 109.101 85.957 109.907 86.3677 110.89C86.7783 111.858 86.9837 113.017 86.9837 114.366ZM99.7653 122C99.56 121.399 99.3473 120.805 99.1273 120.218C98.9073 119.631 98.6947 119.03 98.4893 118.414H92.0653C91.86 119.03 91.6473 119.639 91.4273 120.24C91.222 120.827 91.0167 121.413 90.8113 122H87.9293C88.5013 120.372 89.044 118.869 89.5573 117.49C90.0707 116.111 90.5693 114.806 91.0533 113.574C91.552 112.342 92.0433 111.169 92.5273 110.054C93.0113 108.939 93.51 107.839 94.0233 106.754H96.6413C97.1547 107.839 97.6533 108.939 98.1373 110.054C98.6213 111.169 99.1053 112.342 99.5893 113.574C100.088 114.806 100.594 116.111 101.107 117.49C101.635 118.869 102.185 120.372 102.757 122H99.7653ZM95.2773 109.702C94.94 110.479 94.5513 111.425 94.1113 112.54C93.686 113.655 93.2387 114.865 92.7693 116.17H97.7853C97.316 114.865 96.8613 113.647 96.4213 112.518C95.9813 111.389 95.6 110.45 95.2773 109.702ZM108.242 113.508C108.902 112.408 109.547 111.293 110.178 110.164C110.809 109.035 111.381 107.898 111.894 106.754H114.974C114.153 108.309 113.295 109.856 112.4 111.396C111.52 112.921 110.574 114.461 109.562 116.016V122H106.79V116.06C105.778 114.491 104.825 112.936 103.93 111.396C103.035 109.856 102.177 108.309 101.356 106.754H104.612C105.125 107.898 105.69 109.035 106.306 110.164C106.922 111.293 107.567 112.408 108.242 113.508ZM120.562 119.932C121.559 119.932 122.285 119.763 122.74 119.426C123.195 119.089 123.422 118.612 123.422 117.996C123.422 117.629 123.341 117.314 123.18 117.05C123.033 116.786 122.813 116.551 122.52 116.346C122.241 116.126 121.897 115.928 121.486 115.752C121.075 115.561 120.606 115.378 120.078 115.202C119.55 115.011 119.037 114.806 118.538 114.586C118.054 114.351 117.621 114.065 117.24 113.728C116.873 113.391 116.573 112.987 116.338 112.518C116.118 112.049 116.008 111.484 116.008 110.824C116.008 109.445 116.485 108.367 117.438 107.59C118.391 106.798 119.689 106.402 121.332 106.402C122.285 106.402 123.129 106.512 123.862 106.732C124.61 106.937 125.197 107.165 125.622 107.414L124.764 109.658C124.265 109.379 123.715 109.167 123.114 109.02C122.527 108.873 121.919 108.8 121.288 108.8C120.54 108.8 119.953 108.954 119.528 109.262C119.117 109.57 118.912 110.003 118.912 110.56C118.912 110.897 118.978 111.191 119.11 111.44C119.257 111.675 119.455 111.887 119.704 112.078C119.968 112.269 120.269 112.445 120.606 112.606C120.958 112.767 121.339 112.921 121.75 113.068C122.469 113.332 123.107 113.603 123.664 113.882C124.236 114.146 124.713 114.469 125.094 114.85C125.49 115.217 125.791 115.657 125.996 116.17C126.201 116.669 126.304 117.277 126.304 117.996C126.304 119.375 125.813 120.445 124.83 121.208C123.862 121.956 122.439 122.33 120.562 122.33C119.931 122.33 119.352 122.286 118.824 122.198C118.311 122.125 117.849 122.029 117.438 121.912C117.042 121.795 116.697 121.677 116.404 121.56C116.111 121.428 115.876 121.311 115.7 121.208L116.514 118.942C116.91 119.162 117.445 119.382 118.12 119.602C118.795 119.822 119.609 119.932 120.562 119.932Z' fill='white'/%3E%3Cpath d='M98.0185 29C98.9691 30.645 100.028 32.658 101.194 35.039C102.361 37.4199 103.549 39.9307 104.759 42.5714C105.969 45.1688 107.157 47.8312 108.324 50.5584C109.534 53.2424 110.636 55.7316 111.63 58.026C112.623 55.7316 113.704 53.2424 114.87 50.5584C116.037 47.8312 117.225 45.1688 118.435 42.5714C119.645 39.9307 120.833 37.4199 122 35.039C123.167 32.658 124.225 30.645 125.176 29H132.565C132.954 32.29 133.321 35.7965 133.667 39.5195C134.012 43.1991 134.315 46.987 134.574 50.8831C134.877 54.7359 135.136 58.632 135.352 62.5714C135.611 66.4675 135.827 70.2771 136 74H127.963C127.79 68.7619 127.574 63.3723 127.315 57.8312C127.099 52.29 126.753 46.9221 126.278 41.7273C125.802 42.7229 125.241 43.9134 124.593 45.2987C123.944 46.684 123.253 48.1991 122.519 49.8442C121.784 51.4459 121.028 53.1126 120.25 54.8442C119.515 56.5758 118.781 58.2641 118.046 59.9091C117.355 61.5108 116.707 63.026 116.102 64.4545C115.497 65.8398 114.978 67.0303 114.546 68.026H108.454C108.022 67.0303 107.503 65.8182 106.898 64.3896C106.293 62.961 105.623 61.4459 104.889 59.8442C104.198 58.1991 103.463 56.5108 102.685 54.7792C101.951 53.0476 101.216 51.3809 100.481 49.7792C99.7469 48.1775 99.0556 46.684 98.4074 45.2987C97.7593 43.8701 97.1975 42.6797 96.7222 41.7273C96.2469 46.9221 95.8796 52.29 95.6204 57.8312C95.4043 63.3723 95.2099 68.7619 95.037 74H87C87.1728 70.2771 87.3673 66.4242 87.5833 62.4416C87.8426 58.4589 88.1019 54.5195 88.3611 50.6234C88.6636 46.684 88.9877 42.8745 89.3333 39.1948C89.679 35.5151 90.0463 32.1169 90.4352 29H98.0185Z' fill='%23E9AF00'/%3E%3Cdefs%3E%3Cfilter id='filter0_d_4698_11848' x='0' y='0' width='170' height='170' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'%3E%3CfeFlood flood-opacity='0' result='BackgroundImageFix'/%3E%3CfeColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/%3E%3CfeOffset dy='5'/%3E%3CfeGaussianBlur stdDeviation='10'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.178622 0'/%3E%3CfeBlend mode='normal' in2='BackgroundImageFix' result='effect1_dropShadow_4698_11848'/%3E%3CfeBlend mode='normal' in='SourceGraphic' in2='effect1_dropShadow_4698_11848' result='shape'/%3E%3C/filter%3E%3C/defs%3E%3C/svg%3E%0A\";\n\nconst vignetteMonthEN =\n  \"data:image/svg+xml,%3Csvg viewBox='0 0 160 160' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M59.3332 53.9621C60.1075 53.5602 60.9983 53.4363 61.8545 53.6109L61.187 49.7308H65.252C65.9482 49.7326 66.5141 49.1749 66.5156 48.4857V48.4739V43.4843C66.5156 42.7951 65.9511 42.2362 65.255 42.2362H65.252H59.9263L58.8415 35.7861C58.742 35.1877 58.2231 34.7463 57.6107 34.7387H53.8109C53.1129 34.7369 52.5461 35.2957 52.5443 35.9868V35.9897V42.2362H50.026V35.9897C50.026 35.2987 49.4603 34.7387 48.7624 34.7387H44.9775C44.3594 34.7392 43.8325 35.1824 43.7317 35.7861L42.6439 42.2362H37.3212C36.6251 42.2345 36.0594 42.7921 36.0576 43.4814V43.4843V48.4739C36.0576 49.1631 36.6221 49.722 37.3183 49.722H37.3212H41.3863L38.6832 65.9299C38.5697 66.61 39.0343 67.2523 39.7212 67.3647C39.7901 67.376 39.8595 67.3816 39.9289 67.3816H48.7624C49.4603 67.3816 50.026 66.8215 50.026 66.1305V49.7308H52.5443V66.1393C52.544 66.4565 52.6668 66.7616 52.887 66.9921L55.0685 64.8322V49.7308H58.6299L59.3332 53.9621ZM55.0715 37.2378H56.5259L57.3693 42.2362H55.0715V37.2378ZM47.5017 37.2378H46.0474L45.204 42.2362H47.5017V37.2378ZM47.5017 64.8912H41.4161L43.9433 49.7308H47.5017V64.8912ZM63.9884 44.7354H38.5819V47.2317H63.9884V44.7354Z' fill='%23283277'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M73.8826 83.4633C74.0537 83.7292 74.3252 83.9162 74.6366 83.9826L74.6426 83.9738C74.9501 84.0396 75.2714 83.9823 75.5367 83.8144L79.2947 81.4392C79.5638 81.271 79.7537 81.0034 79.8222 80.6956C79.8896 80.3914 79.8327 80.0733 79.6643 79.8104L74.8303 72.3011L79.7626 70.7549C80.0282 70.6755 80.2574 70.5071 80.4108 70.2787C80.7756 69.7358 80.6266 69.0034 80.0785 68.6422L61.771 56.3233C61.6458 56.2383 61.5051 56.1782 61.3567 56.1463C61.1925 56.1073 61.0217 56.1035 60.8557 56.1348C60.209 56.2569 59.7849 56.8751 59.9083 57.5154L63.4846 79.1436C63.5618 79.5903 63.8869 79.9559 64.325 80.0878L64.4114 80.1114C64.8296 80.2031 65.2653 80.0656 65.5529 79.7514L69.0487 75.9569L73.8826 83.4633ZM70.2348 73.3662C70.0626 73.1027 69.7931 72.9162 69.4838 72.8469V72.8558C69.4325 72.8448 69.381 72.8369 69.3288 72.8322C68.9575 72.8018 68.5927 72.9422 68.3394 73.2128L65.4545 76.3316L62.7306 59.8434L76.684 69.2324L72.622 70.4982C72.5165 70.5304 72.4163 70.5767 72.3237 70.636C71.7714 70.991 71.6141 71.7218 71.9723 72.2686L77.0059 80.076L75.2684 81.1736L70.2348 73.3662Z' fill='%23E9AF00'/%3E%3Cpath d='M58.5043 65.0421L52.9253 70.5745H31.5839V43.2191C31.5904 36.7817 36.8598 31.5647 43.3617 31.5582H70.9885V52.6877L66.9533 56.6829L69.1259 58.1582L73.1939 54.1335C73.4353 53.8937 73.5715 53.5694 73.5724 53.2306V30.2806C73.5742 29.5751 72.9975 29.0018 72.2849 29H72.2819H43.3737C35.4412 29.0032 29.0098 35.3657 29 43.2191V71.8403C29 72.5458 29.5779 73.118 30.2904 73.118H53.4588C53.8009 73.1177 54.129 72.9828 54.3707 72.7432L59.0229 68.1373L58.5043 65.0421Z' fill='%23283277'/%3E%3Crect x='29' y='97' width='102' height='34' rx='8' fill='%23E9AF00'/%3E%3Cpath d='M42.2711 122.33C41.8751 122.33 41.4644 122.301 41.0391 122.242C40.6284 122.198 40.2324 122.132 39.8511 122.044C39.4844 121.971 39.1471 121.89 38.8391 121.802C38.5311 121.699 38.2964 121.604 38.1351 121.516L38.6631 119.25C38.9711 119.397 39.4184 119.565 40.0051 119.756C40.5918 119.932 41.3178 120.02 42.1831 120.02C43.3418 120.02 44.1778 119.8 44.6911 119.36C45.2044 118.905 45.4611 118.304 45.4611 117.556C45.4611 117.072 45.3584 116.669 45.1531 116.346C44.9624 116.023 44.6911 115.767 44.3391 115.576C44.0018 115.371 43.6058 115.231 43.1511 115.158C42.7111 115.07 42.2418 115.026 41.7431 115.026H40.8411V112.87H41.9411C42.2784 112.87 42.6158 112.841 42.9531 112.782C43.3051 112.709 43.6204 112.591 43.8991 112.43C44.1778 112.254 44.4051 112.027 44.5811 111.748C44.7571 111.469 44.8451 111.11 44.8451 110.67C44.8451 110.318 44.7791 110.017 44.6471 109.768C44.5151 109.519 44.3391 109.313 44.1191 109.152C43.9138 108.991 43.6718 108.873 43.3931 108.8C43.1144 108.727 42.8211 108.69 42.5131 108.69C41.8531 108.69 41.2664 108.793 40.7531 108.998C40.2398 109.189 39.7851 109.409 39.3891 109.658L38.4211 107.678C38.6264 107.546 38.8758 107.407 39.1691 107.26C39.4624 107.113 39.7851 106.974 40.1371 106.842C40.5038 106.71 40.8924 106.607 41.3031 106.534C41.7138 106.446 42.1464 106.402 42.6011 106.402C43.4518 106.402 44.1851 106.505 44.8011 106.71C45.4171 106.915 45.9231 107.209 46.3191 107.59C46.7298 107.957 47.0304 108.397 47.2211 108.91C47.4264 109.409 47.5291 109.959 47.5291 110.56C47.5291 111.264 47.3311 111.895 46.9351 112.452C46.5538 113.009 46.0551 113.435 45.4391 113.728C46.2311 114.007 46.8838 114.469 47.3971 115.114C47.9251 115.759 48.1891 116.588 48.1891 117.6C48.1891 118.275 48.0718 118.905 47.8371 119.492C47.6024 120.064 47.2431 120.563 46.7591 120.988C46.2751 121.399 45.6591 121.729 44.9111 121.978C44.1778 122.213 43.2978 122.33 42.2711 122.33ZM61.133 114.366C61.133 116.933 60.6637 118.905 59.725 120.284C58.7863 121.648 57.4883 122.33 55.831 122.33C54.1737 122.33 52.8757 121.648 51.937 120.284C50.9983 118.905 50.529 116.933 50.529 114.366C50.529 113.09 50.6463 111.961 50.881 110.978C51.1303 109.981 51.4823 109.145 51.937 108.47C52.4063 107.795 52.9637 107.282 53.609 106.93C54.269 106.578 55.0097 106.402 55.831 106.402C57.4883 106.402 58.7863 107.091 59.725 108.47C60.6637 109.834 61.133 111.799 61.133 114.366ZM58.383 114.366C58.383 113.574 58.339 112.833 58.251 112.144C58.163 111.455 58.0163 110.861 57.811 110.362C57.6203 109.849 57.3637 109.445 57.041 109.152C56.7183 108.859 56.315 108.712 55.831 108.712C55.347 108.712 54.9363 108.859 54.599 109.152C54.2763 109.445 54.0123 109.849 53.807 110.362C53.6163 110.861 53.477 111.455 53.389 112.144C53.3157 112.833 53.279 113.574 53.279 114.366C53.279 115.158 53.3157 115.899 53.389 116.588C53.477 117.277 53.6163 117.879 53.807 118.392C54.0123 118.891 54.2763 119.287 54.599 119.58C54.9363 119.873 55.347 120.02 55.831 120.02C56.315 120.02 56.7183 119.873 57.041 119.58C57.3637 119.287 57.6203 118.891 57.811 118.392C58.0163 117.879 58.163 117.277 58.251 116.588C58.339 115.899 58.383 115.158 58.383 114.366ZM71.8197 119.712C71.981 119.727 72.1937 119.741 72.4577 119.756C72.7217 119.756 73.081 119.756 73.5357 119.756C75.3983 119.756 76.7843 119.287 77.6937 118.348C78.6177 117.395 79.0797 116.067 79.0797 114.366C79.0797 112.635 78.6323 111.308 77.7377 110.384C76.843 109.46 75.457 108.998 73.5797 108.998C72.7583 108.998 72.1717 109.02 71.8197 109.064V119.712ZM81.9837 114.366C81.9837 115.686 81.7783 116.837 81.3677 117.82C80.957 118.788 80.3703 119.602 79.6077 120.262C78.8597 120.907 77.9503 121.391 76.8797 121.714C75.8237 122.022 74.6503 122.176 73.3597 122.176C72.7437 122.176 72.047 122.147 71.2697 122.088C70.4923 122.044 69.7517 121.941 69.0477 121.78V106.974C69.7517 106.813 70.4997 106.71 71.2917 106.666C72.0837 106.622 72.7877 106.6 73.4037 106.6C74.6797 106.6 75.8457 106.754 76.9017 107.062C77.9577 107.355 78.8597 107.825 79.6077 108.47C80.3703 109.101 80.957 109.907 81.3677 110.89C81.7783 111.858 81.9837 113.017 81.9837 114.366ZM94.7653 122C94.56 121.399 94.3473 120.805 94.1273 120.218C93.9073 119.631 93.6947 119.03 93.4893 118.414H87.0653C86.86 119.03 86.6473 119.639 86.4273 120.24C86.222 120.827 86.0167 121.413 85.8113 122H82.9293C83.5013 120.372 84.044 118.869 84.5573 117.49C85.0707 116.111 85.5693 114.806 86.0533 113.574C86.552 112.342 87.0433 111.169 87.5273 110.054C88.0113 108.939 88.51 107.839 89.0233 106.754H91.6413C92.1547 107.839 92.6533 108.939 93.1373 110.054C93.6213 111.169 94.1053 112.342 94.5893 113.574C95.088 114.806 95.594 116.111 96.1073 117.49C96.6353 118.869 97.1853 120.372 97.7573 122H94.7653ZM90.2773 109.702C89.94 110.479 89.5513 111.425 89.1113 112.54C88.686 113.655 88.2387 114.865 87.7693 116.17H92.7853C92.316 114.865 91.8613 113.647 91.4213 112.518C90.9813 111.389 90.6 110.45 90.2773 109.702ZM103.242 113.508C103.902 112.408 104.547 111.293 105.178 110.164C105.809 109.035 106.381 107.898 106.894 106.754H109.974C109.153 108.309 108.295 109.856 107.4 111.396C106.52 112.921 105.574 114.461 104.562 116.016V122H101.79V116.06C100.778 114.491 99.8247 112.936 98.93 111.396C98.0354 109.856 97.1774 108.309 96.356 106.754H99.612C100.125 107.898 100.69 109.035 101.306 110.164C101.922 111.293 102.567 112.408 103.242 113.508ZM115.562 119.932C116.559 119.932 117.285 119.763 117.74 119.426C118.195 119.089 118.422 118.612 118.422 117.996C118.422 117.629 118.341 117.314 118.18 117.05C118.033 116.786 117.813 116.551 117.52 116.346C117.241 116.126 116.897 115.928 116.486 115.752C116.075 115.561 115.606 115.378 115.078 115.202C114.55 115.011 114.037 114.806 113.538 114.586C113.054 114.351 112.621 114.065 112.24 113.728C111.873 113.391 111.573 112.987 111.338 112.518C111.118 112.049 111.008 111.484 111.008 110.824C111.008 109.445 111.485 108.367 112.438 107.59C113.391 106.798 114.689 106.402 116.332 106.402C117.285 106.402 118.129 106.512 118.862 106.732C119.61 106.937 120.197 107.165 120.622 107.414L119.764 109.658C119.265 109.379 118.715 109.167 118.114 109.02C117.527 108.873 116.919 108.8 116.288 108.8C115.54 108.8 114.953 108.954 114.528 109.262C114.117 109.57 113.912 110.003 113.912 110.56C113.912 110.897 113.978 111.191 114.11 111.44C114.257 111.675 114.455 111.887 114.704 112.078C114.968 112.269 115.269 112.445 115.606 112.606C115.958 112.767 116.339 112.921 116.75 113.068C117.469 113.332 118.107 113.603 118.664 113.882C119.236 114.146 119.713 114.469 120.094 114.85C120.49 115.217 120.791 115.657 120.996 116.17C121.201 116.669 121.304 117.277 121.304 117.996C121.304 119.375 120.813 120.445 119.83 121.208C118.862 121.956 117.439 122.33 115.562 122.33C114.931 122.33 114.352 122.286 113.824 122.198C113.311 122.125 112.849 122.029 112.438 121.912C112.042 121.795 111.697 121.677 111.404 121.56C111.111 121.428 110.876 121.311 110.7 121.208L111.514 118.942C111.91 119.162 112.445 119.382 113.12 119.602C113.795 119.822 114.609 119.932 115.562 119.932Z' fill='white'/%3E%3Cpath d='M93.0185 29C93.9691 30.645 95.0278 32.658 96.1944 35.039C97.3611 37.4199 98.5494 39.9307 99.7593 42.5714C100.969 45.1688 102.157 47.8312 103.324 50.5584C104.534 53.2424 105.636 55.7316 106.63 58.026C107.623 55.7316 108.704 53.2424 109.87 50.5584C111.037 47.8312 112.225 45.1688 113.435 42.5714C114.645 39.9307 115.833 37.4199 117 35.039C118.167 32.658 119.225 30.645 120.176 29H127.565C127.954 32.29 128.321 35.7965 128.667 39.5195C129.012 43.1991 129.315 46.987 129.574 50.8831C129.877 54.7359 130.136 58.632 130.352 62.5714C130.611 66.4675 130.827 70.2771 131 74H122.963C122.79 68.7619 122.574 63.3723 122.315 57.8312C122.099 52.29 121.753 46.9221 121.278 41.7273C120.802 42.7229 120.241 43.9134 119.593 45.2987C118.944 46.684 118.253 48.1991 117.519 49.8442C116.784 51.4459 116.028 53.1126 115.25 54.8442C114.515 56.5758 113.781 58.2641 113.046 59.9091C112.355 61.5108 111.707 63.026 111.102 64.4545C110.497 65.8398 109.978 67.0303 109.546 68.026H103.454C103.022 67.0303 102.503 65.8182 101.898 64.3896C101.293 62.961 100.623 61.4459 99.8889 59.8442C99.1975 58.1991 98.463 56.5108 97.6852 54.7792C96.9506 53.0476 96.216 51.3809 95.4815 49.7792C94.7469 48.1775 94.0556 46.684 93.4074 45.2987C92.7593 43.8701 92.1975 42.6797 91.7222 41.7273C91.2469 46.9221 90.8796 52.29 90.6204 57.8312C90.4043 63.3723 90.2099 68.7619 90.037 74H82C82.1728 70.2771 82.3673 66.4242 82.5833 62.4416C82.8426 58.4589 83.1019 54.5195 83.3611 50.6234C83.6636 46.684 83.9877 42.8745 84.3333 39.1948C84.679 35.5151 85.0463 32.1169 85.4352 29H93.0185Z' fill='%23E9AF00'/%3E%3C/svg%3E%0A\";\n\nconst vignette10DaysENShadow =\n  \"data:image/svg+xml,%3Csvg viewBox='0 0 170 170' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg filter='url(%23filter0_d_4698_11809)'%3E%3Crect x='20' y='15' width='130' height='130' rx='16' fill='white'/%3E%3C/g%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M64.3332 53.9621C65.1075 53.5602 65.9983 53.4363 66.8545 53.6109L66.187 49.7308H70.252C70.9482 49.7326 71.5141 49.1749 71.5156 48.4857V48.4739V43.4843C71.5156 42.7951 70.9511 42.2362 70.255 42.2362H70.252H64.9263L63.8415 35.7861C63.742 35.1877 63.2231 34.7463 62.6107 34.7387H58.8109C58.1129 34.7369 57.5461 35.2957 57.5443 35.9868V35.9897V42.2362H55.026V35.9897C55.026 35.2987 54.4603 34.7387 53.7624 34.7387H49.9775C49.3594 34.7392 48.8325 35.1824 48.7317 35.7861L47.6439 42.2362H42.3212C41.6251 42.2345 41.0594 42.7921 41.0576 43.4814V43.4843V48.4739C41.0576 49.1631 41.6221 49.722 42.3183 49.722H42.3212H46.3863L43.6832 65.9299C43.5697 66.61 44.0343 67.2523 44.7212 67.3647C44.7901 67.376 44.8595 67.3816 44.9289 67.3816H53.7624C54.4603 67.3816 55.026 66.8215 55.026 66.1305V49.7308H57.5443V66.1393C57.544 66.4565 57.6668 66.7616 57.887 66.9921L60.0685 64.8322V49.7308H63.6299L64.3332 53.9621ZM60.0715 37.2378H61.5259L62.3693 42.2362H60.0715V37.2378ZM52.5017 37.2378H51.0474L50.204 42.2362H52.5017V37.2378ZM52.5017 64.8912H46.4161L48.9433 49.7308H52.5017V64.8912ZM68.9884 44.7354H43.5819V47.2317H68.9884V44.7354Z' fill='%23283277'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M78.8826 83.4633C79.0537 83.7292 79.3252 83.9162 79.6366 83.9826L79.6426 83.9738C79.9501 84.0396 80.2714 83.9823 80.5367 83.8144L84.2947 81.4392C84.5638 81.271 84.7537 81.0034 84.8222 80.6956C84.8896 80.3914 84.8327 80.0733 84.6643 79.8104L79.8303 72.3011L84.7626 70.7549C85.0282 70.6755 85.2574 70.5071 85.4108 70.2787C85.7756 69.7358 85.6266 69.0034 85.0785 68.6422L66.771 56.3233C66.6458 56.2383 66.5051 56.1782 66.3567 56.1463C66.1925 56.1073 66.0217 56.1035 65.8557 56.1348C65.209 56.2569 64.7849 56.8751 64.9083 57.5154L68.4846 79.1436C68.5618 79.5903 68.8869 79.9559 69.325 80.0878L69.4114 80.1114C69.8296 80.2031 70.2653 80.0656 70.5529 79.7514L74.0487 75.9569L78.8826 83.4633ZM75.2348 73.3662C75.0626 73.1027 74.7931 72.9162 74.4838 72.8469V72.8558C74.4325 72.8448 74.381 72.8369 74.3288 72.8322C73.9575 72.8018 73.5927 72.9422 73.3394 73.2128L70.4545 76.3316L67.7306 59.8434L81.684 69.2324L77.622 70.4982C77.5165 70.5304 77.4163 70.5767 77.3237 70.636C76.7714 70.991 76.6141 71.7218 76.9723 72.2686L82.0059 80.076L80.2684 81.1736L75.2348 73.3662Z' fill='%23D00F31'/%3E%3Cpath d='M63.5043 65.0421L57.9253 70.5745H36.5839V43.2191C36.5904 36.7817 41.8598 31.5647 48.3617 31.5582H75.9885V52.6877L71.9533 56.6829L74.1259 58.1582L78.1939 54.1335C78.4353 53.8937 78.5715 53.5694 78.5724 53.2306V30.2806C78.5742 29.5751 77.9975 29.0018 77.2849 29H77.2819H48.3737C40.4412 29.0032 34.0098 35.3657 34 43.2191V71.8403C34 72.5458 34.5779 73.118 35.2904 73.118H58.4588C58.8009 73.1177 59.129 72.9828 59.3707 72.7432L64.0229 68.1373L63.5043 65.0421Z' fill='%23283277'/%3E%3Crect x='34.0586' y='97' width='102' height='34' rx='8' fill='%23D00F31'/%3E%3Cpath d='M44.0591 109.922C44.9098 109.585 45.7604 109.152 46.6111 108.624C47.4764 108.096 48.2391 107.473 48.8991 106.754H50.7691V122H48.1071V110.318C47.7111 110.626 47.2124 110.927 46.6111 111.22C46.0098 111.513 45.4304 111.755 44.8731 111.946L44.0591 109.922ZM66.133 114.366C66.133 116.933 65.6637 118.905 64.725 120.284C63.7863 121.648 62.4883 122.33 60.831 122.33C59.1737 122.33 57.8757 121.648 56.937 120.284C55.9983 118.905 55.529 116.933 55.529 114.366C55.529 113.09 55.6463 111.961 55.881 110.978C56.1303 109.981 56.4823 109.145 56.937 108.47C57.4063 107.795 57.9637 107.282 58.609 106.93C59.269 106.578 60.0097 106.402 60.831 106.402C62.4883 106.402 63.7863 107.091 64.725 108.47C65.6637 109.834 66.133 111.799 66.133 114.366ZM63.383 114.366C63.383 113.574 63.339 112.833 63.251 112.144C63.163 111.455 63.0163 110.861 62.811 110.362C62.6203 109.849 62.3637 109.445 62.041 109.152C61.7183 108.859 61.315 108.712 60.831 108.712C60.347 108.712 59.9363 108.859 59.599 109.152C59.2763 109.445 59.0123 109.849 58.807 110.362C58.6163 110.861 58.477 111.455 58.389 112.144C58.3157 112.833 58.279 113.574 58.279 114.366C58.279 115.158 58.3157 115.899 58.389 116.588C58.477 117.277 58.6163 117.879 58.807 118.392C59.0123 118.891 59.2763 119.287 59.599 119.58C59.9363 119.873 60.347 120.02 60.831 120.02C61.315 120.02 61.7183 119.873 62.041 119.58C62.3637 119.287 62.6203 118.891 62.811 118.392C63.0163 117.879 63.163 117.277 63.251 116.588C63.339 115.899 63.383 115.158 63.383 114.366ZM76.8197 119.712C76.981 119.727 77.1937 119.741 77.4577 119.756C77.7217 119.756 78.081 119.756 78.5357 119.756C80.3983 119.756 81.7843 119.287 82.6937 118.348C83.6177 117.395 84.0797 116.067 84.0797 114.366C84.0797 112.635 83.6323 111.308 82.7377 110.384C81.843 109.46 80.457 108.998 78.5797 108.998C77.7583 108.998 77.1717 109.02 76.8197 109.064V119.712ZM86.9837 114.366C86.9837 115.686 86.7783 116.837 86.3677 117.82C85.957 118.788 85.3703 119.602 84.6077 120.262C83.8597 120.907 82.9503 121.391 81.8797 121.714C80.8237 122.022 79.6503 122.176 78.3597 122.176C77.7437 122.176 77.047 122.147 76.2697 122.088C75.4923 122.044 74.7517 121.941 74.0477 121.78V106.974C74.7517 106.813 75.4997 106.71 76.2917 106.666C77.0837 106.622 77.7877 106.6 78.4037 106.6C79.6797 106.6 80.8457 106.754 81.9017 107.062C82.9577 107.355 83.8597 107.825 84.6077 108.47C85.3703 109.101 85.957 109.907 86.3677 110.89C86.7783 111.858 86.9837 113.017 86.9837 114.366ZM99.7653 122C99.56 121.399 99.3473 120.805 99.1273 120.218C98.9073 119.631 98.6947 119.03 98.4893 118.414H92.0653C91.86 119.03 91.6473 119.639 91.4273 120.24C91.222 120.827 91.0167 121.413 90.8113 122H87.9293C88.5013 120.372 89.044 118.869 89.5573 117.49C90.0707 116.111 90.5693 114.806 91.0533 113.574C91.552 112.342 92.0433 111.169 92.5273 110.054C93.0113 108.939 93.51 107.839 94.0233 106.754H96.6413C97.1547 107.839 97.6533 108.939 98.1373 110.054C98.6213 111.169 99.1053 112.342 99.5893 113.574C100.088 114.806 100.594 116.111 101.107 117.49C101.635 118.869 102.185 120.372 102.757 122H99.7653ZM95.2773 109.702C94.94 110.479 94.5513 111.425 94.1113 112.54C93.686 113.655 93.2387 114.865 92.7693 116.17H97.7853C97.316 114.865 96.8613 113.647 96.4213 112.518C95.9813 111.389 95.6 110.45 95.2773 109.702ZM108.242 113.508C108.902 112.408 109.547 111.293 110.178 110.164C110.809 109.035 111.381 107.898 111.894 106.754H114.974C114.153 108.309 113.295 109.856 112.4 111.396C111.52 112.921 110.574 114.461 109.562 116.016V122H106.79V116.06C105.778 114.491 104.825 112.936 103.93 111.396C103.035 109.856 102.177 108.309 101.356 106.754H104.612C105.125 107.898 105.69 109.035 106.306 110.164C106.922 111.293 107.567 112.408 108.242 113.508ZM120.562 119.932C121.559 119.932 122.285 119.763 122.74 119.426C123.195 119.089 123.422 118.612 123.422 117.996C123.422 117.629 123.341 117.314 123.18 117.05C123.033 116.786 122.813 116.551 122.52 116.346C122.241 116.126 121.897 115.928 121.486 115.752C121.075 115.561 120.606 115.378 120.078 115.202C119.55 115.011 119.037 114.806 118.538 114.586C118.054 114.351 117.621 114.065 117.24 113.728C116.873 113.391 116.573 112.987 116.338 112.518C116.118 112.049 116.008 111.484 116.008 110.824C116.008 109.445 116.485 108.367 117.438 107.59C118.391 106.798 119.689 106.402 121.332 106.402C122.285 106.402 123.129 106.512 123.862 106.732C124.61 106.937 125.197 107.165 125.622 107.414L124.764 109.658C124.265 109.379 123.715 109.167 123.114 109.02C122.527 108.873 121.919 108.8 121.288 108.8C120.54 108.8 119.953 108.954 119.528 109.262C119.117 109.57 118.912 110.003 118.912 110.56C118.912 110.897 118.978 111.191 119.11 111.44C119.257 111.675 119.455 111.887 119.704 112.078C119.968 112.269 120.269 112.445 120.606 112.606C120.958 112.767 121.339 112.921 121.75 113.068C122.469 113.332 123.107 113.603 123.664 113.882C124.236 114.146 124.713 114.469 125.094 114.85C125.49 115.217 125.791 115.657 125.996 116.17C126.201 116.669 126.304 117.277 126.304 117.996C126.304 119.375 125.813 120.445 124.83 121.208C123.862 121.956 122.439 122.33 120.562 122.33C119.931 122.33 119.352 122.286 118.824 122.198C118.311 122.125 117.849 122.029 117.438 121.912C117.042 121.795 116.697 121.677 116.404 121.56C116.111 121.428 115.876 121.311 115.7 121.208L116.514 118.942C116.91 119.162 117.445 119.382 118.12 119.602C118.795 119.822 119.609 119.932 120.562 119.932Z' fill='white'/%3E%3Cpath d='M103.786 71.9322C104.297 71.9802 104.971 72.0282 105.808 72.0763C106.645 72.0763 107.783 72.0763 109.224 72.0763C115.128 72.0763 119.521 70.5395 122.403 67.4661C125.332 64.3446 126.796 59.9986 126.796 54.428C126.796 48.7613 125.378 44.4153 122.543 41.3898C119.707 38.3644 115.314 36.8517 109.364 36.8517C106.761 36.8517 104.901 36.9237 103.786 37.0678V71.9322ZM136 54.428C136 58.75 135.349 62.5198 134.048 65.7373C132.746 68.9068 130.887 71.572 128.469 73.733C126.099 75.846 123.217 77.4308 119.823 78.4873C116.476 79.4958 112.757 80 108.667 80C106.714 80 104.506 79.9039 102.043 79.7119C99.5788 79.5678 97.2313 79.2316 95 78.7034V30.2246C97.2313 29.6963 99.602 29.3602 102.112 29.2161C104.622 29.072 106.854 29 108.806 29C112.85 29 116.546 29.5042 119.893 30.5127C123.24 31.4732 126.099 33.0099 128.469 35.1229C130.887 37.1879 132.746 39.8291 134.048 43.0466C135.349 46.2161 136 50.0099 136 54.428Z' fill='%23D00F31'/%3E%3Cdefs%3E%3Cfilter id='filter0_d_4698_11809' x='0' y='0' width='170' height='170' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'%3E%3CfeFlood flood-opacity='0' result='BackgroundImageFix'/%3E%3CfeColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/%3E%3CfeOffset dy='5'/%3E%3CfeGaussianBlur stdDeviation='10'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.178622 0'/%3E%3CfeBlend mode='normal' in2='BackgroundImageFix' result='effect1_dropShadow_4698_11809'/%3E%3CfeBlend mode='normal' in='SourceGraphic' in2='effect1_dropShadow_4698_11809' result='shape'/%3E%3C/filter%3E%3C/defs%3E%3C/svg%3E%0A\";\n\nconst vignette10DaysEN =\n  \"data:image/svg+xml,%3Csvg viewBox='0 0 160 160' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M59.3332 53.9621C60.1075 53.5602 60.9983 53.4363 61.8545 53.6109L61.187 49.7308H65.252C65.9482 49.7326 66.5141 49.1749 66.5156 48.4857V48.4739V43.4843C66.5156 42.7951 65.9511 42.2362 65.255 42.2362H65.252H59.9263L58.8415 35.7861C58.742 35.1877 58.2231 34.7463 57.6107 34.7387H53.8109C53.1129 34.7369 52.5461 35.2957 52.5443 35.9868V35.9897V42.2362H50.026V35.9897C50.026 35.2987 49.4603 34.7387 48.7624 34.7387H44.9775C44.3594 34.7392 43.8325 35.1824 43.7317 35.7861L42.6439 42.2362H37.3212C36.6251 42.2345 36.0594 42.7921 36.0576 43.4814V43.4843V48.4739C36.0576 49.1631 36.6221 49.722 37.3183 49.722H37.3212H41.3863L38.6832 65.9299C38.5697 66.61 39.0343 67.2523 39.7212 67.3647C39.7901 67.376 39.8595 67.3816 39.9289 67.3816H48.7624C49.4603 67.3816 50.026 66.8215 50.026 66.1305V49.7308H52.5443V66.1393C52.544 66.4565 52.6668 66.7616 52.887 66.9921L55.0685 64.8322V49.7308H58.6299L59.3332 53.9621ZM55.0715 37.2378H56.5259L57.3693 42.2362H55.0715V37.2378ZM47.5017 37.2378H46.0474L45.204 42.2362H47.5017V37.2378ZM47.5017 64.8912H41.4161L43.9433 49.7308H47.5017V64.8912ZM63.9884 44.7354H38.5819V47.2317H63.9884V44.7354Z' fill='%23283277'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M73.8826 83.4633C74.0537 83.7292 74.3252 83.9162 74.6366 83.9826L74.6426 83.9738C74.9501 84.0396 75.2714 83.9823 75.5367 83.8144L79.2947 81.4392C79.5638 81.271 79.7537 81.0034 79.8222 80.6956C79.8896 80.3914 79.8327 80.0733 79.6643 79.8104L74.8303 72.3011L79.7626 70.7549C80.0282 70.6755 80.2574 70.5071 80.4108 70.2787C80.7756 69.7358 80.6266 69.0034 80.0785 68.6422L61.771 56.3233C61.6458 56.2383 61.5051 56.1782 61.3567 56.1463C61.1925 56.1073 61.0217 56.1035 60.8557 56.1348C60.209 56.2569 59.7849 56.8751 59.9083 57.5154L63.4846 79.1436C63.5618 79.5903 63.8869 79.9559 64.325 80.0878L64.4114 80.1114C64.8296 80.2031 65.2653 80.0656 65.5529 79.7514L69.0487 75.9569L73.8826 83.4633ZM70.2348 73.3662C70.0626 73.1027 69.7931 72.9162 69.4838 72.8469V72.8558C69.4325 72.8448 69.381 72.8369 69.3288 72.8322C68.9575 72.8018 68.5927 72.9422 68.3394 73.2128L65.4545 76.3316L62.7306 59.8434L76.684 69.2324L72.622 70.4982C72.5165 70.5304 72.4163 70.5767 72.3237 70.636C71.7714 70.991 71.6141 71.7218 71.9723 72.2686L77.0059 80.076L75.2684 81.1736L70.2348 73.3662Z' fill='%23D00F31'/%3E%3Cpath d='M58.5043 65.0421L52.9253 70.5745H31.5839V43.2191C31.5904 36.7817 36.8598 31.5647 43.3617 31.5582H70.9885V52.6877L66.9533 56.6829L69.1259 58.1582L73.1939 54.1335C73.4353 53.8937 73.5715 53.5694 73.5724 53.2306V30.2806C73.5742 29.5751 72.9975 29.0018 72.2849 29H72.2819H43.3737C35.4412 29.0032 29.0098 35.3657 29 43.2191V71.8403C29 72.5458 29.5779 73.118 30.2904 73.118H53.4588C53.8009 73.1177 54.129 72.9828 54.3707 72.7432L59.0229 68.1373L58.5043 65.0421Z' fill='%23283277'/%3E%3Crect x='29.0586' y='97' width='102' height='34' rx='8' fill='%23D00F31'/%3E%3Cpath d='M39.0591 109.922C39.9098 109.585 40.7604 109.152 41.6111 108.624C42.4764 108.096 43.2391 107.473 43.8991 106.754H45.7691V122H43.1071V110.318C42.7111 110.626 42.2124 110.927 41.6111 111.22C41.0098 111.513 40.4304 111.755 39.8731 111.946L39.0591 109.922ZM61.133 114.366C61.133 116.933 60.6637 118.905 59.725 120.284C58.7863 121.648 57.4883 122.33 55.831 122.33C54.1737 122.33 52.8757 121.648 51.937 120.284C50.9983 118.905 50.529 116.933 50.529 114.366C50.529 113.09 50.6463 111.961 50.881 110.978C51.1303 109.981 51.4823 109.145 51.937 108.47C52.4063 107.795 52.9637 107.282 53.609 106.93C54.269 106.578 55.0097 106.402 55.831 106.402C57.4883 106.402 58.7863 107.091 59.725 108.47C60.6637 109.834 61.133 111.799 61.133 114.366ZM58.383 114.366C58.383 113.574 58.339 112.833 58.251 112.144C58.163 111.455 58.0163 110.861 57.811 110.362C57.6203 109.849 57.3637 109.445 57.041 109.152C56.7183 108.859 56.315 108.712 55.831 108.712C55.347 108.712 54.9363 108.859 54.599 109.152C54.2763 109.445 54.0123 109.849 53.807 110.362C53.6163 110.861 53.477 111.455 53.389 112.144C53.3157 112.833 53.279 113.574 53.279 114.366C53.279 115.158 53.3157 115.899 53.389 116.588C53.477 117.277 53.6163 117.879 53.807 118.392C54.0123 118.891 54.2763 119.287 54.599 119.58C54.9363 119.873 55.347 120.02 55.831 120.02C56.315 120.02 56.7183 119.873 57.041 119.58C57.3637 119.287 57.6203 118.891 57.811 118.392C58.0163 117.879 58.163 117.277 58.251 116.588C58.339 115.899 58.383 115.158 58.383 114.366ZM71.8197 119.712C71.981 119.727 72.1937 119.741 72.4577 119.756C72.7217 119.756 73.081 119.756 73.5357 119.756C75.3983 119.756 76.7843 119.287 77.6937 118.348C78.6177 117.395 79.0797 116.067 79.0797 114.366C79.0797 112.635 78.6323 111.308 77.7377 110.384C76.843 109.46 75.457 108.998 73.5797 108.998C72.7583 108.998 72.1717 109.02 71.8197 109.064V119.712ZM81.9837 114.366C81.9837 115.686 81.7783 116.837 81.3677 117.82C80.957 118.788 80.3703 119.602 79.6077 120.262C78.8597 120.907 77.9503 121.391 76.8797 121.714C75.8237 122.022 74.6503 122.176 73.3597 122.176C72.7437 122.176 72.047 122.147 71.2697 122.088C70.4923 122.044 69.7517 121.941 69.0477 121.78V106.974C69.7517 106.813 70.4997 106.71 71.2917 106.666C72.0837 106.622 72.7877 106.6 73.4037 106.6C74.6797 106.6 75.8457 106.754 76.9017 107.062C77.9577 107.355 78.8597 107.825 79.6077 108.47C80.3703 109.101 80.957 109.907 81.3677 110.89C81.7783 111.858 81.9837 113.017 81.9837 114.366ZM94.7653 122C94.56 121.399 94.3473 120.805 94.1273 120.218C93.9073 119.631 93.6947 119.03 93.4893 118.414H87.0653C86.86 119.03 86.6473 119.639 86.4273 120.24C86.222 120.827 86.0167 121.413 85.8113 122H82.9293C83.5013 120.372 84.044 118.869 84.5573 117.49C85.0707 116.111 85.5693 114.806 86.0533 113.574C86.552 112.342 87.0433 111.169 87.5273 110.054C88.0113 108.939 88.51 107.839 89.0233 106.754H91.6413C92.1547 107.839 92.6533 108.939 93.1373 110.054C93.6213 111.169 94.1053 112.342 94.5893 113.574C95.088 114.806 95.594 116.111 96.1073 117.49C96.6353 118.869 97.1853 120.372 97.7573 122H94.7653ZM90.2773 109.702C89.94 110.479 89.5513 111.425 89.1113 112.54C88.686 113.655 88.2387 114.865 87.7693 116.17H92.7853C92.316 114.865 91.8613 113.647 91.4213 112.518C90.9813 111.389 90.6 110.45 90.2773 109.702ZM103.242 113.508C103.902 112.408 104.547 111.293 105.178 110.164C105.809 109.035 106.381 107.898 106.894 106.754H109.974C109.153 108.309 108.295 109.856 107.4 111.396C106.52 112.921 105.574 114.461 104.562 116.016V122H101.79V116.06C100.778 114.491 99.8247 112.936 98.93 111.396C98.0354 109.856 97.1774 108.309 96.356 106.754H99.612C100.125 107.898 100.69 109.035 101.306 110.164C101.922 111.293 102.567 112.408 103.242 113.508ZM115.562 119.932C116.559 119.932 117.285 119.763 117.74 119.426C118.195 119.089 118.422 118.612 118.422 117.996C118.422 117.629 118.341 117.314 118.18 117.05C118.033 116.786 117.813 116.551 117.52 116.346C117.241 116.126 116.897 115.928 116.486 115.752C116.075 115.561 115.606 115.378 115.078 115.202C114.55 115.011 114.037 114.806 113.538 114.586C113.054 114.351 112.621 114.065 112.24 113.728C111.873 113.391 111.573 112.987 111.338 112.518C111.118 112.049 111.008 111.484 111.008 110.824C111.008 109.445 111.485 108.367 112.438 107.59C113.391 106.798 114.689 106.402 116.332 106.402C117.285 106.402 118.129 106.512 118.862 106.732C119.61 106.937 120.197 107.165 120.622 107.414L119.764 109.658C119.265 109.379 118.715 109.167 118.114 109.02C117.527 108.873 116.919 108.8 116.288 108.8C115.54 108.8 114.953 108.954 114.528 109.262C114.117 109.57 113.912 110.003 113.912 110.56C113.912 110.897 113.978 111.191 114.11 111.44C114.257 111.675 114.455 111.887 114.704 112.078C114.968 112.269 115.269 112.445 115.606 112.606C115.958 112.767 116.339 112.921 116.75 113.068C117.469 113.332 118.107 113.603 118.664 113.882C119.236 114.146 119.713 114.469 120.094 114.85C120.49 115.217 120.791 115.657 120.996 116.17C121.201 116.669 121.304 117.277 121.304 117.996C121.304 119.375 120.813 120.445 119.83 121.208C118.862 121.956 117.439 122.33 115.562 122.33C114.931 122.33 114.352 122.286 113.824 122.198C113.311 122.125 112.849 122.029 112.438 121.912C112.042 121.795 111.697 121.677 111.404 121.56C111.111 121.428 110.876 121.311 110.7 121.208L111.514 118.942C111.91 119.162 112.445 119.382 113.12 119.602C113.795 119.822 114.609 119.932 115.562 119.932Z' fill='white'/%3E%3Cpath d='M98.7857 71.9322C99.2971 71.9802 99.9711 72.0282 100.808 72.0763C101.645 72.0763 102.783 72.0763 104.224 72.0763C110.128 72.0763 114.521 70.5395 117.403 67.4661C120.332 64.3446 121.796 59.9986 121.796 54.428C121.796 48.7613 120.378 44.4153 117.543 41.3898C114.707 38.3644 110.314 36.8517 104.364 36.8517C101.761 36.8517 99.9014 36.9237 98.7857 37.0678V71.9322ZM131 54.428C131 58.75 130.349 62.5198 129.048 65.7373C127.746 68.9068 125.887 71.572 123.469 73.733C121.099 75.846 118.217 77.4308 114.823 78.4873C111.476 79.4958 107.757 80 103.667 80C101.714 80 99.5062 79.9039 97.0425 79.7119C94.5788 79.5678 92.2313 79.2316 90 78.7034V30.2246C92.2313 29.6963 94.602 29.3602 97.1122 29.2161C99.6224 29.072 101.854 29 103.806 29C107.85 29 111.546 29.5042 114.893 30.5127C118.24 31.4732 121.099 33.0099 123.469 35.1229C125.887 37.1879 127.746 39.8291 129.048 43.0466C130.349 46.2161 131 50.0099 131 54.428Z' fill='%23D00F31'/%3E%3C/svg%3E%0A\";\n\nconst vignetteOneDayENShadow =\n  \"data:image/svg+xml,%3Csvg viewBox='0 0 170 170' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg filter='url(%23filter0_d_4698_11782)'%3E%3Crect x='20' y='15' width='130' height='130' rx='16' fill='white'/%3E%3C/g%3E%3Crect x='34.001' y='96.9999' width='102' height='34' rx='11.0345' fill='%230549A3'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M64.3342 53.9622C65.1085 53.5603 65.9993 53.4364 66.8555 53.6111L66.1879 49.731H70.253C70.9491 49.7327 71.5151 49.1751 71.5166 48.4858V48.474V43.4845C71.5166 42.7952 70.9521 42.2363 70.256 42.2363H70.253H64.9273L63.8425 35.7863C63.7429 35.1879 63.2241 34.7464 62.6116 34.7388H58.8118C58.1139 34.737 57.547 35.2959 57.5452 35.9869V35.9898V42.2363H55.0269V35.9898C55.0269 35.2988 54.4613 34.7388 53.7633 34.7388H49.9784C49.3603 34.7394 48.8334 35.1825 48.7327 35.7863L47.6449 42.2363H42.3222C41.626 42.2346 41.0604 42.7922 41.0586 43.4815V43.4845V48.474C41.0586 49.1633 41.6231 49.7221 42.3192 49.7221H42.3222H46.3873L43.6842 65.93C43.5706 66.6101 44.0353 67.2525 44.7222 67.3649C44.791 67.3761 44.8605 67.3817 44.9299 67.3817H53.7633C54.4613 67.3817 55.0269 66.8217 55.0269 66.1306V49.731H57.5452V66.1395C57.5449 66.4567 57.6677 66.7618 57.888 66.9922L60.0695 64.8323V49.731H63.6309L64.3342 53.9622ZM60.0723 37.2379H61.5266L62.37 42.2363H60.0723V37.2379ZM52.5028 37.2379H51.0485L50.2051 42.2363H52.5028V37.2379ZM52.5027 64.8914H46.417L48.9443 49.7311H52.5027V64.8914ZM68.9895 44.7356H43.583V47.2319H68.9895V44.7356Z' fill='%23283277'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M78.8824 83.4634C79.0534 83.7293 79.325 83.9164 79.6364 83.9828L79.6423 83.9739C79.9499 84.0397 80.2712 83.9825 80.5364 83.8146L84.2945 81.4393C84.5636 81.2711 84.7534 81.0035 84.822 80.6957C84.8893 80.3915 84.8324 80.0734 84.664 79.8105L79.8301 72.3012L84.7624 70.755C85.0279 70.6757 85.2571 70.5072 85.4106 70.2788C85.7754 69.7359 85.6264 69.0035 85.0783 68.6424L66.7707 56.3234C66.6455 56.2385 66.5049 56.1783 66.3565 56.1464C66.1922 56.1075 66.0215 56.1036 65.8555 56.1349C65.2088 56.2571 64.7847 56.8752 64.9081 57.5155L68.4844 79.1437C68.5615 79.5904 68.8867 79.956 69.3248 80.0879L69.4112 80.1115C69.8293 80.2033 70.265 80.0658 70.5526 79.7515L74.0484 75.957L78.8824 83.4634ZM75.2346 73.3664C75.0623 73.1029 74.7929 72.9164 74.4835 72.847V72.8559C74.4323 72.845 74.3807 72.837 74.3286 72.8323C73.9572 72.8019 73.5925 72.9424 73.3391 73.2129L70.4543 76.3317L67.7303 59.8436L81.6838 69.2325L77.6217 70.4983C77.5162 70.5305 77.4161 70.5768 77.3234 70.6361C76.7712 70.9911 76.6138 71.722 76.972 72.2687L82.0056 80.0761L80.2682 81.1738L75.2346 73.3664Z' fill='%230549A3'/%3E%3Cpath d='M63.5043 65.0422L57.9253 70.5746H36.5839V43.2193C36.5904 36.7818 41.8598 31.5648 48.3617 31.5583H75.9885V52.6879L71.9533 56.683L74.1259 58.1583L78.1939 54.1337C78.4353 53.8938 78.5715 53.5695 78.5724 53.2308V30.2807C78.5742 29.5752 77.9975 29.0019 77.2849 29.0001H77.2819H48.3737C40.4412 29.0034 34.0098 35.3658 34 43.2193V71.8405C34 72.546 34.5779 73.1181 35.2904 73.1181H58.4588C58.8009 73.1178 59.129 72.9829 59.3707 72.7433L64.0229 68.1374L63.5043 65.0422Z' fill='%23283277'/%3E%3Cpath d='M99.7447 51.7765C99.7447 54.1876 100.041 56.3871 100.633 58.3752C101.225 60.3209 102.071 61.9917 103.171 63.3876C104.313 64.7411 105.688 65.7986 107.295 66.56C108.902 67.3214 110.721 67.7021 112.752 67.7021C114.74 67.7021 116.537 67.3214 118.145 66.56C119.752 65.7986 121.106 64.7411 122.205 63.3876C123.347 61.9917 124.215 60.3209 124.807 58.3752C125.399 56.3871 125.695 54.1876 125.695 51.7765C125.695 49.3655 125.399 47.1871 124.807 45.2414C124.215 43.2533 123.347 41.5825 122.205 40.2289C121.106 38.8331 119.752 37.7545 118.145 36.9931C116.537 36.2317 114.74 35.851 112.752 35.851C110.721 35.851 108.902 36.2317 107.295 36.9931C105.688 37.7545 104.313 38.8331 103.171 40.2289C102.071 41.6248 101.225 43.2956 100.633 45.2414C100.041 47.1871 99.7447 49.3655 99.7447 51.7765ZM134.07 51.7765C134.07 55.5411 133.499 58.8616 132.357 61.7379C131.257 64.6142 129.735 67.0253 127.789 68.971C125.885 70.8745 123.644 72.3126 121.063 73.2855C118.483 74.2584 115.734 74.7448 112.815 74.7448C109.896 74.7448 107.126 74.2584 104.503 73.2855C101.923 72.3126 99.6601 70.8745 97.7144 68.971C95.8109 67.0253 94.2882 64.6142 93.1461 61.7379C92.004 58.8616 91.433 55.5411 91.433 51.7765C91.433 48.0119 92.004 44.7126 93.1461 41.8786C94.2882 39.0023 95.8321 36.5912 97.7778 34.6455C99.7659 32.6998 102.05 31.2404 104.63 30.2676C107.21 29.2947 109.939 28.8083 112.815 28.8083C115.691 28.8083 118.42 29.2947 121 30.2676C123.58 31.2404 125.822 32.6998 127.725 34.6455C129.671 36.5912 131.215 39.0023 132.357 41.8786C133.499 44.7126 134.07 48.0119 134.07 51.7765Z' fill='%230549A3'/%3E%3Cpath d='M57.9068 109.612C58.7574 109.274 59.6081 108.842 60.4588 108.314C61.3241 107.786 62.0868 107.162 62.7468 106.444H64.6168V121.69H61.9548V110.008C61.5588 110.316 61.0601 110.616 60.4588 110.91C59.8574 111.203 59.2781 111.445 58.7208 111.636L57.9068 109.612ZM78.1634 119.402C78.3248 119.416 78.5374 119.431 78.8014 119.446C79.0654 119.446 79.4248 119.446 79.8794 119.446C81.7421 119.446 83.1281 118.976 84.0374 118.038C84.9614 117.084 85.4234 115.757 85.4234 114.056C85.4234 112.325 84.9761 110.998 84.0814 110.074C83.1868 109.15 81.8008 108.688 79.9234 108.688C79.1021 108.688 78.5154 108.71 78.1634 108.754V119.402ZM88.3274 114.056C88.3274 115.376 88.1221 116.527 87.7114 117.51C87.3008 118.478 86.7141 119.292 85.9514 119.952C85.2034 120.597 84.2941 121.081 83.2234 121.404C82.1674 121.712 80.9941 121.866 79.7034 121.866C79.0874 121.866 78.3908 121.836 77.6134 121.778C76.8361 121.734 76.0954 121.631 75.3914 121.47V106.664C76.0954 106.502 76.8434 106.4 77.6354 106.356C78.4274 106.312 79.1314 106.29 79.7474 106.29C81.0234 106.29 82.1894 106.444 83.2454 106.752C84.3014 107.045 85.2034 107.514 85.9514 108.16C86.7141 108.79 87.3008 109.597 87.7114 110.58C88.1221 111.548 88.3274 112.706 88.3274 114.056ZM101.109 121.69C100.904 121.088 100.691 120.494 100.471 119.908C100.251 119.321 100.038 118.72 99.8331 118.104H93.4091C93.2038 118.72 92.9911 119.328 92.7711 119.93C92.5658 120.516 92.3604 121.103 92.1551 121.69H89.2731C89.8451 120.062 90.3878 118.558 90.9011 117.18C91.4144 115.801 91.9131 114.496 92.3971 113.264C92.8958 112.032 93.3871 110.858 93.8711 109.744C94.3551 108.629 94.8538 107.529 95.3671 106.444H97.9851C98.4984 107.529 98.9971 108.629 99.4811 109.744C99.9651 110.858 100.449 112.032 100.933 113.264C101.432 114.496 101.938 115.801 102.451 117.18C102.979 118.558 103.529 120.062 104.101 121.69H101.109ZM96.6211 109.392C96.2838 110.169 95.8951 111.115 95.4551 112.23C95.0298 113.344 94.5824 114.554 94.1131 115.86H99.1291C98.6598 114.554 98.2051 113.337 97.7651 112.208C97.3251 111.078 96.9438 110.14 96.6211 109.392ZM109.586 113.198C110.246 112.098 110.891 110.983 111.522 109.854C112.152 108.724 112.724 107.588 113.238 106.444H116.318C115.496 107.998 114.638 109.546 113.744 111.086C112.864 112.611 111.918 114.151 110.906 115.706V121.69H108.134V115.75C107.122 114.18 106.168 112.626 105.274 111.086C104.379 109.546 103.521 107.998 102.7 106.444H105.956C106.469 107.588 107.034 108.724 107.65 109.854C108.266 110.983 108.911 112.098 109.586 113.198Z' fill='white'/%3E%3Cdefs%3E%3Cfilter id='filter0_d_4698_11782' x='0' y='0' width='170' height='170' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'%3E%3CfeFlood flood-opacity='0' result='BackgroundImageFix'/%3E%3CfeColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/%3E%3CfeOffset dy='5'/%3E%3CfeGaussianBlur stdDeviation='10'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.178622 0'/%3E%3CfeBlend mode='normal' in2='BackgroundImageFix' result='effect1_dropShadow_4698_11782'/%3E%3CfeBlend mode='normal' in='SourceGraphic' in2='effect1_dropShadow_4698_11782' result='shape'/%3E%3C/filter%3E%3C/defs%3E%3C/svg%3E%0A\";\n\nconst vignetteOneDayEN =\n  \"data:image/svg+xml,%3Csvg viewBox='0 0 160 160' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='29.001' y='96.9999' width='102' height='34' rx='11.0345' fill='%230549A3'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M59.3342 53.9622C60.1085 53.5603 60.9993 53.4364 61.8555 53.6111L61.1879 49.731H65.253C65.9491 49.7327 66.5151 49.1751 66.5166 48.4858V48.474V43.4845C66.5166 42.7952 65.9521 42.2363 65.256 42.2363H65.253H59.9273L58.8425 35.7863C58.7429 35.1879 58.2241 34.7464 57.6116 34.7388H53.8118C53.1139 34.737 52.547 35.2959 52.5452 35.9869V35.9898V42.2363H50.0269V35.9898C50.0269 35.2988 49.4613 34.7388 48.7633 34.7388H44.9784C44.3603 34.7394 43.8334 35.1825 43.7327 35.7863L42.6449 42.2363H37.3222C36.626 42.2346 36.0604 42.7922 36.0586 43.4815V43.4845V48.474C36.0586 49.1633 36.6231 49.7221 37.3192 49.7221H37.3222H41.3873L38.6842 65.93C38.5706 66.6101 39.0353 67.2525 39.7222 67.3649C39.791 67.3761 39.8605 67.3817 39.9299 67.3817H48.7633C49.4613 67.3817 50.0269 66.8217 50.0269 66.1306V49.731H52.5452V66.1395C52.5449 66.4567 52.6677 66.7618 52.888 66.9922L55.0695 64.8323V49.731H58.6309L59.3342 53.9622ZM55.0723 37.2379H56.5266L57.37 42.2363H55.0723V37.2379ZM47.5028 37.2379H46.0485L45.2051 42.2363H47.5028V37.2379ZM47.5027 64.8914H41.417L43.9443 49.7311H47.5027V64.8914ZM63.9895 44.7356H38.583V47.2319H63.9895V44.7356Z' fill='%23283277'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M73.8824 83.4634C74.0534 83.7293 74.325 83.9164 74.6364 83.9828L74.6423 83.9739C74.9499 84.0397 75.2712 83.9825 75.5364 83.8146L79.2945 81.4393C79.5636 81.2711 79.7534 81.0035 79.822 80.6957C79.8893 80.3915 79.8324 80.0734 79.664 79.8105L74.8301 72.3012L79.7624 70.755C80.0279 70.6757 80.2571 70.5072 80.4106 70.2788C80.7754 69.7359 80.6264 69.0035 80.0783 68.6424L61.7707 56.3234C61.6455 56.2385 61.5049 56.1783 61.3565 56.1464C61.1922 56.1075 61.0215 56.1036 60.8555 56.1349C60.2088 56.2571 59.7847 56.8752 59.9081 57.5155L63.4844 79.1437C63.5615 79.5904 63.8867 79.956 64.3248 80.0879L64.4112 80.1115C64.8293 80.2033 65.265 80.0658 65.5526 79.7515L69.0484 75.957L73.8824 83.4634ZM70.2346 73.3664C70.0623 73.1029 69.7929 72.9164 69.4835 72.847V72.8559C69.4323 72.845 69.3807 72.837 69.3286 72.8323C68.9572 72.8019 68.5925 72.9424 68.3391 73.2129L65.4543 76.3317L62.7303 59.8436L76.6838 69.2325L72.6217 70.4983C72.5162 70.5305 72.4161 70.5768 72.3234 70.6361C71.7712 70.9911 71.6138 71.722 71.972 72.2687L77.0056 80.0761L75.2682 81.1738L70.2346 73.3664Z' fill='%230549A3'/%3E%3Cpath d='M58.5043 65.0422L52.9253 70.5746H31.5839V43.2193C31.5904 36.7818 36.8598 31.5648 43.3617 31.5583H70.9885V52.6879L66.9533 56.683L69.1259 58.1583L73.1939 54.1337C73.4353 53.8938 73.5715 53.5695 73.5724 53.2308V30.2807C73.5742 29.5752 72.9975 29.0019 72.2849 29.0001H72.2819H43.3737C35.4412 29.0034 29.0098 35.3658 29 43.2193V71.8405C29 72.546 29.5779 73.1181 30.2904 73.1181H53.4588C53.8009 73.1178 54.129 72.9829 54.3707 72.7433L59.0229 68.1374L58.5043 65.0422Z' fill='%23283277'/%3E%3Cpath d='M94.7447 51.7765C94.7447 54.1876 95.0408 56.3871 95.633 58.3752C96.2252 60.3209 97.0711 61.9917 98.1709 63.3876C99.313 64.7411 100.688 65.7986 102.295 66.56C103.902 67.3214 105.721 67.7021 107.752 67.7021C109.74 67.7021 111.537 67.3214 113.145 66.56C114.752 65.7986 116.106 64.7411 117.205 63.3876C118.347 61.9917 119.215 60.3209 119.807 58.3752C120.399 56.3871 120.695 54.1876 120.695 51.7765C120.695 49.3655 120.399 47.1871 119.807 45.2414C119.215 43.2533 118.347 41.5825 117.205 40.2289C116.106 38.8331 114.752 37.7545 113.145 36.9931C111.537 36.2317 109.74 35.851 107.752 35.851C105.721 35.851 103.902 36.2317 102.295 36.9931C100.688 37.7545 99.313 38.8331 98.1709 40.2289C97.0711 41.6248 96.2252 43.2956 95.633 45.2414C95.0408 47.1871 94.7447 49.3655 94.7447 51.7765ZM129.07 51.7765C129.07 55.5411 128.499 58.8616 127.357 61.7379C126.257 64.6142 124.735 67.0253 122.789 68.971C120.885 70.8745 118.644 72.3126 116.063 73.2855C113.483 74.2584 110.734 74.7448 107.815 74.7448C104.896 74.7448 102.126 74.2584 99.5033 73.2855C96.9231 72.3126 94.6601 70.8745 92.7144 68.971C90.8109 67.0253 89.2882 64.6142 88.1461 61.7379C87.004 58.8616 86.433 55.5411 86.433 51.7765C86.433 48.0119 87.004 44.7126 88.1461 41.8786C89.2882 39.0023 90.8321 36.5912 92.7778 34.6455C94.7659 32.6998 97.05 31.2404 99.6302 30.2676C102.21 29.2947 104.939 28.8083 107.815 28.8083C110.691 28.8083 113.42 29.2947 116 30.2676C118.58 31.2404 120.822 32.6998 122.725 34.6455C124.671 36.5912 126.215 39.0023 127.357 41.8786C128.499 44.7126 129.07 48.0119 129.07 51.7765Z' fill='%230549A3'/%3E%3Cpath d='M52.9068 109.612C53.7574 109.274 54.6081 108.842 55.4588 108.314C56.3241 107.786 57.0868 107.162 57.7468 106.444H59.6168V121.69H56.9548V110.008C56.5588 110.316 56.0601 110.616 55.4588 110.91C54.8574 111.203 54.2781 111.445 53.7208 111.636L52.9068 109.612ZM73.1634 119.402C73.3248 119.416 73.5374 119.431 73.8014 119.446C74.0654 119.446 74.4248 119.446 74.8794 119.446C76.7421 119.446 78.1281 118.976 79.0374 118.038C79.9614 117.084 80.4234 115.757 80.4234 114.056C80.4234 112.325 79.9761 110.998 79.0814 110.074C78.1868 109.15 76.8008 108.688 74.9234 108.688C74.1021 108.688 73.5154 108.71 73.1634 108.754V119.402ZM83.3274 114.056C83.3274 115.376 83.1221 116.527 82.7114 117.51C82.3008 118.478 81.7141 119.292 80.9514 119.952C80.2034 120.597 79.2941 121.081 78.2234 121.404C77.1674 121.712 75.9941 121.866 74.7034 121.866C74.0874 121.866 73.3908 121.836 72.6134 121.778C71.8361 121.734 71.0954 121.631 70.3914 121.47V106.664C71.0954 106.502 71.8434 106.4 72.6354 106.356C73.4274 106.312 74.1314 106.29 74.7474 106.29C76.0234 106.29 77.1894 106.444 78.2454 106.752C79.3014 107.045 80.2034 107.514 80.9514 108.16C81.7141 108.79 82.3008 109.597 82.7114 110.58C83.1221 111.548 83.3274 112.706 83.3274 114.056ZM96.1091 121.69C95.9038 121.088 95.6911 120.494 95.4711 119.908C95.2511 119.321 95.0384 118.72 94.8331 118.104H88.4091C88.2038 118.72 87.9911 119.328 87.7711 119.93C87.5658 120.516 87.3604 121.103 87.1551 121.69H84.2731C84.8451 120.062 85.3878 118.558 85.9011 117.18C86.4144 115.801 86.9131 114.496 87.3971 113.264C87.8958 112.032 88.3871 110.858 88.8711 109.744C89.3551 108.629 89.8538 107.529 90.3671 106.444H92.9851C93.4984 107.529 93.9971 108.629 94.4811 109.744C94.9651 110.858 95.4491 112.032 95.9331 113.264C96.4318 114.496 96.9378 115.801 97.4511 117.18C97.9791 118.558 98.5291 120.062 99.1011 121.69H96.1091ZM91.6211 109.392C91.2838 110.169 90.8951 111.115 90.4551 112.23C90.0298 113.344 89.5824 114.554 89.1131 115.86H94.1291C93.6598 114.554 93.2051 113.337 92.7651 112.208C92.3251 111.078 91.9438 110.14 91.6211 109.392ZM104.586 113.198C105.246 112.098 105.891 110.983 106.522 109.854C107.152 108.724 107.724 107.588 108.238 106.444H111.318C110.496 107.998 109.638 109.546 108.744 111.086C107.864 112.611 106.918 114.151 105.906 115.706V121.69H103.134V115.75C102.122 114.18 101.168 112.626 100.274 111.086C99.3791 109.546 98.5211 107.998 97.6998 106.444H100.956C101.469 107.588 102.034 108.724 102.65 109.854C103.266 110.983 103.911 112.098 104.586 113.198Z' fill='white'/%3E%3C/svg%3E%0A\";\n\nexport {\n  vignetteAnnualEN,\n  vignetteAnnualENShadow,\n  vignetteMonthEN,\n  vignetteMonthENShadow,\n  vignette10DaysEN,\n  vignette10DaysENShadow,\n  vignetteOneDayEN,\n  vignetteOneDayENShadow,\n};\n","import React from \"react\";\nimport type { ViewComponent } from \"@frui.ts/views\";\nimport { registerView } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport ChargeTypesViewModel from \"../../viewModels/chargeTypes/chargeTypesViewModel\";\nimport Icon, { IconType } from \"@edaz/edazkit/Icon\";\nimport DotLoader from \"../common/dotLoader\";\nimport { chargeTypeIconWithShadow } from \"utils/chargeTypeIcon\";\nimport { validityDays } from \"entities/chargeValidity\";\nimport styles from \"./chargeTypesView.module.scss\";\n\nexport const ChargeTypesView: ViewComponent<ChargeTypesViewModel> = observer(({ vm }) => {\n  const chargeTypes = vm.chargeTypes();\n\n  return (\n    <div className=\"row\">\n      {chargeTypes.map(chargeType => {\n        return (\n          <div\n            className=\"col col-12 col-md text-center px-0 mb-2 d-flex flex-row flex-md-column align-items-center\"\n            key={chargeType.id}>\n            <div className=\"img mr-4 mr-md-0\">\n              <a href={`${vm.eshopUrl}#/eshop/order?days=${validityDays(chargeType.validFor)}`} title={vm.translate(\"buy\")}>\n                <img\n                  src={chargeTypeIconWithShadow(chargeType.validFor, vm.isCSLocale)}\n                  alt={vm.chargeTypeDescription(chargeType.validFor)}\n                  className={styles.chargeTypeIcon}\n                />\n              </a>\n            </div>\n            <div className=\"text-left text-md-center\">\n              <span className={styles.chargePrice}>\n                {vm.isInitialized && chargeType._standardPrice ? (\n                  vm.formatPrice(chargeType._standardPrice)\n                ) : (\n                  <>\n                    <DotLoader /> {vm.currency}\n                  </>\n                )}\n              </span>\n\n              <span className=\"d-block mt-2\">\n                <Icon icon={IconType.Leaf} width={16} height={16} className=\"mr-2 text-success\" />\n                {vm.translate(\"ecoPrice\")}\n              </span>\n              <span className=\"d-block mb-2\">\n                {vm.isInitialized && chargeType._ecoPriceMin && chargeType._ecoPriceMax ? (\n                  vm.formatEcoPriceRange(chargeType._ecoPriceMin, chargeType._ecoPriceMax)\n                ) : (\n                  <>\n                    <DotLoader /> {vm.currency}\n                  </>\n                )}\n              </span>\n            </div>\n          </div>\n        );\n      })}\n    </div>\n  );\n});\n\nregisterView(ChargeTypesView, ChargeTypesViewModel);\n","import { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { Col, Form } from \"react-bootstrap\";\nimport LoadingPane from \"controls/loadingPane\";\nimport LoaderOverlay from \"@edaz/edazkit/LoaderOverlay\";\nimport ChargeTypeSelectViewModel from \"viewModels/common/chargeTypeSelectViewModel\";\nimport { registerView, View, ViewComponent } from \"@frui.ts/views\";\nimport ChargeTypeViewModel from \"viewModels/eshop/order/components/chargeViewModel\";\n\nexport const ChargeTypeSelectView: ViewComponent<ChargeTypeSelectViewModel> = observer(({ vm }) => {\n  const vignetteLabel = vm.localizationService.translateAttribute(\"orderItem\", \"chargeType\");\n\n  const chargeScreenReaderLabel = (chargeTypeViewModel: ChargeTypeViewModel) =>\n    `${vignetteLabel}: ${chargeTypeViewModel.description} – ${chargeTypeViewModel.price}`;\n\n  // If multiEshop, we need to distinguish batch indexes to prevent displaying items with the same ID.\n  if (vm.batchIndex) {\n    vm.chargeTypeViewModels.forEach((x: ChargeTypeViewModel) => {\n      x.batchIndex = vm.batchIndex;\n    });\n  }\n\n  return (\n    <fieldset className=\"form-row mb-4\">\n      <Form.Group as={Col} xs={12} className=\"m-0\">\n        {vm.showLabel && <legend className=\"font-weight-bold font-size-sm m-0\">{vignetteLabel}</legend>}\n        <LoaderOverlay loading={!vm.isInitialized} loader={<LoadingPane />}>\n          <Form.Row className={\"align-items-center\" + (vm.chargeTypeError !== undefined ? \" is-invalid\" : \"\")}>\n            {vm.chargeTypeViewModels.map(chargeTypeViewModel => (\n              <Form.Group\n                controlId={chargeTypeViewModel.chargeTypeCode}\n                as={Col}\n                key={chargeTypeViewModel.chargeType.id}\n                sm={12}\n                xl={6}\n                className=\"mb-0 pl-2 pr-2\">\n                <Form.Label className=\"screenreader\">{chargeScreenReaderLabel(chargeTypeViewModel)}</Form.Label>\n                <View vm={chargeTypeViewModel} />\n              </Form.Group>\n            ))}\n          </Form.Row>\n          {vm.chargeTypeError && (\n            <Form.Control.Feedback type=\"invalid\">\n              {vm.localizationService.translateAttribute(\"orderItem\", \"chargeTypeId.required\")}\n            </Form.Control.Feedback>\n          )}\n        </LoaderOverlay>\n      </Form.Group>\n    </fieldset>\n  );\n});\n\nregisterView(ChargeTypeSelectView, ChargeTypeSelectViewModel);\n","export abstract class TestUserData {\n  static readonly LICENSE_PLATE = \"SN710DE\";\n  static readonly EMAIL = \"secka.dominik@gmail.com\";\n}\n\nexport abstract class TestCSOBData {\n  static readonly CARD_NUMBER = \"4125010001000208\";\n  static readonly EXPIRATION = \"1234\";\n  static readonly CVC = \"345\";\n}\n\nexport abstract class DataTestIds {\n  static readonly LICENSE_PLATE_INPUT = \"license-plate-input\";\n  static readonly LICENSE_PLATE_CONFIRMATION_INPUT = \"license-plate-confirmation-input\";\n  static readonly EMAIL_INPUT = \"email-input\";\n  static readonly EMAIL_CONFIRMATION_INPUT = \"email-confirmation-input\";\n  static readonly EMAIL_NOTIFICATION_INPUT = \"email-notification-input\";\n  static readonly VALID_SINCE_INPUT = \"valid-since-input\";\n  static readonly VALID_SINCE_INPUT_TODAY_BUTTON = \".DayPicker-TodayButton\";\n  static readonly ECO_FUEL_TYPE_CHECK = \"eco-fuel-type-check\";\n  static readonly ECO_FUEL_TYPE_NATURAL_GAS = \"eco-fuel-type-natural-gas\";\n  static readonly ECO_FUEL_TYPE_BIO_METHANE = \"eco-fuel-type-bio-methane\";\n  static readonly CARD_PAYMENT_TYPE_OPTION = \"card-payment-type-option\";\n  static readonly GOOGLE_PAY_PAYMENT_TYPE_OPTION = \"google-pay-payment-type-option\";\n  static readonly BANK_TRANSFER_PAYMENT_TYPE_OPTION = \"bank-transfer-payment-type-option\";\n  static readonly COUNTRY_SELECT = \"country-select\";\n  static readonly DISABLED_COUNTRY_SELECT = \"disabled-country-select\";\n  static readonly TERMS_AND_CONDITIONS_CHECK = \"terms-and-conditions-check\";\n  static readonly PROCEED_TO_PAYMENT_BUTTON = \"proceed-to-payment-button\";\n  static readonly COMPANY_NAME_INPUT = \"company-name-input\";\n  static readonly COMPANY_IDENTIFIER_INPUT = \"company-identifier-input\";\n\n  static chargeCardPrice = (validFor: string) => `charge-card-${validFor}`;\n}\n\nexport abstract class CSOBDataTestIds {\n  static readonly CARD_NUMBER_INPUT = \"#cardnumber\";\n  static readonly EXPIRY_INPUT = \"#expiry\";\n  static readonly CVC_INPUT = \"#cvc\";\n  static readonly PAY_SUBMIT_BUTTON = \"#pay-submit\";\n}\n\nexport abstract class E2EAPIRoutes {\n  static readonly ESHOP_ORDER = \"http://localhost:3000/#/eshop/order\";\n  static readonly ESHOP_ORDER_HASH = \"#/eshop/order\";\n  static readonly ESHOP_ORDER_STATUS = \"http://localhost:3000/#/eshop/status\";\n  static readonly ESHOP_PAYMENT_DEV_INTERCEPT = \"https://eshoppayment.dev.edalnice.gov.cz/api/v1/**\";\n  static readonly IPLATEBNIBRANA_CSOB_CZ = \"https://iplatebnibrana.csob.cz/pay/edalnice.cz\";\n}\n\nexport abstract class InterceptAliases {\n  static readonly ESHOP_PAYMENT_DEV_INTERCEPT_ALIAS = \"paymentRedirect\";\n}\n","import { Check } from \"@frui.ts/bootstrap\";\nimport { registerView, View, ViewComponent } from \"@frui.ts/views\";\nimport EdazPhoneInput from \"@edaz/edazkit/InputPhone\";\nimport { observer } from \"mobx-react-lite\";\nimport * as React from \"react\";\nimport { Col, Form } from \"react-bootstrap\";\nimport ContactViewModel from \"viewModels/common/contactViewModel\";\nimport EmailInput from \"views/common/emailInput/emailInput\";\nimport { DataTestIds } from \"data-test-constants\";\nimport ChargeManagementContactViewModel from \"viewModels/chargeManagement/chargeManagementEdit/chargeManagementContactViewModel\";\nimport AlertWithInfoIcon from \"../alertWithInfoIcon/alertWithInfoIcon\";\nimport ReceiptEmailModalViewModel from \"viewModels/chargeManagement/chargeManagementEdit/receiptEmailModalViewModel\";\n\nconst ContactView: ViewComponent<ContactViewModel | ChargeManagementContactViewModel | ReceiptEmailModalViewModel> = observer(\n  ({ vm }) => {\n    const ta = (code: string) => {\n      return vm.localizationService.translateAttribute(\"contact\", code);\n    };\n\n    const translateContact = (translateKey?: string) => (code: string) =>\n      vm.localizationService.translateAttribute(translateKey ? `contact.${translateKey}` : \"contact\", code);\n    const translateChargeManagmentContact = (translateKey?: string) => (code: string) =>\n      vm.localizationService.translateAttribute(\n        translateKey ? `contact.chargeManagement.${translateKey}` : `contact.chargeManagement`,\n        code\n      );\n    const isContactViewModel = vm instanceof ContactViewModel;\n    return (\n      <fieldset>\n        {isContactViewModel && !vm.isSingleEshop && !vm.isMultiEshop && (\n          <legend className=\"mt-4 h3\">{vm.translate(\"title\")}</legend>\n        )}\n        <Form.Row>\n          {isContactViewModel && vm.isSingleEshop && (\n            <Form.Group as={Col} xs=\"auto\">\n              <p>{vm.translate(\"emailTooltip\")}</p>\n            </Form.Group>\n          )}\n          {isContactViewModel && vm.isMultiEshop && (\n            <Form.Group as={Col} xs=\"auto\">\n              <p>{vm.translateMulti(\"emailTooltip\")}</p>\n            </Form.Group>\n          )}\n          <EmailInput\n            id={DataTestIds.EMAIL_INPUT}\n            xl={12}\n            translate={isContactViewModel ? translateContact() : translateChargeManagmentContact()}\n            target={vm.notificationPreferences}\n            property=\"emailAddress\"\n            disablePaste={true}\n            className=\"mb-6\"\n          />\n          <EmailInput\n            id={DataTestIds.EMAIL_CONFIRMATION_INPUT}\n            xl={12}\n            translate={isContactViewModel ? translateContact(\"again\") : translateChargeManagmentContact(\"again\")}\n            target={vm.notificationPreferences}\n            property=\"_emailConfirmation\"\n            disablePaste={true}\n            className=\"mb-6\"\n          />\n        </Form.Row>\n        {isContactViewModel && !vm.isSingleEshop && !vm.isMultiEshop && (\n          <Form.Row>\n            <Form.Group as={Col} xs=\"auto\">\n              <p>{vm.translate(\"emailTooltip\")}</p>\n            </Form.Group>\n          </Form.Row>\n        )}\n        {vm.showNotificationPreferences && (\n          <Form.Row>\n            <Form.Group as={Col} className=\"mb-4\">\n              <Check\n                autoComplete=\"off\"\n                custom\n                target={vm}\n                property=\"notificationEnabled\"\n                label={\n                  isContactViewModel && (vm.isSingleEshop || vm.isMultiEshop) ? (\n                    <span className=\"font-weight-normal\">\n                      <span>{vm.translateNotification(\"title\")}</span>\n                      {!vm.isMultiEshop && (\n                        <>\n                          <br />\n                          <span className=\"text-muted font-size-sm\">{vm.translateNotification(\"subtitle\")}</span>\n                        </>\n                      )}\n                    </span>\n                  ) : (\n                    ta(\"notificationEnabled\")\n                  )\n                }\n              />\n            </Form.Group>\n          </Form.Row>\n        )}\n        {vm.notificationEnabled && (\n          <div>\n            {vm.notificationEnabledInfo && (\n              <Form.Row>\n                <Form.Group as={Col} xs=\"auto\" sm={12} xl={12} className=\"mr-7 mb-4\">\n                  <AlertWithInfoIcon\n                    variant={isContactViewModel && (vm.isSingleEshop || vm.isMultiEshop) ? \"info-light\" : \"warning\"}>\n                    <span className={isContactViewModel && (vm.isSingleEshop || vm.isMultiEshop) ? \"font-weight-normal\" : \"\"}>\n                      {vm.notificationEnabledInfo}\n                    </span>\n                  </AlertWithInfoIcon>\n                </Form.Group>\n              </Form.Row>\n            )}\n            {isContactViewModel && (vm.isSingleEshop || vm.isMultiEshop) && (\n              <Form.Row>\n                <Form.Group as={Col} className=\"mb-6\">\n                  <Check\n                    autoComplete=\"off\"\n                    custom\n                    disabled={!vm.notificationPreferences.emailAddress}\n                    target={vm.notificationPreferences}\n                    property=\"_isNotificationEmailSame\"\n                    label={ta(\"notificationSameEmail\")}\n                  />\n                </Form.Group>\n              </Form.Row>\n            )}\n            <Form.Row className=\"mt-0\">\n              <EmailInput\n                id={DataTestIds.EMAIL_NOTIFICATION_INPUT}\n                xl={12}\n                translate={translateContact(\n                  isContactViewModel && (vm.isSingleEshop || vm.isMultiEshop) ? \"optionalEmail\" : \"classicOptionalEmail\"\n                )}\n                disablePaste={true}\n                target={vm.notificationPreferences}\n                disabled={vm.isNotificationEmailSame}\n                property=\"_emailAddressNotification\"\n                className=\"mb-6\"\n                onBlur={vm.onEmailAddressNotificationChanged}\n              />\n            </Form.Row>\n\n            <Form.Row className=\"mt-0\">\n              <Form.Group as={Col} sm={6} xl={6}>\n                <Form.Label>\n                  {ta(\n                    isContactViewModel && (vm.isSingleEshop || vm.isMultiEshop)\n                      ? \"optionalPhoneNumber\"\n                      : \"classicOptionalPhoneNumber\"\n                  )}\n                </Form.Label>\n                <EdazPhoneInput\n                  target={vm.notificationPreferences}\n                  property=\"phoneNumber\"\n                  defaultPrefix={vm.defaultPrefixNumber}\n                  placeholder={ta(\"phoneNumberPlaceholder\")}\n                  onBlur={vm.onPhoneNumberChanged}\n                />\n              </Form.Group>\n            </Form.Row>\n          </div>\n        )}\n        {isContactViewModel && !vm.isSingleEshop && !vm.isMultiEshop && <View vm={vm.gdprViewModel} />}\n      </fieldset>\n    );\n  }\n);\n\nregisterView(ContactView, ContactViewModel);\nregisterView(ContactView, ChargeManagementContactViewModel);\n","import { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { Col, Form } from \"react-bootstrap\";\nimport FuelTypeSelectViewModel from \"viewModels/common/fuelTypeSelectViewModel\";\nimport { registerView, View, ViewComponent } from \"@frui.ts/views\";\nimport FuelViewModel from \"viewModels/eshop/order/components/fuelViewModel\";\nimport LoaderOverlay from \"@edaz/edazkit/LoaderOverlay\";\nimport LoadingPane from \"controls/loadingPane\";\n\nconst FuelTypeSelect: ViewComponent<FuelTypeSelectViewModel> = observer(({ vm }) => {\n  const ta = (code: string) => {\n    return vm.localizationService.translateAttribute(\"orderItem\", code);\n  };\n  const fuelScreenReaderLabel = (fuelViewModel: FuelViewModel) => `${fuelTypeLabel}: ${fuelViewModel.fuelTypeItem.name}`;\n  const fuelTypeLabel = ta(\"fuelType\");\n\n  // If multiEshop, we need to distinguish batch indexes to prevent displaying items with the same ID.\n  if (vm.batchIndex) {\n    vm.fuelTypeViewModels.forEach(x => {\n      x.batchIndex = vm.batchIndex;\n    });\n  }\n\n  return (\n    <fieldset className=\"form-row mb-4\">\n      <Form.Group as={Col} xs={12} className=\"m-0\">\n        <LoaderOverlay loading={!vm.isInitialized} loader={<LoadingPane />}>\n          <Form.Row className={\"align-items-center\" + (vm.fuelTypeError !== undefined ? \" is-invalid\" : \"\")}>\n            {vm.fuelTypeViewModels.map(fuelViewModel => (\n              <Form.Group\n                controlId={fuelViewModel.fuelTypeItem.fuelType}\n                as={Col}\n                key={fuelViewModel.fuelTypeItem.id}\n                sm={12}\n                xl={6}\n                className=\"mb-0 pl-2 pr-2\">\n                <Form.Label className=\"screenreader\">{fuelScreenReaderLabel(fuelViewModel)}</Form.Label>\n                <View vm={fuelViewModel} />\n              </Form.Group>\n            ))}\n          </Form.Row>\n          {vm.fuelTypeError && (\n            <Form.Control.Feedback type=\"invalid\">\n              {vm.localizationService.translateAttribute(\"orderItem\", \"fuelTypeId.required\")}\n            </Form.Control.Feedback>\n          )}\n        </LoaderOverlay>\n      </Form.Group>\n    </fieldset>\n  );\n});\n\nregisterView(FuelTypeSelect, FuelTypeSelectViewModel);\n","import { linkHost } from \"../config\";\n\nexport const linkHostRegex = /%host%/g;\n\nexport default function replaceLinkHost(message: string) {\n  return message.replace(linkHostRegex, linkHost || \"\");\n}\n","import { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport ReactMarkdown from \"react-markdown\";\nimport Gdpr from \"@edaz/edazkit/Gdpr\";\nimport replaceLinkHost from \"utils/replaceLinkHost\";\nimport GDPRViewModel from \"../../../viewModels/common/gdpr/GDPRViewModel\";\nimport { registerView } from \"@frui.ts/views\";\n\nconst GdprSection: FunctionComponent<{\n  vm: GDPRViewModel;\n}> = observer(({ vm }) => {\n  const tg = (code: string) => vm.localizationService.translateGeneral(`gdpr.${code}`);\n\n  return (\n    <Gdpr\n      toggle={vm.toggleGdpr}\n      showLabel={tg(\"show\")}\n      hideLabel={tg(\"hide\")}\n      gdpr={\n        <ReactMarkdown linkTarget={\"_blank\"} className=\"markdown\">\n          {replaceLinkHost(vm.message)}\n        </ReactMarkdown>\n      }\n      isVisible={vm.gdprVisible}\n    />\n  );\n});\n\nregisterView(GdprSection, GDPRViewModel);\n","import React from \"react\";\nimport ReactMarkdown from \"react-markdown\";\nimport { registerView, ViewComponent } from \"@frui.ts/views\";\nimport OrderOutageViewModel from \"../../../viewModels/common/orderOutage/orderOutageViewModel\";\nimport { observer } from \"mobx-react-lite\";\n\nconst OrderOutageView: ViewComponent<OrderOutageViewModel> = observer(({ vm }) => {\n  return (\n    <div className=\"content text-center py-11 pb-5\">\n      <h1 className=\"text-center mb-5\">{vm.translate(\"title\")}</h1>\n      <div className=\"row mb-5 justify-content-center\">\n        <div className=\"col-12 col-lg-8 font-weight-bold\">\n          <ReactMarkdown>{vm.message}</ReactMarkdown>\n        </div>\n      </div>\n    </div>\n  );\n});\n\nregisterView(OrderOutageView, OrderOutageViewModel);\n","import React from \"react\";\nimport { registerView, ViewComponent } from \"@frui.ts/views\";\nimport OutagesViewModel from \"../../../viewModels/common/outagesViewModel\";\nimport { observer } from \"mobx-react-lite\";\nimport ReactMarkdown from \"react-markdown\";\nimport Alert from \"../alertWithInfoIcon/alertWithInfoIcon\";\nimport { SystemComponent } from \"../../../models/outage\";\n\nconst OutagesView: ViewComponent<OutagesViewModel> = observer(({ vm }) => {\n  if (!vm.outages.length) {\n    return null;\n  }\n\n  return (\n    <div className={vm.allowToClose ? \"mt-1 mb-lg-n2\" : \"mt-n4 mb-4\"}>\n      {vm.outages.map(outage => {\n        const message = vm.outageMessage(outage);\n        const onClose = vm.allowToClose ? () => vm.closeOutage(outage) : undefined;\n        let variant = \"warning\";\n\n        if (\n          [SystemComponent.ESHOP, SystemComponent.PAY_GATE].includes(outage.systemComponentCode as SystemComponent) &&\n          outage.validSince <= new Date()\n        ) {\n          variant = \"danger\";\n        }\n\n        return (\n          <Alert className=\"mb-2\" variant={variant} key={message} onClose={onClose} dismissible={vm.allowToClose}>\n            <ReactMarkdown>{message}</ReactMarkdown>\n          </Alert>\n        );\n      })}\n    </div>\n  );\n});\n\nregisterView(OutagesView, OutagesViewModel);\n","import { formatBankAccount, formatIBAN } from \"@edaz/utils/bankAccount\";\nimport React from \"react\";\nimport { IconType } from \"@edaz/edazkit/Icon\";\nimport { ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport { useState } from \"react\";\nimport BankTransferViewModel from \"../../../viewModels/common/payment/bankTransferViewModel\";\nimport Collapsible from \"../collapsible/collapsible\";\nimport { ta } from \"date-fns/locale\";\nimport { Row, Col } from \"react-bootstrap\";\nimport styles from \"./bankTransfer.module.scss\";\n\nconst SepaInstructions: ViewComponent<BankTransferViewModel> = observer(({ vm }) => {\n  const ta = (attribute: string, model?: string) => vm.localizationService.translateAttribute(model || \"payment\", attribute);\n\n  const [collapsed, setCollapse] = useState(true);\n\n  const toggle = () => {\n    setCollapse(!collapsed);\n  };\n\n  function translateLabel(code: string) {\n    return vm.translate(`sepaInstructions.labels.${code}`);\n  }\n\n  const QRCodeImage: React.FC<{ base64Svg: string }> = ({ base64Svg }) => {\n    const svgXml = atob(base64Svg);\n    return <div className={styles.qrCodeContainer} dangerouslySetInnerHTML={{ __html: svgXml }} />;\n  };\n  return (\n    <Row className=\"position-relative\">\n      <Col xs={6}>\n        <Row className=\"mb-3\">\n          <Col>\n            <span className=\"font-weight-bold\">{translateLabel(\"iban\")}</span>\n            <div style={{ wordBreak: \"break-all\", wordWrap: \"break-word\" }}>\n              <span className={styles.disableLinkTel}>{vm.iban ? formatIBAN(vm.iban) : \"-\"}</span>\n            </div>\n          </Col>\n        </Row>\n        <Row className=\"mb-3\">\n          <Col>\n            <span className=\"font-weight-bold\">{translateLabel(\"swift\")}</span>\n            <div className=\"text-nowrap\">\n              <span className={styles.disableLinkTel}>{vm.swiftCode || \"-\"}</span>\n            </div>\n          </Col>\n        </Row>\n      </Col>\n      <Col xs={12}>\n        <Row className=\"mb-3\">\n          <Col>\n            <span className=\"font-weight-bold\">{translateLabel(\"name\")}</span>\n            <div style={{ wordWrap: \"break-word\" }}>\n              <span className={styles.disableLinkTel}>{vm.counterpartyName || \"-\"}</span>\n            </div>\n          </Col>\n        </Row>\n        <Row className=\"mb-3\">\n          <Col>\n            <span className=\"font-weight-bold\">{ta(\"messageForRecipient\")}</span>\n            <div className=\"text-wrap\">\n              <span className={styles.disableLinkTel}>{vm.additionalInformation || \"-\"}</span>\n            </div>\n          </Col>\n        </Row>\n        <Row className=\"mb-3\">\n          <Col>\n            <span className=\"font-weight-bold\">{translateLabel(\"additionalInformation\")}</span>\n            <div className=\"text-nowrap\">\n              <span className={styles.disableLinkTel}>{vm.additionalInformation || \"-\"}</span>\n            </div>\n          </Col>\n        </Row>\n        <Row>\n          <Col>\n            <span className=\"font-weight-bold\">{translateLabel(\"amount\")}</span>\n            <div className=\"text-nowrap\">{vm.priceSepa || \"-\"}</div>\n          </Col>\n        </Row>\n      </Col>\n      {vm.qrcode && (\n        <div className={`${styles.qrCodeFixed} ${styles.qrCodeContainer} pl-3`}>\n          <QRCodeImage base64Svg={vm.qrcode} />\n        </div>\n      )}\n    </Row>\n  );\n});\n\nexport default SepaInstructions;\n","import { CommonInputProps } from \"@frui.ts/bootstrap/dist/controls/commonInputProps\";\nimport { BindingProperty, bound, ensureObservableProperty, PropertyName, PropertyType } from \"@frui.ts/helpers/dist\";\nimport { BindingComponent, IBindingProps } from \"@frui.ts/views\";\nimport { get, isObservable, isObservableProp } from \"mobx\";\nimport { Observer } from \"mobx-react-lite\";\nimport * as React from \"react\";\nimport { Form, FormCheckProps } from \"react-bootstrap\";\nimport { setVisitedProperty } from \"../utils/validationPatch\";\n\nexport interface RadioArrayProps {\n  option: any;\n  isNumeric?: boolean;\n  resetOnClick?: boolean;\n  className?: string;\n}\n\nexport class RadioArray<TTarget extends {} | Map<any, any>> extends BindingComponent<\n  TTarget,\n  RadioArrayProps & FormCheckProps & CommonInputProps & IBindingProps<TTarget>\n> {\n  protected get inheritedProps() {\n    const { id, isInvalid, className, target, property, onValueChanged, isNumeric, resetOnClick, ...otherProps } = this.props;\n\n    return otherProps;\n  }\n\n  render() {\n    const { className, id } = this.props;\n    const { target, property } = this.props as unknown as { target: TTarget; property: PropertyName<TTarget> };\n\n    return (\n      <Observer>\n        {() => (\n          <Form.Check\n            {...this.inheritedProps}\n            id={id}\n            className={`radio-array ${className || \"\"}`}\n            checked={this.value}\n            type=\"radio\"\n            autoComplete=\"new-password\"\n            onBlur={() => setVisitedProperty(target, property)}\n            onChange={this.handleValueChanged}\n            onClick={this.handleClick}\n          />\n        )}\n      </Observer>\n    );\n  }\n\n  protected get value() {\n    const { option, isNumeric, disabled } = this.props;\n\n    const target = this.props.target as TTarget;\n    const property = this.props.property as unknown as PropertyName<TTarget>;\n\n    if (!target) {\n      //// throw new Error(\"'target' prop has not been set\");\n      // tslint:disable-next-line: no-console\n      return undefined;\n    }\n    if (!property) {\n      throw new Error(\"'property' prop has not been set\");\n    }\n\n    if (!isObservable(target) || !isObservableProp(target, property)) {\n      ensureObservableProperty(target, property, target[property]);\n    }\n\n    if (option === undefined || option === null) {\n      throw new Error(\"'option' prop is required for RadioArray!\");\n    }\n\n    let value: string | number | undefined = option;\n\n    if (isNumeric) {\n      value = parseInt(option, 10);\n    }\n\n    if (disabled) {\n      return false as PropertyType<TTarget, BindingProperty<TTarget>>;\n    }\n\n    return (get(target, property) === value) as PropertyType<TTarget, BindingProperty<TTarget>>;\n  }\n\n  @bound\n  protected handleValueChanged(e: React.FormEvent<any>) {\n    const { option, isNumeric, resetOnClick } = this.props;\n    let value: undefined | string | number;\n    if (isNumeric && option) {\n      value = parseInt(option, 10);\n    } else {\n      value = option;\n    }\n\n    this.setValue(value);\n  }\n  @bound\n  protected handleClick(e: React.FormEvent<any>) {\n    const { option, resetOnClick } = this.props;\n    const target = this.props.target as TTarget;\n    const property = this.props.property as unknown as PropertyName<TTarget>;\n\n    if (resetOnClick && get(target, property) === option && this.value) {\n      this.setValue(undefined);\n    }\n  }\n}\n","import { PaymentInstructionType } from \"viewModels/common/payment/bankTransferViewModel\";\n\nconst eur =\n  \"data:image/svg+xml,%3Csvg%20width%3D%2233%22%20height%3D%2232%22%20viewBox%3D%220%200%2033%2032%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ccircle%20cx%3D%2216.5%22%20cy%3D%2216%22%20r%3D%2216%22%20fill%3D%22%23052856%22%2F%3E%3Cpath%20d%3D%22M17.1733%2010.0918C17.6994%2010.0918%2018.1864%2010.1465%2018.6343%2010.2559C19.0822%2010.3652%2019.5119%2010.5241%2019.9233%2010.7324L19.1577%2012.5449C18.7983%2012.3835%2018.4624%2012.2585%2018.1499%2012.1699C17.8374%2012.0762%2017.5119%2012.0293%2017.1733%2012.0293C16.8556%2012.0293%2016.564%2012.0762%2016.2983%2012.1699C16.0379%2012.2637%2015.8062%2012.4017%2015.603%2012.584C15.3999%2012.7663%2015.2306%2012.9902%2015.0952%2013.2559C14.9598%2013.5215%2014.8634%2013.8288%2014.8062%2014.1777H17.9546V15.5527H14.689C14.689%2015.5892%2014.6864%2015.6439%2014.6812%2015.7168C14.6759%2015.7897%2014.6733%2015.873%2014.6733%2015.9668C14.6733%2016.0501%2014.6733%2016.1309%2014.6733%2016.209C14.6785%2016.2819%2014.6838%2016.3626%2014.689%2016.4512H17.4624V17.8418H14.8218C14.9103%2018.2533%2015.0614%2018.6022%2015.2749%2018.8887C15.4937%2019.1699%2015.7749%2019.3835%2016.1187%2019.5293C16.4624%2019.6699%2016.866%2019.7402%2017.3296%2019.7402C17.741%2019.7402%2018.1239%2019.7012%2018.478%2019.623C18.8322%2019.5397%2019.1655%2019.4303%2019.478%2019.2949V21.2949C19.1812%2021.446%2018.8478%2021.5605%2018.478%2021.6387C18.1082%2021.7168%2017.6785%2021.7559%2017.189%2021.7559C16.3556%2021.7559%2015.6108%2021.6048%2014.9546%2021.3027C14.3035%2020.9954%2013.7671%2020.5501%2013.3452%2019.9668C12.9233%2019.3835%2012.6369%2018.6751%2012.4858%2017.8418H11.4155V16.4512H12.3374C12.3322%2016.3939%2012.3244%2016.321%2012.314%2016.2324C12.3088%2016.1387%2012.3062%2016.0501%2012.3062%2015.9668C12.3062%2015.8887%2012.3062%2015.8132%2012.3062%2015.7402C12.3114%2015.6621%2012.3166%2015.5996%2012.3218%2015.5527H11.4155V14.1777H12.4546C12.59%2013.3236%2012.8713%2012.5918%2013.2983%2011.9824C13.7254%2011.373%2014.2697%2010.9069%2014.9312%2010.584C15.5926%2010.2559%2016.34%2010.0918%2017.1733%2010.0918Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E\";\n\nconst czk =\n  \"data:image/svg+xml,%3Csvg%20width%3D%2233%22%20height%3D%2232%22%20viewBox%3D%220%200%2033%2032%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ccircle%20cx%3D%2216.5%22%20cy%3D%2216%22%20r%3D%2216%22%20fill%3D%22%23052856%22%2F%3E%3Cpath%20d%3D%22M17%2021.4004H14.8L12.4063%2017.5504L11.5875%2018.1379V21.4004H9.65V12.2629H11.5875V16.4441C11.7167%2016.265%2011.8438%2016.0858%2011.9688%2015.9066C12.0938%2015.7275%2012.2208%2015.5483%2012.35%2015.3691L14.825%2012.2629H16.975L13.7875%2016.3066L17%2021.4004ZM20.8375%2021.5254C20.1458%2021.5254%2019.5563%2021.4004%2019.0688%2021.1504C18.5813%2020.8962%2018.2104%2020.5046%2017.9563%2019.9754C17.7021%2019.4462%2017.575%2018.7691%2017.575%2017.9441C17.575%2017.09%2017.7188%2016.3941%2018.0063%2015.8566C18.2979%2015.315%2018.7%2014.9171%2019.2125%2014.6629C19.7292%2014.4087%2020.3271%2014.2816%2021.0063%2014.2816C21.4896%2014.2816%2021.9063%2014.3296%2022.2563%2014.4254C22.6104%2014.5171%2022.9188%2014.6275%2023.1813%2014.7566L22.6188%2016.2316C22.3188%2016.1108%2022.0396%2016.0129%2021.7813%2015.9379C21.5229%2015.8587%2021.2646%2015.8191%2021.0063%2015.8191C20.6729%2015.8191%2020.3958%2015.8983%2020.175%2016.0566C19.9542%2016.2108%2019.7896%2016.4441%2019.6813%2016.7566C19.5729%2017.0691%2019.5188%2017.4608%2019.5188%2017.9316C19.5188%2018.3941%2019.5771%2018.7775%2019.6938%2019.0816C19.8104%2019.3858%2019.9792%2019.6129%2020.2%2019.7629C20.4208%2019.9087%2020.6896%2019.9816%2021.0063%2019.9816C21.4021%2019.9816%2021.7542%2019.9296%2022.0625%2019.8254C22.3708%2019.7171%2022.6708%2019.5671%2022.9625%2019.3754V21.0066C22.6708%2021.19%2022.3646%2021.3212%2022.0438%2021.4004C21.7271%2021.4837%2021.325%2021.5254%2020.8375%2021.5254ZM19.5875%2013.6441C19.4708%2013.4525%2019.3167%2013.2421%2019.125%2013.0129C18.9333%2012.7796%2018.7354%2012.5525%2018.5313%2012.3316C18.3271%2012.1108%2018.1458%2011.9212%2017.9875%2011.7629V11.5941H19.2563C19.4771%2011.7358%2019.7146%2011.8983%2019.9688%2012.0816C20.2229%2012.2608%2020.4625%2012.465%2020.6875%2012.6941C20.9083%2012.465%2021.15%2012.2587%2021.4125%2012.0754C21.6792%2011.8879%2021.925%2011.7275%2022.15%2011.5941H23.4125V11.7629C23.2625%2011.9171%2023.0854%2012.1046%2022.8813%2012.3254C22.6771%2012.5462%2022.4771%2012.7733%2022.2813%2013.0066C22.0896%2013.24%2021.9333%2013.4525%2021.8125%2013.6441H19.5875Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E\";\n\nexport { eur, czk };\n\nexport const instructionTypeIcon = (instructionType: PaymentInstructionType) => {\n  switch (instructionType) {\n    case PaymentInstructionType.Domestic:\n      return czk;\n    case PaymentInstructionType.Sepa:\n      return eur;\n  }\n};\n","import { RadioArray } from \"controls/radioArray\";\nimport { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport { Card, Col, Row } from \"react-bootstrap\";\nimport { registerView } from \"@frui.ts/views\";\nimport BankTransferViewModel, { PaymentInstructionType } from \"viewModels/common/payment/bankTransferViewModel\";\nimport { IconType } from \"@edaz/edazkit/Icon\";\nimport Icon from \"@edaz/edazkit/Icon\";\nimport { instructionTypeIcon } from \"./instructionAssets\";\n\nconst InstructionCard: FunctionComponent<{\n  vm: BankTransferViewModel;\n  option: { id: PaymentInstructionType; name: string; type: PaymentInstructionType };\n}> = observer(({ vm, option }) => {\n  const ta = (code: string) => vm.localizationService.translate(code);\n\n  const labelContent = (\n    <Card.Body className=\"d-flex align-items-center p-2\" style={{ minHeight: \"4rem\" }}>\n      <div\n        className=\"d-flex flex-shrink-0 align-items-center justify-content-center mr-3\"\n        style={{ width: \"2.5rem\", height: \"2.5rem\" }}>\n        <img style={{ width: \"2rem\", height: \"2rem\" }} src={instructionTypeIcon(option.type)} alt={ta(option.name)} />\n      </div>\n      <div className=\"flex-grow-1\">\n        <div\n          className=\"m-0 font-weight-bold\"\n          style={{\n            wordBreak: \"keep-all\",\n            hyphens: \"none\",\n            whiteSpace: \"normal\",\n          }}>\n          {ta(option.name)}\n        </div>\n      </div>\n    </Card.Body>\n  );\n\n  const isSelected = vm.selectedPaymentType === option.type;\n\n  const radioId = `payment-type-${option.type}`;\n  return (\n    <Card\n      className={\"instruction-view w-100\" + (isSelected ? \" border-success\" : \"\")}\n      style={{\n        backgroundColor: isSelected ? \"rgba(1, 177, 99, 0.1)\" : \"transparent\",\n        height: \"100%\",\n      }}>\n      <RadioArray\n        custom\n        label={labelContent}\n        className={\"instruction-type-select d-flex align-items-center label-stretch pl-0 h-100\"}\n        name={\"paymentType\"}\n        target={vm}\n        property=\"selectedPaymentType\"\n        isNumeric={false}\n        id={radioId}\n        option={option.type}\n        isInvalid={false}\n      />\n    </Card>\n  );\n});\n\nexport default InstructionCard;\n","import { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { Col, Form } from \"react-bootstrap\";\nimport { ViewComponent } from \"@frui.ts/views\";\nimport BankTransferViewModel from \"viewModels/common/payment/bankTransferViewModel\";\nimport InstructionCard from \"./instructionCard\";\n\nconst InstructionSelect: ViewComponent<BankTransferViewModel> = observer(({ vm }) => {\n  if (!vm.paymentTypeOptions || vm.paymentTypeOptions.length <= 1) {\n    return null;\n  }\n\n  return (\n    <fieldset className=\"mb-4 form-row\">\n      <Form.Group as={Col} xs={12} className=\"m-0\">\n        <div className=\"pb-4\" style={{ borderBottom: \"1px solid #BDC7D1\" }}>\n          <Form.Row className=\"align-items-stretch\">\n            {vm.paymentTypeOptions.map(option => (\n              <Form.Group as={Col} key={option.id} sm={12} xl={6} className=\"d-flex mb-2 pr-2 pl-2\">\n                <InstructionCard vm={vm} option={option} />\n              </Form.Group>\n            ))}\n          </Form.Row>\n        </div>\n      </Form.Group>\n    </fieldset>\n  );\n});\n\nexport default InstructionSelect;\n","import { registerView, View, ViewComponent } from \"@frui.ts/views\";\nimport { formatBankAccount } from \"@edaz/utils/bankAccount\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport BankTransferViewModel from \"viewModels/common/payment/bankTransferViewModel\";\nimport AlertWithInfoIcon from \"views/common/alertWithInfoIcon/alertWithInfoIcon\";\nimport { Col, Jumbotron, Row } from \"react-bootstrap\";\nimport { QRCode } from \"react-qr-svg\";\nimport SepaInstructions from \"./sepaInstructions\";\nimport classNames from \"classnames\";\nimport styles from \"./bankTransfer.module.scss\";\n\nconst DomesticInstructions: ViewComponent<BankTransferViewModel> = observer(({ vm }) => {\n  const ta = (attribute: string, model?: string) => vm.localizationService.translateAttribute(model || \"payment\", attribute);\n  const tg = (code: string) => vm.localizationService.translateGeneral(code);\n\n  const QRCodeImage: React.FC<{ base64Svg: string }> = ({ base64Svg }) => {\n    const svgXml = atob(base64Svg);\n    return <div className={styles.qrCodeContainer} dangerouslySetInnerHTML={{ __html: svgXml }} />;\n  };\n\n  return (\n    <Row className=\"position-relative\">\n      <Col xs={6}>\n        <Row className=\"mb-3\">\n          <Col>\n            <span className=\"font-weight-bold\">{ta(\"subject\")}</span>\n            <div>{tg(\"eshop.transfer.address\")}</div>\n            <div>{tg(\"eshop.transfer.country\")}</div>\n            <div>\n              {ta(\"organizationIdentifier\", \"organization\")}\n              {\": \"}\n              <span className={styles.disableLinkTel}>{tg(\"eshop.transfer.identificationNumber\")}</span>\n            </div>\n          </Col>\n        </Row>\n      </Col>\n      <Col xs={12}>\n        <Row className=\"mb-3\">\n          <Col>\n            <span className=\"font-weight-bold\">{ta(\"bankAccount\")}</span>\n            <div style={{ wordBreak: \"break-all\", wordWrap: \"break-word\" }}>\n              <span className={styles.disableLinkTel}>{formatBankAccount(vm.domesticPayment?.bankAccount)}</span>\n            </div>\n          </Col>\n        </Row>\n\n        <Row className=\"mb-3\">\n          <Col>\n            <span className=\"font-weight-bold\">{ta(\"variableSymbol\")}</span>\n            <div className=\"text-nowrap\">\n              <span className={styles.disableLinkTel}>{vm.variableSymbol || \"-\"}</span>\n            </div>\n          </Col>\n        </Row>\n        <Row>\n          <Col>\n            <span className=\"font-weight-bold\">{ta(\"price\")}</span>\n            <div className=\"text-nowrap\">{vm.priceDomestic || \"-\"}</div>\n          </Col>\n        </Row>\n      </Col>\n      {vm.qrcode && (\n        <div className={`${styles.qrCodeFixed} ${styles.qrCodeContainer} pl-3`}>\n          <QRCodeImage base64Svg={vm.qrcode} />\n        </div>\n      )}\n    </Row>\n  );\n});\n\nexport default DomesticInstructions;\n","import { registerView, View, ViewComponent } from \"@frui.ts/views\";\r\nimport { formatBankAccount } from \"@edaz/utils/bankAccount\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport React from \"react\";\r\nimport BankTransferViewModel, { PaymentInstructionType } from \"viewModels/common/payment/bankTransferViewModel\";\r\nimport AlertWithInfoIcon from \"views/common/alertWithInfoIcon/alertWithInfoIcon\";\r\nimport { Col, Jumbotron, Row } from \"react-bootstrap\";\r\nimport { QRCode } from \"react-qr-svg\";\r\nimport SepaInstructions from \"./sepaInstructions\";\r\nimport classNames from \"classnames\";\r\nimport styles from \"./bankTransfer.module.scss\";\r\nimport InstructionSelect from \"./instructionSelect\";\r\nimport DomesticInstructions from \"./domesticInstructions\";\r\n\r\nconst BankTransfer: ViewComponent<BankTransferViewModel> = observer(({ vm }) => {\r\n  const ta = (attribute: string, model?: string) => vm.localizationService.translateAttribute(model || \"payment\", attribute);\r\n  const tg = (code: string) => vm.localizationService.translateGeneral(code);\r\n  const QRCodeImage: React.FC<{ base64Svg: string }> = ({ base64Svg }) => {\r\n    const svgXml = atob(base64Svg);\r\n    return <div className=\"qr-code\" dangerouslySetInnerHTML={{ __html: svgXml }} />;\r\n  };\r\n\r\n  return (\r\n    <>\r\n      {vm.chargeOrder && (\r\n        <Row>\r\n          <Col sm={12} md={7} className=\"mb-3\">\r\n            <Jumbotron className=\"mb-3 mb-md-0 mb-sm-3 p-4 p-md-7 w-100 multi-eshop\">\r\n              <Row>\r\n                <Col xs={12}>\r\n                  <h4>{tg(\"eshop.transfer.title\")}</h4>\r\n                </Col>\r\n              </Row>\r\n              <InstructionSelect vm={vm} />\r\n              {vm.selectedPaymentType === PaymentInstructionType.Domestic ? (\r\n                <DomesticInstructions vm={vm} />\r\n              ) : (\r\n                <SepaInstructions vm={vm} />\r\n              )}\r\n              {vm.selectedPaymentType === PaymentInstructionType.Sepa && (\r\n                <AlertWithInfoIcon variant=\"info-light\" className=\"mt-7\">\r\n                  <span>{tg(\"payment.info\")}</span>\r\n                </AlertWithInfoIcon>\r\n              )}\r\n              <AlertWithInfoIcon\r\n                variant=\"warning\"\r\n                className={vm.selectedPaymentType === PaymentInstructionType.Sepa ? \"mt-2\" : \"mt-7\"}>\r\n                <span>{vm.bankTransferInfo}</span>\r\n              </AlertWithInfoIcon>\r\n            </Jumbotron>\r\n          </Col>\r\n          <Col sm={12} md={5}>\r\n            <div className=\"mb-5\">\r\n              <View vm={vm.children[0]} />\r\n            </div>\r\n            <View vm={vm.children[1]} />\r\n          </Col>\r\n        </Row>\r\n      )}\r\n    </>\r\n  );\r\n});\r\n\r\nregisterView(BankTransfer, BankTransferViewModel);\r\n","import { registerView, ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { Alert, Col, Jumbotron, Row } from \"react-bootstrap\";\nimport OrderSummaryViewModel from \"viewModels/common/payment/orderSummaryViewModel\";\nimport { PaymentType } from \"models/payment\";\nimport { ChargeOrderStatus } from \"models/chargeOrder\";\nimport { IconType } from \"@edaz/edazkit/Icon\";\nimport Button from \"@edaz/edazkit/Button\";\nimport { getTimeZoneLabel } from \"utils/dateUtils\";\nimport Tooltip from \"controls/tooltip\";\nimport { isMobile } from \"react-device-detect\";\n\nconst OrderSummaryView: ViewComponent<OrderSummaryViewModel> = observer(({ vm }) => {\n  const tg = (code: string) => vm.localizationService.translateGeneral(`eshop.order.summary.${code}`);\n  const renderDateWithTimeZone = (date: Date) => {\n    const formatted = vm.localizationService.formatDateTime(date);\n    return !vm.isDifferentTimeZone ? (\n      <span>{formatted}</span>\n    ) : (\n      <>\n        <span>{formatted}</span>\n        <Tooltip\n          id=\"cet-tooltip\"\n          placement={isMobile ? \"bottom\" : \"right\"}\n          tooltip={vm.localizationService.translateGeneral(\"timezoneTooltip\")}\n          trigger={[\"hover\", \"focus\"]}>\n          <span style={{ marginLeft: 4, textDecoration: \"underline\", textDecorationStyle: \"dotted\" }}>\n            {getTimeZoneLabel(date)}\n          </span>\n        </Tooltip>\n      </>\n    );\n  };\n\n  return (\n    <Jumbotron\n      className={\n        \"p-5 p-md-7 mb-0 mb-sm-3 mb-md-0 card-box-shadow\" +\n        (vm.authorizationCode && vm.chargeOrder.paymentType !== PaymentType.Transfer ? \" h-100\" : \"\")\n      }>\n      <div>\n        <Row className=\"d-flex justify-content-between mr-0 mb-3 ml-0\">\n          <Col lg=\"auto\" className=\"m-0 p-0\">\n            <span className=\"font-weight-bold text-nowrap\">{tg(\"vehicle\")}</span>\n          </Col>\n          <Col lg=\"auto\" className=\"m-0 p-0\">\n            <span className=\"text-nowrap\">{vm.vehicleInfo}</span>\n          </Col>\n        </Row>\n        <Row className=\"d-flex justify-content-between mr-0 mb-3 ml-0\">\n          <Col lg=\"auto\" className=\"m-0 p-0\">\n            <span className=\"font-weight-bold text-nowrap\">{tg(\"markType\")}</span>\n          </Col>\n          <Col lg=\"auto\" className=\"m-0 p-0\">\n            <span className=\"text-nowrap\">{vm.chargeType}</span>\n          </Col>\n        </Row>\n        <Row className=\"d-flex justify-content-between mr-0 mb-3 ml-0\">\n          <Col lg=\"auto\" className=\"m-0 p-0\">\n            <span className=\"font-weight-bold text-nowrap\">{tg(\"fuelType\")}</span>\n          </Col>\n          <Col lg=\"auto\" className=\"m-0 p-0\">\n            <span className=\"text-nowrap\">{vm.fuelType}</span>\n          </Col>\n        </Row>\n        <Row className=\"d-flex justify-content-between mr-0 mb-3 ml-0\">\n          <Col lg=\"auto\" className=\"m-0 p-0\">\n            <span className=\"font-weight-bold text-nowrap\">{tg(\"validSince\")}</span>\n          </Col>\n          <Col lg=\"auto\" className=\"m-0 p-0\">\n            <span className=\"text-nowrap\">\n              {vm.validSince\n                ? renderDateWithTimeZone(new Date(vm.validSince))\n                : vm.localizationService.translateAttribute(\"chargeType\", \"undefined\")}\n            </span>\n          </Col>\n        </Row>\n        <Row className=\"d-flex justify-content-between mr-0 mb-3 ml-0\">\n          <Col lg=\"auto\" className=\"m-0 p-0\">\n            <span className=\"font-weight-bold text-nowrap\">{tg(\"validUntil\")}</span>\n          </Col>\n          <Col lg=\"auto\" className=\"m-0 p-0\">\n            <span className=\"text-nowrap\">\n              {vm.validUntil\n                ? renderDateWithTimeZone(new Date(vm.validUntil))\n                : vm.localizationService.translateAttribute(\"chargeType\", \"undefined\")}\n            </span>\n          </Col>\n        </Row>\n        <Row className=\"d-flex justify-content-between mr-0 mb-3 ml-0\">\n          <Col lg=\"auto\" className=\"m-0 p-0\">\n            <span className=\"font-weight-bold\">{tg(\"email\")}</span>\n          </Col>\n          <Col lg=\"auto\" className=\"m-0 p-0\">\n            <span className=\"text-nowrap\">{vm.email}</span>\n          </Col>\n        </Row>\n      </div>\n      {vm.chargeOrder._proposedAfterPurchaseRedirect && (\n        <div className=\"justify-content-center pt-4 pt-lg-4 pt-xl-4 row\">\n          <Button\n            type=\"button\"\n            variant=\"primary\"\n            className=\"px-2 px-md-4\"\n            onClick={vm.openRedirectLink}\n            iconRight={IconType.ArrowRight}>\n            {`${tg(\"openExternalUrl\")} ${vm.chargeOrder._proposedAfterPurchaseRedirect.redirectWebsiteName} ${tg(\n              \"openExternalUrlEnd\"\n            )}`}\n          </Button>\n        </div>\n      )}\n    </Jumbotron>\n  );\n});\n\nregisterView(OrderSummaryView, OrderSummaryViewModel);\n","import { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent, useRef } from \"react\";\nimport Modal from \"react-bootstrap/Modal\";\nimport Button from \"@edaz/edazkit/Button/index\";\n\nconst IdleModal: FunctionComponent<{\n  translate: (code: string) => string;\n  resetIdle: () => void;\n  isVisible: boolean;\n  remainTime: number;\n}> = observer(({ translate, resetIdle, isVisible, remainTime }) => {\n  const rootRef = useRef<HTMLDivElement>(null);\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  const onHide = () => {};\n  const secondsRegex = /%seconds%/g;\n  const countRegex = /%count%/g;\n  const seconds = remainTime / 1000 ?? 0;\n\n  const inSeconds = translate(seconds < 5 && seconds > 0 ? (seconds === 1 ? \"inSecond\" : \"in4Seconds\") : \"inSeconds\");\n\n  const time = translate(\"description\").replace(secondsRegex, inSeconds.replace(countRegex, seconds.toString()));\n\n  return (\n    <div ref={rootRef}>\n      <Modal container={rootRef.current} dialogClassName=\"loading-modal\" show={isVisible} onHide={onHide} centered>\n        <Modal.Body className=\"text-center p-7\">\n          <h4 className=\"mb-4\">{translate(\"title\")}</h4>\n          <label className=\"mb-4 font-weight-normal\">{time}</label>\n          <Button variant=\"primary\" onClick={resetIdle} size=\"sm\" className=\"mt-1 pl-4 pr-4\">\n            {translate(\"continue\")}\n          </Button>\n        </Modal.Body>\n      </Modal>\n    </div>\n  );\n});\n\nexport default IdleModal;\n","import padStart from \"lodash/padStart\";\nimport millisecondsToMinutes from \"date-fns/millisecondsToMinutes\";\nimport millisecondsToSeconds from \"date-fns/millisecondsToSeconds\";\n\nexport default function formatMillisecondsToTime(ms: number) {\n  const minutes = millisecondsToMinutes(ms);\n  const secondsInMinute = 60;\n  const seconds = millisecondsToSeconds(ms) % secondsInMinute;\n  const formattedSeconds = padStart(seconds.toString(), 2, \"0\");\n\n  return `${minutes}:${formattedSeconds}`;\n}\n","import * as React from \"react\";\nimport GooglePayButton from \"@google-pay/button-react\";\nimport GooglePayMetadata from \"../../../../models/googlePayMetadata\";\nimport { ErrorMessage } from \"../../../../viewModels/common/types\";\nimport * as Sentry from \"@sentry/react\";\nimport { useState } from \"react\";\nimport Alert from \"react-bootstrap/Alert\";\n\ntype EDAZGooglePayButtonProps = {\n  loading: boolean;\n  googlePayMetadata: GooglePayMetadata | undefined;\n  locale: string;\n  createOrder?:\n    | ((\n        errorMessage: ErrorMessage,\n        paymentData?: google.payments.api.PaymentData,\n        turnstileToken?: string | null\n      ) => Promise<void>)\n    | ((errorMessage: ErrorMessage, paymentData?: google.payments.api.PaymentData) => void);\n  validateOrder: () => boolean;\n  errorMessage: string;\n  totalPrice: number | undefined;\n  fillContainer?: boolean;\n};\n\nexport const EDAZGooglePayButton = ({\n  googlePayMetadata,\n  locale,\n  loading,\n  createOrder,\n  validateOrder,\n  errorMessage,\n  totalPrice,\n  fillContainer,\n}: EDAZGooglePayButtonProps) => {\n  const [error, setError] = useState(false);\n\n  const paymentRequest: google.payments.api.PaymentDataRequest | undefined = googlePayMetadata\n    ? {\n        apiVersion: googlePayMetadata.apiVersion,\n        apiVersionMinor: googlePayMetadata.apiVersionMinor,\n        merchantInfo: {\n          merchantId: googlePayMetadata.googlePayMerchantId,\n          merchantName: googlePayMetadata.merchantName,\n        },\n        allowedPaymentMethods: [\n          {\n            type: googlePayMetadata.paymentMethodType,\n            parameters: {\n              allowedAuthMethods: googlePayMetadata.allowedCardAuthMethods,\n              allowedCardNetworks: googlePayMetadata.allowedCardNetworks,\n            },\n            tokenizationSpecification: {\n              type: googlePayMetadata.tokenizationSpecificationType as \"PAYMENT_GATEWAY\",\n              parameters: {\n                gateway: googlePayMetadata.gateway,\n                gatewayMerchantId: googlePayMetadata.gatewayMerchantId,\n              },\n            },\n          },\n        ],\n        transactionInfo: {\n          totalPriceStatus: \"FINAL\",\n          totalPriceLabel: \"Total\",\n          totalPrice: (totalPrice ?? 0).toString(),\n          currencyCode: \"CZK\",\n          countryCode: \"CZ\",\n        },\n      }\n    : undefined;\n\n  const onClick = async (event: Event) => {\n    if (!validateOrder()) {\n      event.preventDefault();\n\n      if (createOrder) {\n        await createOrder(\"invalidData\");\n      }\n    }\n  };\n\n  const onLoadPaymentData = async (paymentRequest: google.payments.api.PaymentData) => {\n    if (createOrder) {\n      await createOrder(undefined, paymentRequest);\n    }\n  };\n\n  const onError = (error: Error | google.payments.api.PaymentsError) => {\n    setError(true);\n\n    Sentry.captureException(error);\n  };\n\n  return (\n    <>\n      {loading ? (\n        <div className=\"spinner-border spinner-border-sm\" role=\"status\">\n          <span className=\"sr-only\">Loading...</span>\n        </div>\n      ) : (\n        <>\n          {googlePayMetadata && paymentRequest && (\n            <GooglePayButton\n              environment={googlePayMetadata.environment}\n              paymentRequest={paymentRequest}\n              onLoadPaymentData={onLoadPaymentData}\n              onClick={onClick}\n              onError={onError}\n              buttonLocale={locale}\n              {...(fillContainer\n                ? {\n                    buttonSizeMode: \"fill\" as const,\n                    style: { width: \"100%\", height: \"100%\" },\n                  }\n                : {})}\n            />\n          )}\n        </>\n      )}\n    </>\n  );\n};\n","import React, { useEffect, useState } from \"react\";\nimport { registerView, ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport { Col, Jumbotron, Row } from \"react-bootstrap\";\nimport Button from \"@edaz/edazkit/Button\";\nimport Icon, { IconType } from \"@edaz/edazkit/Icon\";\nimport PaymentRetryViewModel from \"viewModels/common/payment/paymentRetryViewModel\";\nimport { getTimeZoneLabel } from \"utils/dateUtils\";\nimport Tooltip from \"controls/tooltip\";\nimport { isMobile } from \"react-device-detect\";\nimport LoadingModal from \"../loadingModal/loadingModal\";\nimport IdleModal from \"views/common/idleModal/idleModal\";\nimport { useIdleTimer } from \"react-idle-timer\";\nimport formatMillisecondsToTime from \"utils/formatMilisecondsToTime\";\nimport { EDAZGooglePayButton } from \"views/eshop/order/components/googlePayButton\";\nimport toolboxStyles from \"views/eshop/order/components/toolboxView.module.scss\";\n\nconst SingleRecap: ViewComponent<PaymentRetryViewModel> = observer(({ vm }) => {\n  const tg = (code: string) => vm.localizationService.translateGeneral(`eshop.order.summary.${code}`);\n  const tr = (code: string) => vm.localizationService.translateGeneral(`eshop.payment.retry.${code}`);\n\n  const renderDateWithTimeZone = (date: Date) => {\n    const formatted = vm.localizationService.formatDateTime(date);\n    return !vm.isDifferentTimeZone ? (\n      <span>{formatted}</span>\n    ) : (\n      <>\n        <span>{formatted}</span>\n        <Tooltip\n          id=\"cet-tooltip\"\n          placement={isMobile ? \"bottom\" : \"right\"}\n          tooltip={vm.localizationService.translateGeneral(\"timezoneTooltip\")}\n          trigger={[\"hover\", \"focus\"]}>\n          <span style={{ marginLeft: 4, textDecoration: \"underline\", textDecorationStyle: \"dotted\" }}>\n            {getTimeZoneLabel(date)}\n          </span>\n        </Tooltip>\n      </>\n    );\n  };\n\n  return (\n    <>\n      <Row className=\"d-flex justify-content-between mr-0 mb-3 ml-0\">\n        <Col lg=\"auto\" className=\"m-0 p-0\">\n          <span>{tg(\"vehicle\")}</span>\n        </Col>\n        <Col lg=\"auto\" className=\"m-0 p-0\">\n          <span className=\"font-weight-bold text-nowrap\">{vm.vehicleInfo}</span>\n        </Col>\n      </Row>\n      <Row className=\"d-flex justify-content-between mr-0 mb-3 ml-0\">\n        <Col lg=\"auto\" className=\"m-0 p-0\">\n          <span>{tg(\"markType\")}</span>\n        </Col>\n        <Col lg=\"auto\" className=\"m-0 p-0\">\n          <span className=\"font-weight-bold text-nowrap\">{vm.chargeType}</span>\n        </Col>\n      </Row>\n      <Row className=\"d-flex justify-content-between mr-0 mb-3 ml-0\">\n        <Col lg=\"auto\" className=\"m-0 p-0\">\n          <span>{tg(\"fuelType\")}</span>\n        </Col>\n        <Col lg=\"auto\" className=\"m-0 p-0\">\n          <span className=\"font-weight-bold text-nowrap\">{vm.fuelType}</span>\n        </Col>\n      </Row>\n      <Row className=\"d-flex justify-content-between mr-0 mb-3 ml-0\">\n        <Col lg=\"auto\" className=\"m-0 p-0\">\n          <span>{tg(\"validSince\")}</span>\n        </Col>\n        <Col lg=\"auto\" className=\"m-0 p-0\">\n          <span className=\"font-weight-bold text-nowrap\">\n            {vm.validSince ? renderDateWithTimeZone(new Date(vm.validSince)) : \"\"}\n          </span>\n        </Col>\n      </Row>\n      <Row className=\"d-flex justify-content-between mr-0 mb-3 ml-0\">\n        <Col lg=\"auto\" className=\"m-0 p-0\">\n          <span>{tg(\"validUntil\")}</span>\n        </Col>\n        <Col lg=\"auto\" className=\"m-0 p-0\">\n          <span className=\"font-weight-bold text-nowrap\">\n            {vm.validUntil ? renderDateWithTimeZone(new Date(vm.validUntil)) : \"\"}\n          </span>\n        </Col>\n      </Row>\n      <Row className=\"d-flex justify-content-between mr-0 mb-3 ml-0\">\n        <Col lg=\"auto\" className=\"m-0 p-0\">\n          <span>{tr(\"emailPayment\")}</span>\n        </Col>\n        <Col lg=\"auto\" className=\"m-0 p-0\">\n          <span className=\"font-weight-bold text-nowrap\">{vm.email}</span>\n        </Col>\n      </Row>\n\n      {!vm.isSingleDay && (\n        <>\n          <div className=\"mx-0 mt-3 mb-3 border-top\" />\n\n          <Row className=\"d-flex justify-content-between mr-0 mb-3 ml-0\">\n            <Col lg=\"auto\" className=\"m-0 p-0\">\n              <span>{tr(\"emailNotification\")}</span>\n            </Col>\n            <Col lg=\"auto\" className=\"m-0 p-0\">\n              <span className=\"font-weight-bold text-nowrap\">{vm.notificationEmail || tr(\"notProvided\")}</span>\n            </Col>\n          </Row>\n          <Row className=\"d-flex justify-content-between mr-0 mb-3 ml-0\">\n            <Col lg=\"auto\" className=\"m-0 p-0\">\n              <span>{tr(\"phoneNotification\")}</span>\n            </Col>\n            <Col lg=\"auto\" className=\"m-0 p-0\">\n              <span className=\"font-weight-bold text-nowrap\">{vm.notificationPhone || tr(\"notProvided\")}</span>\n            </Col>\n          </Row>\n        </>\n      )}\n\n      <div className=\"mx-0 mt-3 mb-4 border-top\" />\n\n      <Row className=\"d-flex justify-content-between mr-0 mb-4 ml-0\">\n        <Col lg=\"auto\" className=\"m-0 p-0\">\n          <h5 className=\"mb-0\">{tr(\"price\")}</h5>\n        </Col>\n        <Col lg=\"auto\" className=\"m-0 p-0\">\n          <h5 className=\"mb-0\">{vm.singlePrice}</h5>\n        </Col>\n      </Row>\n    </>\n  );\n});\n\nconst MultipleRecap: ViewComponent<PaymentRetryViewModel> = observer(({ vm }) => {\n  const tr = (code: string) => vm.localizationService.translateGeneral(`eshop.payment.retry.${code}`);\n\n  const charges = vm.uniqueCharges();\n\n  return (\n    <>\n      {charges.map(charge => (\n        <Row key={charge.index} className=\"d-flex justify-content-between mr-0 mb-3 ml-0\">\n          <Col xs=\"auto\" className=\"m-0 p-0\">\n            <span className=\"font-weight-bold\">{vm.vehicleCountLabel(charge.index)}</span>\n          </Col>\n          <Col xs=\"auto\" className=\"m-0 p-0 text-right\">\n            <div className=\"text-muted\">\n              {vm.chargeTypeLabel(charge.chargeTypeId)}, {vm.pluralizeVehicles(charge.count)}\n            </div>\n            <span className=\"font-weight-bold\">{vm.chargeTypeTotal(charge.chargeTypeId, charge.fuelTypeId, charge.count)}</span>\n          </Col>\n        </Row>\n      ))}\n\n      <div className=\"mx-0 mt-3 mb-4 border-top\" />\n\n      <Row className=\"d-flex justify-content-between mr-0 mb-4 ml-0\">\n        <Col xs=\"auto\" className=\"m-0 p-0\">\n          <h5 className=\"mb-0\">{tr(\"totalToPay\")}</h5>\n        </Col>\n        <Col xs=\"auto\" className=\"m-0 p-0\">\n          <h5 className=\"mb-0\">{vm.grandTotal}</h5>\n        </Col>\n      </Row>\n    </>\n  );\n});\n\nconst PaymentRetryView: ViewComponent<PaymentRetryViewModel> = observer(({ vm }) => {\n  const tr = (code: string) => vm.localizationService.translateGeneral(`eshop.payment.retry.${code}`);\n  const tg = (code: string) => vm.localizationService.translateGeneral(`eshop.${code}`);\n  const tge = (code: string) => vm.localizationService.translateGeneral(`eshop.order.${code}`);\n  const modalTranslate = (code: string) => vm.localizationService.translateGeneral(`eshop.card.${code}`);\n  const idleModalTranslate = (code: string) => vm.localizationService.translateGeneral(`eshop.idle.${code}`);\n\n  const { getRemainingTime } = useIdleTimer({\n    onIdle: vm.handleOnIdle,\n    timeout: vm.IDLE_TIMER_TIMEOUT,\n    debounce: vm.IDLE_TIMER_DEBOUNCE,\n    crossTab: true,\n    eventsThrottle: 200,\n    events: [\n      \"mousemove\",\n      \"keydown\",\n      \"wheel\",\n      \"DOMMouseScroll\",\n      \"mousewheel\",\n      \"mousedown\",\n      \"touchstart\",\n      \"touchmove\",\n      \"MSPointerDown\",\n      \"MSPointerMove\",\n    ],\n  });\n\n  const [timeLeft, setTimeLeft] = useState(vm.IDLE_TIMER_TIMEOUT + vm.IDLE_PROMPT_TIMEOUT);\n\n  useEffect(() => {\n    const interval = setInterval(() => {\n      const remaining = getRemainingTime();\n      const calculatedTimeLeft = Math.ceil(remaining / 1000) * 1000 + vm.IDLE_PROMPT_TIMEOUT;\n      setTimeLeft(calculatedTimeLeft);\n    }, 1000);\n\n    return () => clearInterval(interval);\n  }, []);\n\n  const backToPurchaseLabel =\n    vm.localizationService.translateGeneral(\"eshop.payment.status.failure.messages.any.any.link\") ||\n    tg(\"payment.retry.backToPurchase\");\n\n  let timer;\n  if (vm.IDLE_TIMER_TIMEOUT + vm.IDLE_PROMPT_TIMEOUT - timeLeft >= vm.IDLE_TIMER_DELAY && getRemainingTime() > 0) {\n    timer = (\n      <div className=\"d-flex flex-grow-1 justify-content-end order-timer-wrapper\">\n        <Tooltip id=\"retry-timer-tooltip\" placement=\"bottom-end\" tooltip={tge(\"timerTooltip\")} show={true}>\n          <div className=\"order-timer\">\n            <span>{formatMillisecondsToTime(timeLeft)}</span>\n          </div>\n        </Tooltip>\n      </div>\n    );\n  }\n\n  return (\n    <div className=\"mx-auto p-0 p-sm-3\" style={{ maxWidth: \"780px\", width: \"100%\" }}>\n      {timer && <div className=\"d-flex justify-content-end mb-2\">{timer}</div>}\n      <Jumbotron className=\"d-flex justify-content-center align-items-center card-box-shadow mb-3 p-4 p-md-5 text-center flex-column\">\n        <Icon icon={IconType.CircleError} width={64} height={64} className=\"mb-3 text-danger\" />\n        <h5 className=\"mb-2\">{tr(\"title\")}</h5>\n        <div className=\"mb-5 px-3\">{tr(\"description\")}</div>\n\n        <div className=\"w-100 text-left\">{vm.isMultiple ? <MultipleRecap vm={vm} /> : <SingleRecap vm={vm} />}</div>\n\n        {vm.retryBlocked ? (\n          <Button\n            type=\"button\"\n            variant=\"primary\"\n            className=\"btn-block w-100 mt-3 mb-0\"\n            onClick={vm.handleBackToPurchase}\n            disabled={vm.isLoading}>\n            {backToPurchaseLabel.toUpperCase()}\n          </Button>\n        ) : (\n          <div\n            className={`w-100 mt-3 d-flex ${\n              vm.isGooglePayAllowed && vm.isCardPayAllowed ? \"flex-column flex-md-row align-items-stretch\" : \"flex-column\"\n            }`}\n            style={{ gap: \"0.75rem\", minHeight: 48 }}>\n            {vm.isCardPayAllowed && (\n              <Button\n                type=\"button\"\n                variant=\"primary\"\n                className=\"btn-block w-100 flex-grow-1 flex-basis-0 mt-0 mb-0\"\n                onClick={vm.handleRetryPayment}\n                disabled={vm.isLoading}\n                style={{ minHeight: 48, height: 48, flexBasis: 0 }}>\n                {tr(\"payByCard\").toUpperCase()}\n              </Button>\n            )}\n            {vm.isGooglePayAllowed && (\n              <div className=\"d-flex flex-grow-1\" style={{ minHeight: 48, height: 48, flexBasis: 0 }}>\n                <EDAZGooglePayButton\n                  totalPrice={vm.grandTotalRawForGooglePay}\n                  locale={vm.localizationService.locale}\n                  googlePayMetadata={vm.googlePayMetadata}\n                  loading={!vm.isGooglePayMetadataReady}\n                  createOrder={async (_errorMessage: unknown, paymentData?: google.payments.api.PaymentData) => {\n                    if (paymentData) {\n                      await vm.handleRetryGooglePayPayment(paymentData);\n                    }\n                  }}\n                  validateOrder={vm.validateForGooglePay}\n                  errorMessage={vm.localizationService.translateGeneral(\"errors.generic\")}\n                  fillContainer={vm.isCardPayAllowed}\n                />\n              </div>\n            )}\n          </div>\n        )}\n      </Jumbotron>\n      <LoadingModal translate={modalTranslate} isVisible={vm.isLoading} />\n      <IdleModal\n        translate={idleModalTranslate}\n        isVisible={vm.showIdleModal}\n        remainTime={vm.counter}\n        resetIdle={vm.closeIdleModal}\n      />\n      {/* Google Pay browser fingerprint iframe — required by the payment gateway\n          between submitGooglePayment and payment_confirmation. */}\n      {vm.googlePayPaymentFingerprint && (\n        <iframe\n          allow=\"payment\"\n          className={toolboxStyles.fingerprintIframe}\n          onLoad={vm.onGooglePayPaymentFingerprintLoaded}\n          src={vm.googlePayPaymentFingerprint}\n        />\n      )}\n    </div>\n  );\n});\n\nregisterView(PaymentRetryView, PaymentRetryViewModel);\n","import React, { useEffect } from \"react\";\r\nimport Button from \"@edaz/edazkit/Button\";\r\nimport Icon, { IconType } from \"@edaz/edazkit/Icon\";\r\nimport { registerView, View, ViewComponent } from \"@frui.ts/views\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Col, Jumbotron, Row, Alert } from \"react-bootstrap\";\r\nimport StatusViewModel from \"viewModels/common/payment/statusViewModel\";\r\nimport AlertWithInfoIcon from \"views/common/alertWithInfoIcon/alertWithInfoIcon\";\r\nimport LoadingModal from \"../loadingModal/loadingModal\";\r\nimport classNames from \"classnames\";\r\n\r\nconst Single: ViewComponent<StatusViewModel> = observer(({ vm }) => {\r\n  const tg = (code: string) =>\r\n    vm.localizationService.translateGeneral(`eshop.payment.status.${vm.isSuccess ? \"success\" : \"deferred\"}.${code}`);\r\n  const tgSum = (code: string) => vm.localizationService.translateGeneral(`eshop.order.summary.${code}`);\r\n\r\n  return (\r\n    <Row>\r\n      <Col sm={12} md={6} className=\"\">\r\n        <Col sm={6} className=\"col-sm-12 mb-5 p-0\">\r\n          <Jumbotron className=\"d-flex justify-content-center align-items-center card-box-shadow mb-3 mb-md-0 p-5 p-lg-4 p-xl-7 text-center\">\r\n            <Col>\r\n              <Icon\r\n                className={classNames(\"mb-4 mt-3 mt-lg-0\", {\r\n                  \"text-success\": vm.isSuccess,\r\n                  \"text-orange\": !vm.isSuccess,\r\n                })}\r\n                icon={vm.isSuccess ? IconType.CircleCheck : IconType.CircleQuestionmark}\r\n                height={80}\r\n                width={80}\r\n              />\r\n              <h5>{tg(\"status\")}</h5>\r\n              <div className=\"mb-4 px-3\">{tg(\"statusInfo\")}</div>\r\n              {vm.isSuccess ? (\r\n                <Button onClick={vm.getPaymentConfirmation} className=\"d-block mx-auto mt-3\">\r\n                  {tg(\"showConfirmation\")}\r\n                </Button>\r\n              ) : (\r\n                <AlertWithInfoIcon variant=\"warning\" className=\"mt-2\">\r\n                  <span>{tg(\"warning\")}</span>\r\n                </AlertWithInfoIcon>\r\n              )}\r\n            </Col>\r\n          </Jumbotron>\r\n        </Col>\r\n        <Col sm={6} className=\"col-sm-12 mb-5 p-0\">\r\n          {vm.orderSummaryViewModel.displayAuthCode && (\r\n            <div className=\"card-box-shadow mb-0 mb-md-0 mb-sm-3 p-5 p-md-7 h-100 jumbotron\">\r\n              <h5 className=\"mb-5 text-center\">{tgSum(\"authorizationCode\")}</h5>\r\n              <div className=\"mb-5 p-0\">\r\n                <Alert\r\n                  variant={\"light\"}\r\n                  className=\"d-flex justify-content-center align-items-center border-none text-center text-dark\"\r\n                  style={{ minHeight: \"5rem\" }}>\r\n                  <div className={\"font-weight-normal text-nowrap\"} style={{ fontSize: \"1.75rem\" }}>\r\n                    {vm.orderSummaryViewModel.authorizationCode}\r\n                  </div>\r\n                </Alert>\r\n              </div>\r\n              <div className=\"d-flex justify-content-center text-center text-md-left\">\r\n                <span className=\"flex-nowrap\">{tgSum(\"authorizationCodeInfo\")}</span>\r\n              </div>\r\n            </div>\r\n          )}\r\n        </Col>\r\n      </Col>\r\n      <Col sm={12} md={6} className=\"\">\r\n        <Col sm={6} className=\"col-sm-12 mb-5 p-0\">\r\n          <View vm={vm.orderSummaryViewModel} />\r\n        </Col>\r\n\r\n        <Col sm={6} className=\"col-sm-12 mb-5 p-0\">\r\n          <View vm={vm.ratingViewModel} />\r\n        </Col>\r\n      </Col>\r\n      <div>\r\n        <LoadingModal translate={tg} isVisible={vm.showLoadingModal} />\r\n      </div>\r\n    </Row>\r\n  );\r\n});\r\n\r\nconst Multiple: ViewComponent<StatusViewModel> = observer(({ vm }) => {\r\n  const tg = (code: string) =>\r\n    vm.localizationService.translateGeneral(`eshop.payment.status.${vm.isSuccess ? \"success\" : \"deferred\"}.${code}`);\r\n  const ts = (code: string) => vm.localizationService.translateGeneral(`eshop.order.summary.${code}`);\r\n\r\n  return (\r\n    <Row>\r\n      <Col sm={12} md={6} className=\"mb-5\">\r\n        <Jumbotron className=\"d-flex justify-content-center align-items-center card-box-shadow mb-0 p-3 p-lg-4 p-xl-7 text-center\">\r\n          <Col>\r\n            <Icon\r\n              className={classNames(\"mb-4 mt-3 mt-lg-0\", {\r\n                \"text-success\": vm.isSuccess,\r\n                \"text-orange\": !vm.isSuccess,\r\n              })}\r\n              icon={vm.isSuccess ? IconType.CircleCheck : IconType.CircleQuestionmark}\r\n              height={80}\r\n              width={80}\r\n            />\r\n            <h5>{tg(\"status\")}</h5>\r\n            <div className=\"mb-4 px-3\">\r\n              {ts(\"multiEshopEmailNote\")} {vm.chargeOrder.emailAddress}\r\n            </div>\r\n            <div className=\"mb-4 px-3\">{ts(\"multiEshopLoadNote\")}</div>\r\n          </Col>\r\n        </Jumbotron>\r\n      </Col>\r\n      <Col sm={12} md={6} className=\"mb-5\">\r\n        <View vm={vm.ratingViewModel} />\r\n      </Col>\r\n      <div>\r\n        <LoadingModal translate={tg} isVisible={vm.showLoadingModal} />\r\n      </div>\r\n    </Row>\r\n  );\r\n});\r\n\r\nconst StatusView: ViewComponent<StatusViewModel> = observer(({ vm }) =>\r\n  vm.isMultiple ? <Multiple vm={vm} /> : <Single vm={vm} />\r\n);\r\n\r\nregisterView(StatusView, StatusViewModel);\r\n","import { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\n\nconst PaymentMethodIcon: FunctionComponent<{ source: string; height: number; mx: string }> = observer(\n  ({ source, height, mx }) => (\n    <div className={mx}>\n      <img src={source} alt=\"\" height={height} />\n    </div>\n  )\n);\n\nexport default PaymentMethodIcon;\n","export abstract class EshopFormIds {\n  static readonly ALTERNATIVE_FUEL_TYPE_CHECKBOX = \"alternative_fuel_type_checkbox\";\n  static readonly NATURAL_GAS_RADIO_ARRAY_OPTION = \"natural_gas_radio_array_option\";\n  static readonly BIO_METHANE_RADIO_ARRAY_OPTION = \"bio_methane_radio_array_option\";\n  static readonly CARD_PAYMENT_RADIO_ARRAY_OPTION = \"card_payment_radio_array_option\";\n  static readonly GOOGLE_PAY_PAYMENT_RADIO_ARRAY_OPTION = \"google_pay_payment_radio_array_option\";\n  static readonly BANK_TRANSFER_PAYMENT_RADIO_ARRAY_OPTION = \"bank_transfer_payment_radio_array_option\";\n}\n","export const icGooglePay =\n  \"data:image/svg+xml;charset=UTF-8,%3c?xml version='1.0' encoding='UTF-8'?%3e%3csvg width='57px' height='30px' viewBox='0 0 57 30' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3eic-google-pay%3c/title%3e%3cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3e%3cg id='ic-google-pay' fill-rule='nonzero'%3e%3cpath d='M41.4525,0 L15.0525,0 C6.8025,0 0.0525,6.75 0.0525,15 L0.0525,15 C0.0525,23.25 6.8025,30 15.0525,30 L41.4525,30 C49.7025,30 56.4525,23.25 56.4525,15 L56.4525,15 C56.4525,6.75 49.7025,0 41.4525,0 Z' id='Base_1_' fill='%23FFFFFF'%3e%3c/path%3e%3cpath d='M41.4525,1.215 C43.305,1.215 45.105,1.5825 46.8,2.3025 C48.4425,3 49.9125,3.9975 51.1875,5.265 C52.455,6.5325 53.4525,8.01 54.15,9.6525 C54.87,11.3475 55.2375,13.1475 55.2375,15 C55.2375,16.8525 54.87,18.6525 54.15,20.3475 C53.4525,21.99 52.455,23.46 51.1875,24.735 C49.92,26.0025 48.4425,27 46.8,27.6975 C45.105,28.4175 43.305,28.785 41.4525,28.785 L15.0525,28.785 C13.2,28.785 11.4,28.4175 9.705,27.6975 C8.0625,27 6.5925,26.0025 5.3175,24.735 C4.05,23.4675 3.0525,21.99 2.355,20.3475 C1.635,18.6525 1.2675,16.8525 1.2675,15 C1.2675,13.1475 1.635,11.3475 2.355,9.6525 C3.0525,8.01 4.05,6.54 5.3175,5.265 C6.585,3.9975 8.0625,3 9.705,2.3025 C11.4,1.5825 13.2,1.215 15.0525,1.215 L41.4525,1.215 M41.4525,0 L15.0525,0 C6.8025,0 0.0525,6.75 0.0525,15 L0.0525,15 C0.0525,23.25 6.8025,30 15.0525,30 L41.4525,30 C49.7025,30 56.4525,23.25 56.4525,15 L56.4525,15 C56.4525,6.75 49.7025,0 41.4525,0 L41.4525,0 Z' id='Outline' fill='%233C4043'%3e%3c/path%3e%3cg id='G_Pay_Lockup_1_' transform='translate(8.625000, 8.550000)'%3e%3cg id='Pay_Typeface_3_' transform='translate(16.875000, 0.825000)' fill='%233C4043'%3e%3cpath d='M1.4475,6.69 L1.4475,11.2275 L0.0075,11.2275 L0.0075,0.0225 L3.825,0.0225 C4.7925,0.0225 5.6175,0.345 6.2925,0.99 C6.9825,1.635 7.3275,2.4225 7.3275,3.3525 C7.3275,4.305 6.9825,5.0925 6.2925,5.73 C5.625,6.3675 4.8,6.6825 3.825,6.6825 L1.4475,6.6825 L1.4475,6.69 Z M1.4475,1.4025 L1.4475,5.31 L3.855,5.31 C4.425,5.31 4.905,5.115 5.28,4.7325 C5.6625,4.35 5.8575,3.885 5.8575,3.36 C5.8575,2.8425 5.6625,2.385 5.28,2.0025 C4.905,1.605 4.4325,1.41 3.855,1.41 L1.4475,1.41 L1.4475,1.4025 Z' id='Letter_p_3_'%3e%3c/path%3e%3cpath d='M11.0925,3.3075 C12.1575,3.3075 12.9975,3.5925 13.6125,4.1625 C14.2275,4.7325 14.535,5.5125 14.535,6.5025 L14.535,11.2275 L13.1625,11.2275 L13.1625,10.1625 L13.1025,10.1625 C12.51,11.04 11.715,11.475 10.725,11.475 C9.8775,11.475 9.1725,11.2275 8.6025,10.725 C8.0325,10.2225 7.7475,9.6 7.7475,8.85 C7.7475,8.055 8.0475,7.425 8.6475,6.96 C9.2475,6.4875 10.05,6.255 11.0475,6.255 C11.9025,6.255 12.6075,6.4125 13.155,6.7275 L13.155,6.3975 C13.155,5.895 12.96,5.475 12.5625,5.1225 C12.165,4.77 11.7,4.5975 11.1675,4.5975 C10.365,4.5975 9.7275,4.935 9.2625,5.6175 L7.995,4.8225 C8.6925,3.81 9.7275,3.3075 11.0925,3.3075 Z M9.2325,8.8725 C9.2325,9.2475 9.39,9.5625 9.7125,9.81 C10.0275,10.0575 10.4025,10.185 10.83,10.185 C11.4375,10.185 11.9775,9.96 12.45,9.51 C12.9225,9.06 13.1625,8.535 13.1625,7.9275 C12.7125,7.575 12.09,7.395 11.2875,7.395 C10.7025,7.395 10.215,7.5375 9.825,7.815 C9.4275,8.1075 9.2325,8.46 9.2325,8.8725 Z' id='Letter_a_3_'%3e%3c/path%3e%3cpolygon id='Letter_y_3_' points='22.365 3.555 17.565 14.595 16.08 14.595 17.865 10.7325 14.7 3.555 16.2675 3.555 18.5475 9.06 18.5775 9.06 20.7975 3.555'%3e%3c/polygon%3e%3c/g%3e%3cg id='G_Mark_1_'%3e%3cpath d='M12.59475,6.6 C12.59475,6.1305 12.55275,5.68125 12.47475,5.24925 L6.43875,5.24925 L6.43875,7.72425 L9.915,7.725 C9.774,8.5485 9.32025,9.2505 8.625,9.7185 L8.625,11.32425 L10.69425,11.32425 C11.9025,10.206 12.59475,8.553 12.59475,6.6 Z' id='Blue_500' fill='%234285F4'%3e%3c/path%3e%3cpath d='M8.62575,9.7185 C8.04975,10.107 7.308,10.33425 6.44025,10.33425 C4.764,10.33425 3.342,9.20475 2.83275,7.68225 L0.69825,7.68225 L0.69825,9.33825 C1.75575,11.43675 3.92925,12.87675 6.44025,12.87675 C8.17575,12.87675 9.63375,12.306 10.695,11.3235 L8.62575,9.7185 Z' id='Green_500_1_' fill='%2334A853'%3e%3c/path%3e%3cpath d='M2.63175,6.45375 C2.63175,6.02625 2.703,5.613 2.83275,5.2245 L2.83275,3.5685 L0.69825,3.5685 C0.261,4.43625 0.015,5.41575 0.015,6.45375 C0.015,7.49175 0.26175,8.47125 0.69825,9.339 L2.83275,7.683 C2.703,7.2945 2.63175,6.88125 2.63175,6.45375 Z' id='Yellow_500_1_' fill='%23FABB05'%3e%3c/path%3e%3cpath d='M6.44025,2.5725 C7.3875,2.5725 8.23575,2.89875 8.9055,3.53625 L10.73925,1.704 C9.6255,0.66675 8.1735,0.03 6.44025,0.03 C3.93,0.03 1.75575,1.47 0.69825,3.5685 L2.83275,5.2245 C3.342,3.702 4.764,2.5725 6.44025,2.5725 Z' id='Red_500' fill='%23E94235'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e\";\n","export const speedometerFastIcon =\n  \"data:image/svg+xml;charset=UTF-8,%3csvg width='32' height='28' viewBox='0 0 32 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M16.0003 1.00098V5.06598' stroke='%2301B163' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3e%3cpath d='M31.0003 15.9993H27.667' stroke='%2301B163' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3e%3cpath d='M1.00049 15.9993H4.33382' stroke='%2301B163' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3e%3cpath d='M26.6003 5.39941L18.3403 13.6594' stroke='%2301B163' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3e%3cpath d='M15.9686 12.666C17.8103 12.666 19.3019 14.1577 19.3019 15.9993C19.3019 17.841 17.8103 19.3327 15.9686 19.3327C14.1269 19.3327 12.6353 17.841 12.6353 15.9993C12.6353 14.1577 14.1269 12.666 15.9686 12.666' stroke='%2301B163' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3e%3cpath d='M5.40039 5.39941L8.93372 8.93275' stroke='%2301B163' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3e%3cpath d='M23.0671 23.0671L26.6004 26.6004L26.6071 26.6071C32.4654 20.7488 32.4654 11.2521 26.6071 5.39375C20.7488 -0.464584 11.2521 -0.464584 5.39375 5.39375C-0.464584 11.2521 -0.464584 20.7488 5.39375 26.6071L5.40042 26.6004L8.73375 23.2671' stroke='%2301B163' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e\";\n","import classNames from \"classnames\";\nimport { Col, Form } from \"react-bootstrap\";\nimport PaymentMethodIcon from \"../../eshop/order/components/paymentMethodIcon/paymentMethodIcon\";\nimport visa from \"../../eshop/order/components/paymentMethodIcon/assets/ic-visa.png\";\nimport masterCard from \"../../eshop/order/components/paymentMethodIcon/assets/ic-master-card.png\";\nimport applePay from \"../../eshop/order/components/paymentMethodIcon/assets/ic-apple-pay.png\";\nimport * as React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { DataTestIds } from \"../../../data-test-constants\";\nimport { ViewComponent } from \"@frui.ts/views\";\nimport SelectPaymentMethodViewModel from \"../../../viewModels/common/payment/selectPaymentMethodViewModel\";\nimport { getValidationMessage } from \"../../../utils/validationPatch\";\nimport { EshopFormIds } from \"../../eshop/test-ids-constants\";\nimport { PaymentType } from \"../../../models/payment\";\nimport { icGooglePay } from \"../../eshop/order/components/paymentMethodIcon/assets/ic-google-pay\";\nimport { registerView } from \"@frui.ts/views/dist\";\nimport { speedometerFastIcon } from \"../../../utils/icons/speedometerFast\";\nimport { speedometerSlowIcon } from \"../../../utils/icons/speedometerSlow\";\nimport styles from \"./selectPaymentMethod.module.scss\";\nimport ReactMarkdown from \"react-markdown\";\n\nconst SelectPaymentMethod: ViewComponent<SelectPaymentMethodViewModel> = observer(({ vm }) => {\n  const validationError = getValidationMessage(vm.chargeOrder, \"paymentType\");\n\n  const handlePaymentChange = (paymentType: PaymentType) => {\n    if (\n      (paymentType === PaymentType.PayGate && !vm.payGateDisabled) ||\n      (paymentType === PaymentType.GooglePay && !vm.payGateDisabled) ||\n      (paymentType === PaymentType.Transfer && !vm.transferDisabled)\n    ) {\n      vm.chargeOrder.paymentType = paymentType;\n    }\n  };\n\n  return (\n    <>\n      <div className={classNames(\"mb-3\", { \"is-invalid\": validationError })}>\n        {/* Platební kartou */}\n        <div\n          className={classNames(styles.paymentCard, {\n            [styles.selected]: vm.chargeOrder.paymentType === PaymentType.PayGate,\n            [styles.disabled]: vm.payGateDisabled,\n          })}\n          onClick={() => handlePaymentChange(PaymentType.PayGate)}\n          data-testid={DataTestIds.CARD_PAYMENT_TYPE_OPTION}>\n          <input\n            type=\"radio\"\n            name=\"paymentType\"\n            id={EshopFormIds.CARD_PAYMENT_RADIO_ARRAY_OPTION}\n            value={PaymentType.PayGate}\n            checked={vm.chargeOrder.paymentType === PaymentType.PayGate}\n            onChange={() => handlePaymentChange(PaymentType.PayGate)}\n            disabled={vm.payGateDisabled}\n            className={styles.hiddenRadio}\n          />\n          <img src={speedometerFastIcon} alt=\"\" className={styles.speedIcon} />\n          <div className={styles.paymentContent}>\n            <div className={styles.paymentTitleRow}>\n              <h3 className={styles.paymentTitle}>{vm.translateAttribute(\"card\")}</h3>\n              <div className={styles.paymentLogos}>\n                <PaymentMethodIcon source={visa} height={30} mx=\"\" />\n                <PaymentMethodIcon source={masterCard} height={30} mx=\"\" />\n                <PaymentMethodIcon source={applePay} height={30} mx=\"\" />\n              </div>\n            </div>\n            <div className={styles.paymentDescription}>{vm.translateAttribute(\"fastPaymentMethod\")}</div>\n          </div>\n        </div>\n\n        {/* Google Pay */}\n        {vm.enableGooglePay && (\n          <div\n            className={classNames(styles.paymentCard, {\n              [styles.selected]: vm.chargeOrder.paymentType === PaymentType.GooglePay,\n              [styles.disabled]: vm.payGateDisabled,\n            })}\n            onClick={() => handlePaymentChange(PaymentType.GooglePay)}\n            data-testid={DataTestIds.GOOGLE_PAY_PAYMENT_TYPE_OPTION}>\n            <input\n              type=\"radio\"\n              name=\"paymentType\"\n              id={EshopFormIds.GOOGLE_PAY_PAYMENT_RADIO_ARRAY_OPTION}\n              value={PaymentType.GooglePay}\n              checked={vm.chargeOrder.paymentType === PaymentType.GooglePay}\n              onChange={() => handlePaymentChange(PaymentType.GooglePay)}\n              disabled={vm.payGateDisabled}\n              className={styles.hiddenRadio}\n            />\n            <img src={speedometerFastIcon} alt=\"\" className={styles.speedIcon} />\n            <div className={styles.paymentContent}>\n              <div className={styles.paymentTitleRow}>\n                <h3 className={styles.paymentTitle}>{vm.translateAttribute(\"googlePay\")}</h3>\n                <div className={styles.paymentLogos}>\n                  <img src={icGooglePay} alt=\"Google Pay\" />\n                </div>\n              </div>\n              <div className={styles.paymentDescription}>{vm.translateAttribute(\"fastPaymentMethod\")}</div>\n            </div>\n          </div>\n        )}\n\n        {/* Bankovním převodem */}\n        <div\n          className={classNames(styles.paymentCard, {\n            [styles.selected]: vm.chargeOrder.paymentType === PaymentType.Transfer,\n            [styles.disabled]: vm.transferDisabled,\n          })}\n          onClick={() => handlePaymentChange(PaymentType.Transfer)}\n          data-testid={DataTestIds.BANK_TRANSFER_PAYMENT_TYPE_OPTION}>\n          <input\n            type=\"radio\"\n            name=\"paymentType\"\n            id={EshopFormIds.BANK_TRANSFER_PAYMENT_RADIO_ARRAY_OPTION}\n            value={PaymentType.Transfer}\n            checked={vm.chargeOrder.paymentType === PaymentType.Transfer}\n            onChange={() => handlePaymentChange(PaymentType.Transfer)}\n            disabled={vm.transferDisabled}\n            className={styles.hiddenRadio}\n          />\n          <img src={speedometerSlowIcon} alt=\"\" className={styles.speedIcon} />\n          <div className={styles.paymentContent}>\n            <div className={styles.paymentTitleRow}>\n              <h3 className={styles.paymentTitle}>{vm.translateAttribute(\"transferTitle\")}</h3>\n            </div>\n            {vm.paymentTypeLabel && (\n              <div className={styles.paymentDescription}>\n                <ReactMarkdown\n                  components={{\n                    a: ({ node, ...props }) => (\n                      <a\n                        {...props}\n                        href=\"#\"\n                        onClick={e => {\n                          e.preventDefault();\n                          vm.navigateToChargeTypeSelection();\n                        }}\n                      />\n                    ),\n                  }}>\n                  {vm.paymentTypeLabel}\n                </ReactMarkdown>\n              </div>\n            )}\n            {!vm.transferDisabled && (\n              <div className={styles.paymentDescription}>{vm.translateAttribute(\"slowPaymentMethod\")}</div>\n            )}\n          </div>\n        </div>\n      </div>\n      {validationError && (\n        <Form.Control.Feedback type=\"invalid\" className=\"mb-3\">\n          {validationError}\n        </Form.Control.Feedback>\n      )}\n    </>\n  );\n});\n\nregisterView(SelectPaymentMethod, SelectPaymentMethodViewModel);\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export const speedometerSlowIcon =\n  \"data:image/svg+xml;charset=UTF-8,%3csvg width='32' height='28' viewBox='0 0 32 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M16.0003 1.00098V5.06598' stroke='%23C1103C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3e%3cpath d='M31.0003 15.9993H27.667' stroke='%23C1103C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3e%3cpath d='M1.00049 15.833H12.5005' stroke='%23C1103C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3e%3cpath d='M15.9686 12.666C17.8103 12.666 19.3019 14.1577 19.3019 15.9993C19.3019 17.841 17.8103 19.3327 15.9686 19.3327C14.1269 19.3327 12.6353 17.841 12.6353 15.9993C12.6353 14.1577 14.1269 12.666 15.9686 12.666' stroke='%23C1103C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3e%3cpath d='M5.40039 5.39941L8.93372 8.93275' stroke='%23C1103C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3e%3cpath d='M26.5005 5.83301L23.4005 8.93275' stroke='%23C1103C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3e%3cpath d='M23.0671 23.0671L26.6004 26.6004L26.6071 26.6071C32.4654 20.7488 32.4654 11.2521 26.6071 5.39375C20.7488 -0.464584 11.2521 -0.464584 5.39375 5.39375C-0.464584 11.2521 -0.464584 20.7488 5.39375 26.6071L5.40042 26.6004L8.73375 23.2671' stroke='%23C1103C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e\";\n","const ErrorCodes = {\r\n  INITIALIZATION_PROBLEM: \"INITIALIZATION_PROBLEM\",\r\n  INVALID_PARAMETERS: \"INVALID_PARAMETERS\",\r\n  TURNSTILE_API_COMPATIBILITY: \"TURNSTILE_API_COMPATIBILITY\",\r\n  INVALID_SITEKEY: \"INVALID_SITEKEY\",\r\n  UNKNOWN_DOMAIN: \"UNKNOWN_DOMAIN\",\r\n  INVALID_ACTION: \"INVALID_ACTION\",\r\n  INVALID_CDATA: \"INVALID_CDATA\",\r\n  UNSUPPORTED_BROWSER: \"UNSUPPORTED_BROWSER\",\r\n  INCONSISTENT_USER_AGENT: \"INCONSISTENT_USER_AGENT\",\r\n  CHALLENGE_TIMED_OUT: \"CHALLENGE_TIMED_OUT\",\r\n  INTERNAL_ERRORS_CLOUDFLARE: \"INTERNAL_ERRORS_CLOUDFLARE\",\r\n  INVALID_CACHING: \"INVALID_CACHING\",\r\n  TIME_PROBLEM: \"TIME_PROBLEM\",\r\n  GENERIC_CLIENT_EXECUTION_ERROR: \"GENERIC_CLIENT_EXECUTION_ERROR\",\r\n  CHALLENGE_EXECUTION_FAILURE: \"CHALLENGE_EXECUTION_FAILURE\",\r\n  UNKNOWN_ERROR: \"UNKNOWN_ERROR\",\r\n  TIMEOUT_ERROR: \"TIMEOUT_ERROR\",\r\n  EXPIRED_ERROR: \"EXPIRED_ERROR\",\r\n};\r\n\r\nexport function getTurnStileErrorType(errorCode: string) {\r\n  if (/^100\\d{2}$/.test(errorCode)) return ErrorCodes.INITIALIZATION_PROBLEM;\r\n  if (/^10[2346]\\d{2}$/.test(errorCode)) return ErrorCodes.INVALID_PARAMETERS;\r\n  if (/^105\\d{2}$/.test(errorCode)) return ErrorCodes.TURNSTILE_API_COMPATIBILITY;\r\n  if ([\"110100\", \"110110\"].includes(errorCode)) return ErrorCodes.INVALID_SITEKEY;\r\n  if (errorCode === \"110200\") return ErrorCodes.UNKNOWN_DOMAIN;\r\n  if (errorCode === \"110420\") return ErrorCodes.INVALID_ACTION;\r\n  if (errorCode === \"110430\") return ErrorCodes.INVALID_CDATA;\r\n  if (errorCode === \"110500\") return ErrorCodes.UNSUPPORTED_BROWSER;\r\n  if (errorCode === \"110510\") return ErrorCodes.INCONSISTENT_USER_AGENT;\r\n  if (/^1106[02]\\d$/.test(errorCode)) return ErrorCodes.CHALLENGE_TIMED_OUT;\r\n  if (/^120\\d{3}$/.test(errorCode)) return ErrorCodes.INTERNAL_ERRORS_CLOUDFLARE;\r\n  if (errorCode === \"200010\") return ErrorCodes.INVALID_CACHING;\r\n  if (errorCode === \"200100\") return ErrorCodes.TIME_PROBLEM;\r\n  if (/^300\\d{3}$/.test(errorCode)) return ErrorCodes.GENERIC_CLIENT_EXECUTION_ERROR;\r\n  if (/^600\\d{3}$/.test(errorCode)) return ErrorCodes.CHALLENGE_EXECUTION_FAILURE;\r\n  if (errorCode === \"timeout\") return ErrorCodes.TIMEOUT_ERROR;\r\n  if (errorCode === \"expired\") return ErrorCodes.EXPIRED_ERROR;\r\n  return ErrorCodes.UNKNOWN_ERROR;\r\n}\r\n\r\n// Mock funkce pro testování - vrací všechny možné error kódy\r\nexport function getMockTurnstileErrorTypes(): string[] {\r\n  return [\r\n    ErrorCodes.INITIALIZATION_PROBLEM,\r\n    ErrorCodes.INVALID_PARAMETERS,\r\n    ErrorCodes.TURNSTILE_API_COMPATIBILITY,\r\n    ErrorCodes.INVALID_SITEKEY,\r\n    ErrorCodes.UNKNOWN_DOMAIN,\r\n    ErrorCodes.INVALID_ACTION,\r\n    ErrorCodes.INVALID_CDATA,\r\n    ErrorCodes.UNSUPPORTED_BROWSER,\r\n    ErrorCodes.INCONSISTENT_USER_AGENT,\r\n    ErrorCodes.CHALLENGE_TIMED_OUT,\r\n    ErrorCodes.INTERNAL_ERRORS_CLOUDFLARE,\r\n    ErrorCodes.INVALID_CACHING,\r\n    ErrorCodes.TIME_PROBLEM,\r\n    ErrorCodes.GENERIC_CLIENT_EXECUTION_ERROR,\r\n    ErrorCodes.CHALLENGE_EXECUTION_FAILURE,\r\n    ErrorCodes.UNKNOWN_ERROR,\r\n    ErrorCodes.TIMEOUT_ERROR,\r\n    ErrorCodes.EXPIRED_ERROR,\r\n  ];\r\n}\r\n","import { registerView, ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { Turnstile, TurnstileInstance } from \"@marsidev/react-turnstile\";\nimport { isMobile } from \"react-device-detect\";\nimport { turnstileSiteKey } from \"../../../config\";\nimport TurnstileViewModel from \"viewModels/common/turnstileViewModel\";\nimport { getTurnStileErrorType, getMockTurnstileErrorTypes } from \"entities/enumTurnstileCodes\";\n\ninterface TurnstileViewProps {\n  context?: string;\n  onSuccess?: (token: string) => void;\n  onError?: (error: string) => void;\n  onLoad?: () => void;\n  onBeforeInteractive?: () => void;\n  style?: React.CSSProperties;\n  className?: string;\n}\n\nconst TurnstileView: ViewComponent<TurnstileViewModel> = observer(({ vm, ...props }) => {\n  const {\n    context = \"default\",\n    onSuccess,\n    onError,\n    onLoad,\n    onBeforeInteractive,\n    style,\n    className = \"d-flex flex-column align-items-center justify-content-center\",\n  } = props as TurnstileViewProps;\n\n  const [turnstileSize] = React.useState<\"compact\" | \"normal\">(() => {\n    return window.innerWidth < 420 ? \"compact\" : \"normal\";\n  });\n  const turnstileRef = React.useRef<TurnstileInstance>(null);\n  const [turnstileKey] = React.useState(() => Math.random().toString(36));\n\n  React.useEffect(() => {\n    vm.initialize();\n  }, [context, vm, vm.showInteractive, vm.shareToken]);\n\n  React.useEffect(() => {\n    if (turnstileRef.current) {\n      vm.setInstance(turnstileRef.current);\n    }\n  }, [vm.turnstileToken]);\n\n  const processTurnstileInfo = React.useCallback(\n    (rawTurnstileInfo?: string) => {\n      if (rawTurnstileInfo?.includes(\"%LINK%\")) {\n        const parts = rawTurnstileInfo.split(\"%LINK%\");\n        return (\n          <>\n            {parts[0]}\n            <a\n              target=\"_blank\"\n              rel=\"noopener noreferrer\"\n              id=\"data-test-turnstile-info-link\"\n              style={{ textDecoration: \"underline\", cursor: \"pointer\" }}\n              onClick={e => {\n                e.preventDefault();\n                vm.isDisabledByTurnsitel = true;\n                vm.resetError();\n                turnstileRef.current?.reset();\n                turnstileRef.current?.execute();\n                vm.onTurnstileLoad();\n              }}>\n              {vm.translateTurnstile(\"reloadTurnstile\")}\n            </a>\n            {parts[1]}\n          </>\n        );\n      }\n      return rawTurnstileInfo;\n    },\n    [vm]\n  );\n\n  const handleSuccess = React.useCallback(\n    (token: string) => {\n      vm.onTurnstileVerify(token);\n      if (vm.isDisabledByTurnsitel) {\n        vm.isDisabledByTurnsitel = false;\n      }\n      onSuccess?.(token);\n    },\n    [vm, onSuccess]\n  );\n\n  const handleError = React.useCallback(\n    (error: string) => {\n      const typeError = getTurnStileErrorType(error);\n      const string = vm.translateTurnstile(typeError);\n      vm.onTurnstileError(string);\n      vm.isDisabledByTurnsitel = true;\n      vm.resetToken();\n      onError?.(string);\n    },\n    [vm, onError]\n  );\n\n  const handleTimeout = React.useCallback(() => {\n    const typeError = getTurnStileErrorType(\"timeout\");\n    const string = vm.translateTurnstile(typeError);\n    vm.isDisabledByTurnsitel = true;\n    vm.resetToken();\n    vm.onSetInfo(string);\n  }, [vm]);\n\n  const handleExpire = React.useCallback(() => {\n    const typeError = getTurnStileErrorType(\"expired\");\n    const string = vm.translateTurnstile(typeError);\n    vm.isDisabledByTurnsitel = true;\n    vm.resetToken();\n    vm.onSetInfo(string);\n  }, [vm]);\n\n  const handleLoad = React.useCallback(() => {\n    vm.onTurnstileLoad();\n    onLoad?.();\n  }, [vm, onLoad]);\n\n  const handleInteractive = React.useCallback(() => {\n    const string = vm.translateTurnstile(\"interactive\");\n    vm.onBeforeInteractive(string);\n    vm.isDisabledByTurnsitel = true;\n    vm.resetToken();\n    onBeforeInteractive?.();\n  }, [vm, onBeforeInteractive]);\n\n  return (\n    <div className={className} style={{ transform: isMobile ? \"scale(0.9)\" : \"scale(1)\", ...style }}>\n      {((vm.shareToken && vm.showInteractive) || (!vm.shareToken && !vm.showInteractive)) && (\n        <div className=\"d-flex flex-column mx-4 mb-2\" id=\"data-test-turnstile-info\">\n          {!vm.turnstileError ? (\n            <span className=\"text-sm text-center\" style={{ fontSize: \"0.8rem\" }}>\n              {processTurnstileInfo(vm.turnstileInfo)}\n            </span>\n          ) : (\n            <span className=\"block text-danger text-sm text-center\" style={{ fontSize: \"0.8rem\" }}>\n              {processTurnstileInfo(vm.turnstileError)}\n            </span>\n          )}\n        </div>\n      )}\n\n      <div className=\"d-block mx-auto mb-lg-0 mw-100\" data-testid=\"turnstile-widget\">\n        <Turnstile\n          key={turnstileKey}\n          ref={turnstileRef}\n          siteKey={turnstileSiteKey}\n          onSuccess={handleSuccess}\n          onError={handleError}\n          onTimeout={handleTimeout}\n          onExpire={handleExpire}\n          onBeforeInteractive={handleInteractive}\n          onLoadScript={handleLoad}\n          onWidgetLoad={handleLoad}\n          options={{\n            size: turnstileSize,\n            theme: \"light\",\n            language: vm.localizationService.locale,\n            retry: \"never\",\n            refreshExpired: \"never\",\n            refreshTimeout: \"never\",\n            execution: !!vm.shareToken ? \"execute\" : \"render\",\n            appearance: !!vm.shareToken ? \"execute\" : \"always\",\n          }}\n          style={{\n            width: \"100%\",\n            height: \"100%\",\n            overflow: \"hidden\",\n          }}\n        />\n      </div>\n    </div>\n  );\n});\n\nregisterView(TurnstileView, TurnstileViewModel);\n","import React from \"react\";\nimport OriginalAsyncSelect, { AsyncSelectControlProps } from \"@edaz/edazkit/controls/AsyncSelect\";\nimport { setVisitedProperty } from \"../utils/validationPatch\";\nimport { PropertyName } from \"@frui.ts/helpers\";\nimport { IBindingProps } from \"@frui.ts/views\";\nimport { CommonInputProps } from \"@frui.ts/bootstrap/dist/controls/commonInputProps\";\n\nexport default function AsyncSelect<TTarget, IsMulti extends boolean = false>(\n  props: Omit<AsyncSelectControlProps<IsMulti>, \"onChange\" | \"value\"> & IBindingProps<TTarget> & CommonInputProps\n) {\n  const { onBlur, ...rest } = props;\n  const { target, property } = props as { target: TTarget; property: PropertyName<TTarget> };\n  const modifiedOnBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n    if (onBlur) {\n      onBlur(e);\n    }\n\n    setVisitedProperty(target, property);\n  };\n\n  return <OriginalAsyncSelect onBlur={modifiedOnBlur} {...rest} />;\n}\n","import { Input } from \"@frui.ts/bootstrap\";\nimport { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport { Col, Form } from \"react-bootstrap\";\nimport VehicleInfoViewModel from \"viewModels/common/vehicleInfoViewModel\";\nimport AsyncSelect from \"controls/asyncSelect\";\nimport { DataTestIds } from \"data-test-constants\";\nimport countryFilter from \"@edaz/utils/countryFilter\";\n\nconst CountryIdInput: FunctionComponent<{\n  vm: VehicleInfoViewModel;\n  disabled?: boolean;\n  translateKey?: string;\n  breakpoint?: \"xl\" | \"xxl\";\n  errorMessage?: string;\n  labelId?: string;\n}> = observer(({ vm, disabled, translateKey, breakpoint, errorMessage, labelId = \"country-label\" }) => {\n  const ta = (code: string) =>\n    vm.localizationService.translateAttribute(translateKey ? `orderItem.${translateKey}` : \"orderItem\", code);\n\n  return (\n    <Form.Group as={Col} sm={12} className={breakpoint === \"xxl\" ? \"col-xxl-9\" : \"col-xl-6\"}>\n      <Form.Label id={labelId}>{ta(\"countryId\")}</Form.Label>\n      {disabled ? (\n        <Input data-testid={DataTestIds.DISABLED_COUNTRY_SELECT} disabled={true} target={vm} property={\"oldCountry\"} />\n      ) : (\n        <AsyncSelect\n          id={DataTestIds.COUNTRY_SELECT}\n          aria-labelledby={labelId}\n          data-testid={DataTestIds.COUNTRY_SELECT}\n          target={vm.item}\n          property=\"countryId\"\n          loadOptionsOnInit={vm.loadCountriesOnInit}\n          defaultOptions={vm.defaultCountries}\n          loadOptions={vm.loadCountries}\n          errorMessage={errorMessage}\n          placeholder={vm.localizationService.translateGeneral(\"common.selectCountry\")}\n          mode=\"key\"\n          filterOption={countryFilter}\n        />\n      )}\n    </Form.Group>\n  );\n});\n\nexport default CountryIdInput;\n","import { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport { Form } from \"react-bootstrap\";\nimport VehicleInfoViewModel from \"viewModels/common/vehicleInfoViewModel\";\nimport AsyncSelect from \"../../../controls/asyncSelect\";\nimport countryFilter from \"@edaz/utils/countryFilter\";\n\nconst CountryIdWithConfirmation: FunctionComponent<{\n  vm: VehicleInfoViewModel;\n  disabled?: boolean;\n  context?: \"new\" | \"old\";\n  isConfirmation?: boolean;\n  errorMessage?: string;\n}> = observer(({ vm, disabled, isConfirmation, errorMessage, context }) => {\n  const ta = (code: string) => vm.localizationService.translateAttribute(\"orderItem\", code);\n  const countries = vm.loadCountries;\n\n  return (\n    <>\n      <div className=\"col-sm-6 form-group\">\n        <Form.Label>{ta(context ? `${context}.countryId` : \"countryId\")}</Form.Label>\n        <AsyncSelect\n          target={vm.item}\n          property=\"countryId\"\n          loadOptions={countries}\n          defaultOptions={vm.defaultCountries}\n          placeholder={vm.localizationService.translateGeneral(\"common.selectCountry\")}\n          errorMessage={errorMessage}\n          mode=\"key\"\n          filterOption={countryFilter}\n        />\n      </div>\n      <div className=\"col-sm-6 form-group\">\n        <Form.Label>{ta(context ? `${context}.again.countryId` : \"again.countryId\")}</Form.Label>\n        <AsyncSelect\n          target={vm.item}\n          property=\"_countryIdConfirmation\"\n          loadOptions={countries}\n          defaultOptions={vm.defaultCountries}\n          placeholder={vm.localizationService.translateGeneral(\"common.selectCountry\")}\n          mode=\"key\"\n          filterOption={countryFilter}\n        />\n      </div>\n    </>\n  );\n});\n\nexport default CountryIdWithConfirmation;\n","type LabelType = \"EU\" | \"UA\" | \"CH\";\n\nexport interface LabeledCountry {\n  countryCode: string;\n  labelType: LabelType;\n  labelLetters: string | undefined;\n  placeholder: string;\n  placeholderCzech?: string;\n}\n\nexport const labeledCountries: LabeledCountry[] = [\n  {\n    countryCode: \"CZ\",\n    labelType: \"EU\",\n    labelLetters: \"CZ\",\n    placeholder: \"5P35010\",\n    placeholderCzech: \"5P35010 (ukázkový vzor)\",\n  },\n  {\n    countryCode: \"DE\",\n    labelType: \"EU\",\n    labelLetters: \"D\",\n    placeholder: \"NMHR716E\",\n  },\n  {\n    countryCode: \"PL\",\n    labelType: \"EU\",\n    labelLetters: \"PL\",\n    placeholder: \"PO665CS\",\n  },\n  {\n    countryCode: \"SK\",\n    labelType: \"EU\",\n    labelLetters: \"SK\",\n    placeholder: \"SC208CY\",\n  },\n  {\n    countryCode: \"AT\",\n    labelType: \"EU\",\n    labelLetters: \"A\",\n    placeholder: \"B779EZ\",\n  },\n  {\n    countryCode: \"RO\",\n    labelType: \"EU\",\n    labelLetters: \"RO\",\n    placeholder: \"CT10LSH\",\n  },\n  {\n    countryCode: \"HU\",\n    labelType: \"EU\",\n    labelLetters: \"H\",\n    placeholder: \"VB359V\",\n  },\n  {\n    countryCode: \"NL\",\n    labelType: \"EU\",\n    labelLetters: \"NL\",\n    placeholder: \"19NNBD\",\n  },\n  {\n    countryCode: \"BG\",\n    labelType: \"EU\",\n    labelLetters: \"BG\",\n    placeholder: \"BP2400CB\",\n  },\n  {\n    countryCode: \"SE\",\n    labelType: \"EU\",\n    labelLetters: \"S\",\n    placeholder: \"PWY581\",\n  },\n  {\n    countryCode: \"UA\",\n    labelType: \"UA\",\n    labelLetters: \"UA\",\n    placeholder: \"BM2065XP\",\n  },\n  {\n    countryCode: \"IT\",\n    labelType: \"EU\",\n    labelLetters: \"I\",\n    placeholder: \"DA453GM\",\n  },\n  {\n    countryCode: \"DK\",\n    labelType: \"EU\",\n    labelLetters: \"DK\",\n    placeholder: \"MD22335\",\n  },\n  {\n    countryCode: \"CH\",\n    labelType: \"CH\",\n    labelLetters: undefined,\n    placeholder: \"BE23184\",\n  },\n  {\n    countryCode: \"FR\",\n    labelType: \"EU\",\n    labelLetters: \"F\",\n    placeholder: \"EQ665CS\",\n  },\n];\n","import { ValidationControlBase } from \"@frui.ts/bootstrap\";\nimport { bound } from \"@frui.ts/helpers\";\nimport { IBindingProps } from \"@frui.ts/views\";\nimport React from \"react\";\nimport AdvancedInput, { Transformation } from \"controls/advancedInput\";\nimport { euStars, uaFlag, swissLicensePlateSign } from \"./assets/licensePlateAssets\";\nimport { LabeledCountry, labeledCountries } from \"./config\";\nimport classNames from \"classnames\";\n\nexport interface LicensePlateInputProps {\n  id: string;\n  translate: (code: string) => string;\n  locale: string;\n  countryId?: string;\n  countryCode?: string;\n  disabled?: boolean;\n  errorMessage?: string;\n  disableCopy?: boolean;\n  disablePaste?: boolean;\n  onBlur?: (e: React.FormEvent<any>) => void;\n  maxLength?: number;\n}\n\nexport default class LicensePlateInput<TTarget> extends ValidationControlBase<\n  TTarget,\n  LicensePlateInputProps & IBindingProps<TTarget>\n> {\n  ignoredCharacters = new RegExp(/[^A-Z0-9]+/gi);\n\n  @bound\n  protected renderInner() {\n    const {\n      id,\n      target,\n      property,\n      translate,\n      locale,\n      disabled = false,\n      errorMessage,\n      disablePaste,\n      disableCopy,\n      onBlur,\n      countryCode,\n      maxLength,\n    } = this.props;\n\n    const label = labeledCountries.find(x => x.countryCode === countryCode);\n    const placeholder = locale == \"cs\" ? label?.placeholderCzech ?? label?.placeholder : label?.placeholder;\n    const licensePlatePlaceholder = placeholder ?? translate(\"licensePlatePlaceholder\");\n\n    const labelClass = classNames({\n      \"country-label\": true,\n      europe: [\"EU\", \"UA\"].includes(label?.labelType ?? \"\"),\n    });\n\n    const inputPaddingClass = classNames({\n      \"labeled-country-input\": label,\n    });\n\n    return (\n      <div className=\"license-plate-input\">\n        {label && (\n          <div className={labelClass}>\n            {renderLabelIcon(label)}\n            <span>{label.labelLetters}</span>\n          </div>\n        )}\n        <AdvancedInput\n          id={id}\n          trim={true}\n          ignoredCharacters={this.ignoredCharacters}\n          transformation={Transformation.UpperCased}\n          disabled={disabled}\n          target={target}\n          property={property}\n          autoComplete=\"off\"\n          errorMessage={errorMessage}\n          placeholder={licensePlatePlaceholder}\n          disableCopy={disableCopy}\n          disablePaste={disablePaste}\n          onBlur={onBlur}\n          className={inputPaddingClass}\n          maxLength={maxLength}\n        />\n      </div>\n    );\n  }\n}\n\nexport const renderLabelIcon = (label: LabeledCountry) => {\n  switch (label.labelType) {\n    case \"EU\":\n      return <img className=\"eu-icon\" src={euStars} alt=\"EU\" />;\n    case \"UA\":\n      return <img className=\"ua-icon\" src={uaFlag} alt=\"UA\" />;\n    case \"CH\":\n      return <img className=\"ch-icon\" src={swissLicensePlateSign} alt=\"CH\" />;\n  }\n};\n","const euStars = `data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 29 28'%3E%3Cpath d='m14.5 3.111-.494 1.478.76.239L14.5 3.11z' fill='%23FC0'/%3E%3Cpath d='m14.5 3.111.494 1.478-.759.244.265-1.722z' fill='%23FC0'/%3E%3Cpath d='M16.013 4.184H14.42v.778l1.593-.778z' fill='%23FC0'/%3E%3Cpath d='m16.013 4.184-1.29.913-.467-.628 1.757-.285z' fill='%23FC0'/%3E%3Cpath d='m15.434 5.927-.493-1.478-.76.239 1.253 1.239z' fill='%23FC0'/%3E%3Cpath d='m15.434 5.927-1.29-.913.467-.627.823 1.54z' fill='%23FC0'/%3E%3Cpath d='M12.987 4.184h1.593v.778l-1.593-.778z' fill='%23FC0'/%3E%3Cpath d='m12.987 4.184 1.29.913.467-.628-1.757-.285z' fill='%23FC0'/%3E%3Cpath d='m13.566 5.927.493-1.478.76.239-1.254 1.239z' fill='%23FC0'/%3E%3Cpath d='m13.566 5.927 1.29-.913-.468-.627-.822 1.54zM14.5 21.778l-.494 1.478.76.238-.266-1.716z' fill='%23FC0'/%3E%3Cpath d='m14.5 21.778.494 1.478-.759.238.265-1.716z' fill='%23FC0'/%3E%3Cpath d='M16.013 22.851H14.42v.778l1.593-.778z' fill='%23FC0'/%3E%3Cpath d='m16.013 22.851-1.29.913-.467-.628 1.757-.285z' fill='%23FC0'/%3E%3Cpath d='m15.434 24.593-.493-1.477-.76.238 1.253 1.24z' fill='%23FC0'/%3E%3Cpath d='m15.434 24.593-1.29-.912.467-.628.823 1.54z' fill='%23FC0'/%3E%3Cpath d='M12.987 22.851h1.593v.778l-1.593-.778z' fill='%23FC0'/%3E%3Cpath d='m12.987 22.851 1.29.913.467-.628-1.757-.285z' fill='%23FC0'/%3E%3Cpath d='m13.566 24.593.493-1.477.76.238-1.254 1.24z' fill='%23FC0'/%3E%3Cpath d='m13.566 24.593 1.29-.912-.468-.628-.822 1.54zM4.944 12.444l-.493 1.478.759.239-.266-1.717z' fill='%23FC0'/%3E%3Cpath d='m4.945 12.444.494 1.478-.76.239.266-1.717z' fill='%23FC0'/%3E%3Cpath d='M6.457 13.518H4.865v.777l1.592-.777z' fill='%23FC0'/%3E%3Cpath d='m6.458 13.518-1.29.912-.467-.627 1.757-.285z' fill='%23FC0'/%3E%3Cpath d='m5.879 15.26-.494-1.477-.76.238 1.254 1.24z' fill='%23FC0'/%3E%3Cpath d='m5.878 15.26-1.29-.913.468-.627.822 1.54z' fill='%23FC0'/%3E%3Cpath d='M3.431 13.518h1.593v.777l-1.593-.777z' fill='%23FC0'/%3E%3Cpath d='m3.431 13.518 1.29.912.468-.627-1.758-.285z' fill='%23FC0'/%3E%3Cpath d='m4.01 15.26.494-1.477.759.238-1.253 1.24z' fill='%23FC0'/%3E%3Cpath d='m4.01 15.26 1.29-.913-.467-.627-.823 1.54zM8.788 7.176l1.29-.912-.467-.628-.823 1.54z' fill='%23FC0'/%3E%3Cpath d='m8.788 7.176.493-1.478.76.239-1.253 1.239z' fill='%23FC0'/%3E%3Cpath d='m8.21 5.434 1.29.913.466-.628-1.757-.285z' fill='%23FC0'/%3E%3Cpath d='M8.21 5.434h1.592v.778l-1.593-.778z' fill='%23FC0'/%3E%3Cpath d='M9.722 4.36 9.228 5.84l.76.238-.266-1.716z' fill='%23FC0'/%3E%3Cpath d='m9.723 4.36.493 1.479-.759.238.266-1.716z' fill='%23FC0'/%3E%3Cpath d='m10.656 7.176-1.29-.912.467-.628.823 1.54z' fill='%23FC0'/%3E%3Cpath d='m10.656 7.176-.493-1.478-.76.239 1.253 1.239z' fill='%23FC0'/%3E%3Cpath d='m11.235 5.434-1.29.913-.467-.628 1.757-.285z' fill='%23FC0'/%3E%3Cpath d='M11.235 5.434H9.643v.778l1.592-.778zM7.158 10.594l-.494-1.478-.759.238 1.253 1.24z' fill='%23FC0'/%3E%3Cpath d='m7.158 10.593-1.29-.912.467-.628.823 1.54z' fill='%23FC0'/%3E%3Cpath d='m5.29 10.593 1.29-.912-.468-.628-.823 1.54z' fill='%23FC0'/%3E%3Cpath d='m5.29 10.594.493-1.478.759.238-1.253 1.24z' fill='%23FC0'/%3E%3Cpath d='M4.71 8.85 6 9.764l.468-.627L4.71 8.85z' fill='%23FC0'/%3E%3Cpath d='M4.71 8.85h1.593v.778l-1.592-.777z' fill='%23FC0'/%3E%3Cpath d='m7.737 8.85-1.29.913-.467-.627 1.757-.285z' fill='%23FC0'/%3E%3Cpath d='M7.737 8.85H6.144v.778l1.593-.777z' fill='%23FC0'/%3E%3Cpath d='m6.224 7.778.494 1.478-.76.238.266-1.716z' fill='%23FC0'/%3E%3Cpath d='M6.223 7.778 5.73 9.256l.76.238-.266-1.716zM7.737 18.184H6.144v.778l1.593-.778z' fill='%23FC0'/%3E%3Cpath d='m7.737 18.184-1.29.913-.467-.628 1.757-.285z' fill='%23FC0'/%3E%3Cpath d='m7.158 19.927-.494-1.478-.759.239 1.253 1.239z' fill='%23FC0'/%3E%3Cpath d='m7.158 19.927-1.29-.913.467-.627.823 1.54z' fill='%23FC0'/%3E%3Cpath d='m5.29 19.927 1.29-.913-.468-.627-.823 1.54z' fill='%23FC0'/%3E%3Cpath d='m5.29 19.927.493-1.478.759.239-1.253 1.239z' fill='%23FC0'/%3E%3Cpath d='m6.224 17.111.494 1.478-.76.239.266-1.717z' fill='%23FC0'/%3E%3Cpath d='M6.223 17.111 5.73 18.59l.76.239-.266-1.717z' fill='%23FC0'/%3E%3Cpath d='M4.71 18.184h1.593v.778l-1.592-.778z' fill='%23FC0'/%3E%3Cpath d='m4.71 18.184 1.29.913.468-.628-1.757-.285zM11.235 21.602H9.643v.777l1.592-.777z' fill='%23FC0'/%3E%3Cpath d='m11.235 21.602-1.29.912-.467-.627 1.757-.285z' fill='%23FC0'/%3E%3Cpath d='m10.656 23.343-.493-1.477-.76.238 1.253 1.24z' fill='%23FC0'/%3E%3Cpath d='m10.656 23.344-1.29-.913.467-.627.823 1.54z' fill='%23FC0'/%3E%3Cpath d='m8.788 23.344 1.29-.913-.467-.627-.823 1.54z' fill='%23FC0'/%3E%3Cpath d='m8.788 23.343.493-1.477.76.238-1.253 1.24z' fill='%23FC0'/%3E%3Cpath d='m9.723 20.528.493 1.478-.759.238.266-1.716z' fill='%23FC0'/%3E%3Cpath d='m9.722 20.528-.494 1.478.76.238-.266-1.716z' fill='%23FC0'/%3E%3Cpath d='M8.21 21.602h1.592v.777l-1.593-.777z' fill='%23FC0'/%3E%3Cpath d='m8.21 21.602 1.29.912.466-.627-1.757-.285zM24.056 12.444l.494 1.478-.76.239.266-1.717z' fill='%23FC0'/%3E%3Cpath d='m24.055 12.444-.493 1.478.759.239-.266-1.717z' fill='%23FC0'/%3E%3Cpath d='M22.543 13.518h1.592v.777l-1.592-.777z' fill='%23FC0'/%3E%3Cpath d='m22.543 13.518 1.29.912.467-.627-1.757-.285z' fill='%23FC0'/%3E%3Cpath d='m23.121 15.26.494-1.477.759.238-1.253 1.24z' fill='%23FC0'/%3E%3Cpath d='m23.121 15.26 1.29-.913-.467-.627-.823 1.54z' fill='%23FC0'/%3E%3Cpath d='M25.569 13.518h-1.593v.777l1.593-.777z' fill='%23FC0'/%3E%3Cpath d='m25.569 13.518-1.29.912-.467-.627 1.757-.285z' fill='%23FC0'/%3E%3Cpath d='m24.99 15.26-.494-1.477-.759.238 1.253 1.24z' fill='%23FC0'/%3E%3Cpath d='m24.99 15.26-1.29-.913.467-.627.823 1.54zM20.212 7.176l-1.29-.912.467-.628.823 1.54z' fill='%23FC0'/%3E%3Cpath d='m20.212 7.176-.494-1.478-.759.239 1.253 1.239z' fill='%23FC0'/%3E%3Cpath d='m20.791 5.434-1.29.913-.467-.628 1.757-.285z' fill='%23FC0'/%3E%3Cpath d='M20.79 5.434h-1.592v.778l1.593-.778z' fill='%23FC0'/%3E%3Cpath d='m19.278 4.36.494 1.479-.76.238.266-1.716z' fill='%23FC0'/%3E%3Cpath d='m19.278 4.36-.494 1.479.76.238-.266-1.716z' fill='%23FC0'/%3E%3Cpath d='m18.343 7.176 1.29-.912-.467-.628-.823 1.54z' fill='%23FC0'/%3E%3Cpath d='m18.343 7.176.494-1.478.76.239-1.254 1.239z' fill='%23FC0'/%3E%3Cpath d='m17.765 5.434 1.29.913.467-.628-1.757-.285z' fill='%23FC0'/%3E%3Cpath d='M17.765 5.434h1.592v.778l-1.592-.778zM21.842 10.594l.494-1.478.759.238-1.253 1.24z' fill='%23FC0'/%3E%3Cpath d='m21.842 10.593 1.29-.912-.467-.628-.823 1.54z' fill='%23FC0'/%3E%3Cpath d='m23.71 10.593-1.29-.912.468-.628.823 1.54z' fill='%23FC0'/%3E%3Cpath d='m23.71 10.594-.493-1.478-.76.238 1.254 1.24z' fill='%23FC0'/%3E%3Cpath d='m24.288 8.85-1.29.913-.467-.627 1.757-.285z' fill='%23FC0'/%3E%3Cpath d='M24.29 8.85h-1.593v.778l1.592-.777z' fill='%23FC0'/%3E%3Cpath d='m21.264 8.85 1.29.913.467-.627-1.758-.285z' fill='%23FC0'/%3E%3Cpath d='M21.264 8.85h1.592v.778l-1.593-.777z' fill='%23FC0'/%3E%3Cpath d='m22.776 7.778-.493 1.478.759.238-.266-1.716z' fill='%23FC0'/%3E%3Cpath d='m22.776 7.778.493 1.478-.759.238.266-1.716zM21.264 18.184h1.592v.778l-1.593-.778z' fill='%23FC0'/%3E%3Cpath d='m21.264 18.184 1.29.913.467-.628-1.758-.285z' fill='%23FC0'/%3E%3Cpath d='m21.842 19.927.494-1.478.759.239-1.253 1.239z' fill='%23FC0'/%3E%3Cpath d='m21.842 19.927 1.29-.913-.467-.627-.823 1.54z' fill='%23FC0'/%3E%3Cpath d='m23.71 19.927-1.29-.913.468-.627.823 1.54z' fill='%23FC0'/%3E%3Cpath d='m23.71 19.927-.493-1.478-.76.239 1.254 1.239z' fill='%23FC0'/%3E%3Cpath d='m22.776 17.111-.493 1.478.759.239-.266-1.717z' fill='%23FC0'/%3E%3Cpath d='m22.776 17.111.493 1.478-.759.239.266-1.717z' fill='%23FC0'/%3E%3Cpath d='M24.29 18.184h-1.593v.778l1.592-.778z' fill='%23FC0'/%3E%3Cpath d='m24.288 18.184-1.29.913-.467-.628 1.757-.285zM17.765 21.602h1.592v.777l-1.592-.777z' fill='%23FC0'/%3E%3Cpath d='m17.765 21.602 1.29.912.467-.627-1.757-.285z' fill='%23FC0'/%3E%3Cpath d='m18.343 23.343.494-1.477.76.238-1.254 1.24z' fill='%23FC0'/%3E%3Cpath d='m18.343 23.344 1.29-.913-.467-.627-.823 1.54z' fill='%23FC0'/%3E%3Cpath d='m20.212 23.344-1.29-.913.467-.627.823 1.54z' fill='%23FC0'/%3E%3Cpath d='m20.212 23.343-.494-1.477-.759.238 1.253 1.24z' fill='%23FC0'/%3E%3Cpath d='m19.278 20.528-.494 1.478.76.238-.266-1.716z' fill='%23FC0'/%3E%3Cpath d='m19.278 20.528.494 1.478-.76.238.266-1.716z' fill='%23FC0'/%3E%3Cpath d='M20.79 21.602h-1.592v.777l1.593-.777z' fill='%23FC0'/%3E%3Cpath d='m20.791 21.602-1.29.912-.467-.627 1.757-.285z' fill='%23FC0'/%3E%3C/svg%3E`;\n\nconst uaFlag = `data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 800'%3E%3Cpath fill='%23005BBB' d='M0 0H1200V800H0z'/%3E%3Cpath fill='%23FFD500' d='M0 400H1200V800H0z'/%3E%3C/svg%3E`;\n\nconst swissLicensePlateSign = `data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' version='1.0' width='148' height='192' viewBox='0 0 111 144'%3E%3Cpath d='M2 1018 c5 -470 8 -500 79 -639 47 -95 176 -217 312 -297 138 -82 158 -90 197 -75 82 31 248 142 325 218 168 166 194 289 195 923 l0 292 -556 0 -556 0 4 -422z m678 77 l0 -145 145 0 145 0 0 -120 0 -120 -145 0 -145 0 0 -145 0 -145 -120 0 -119 0 -3 143 -3 142 -142 3 -143 3 0 119 0 119 143 3 142 3 3 143 3 142 119 0 120 0 0 -145z' transform='matrix(.1 0 0 -.1 0 144)' fill='%23CF1F2A'/%3E%3C/svg%3E`;\n\nexport { euStars, uaFlag, swissLicensePlateSign };\n","import { ValidationControlBase } from \"@frui.ts/bootstrap\";\nimport { bound, PropertyName } from \"@frui.ts/helpers\";\nimport { IBindingProps } from \"@frui.ts/views\";\nimport React from \"react\";\nimport { Form } from \"react-bootstrap\";\nimport AdvancedInput, { Transformation } from \"controls/advancedInput\";\nimport { computed, observable, observe } from \"mobx\";\nimport { setVisitedProperty } from \"../utils/validationPatch\";\nimport { labeledCountries } from \"./licensePlateBaseInput/config\";\nimport classNames from \"classnames\";\nimport { renderLabelIcon } from \"./licensePlateBaseInput/licensePlateBaseInput\";\nimport { compareStringsWithIndexes } from \"validators/licensePlateChangeValidator\";\n\nexport interface LicensePlateCharacterWiseInputProps {\n  id: string;\n  translate: (code: string) => string;\n  countryCode?: string;\n  originalLicensePlate?: string;\n  disabled?: boolean;\n  errorMessage?: string;\n  disableCopy?: boolean;\n  disablePaste?: boolean;\n  onBlur?: (e: React.FormEvent<any>) => void;\n}\n\ninterface LicensePlateObject {\n  [key: string]: string;\n}\n\nexport default class LicensePlateCharacterWiseInput<TTarget> extends ValidationControlBase<\n  TTarget,\n  LicensePlateCharacterWiseInputProps & IBindingProps<TTarget>\n> {\n  @observable licensePlate: LicensePlateObject;\n  ignoredCharacters = new RegExp(/[^A-Z0-9]+/gi);\n\n  @computed\n  get valueArray() {\n    return Array.from(this.value || \"\");\n  }\n\n  componentDidMount() {\n    this.licensePlate = observable(\n      this.valueArray.reduce((o, key, index) => Object.assign(o as any, { [index]: key }), {}) as LicensePlateObject\n    );\n\n    observe(this.licensePlate, change => {\n      const valueArray = this.valueArray;\n      if (change.type !== \"remove\") {\n        valueArray[parseInt(change.name, 10)] = change.newValue ? change.newValue : \" \";\n      } else {\n        valueArray[parseInt(change.name, 10)] = \" \";\n      }\n\n      this.setValue(valueArray.join(\"\"));\n    });\n  }\n\n  @bound\n  protected renderInner() {\n    const { id, countryCode, originalLicensePlate, disabled = false, disablePaste, disableCopy, onBlur } = this.props;\n\n    const licensePlate = this.licensePlate;\n    const validationError = this.getValidationError();\n\n    const onInputPartBlur = (e: React.FormEvent<any>) => {\n      const { target, property } = this.props as { target: TTarget; property: PropertyName<TTarget> };\n      setVisitedProperty(target, property);\n\n      if (onBlur) {\n        onBlur(e);\n      }\n    };\n\n    const label = labeledCountries.find(x => x.countryCode === countryCode);\n    const labelClass = classNames({\n      \"country-label\": true,\n      \"character-label\": true,\n      europe: [\"EU\", \"UA\"].includes(label?.labelType ?? \"\"),\n      switzerland: [\"CH\"].includes(label?.labelType ?? \"\"),\n    });\n\n    let differentCharacterIndexes = [] as number[];\n    if (originalLicensePlate) {\n      differentCharacterIndexes = compareStringsWithIndexes(originalLicensePlate, this.value);\n    }\n\n    function disabledCharacterInput(index: number): boolean {\n      if (differentCharacterIndexes.length < 2) {\n        return false;\n      }\n      return !differentCharacterIndexes.includes(index);\n    }\n\n    return (\n      <>\n        <div className=\"d-flex with-gap license-plate-input\">\n          {label && (\n            <div className={labelClass}>\n              {renderLabelIcon(label)}\n              <span>{label.labelLetters}</span>\n            </div>\n          )}\n          {this.valueArray.map((character, index) => {\n            const classes = classNames({\n              \"px-1 text-center no-bg\": true,\n              \"bg-light\": disabledCharacterInput(index),\n            });\n            return (\n              <div style={{ maxWidth: \"3rem\" }} key={id + `_${index}`}>\n                <AdvancedInput\n                  trim={true}\n                  ignoredCharacters={this.ignoredCharacters}\n                  transformation={Transformation.UpperCased}\n                  disabled={disabled}\n                  target={licensePlate}\n                  property={`${index}`}\n                  errorMessage={validationError && !disabledCharacterInput(index) ? \" \" : undefined}\n                  disableCopy={disableCopy}\n                  disablePaste={disablePaste}\n                  autoComplete=\"off\"\n                  maxLength={1}\n                  onBlur={onInputPartBlur}\n                  className={classes}\n                />\n              </div>\n            );\n          })}\n        </div>\n        {validationError && (\n          <Form.Control.Feedback type=\"invalid\" style={{ display: \"block\" }}>\n            {validationError}\n          </Form.Control.Feedback>\n        )}\n      </>\n    );\n  }\n}\n","import { ValidationControlBase } from \"@frui.ts/bootstrap\";\nimport { bound } from \"@frui.ts/helpers\";\nimport { IBindingProps } from \"@frui.ts/views\";\nimport React from \"react\";\nimport { Col, Form } from \"react-bootstrap\";\nimport { isMobile } from \"react-device-detect\";\nimport Icon, { IconType } from \"@edaz/edazkit/Icon\";\nimport Tooltip from \"controls/tooltip\";\nimport { action, observable } from \"mobx\";\nimport LicensePlateCharacterWiseInput from \"controls/licensePlateCharacterWiseInput\";\nimport LicensePlateBaseInput from \"controls/licensePlateBaseInput/licensePlateBaseInput\";\n\nexport interface LicensePlateInputProps {\n  id: string;\n  translate: (code: string) => string;\n  locale: string;\n  countryId?: string;\n  countryCode?: string;\n  originalLicensePlate?: string;\n  disabled?: boolean;\n  errorMessage?: string;\n  tooltip?: boolean;\n  disableCopy?: boolean;\n  disablePaste?: boolean;\n  breakpoint?: \"xl\" | \"xxl\";\n  onBlur?: (e: React.FormEvent<any>) => void;\n  showTooltip?: boolean;\n  fixedLength?: boolean;\n  maxLength?: number;\n}\n\nexport default class LicensePlateInput<TTarget> extends ValidationControlBase<\n  TTarget,\n  LicensePlateInputProps & IBindingProps<TTarget>\n> {\n  @observable displayTooltip = false;\n\n  componentDidMount() {\n    document.addEventListener(\"mousedown\", this.clickOutside);\n  }\n\n  componentWillUnmount() {\n    document.removeEventListener(\"mousedown\", this.clickOutside);\n  }\n\n  @action.bound\n  clickOutside() {\n    this.displayTooltip = false;\n  }\n\n  @action.bound\n  showTooltip() {\n    this.displayTooltip = true;\n  }\n\n  @action.bound\n  hideTooltip() {\n    this.displayTooltip = false;\n  }\n\n  @bound\n  protected renderInner() {\n    const { fixedLength = false, tooltip = true, breakpoint = \"xl\", ...controlProps } = this.props;\n    const { translate, disabled, maxLength } = this.props;\n    let className;\n    if (fixedLength) {\n      className = \"col-12\";\n    } else if (breakpoint === \"xxl\") {\n      className = \"col-xxl-9\";\n    } else {\n      className = \"col-xl-6\";\n    }\n\n    return (\n      <Form.Group as={Col} sm={12} className={className}>\n        <Form.Label>{translate(\"licensePlate\")}</Form.Label>\n        {tooltip && !disabled && (\n          <Tooltip\n            id=\"license-plate-tooltip\"\n            show={this.displayTooltip}\n            trigger=\"click\"\n            placement={isMobile ? \"auto\" : \"right-start\"}\n            onClose={this.hideTooltip}\n            tooltip={translate(\"licensePlateTooltip\")}>\n            <span className=\"px-2\">\n              <Icon className=\"cursor-pointer\" icon={IconType.MiniInfo} width={16} height={16} onClick={this.showTooltip} />\n            </span>\n          </Tooltip>\n        )}\n        {fixedLength ? (\n          <LicensePlateCharacterWiseInput {...controlProps} />\n        ) : (\n          <LicensePlateBaseInput maxLength={maxLength} {...controlProps} />\n        )}\n      </Form.Group>\n    );\n  }\n}\n","import { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport { Form } from \"react-bootstrap\";\nimport VehicleInfoViewModel from \"viewModels/common/vehicleInfoViewModel\";\nimport LicensePlateInput from \"./licensePlateInput\";\nimport { DataTestIds } from \"../../../data-test-constants\";\n\nconst LicensePlateInputWithConfirmation: FunctionComponent<{\n  vm: VehicleInfoViewModel;\n  errorMessage?: string;\n  context?: \"new\" | \"old\";\n}> = observer(({ vm, errorMessage, context }) => {\n  const translate = (translateKey?: string) => (code: string) =>\n    vm.localizationService.translateAttribute(translateKey ? `orderItem.${translateKey}` : \"orderItem\", code);\n\n  if (!vm.item) {\n    return null;\n  }\n\n  return (\n    <Form.Row className=\"align-items-baseline\">\n      <LicensePlateInput\n        id={DataTestIds.LICENSE_PLATE_INPUT}\n        target={vm.item}\n        property=\"licensePlate\"\n        fixedLength={vm.config.fixedLicensePlateSize}\n        maxLength={vm.config.maxLicensePlateSize}\n        translate={translate(context)}\n        originalLicensePlate={vm.oldLicensePlate}\n        locale={vm.localizationService.locale}\n        countryCode={vm.countryCode}\n        countryId={vm.item.countryId}\n        disablePaste={true}\n        errorMessage={errorMessage}\n      />\n      <LicensePlateInput\n        id={DataTestIds.LICENSE_PLATE_CONFIRMATION_INPUT}\n        target={vm.item}\n        property=\"_licensePlateConfirmation\"\n        fixedLength={vm.config.fixedLicensePlateSize}\n        maxLength={vm.config.maxLicensePlateSize}\n        translate={translate(context ? `${context}.again` : \"again\")}\n        originalLicensePlate={vm.oldLicensePlate}\n        locale={vm.localizationService.locale}\n        countryCode={vm.countryCode}\n        countryId={vm.item.countryId}\n        disablePaste={true}\n        tooltip={false}\n      />\n    </Form.Row>\n  );\n});\n\nexport default LicensePlateInputWithConfirmation;\n","import { registerView, ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { Form } from \"react-bootstrap\";\nimport VehicleInfoViewModel from \"viewModels/common/vehicleInfoViewModel\";\nimport CountryIdInput from \"../countryIdInput/countryIdInput\";\nimport CountryIdWithConfirmation from \"../countryIdInput/countryIdInputWithConfirmation\";\nimport LicensePlateInput from \"../licensePlateInput/licensePlateInput\";\nimport LicensePlateInputWithConfirmation from \"../licensePlateInput/licensePlateInputWithConfirmation\";\n\nconst VehicleInfoView: ViewComponent<VehicleInfoViewModel> = observer(({ vm }) => {\n  const config = vm.config;\n  const translate = (translateKey?: string) => (code: string) =>\n    vm.localizationService.translateAttribute(translateKey ? `orderItem.${translateKey}` : \"orderItem\", code);\n  return (\n    <>\n      <Form.Row className=\"align-items-baseline\">\n        {config.countryIDConfirmation ? (\n          <CountryIdWithConfirmation vm={vm} disabled={vm.isDisabled} context={config.context} />\n        ) : (\n          <CountryIdInput vm={vm} disabled={vm.isDisabled} translateKey={config.context} breakpoint={config.breakpoint} />\n        )}\n        {!config.licensePlateConfirmation && (\n          <LicensePlateInput\n            id=\"license-plate-input\"\n            target={vm.item}\n            property=\"licensePlate\"\n            fixedLength={config.fixedLicensePlateSize}\n            countryId={vm.item.countryId}\n            countryCode={vm.isDisabled ? undefined : vm.countryCode}\n            disabled={vm.isDisabled}\n            translate={translate(config.context)}\n            locale={vm.localizationService.locale}\n            breakpoint={config.breakpoint}\n          />\n        )}\n      </Form.Row>\n      {config.licensePlateConfirmation && <LicensePlateInputWithConfirmation vm={vm} context={config.context} />}\n    </>\n  );\n});\n\nregisterView(VehicleInfoView, VehicleInfoViewModel);\n","const negativeRating =\n  \"data:image/svg+xml,%3Csvg%20width%3D%2260%22%20height%3D%2261%22%20viewBox%3D%220%200%2060%2061%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M30%200.966797C13.4274%200.966797%200%2014.3942%200%2030.9668C0%2047.5394%2013.4274%2060.9668%2030%2060.9668C46.5726%2060.9668%2060%2047.5394%2060%2030.9668C60%2014.3942%2046.5726%200.966797%2030%200.966797ZM30%2055.1603C16.6573%2055.1603%205.80645%2044.3095%205.80645%2030.9668C5.80645%2017.6241%2016.6573%206.77325%2030%206.77325C43.3427%206.77325%2054.1935%2017.6241%2054.1935%2030.9668C54.1935%2044.3095%2043.3427%2055.1603%2030%2055.1603ZM20.3226%2029.0313C22.4637%2029.0313%2024.1935%2027.3015%2024.1935%2025.1603C24.1935%2023.0192%2022.4637%2021.2894%2020.3226%2021.2894C18.1815%2021.2894%2016.4516%2023.0192%2016.4516%2025.1603C16.4516%2027.3015%2018.1815%2029.0313%2020.3226%2029.0313ZM39.6774%2021.2894C37.5363%2021.2894%2035.8064%2023.0192%2035.8064%2025.1603C35.8064%2027.3015%2037.5363%2029.0313%2039.6774%2029.0313C41.8185%2029.0313%2043.5484%2027.3015%2043.5484%2025.1603C43.5484%2023.0192%2041.8185%2021.2894%2039.6774%2021.2894ZM30%2036.7732C25.1371%2036.7732%2020.5645%2038.9144%2017.4435%2042.6523C16.4153%2043.8862%2016.5847%2045.7128%2017.8185%2046.741C19.0524%2047.7571%2020.879%2047.5999%2021.9073%2046.366C23.9153%2043.9587%2026.8669%2042.5676%2030%2042.5676C33.1331%2042.5676%2036.0847%2043.9466%2038.0927%2046.366C39.0726%2047.5394%2040.8871%2047.8055%2042.1815%2046.741C43.4153%2045.7128%2043.5726%2043.8862%2042.5564%2042.6523C39.4355%2038.9144%2034.8629%2036.7732%2030%2036.7732Z%22%20fill%3D%22%23C1103C%22%20fill-opacity%3D%220.8%22%2F%3E%3C%2Fsvg%3E\";\n\nconst neutralRating =\n  \"data:image/svg+xml,%3Csvg%20width%3D%2260%22%20height%3D%2261%22%20viewBox%3D%220%200%2060%2061%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M30%200.966797C13.4274%200.966797%200%2014.3942%200%2030.9668C0%2047.5394%2013.4274%2060.9668%2030%2060.9668C46.5726%2060.9668%2060%2047.5394%2060%2030.9668C60%2014.3942%2046.5726%200.966797%2030%200.966797ZM30%2055.1603C16.6573%2055.1603%205.80645%2044.3095%205.80645%2030.9668C5.80645%2017.6241%2016.6573%206.77325%2030%206.77325C43.3427%206.77325%2054.1935%2017.6241%2054.1935%2030.9668C54.1935%2044.3095%2043.3427%2055.1603%2030%2055.1603ZM20.3226%2029.0313C22.4637%2029.0313%2024.1935%2027.3015%2024.1935%2025.1603C24.1935%2023.0192%2022.4637%2021.2894%2020.3226%2021.2894C18.1815%2021.2894%2016.4516%2023.0192%2016.4516%2025.1603C16.4516%2027.3015%2018.1815%2029.0313%2020.3226%2029.0313ZM39.6774%2021.2894C37.5363%2021.2894%2035.8064%2023.0192%2035.8064%2025.1603C35.8064%2027.3015%2037.5363%2029.0313%2039.6774%2029.0313C41.8185%2029.0313%2043.5484%2027.3015%2043.5484%2025.1603C43.5484%2023.0192%2041.8185%2021.2894%2039.6774%2021.2894ZM40.6452%2038.7087H19.3548C17.7581%2038.7087%2016.4516%2040.0152%2016.4516%2041.612C16.4516%2043.2087%2017.7581%2044.5152%2019.3548%2044.5152H40.6452C42.2419%2044.5152%2043.5484%2043.2087%2043.5484%2041.612C43.5484%2040.0152%2042.2419%2038.7087%2040.6452%2038.7087Z%22%20fill%3D%22%23F2A900%22%2F%3E%3C%2Fsvg%3E\";\n\nconst positiveRating =\n  \"data:image/svg+xml,%3Csvg%20width%3D%2260%22%20height%3D%2261%22%20viewBox%3D%220%200%2060%2061%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M30%200.966797C13.4274%200.966797%200%2014.3942%200%2030.9668C0%2047.5394%2013.4274%2060.9668%2030%2060.9668C46.5726%2060.9668%2060%2047.5394%2060%2030.9668C60%2014.3942%2046.5726%200.966797%2030%200.966797ZM30%2055.1603C16.6573%2055.1603%205.80645%2044.3095%205.80645%2030.9668C5.80645%2017.6241%2016.6573%206.77325%2030%206.77325C43.3427%206.77325%2054.1935%2017.6241%2054.1935%2030.9668C54.1935%2044.3095%2043.3427%2055.1603%2030%2055.1603ZM20.3226%2029.0313C22.4637%2029.0313%2024.1935%2027.3015%2024.1935%2025.1603C24.1935%2023.0192%2022.4637%2021.2894%2020.3226%2021.2894C18.1815%2021.2894%2016.4516%2023.0192%2016.4516%2025.1603C16.4516%2027.3015%2018.1815%2029.0313%2020.3226%2029.0313ZM39.6774%2029.0313C41.8185%2029.0313%2043.5484%2027.3015%2043.5484%2025.1603C43.5484%2023.0192%2041.8185%2021.2894%2039.6774%2021.2894C37.5363%2021.2894%2035.8064%2023.0192%2035.8064%2025.1603C35.8064%2027.3015%2037.5363%2029.0313%2039.6774%2029.0313ZM40.1613%2037.8136C37.6452%2040.8378%2033.9314%2042.5797%2030%2042.5797C26.0685%2042.5797%2022.3548%2040.8499%2019.8387%2037.8136C18.8105%2036.5797%2016.9718%2036.4224%2015.75%2037.4386C14.5161%2038.4668%2014.3589%2040.2934%2015.375%2041.5273C19.004%2045.8821%2024.3387%2048.3741%2030%2048.3741C35.6613%2048.3741%2040.996%2045.8821%2044.625%2041.5273C45.6532%2040.2934%2045.4839%2038.4668%2044.25%2037.4386C43.0282%2036.4224%2041.1895%2036.5797%2040.1613%2037.8136Z%22%20fill%3D%22%2301B163%22%2F%3E%3C%2Fsvg%3E\";\n\nconst negativeRatingDisabled =\n  \"data:image/svg+xml,%3Csvg%20width%3D%2261%22%20height%3D%2261%22%20viewBox%3D%220%200%2061%2061%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M30.5%200.466797C13.9274%200.466797%200.5%2013.8942%200.5%2030.4668C0.5%2047.0394%2013.9274%2060.4668%2030.5%2060.4668C47.0726%2060.4668%2060.5%2047.0394%2060.5%2030.4668C60.5%2013.8942%2047.0726%200.466797%2030.5%200.466797ZM30.5%2054.6603C17.1573%2054.6603%206.30645%2043.8095%206.30645%2030.4668C6.30645%2017.1241%2017.1573%206.27325%2030.5%206.27325C43.8427%206.27325%2054.6935%2017.1241%2054.6935%2030.4668C54.6935%2043.8095%2043.8427%2054.6603%2030.5%2054.6603ZM20.8226%2028.5313C22.9637%2028.5313%2024.6935%2026.8015%2024.6935%2024.6603C24.6935%2022.5192%2022.9637%2020.7894%2020.8226%2020.7894C18.6815%2020.7894%2016.9516%2022.5192%2016.9516%2024.6603C16.9516%2026.8015%2018.6815%2028.5313%2020.8226%2028.5313ZM40.1774%2020.7894C38.0363%2020.7894%2036.3064%2022.5192%2036.3064%2024.6603C36.3064%2026.8015%2038.0363%2028.5313%2040.1774%2028.5313C42.3185%2028.5313%2044.0484%2026.8015%2044.0484%2024.6603C44.0484%2022.5192%2042.3185%2020.7894%2040.1774%2020.7894ZM30.5%2036.2732C25.6371%2036.2732%2021.0645%2038.4144%2017.9435%2042.1523C16.9153%2043.3862%2017.0847%2045.2128%2018.3185%2046.241C19.5524%2047.2571%2021.379%2047.0999%2022.4073%2045.866C24.4153%2043.4587%2027.3669%2042.0676%2030.5%2042.0676C33.6331%2042.0676%2036.5847%2043.4466%2038.5927%2045.866C39.5726%2047.0394%2041.3871%2047.3055%2042.6815%2046.241C43.9153%2045.2128%2044.0726%2043.3862%2043.0564%2042.1523C39.9355%2038.4144%2035.3629%2036.2732%2030.5%2036.2732Z%22%20fill%3D%22%23707070%22%20fill-opacity%3D%220.7%22%2F%3E%3C%2Fsvg%3E\";\n\nconst neutralRatingDisabled =\n  \"data:image/svg+xml,%3Csvg%20width%3D%2261%22%20height%3D%2261%22%20viewBox%3D%220%200%2061%2061%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M30.5%200.466797C13.9274%200.466797%200.5%2013.8942%200.5%2030.4668C0.5%2047.0394%2013.9274%2060.4668%2030.5%2060.4668C47.0726%2060.4668%2060.5%2047.0394%2060.5%2030.4668C60.5%2013.8942%2047.0726%200.466797%2030.5%200.466797ZM30.5%2054.6603C17.1573%2054.6603%206.30645%2043.8095%206.30645%2030.4668C6.30645%2017.1241%2017.1573%206.27325%2030.5%206.27325C43.8427%206.27325%2054.6935%2017.1241%2054.6935%2030.4668C54.6935%2043.8095%2043.8427%2054.6603%2030.5%2054.6603ZM20.8226%2028.5313C22.9637%2028.5313%2024.6935%2026.8015%2024.6935%2024.6603C24.6935%2022.5192%2022.9637%2020.7894%2020.8226%2020.7894C18.6815%2020.7894%2016.9516%2022.5192%2016.9516%2024.6603C16.9516%2026.8015%2018.6815%2028.5313%2020.8226%2028.5313ZM40.1774%2020.7894C38.0363%2020.7894%2036.3064%2022.5192%2036.3064%2024.6603C36.3064%2026.8015%2038.0363%2028.5313%2040.1774%2028.5313C42.3185%2028.5313%2044.0484%2026.8015%2044.0484%2024.6603C44.0484%2022.5192%2042.3185%2020.7894%2040.1774%2020.7894ZM41.1452%2038.2087H19.8548C18.2581%2038.2087%2016.9516%2039.5152%2016.9516%2041.112C16.9516%2042.7087%2018.2581%2044.0152%2019.8548%2044.0152H41.1452C42.7419%2044.0152%2044.0484%2042.7087%2044.0484%2041.112C44.0484%2039.5152%2042.7419%2038.2087%2041.1452%2038.2087Z%22%20fill%3D%22%23707070%22%2F%3E%3C%2Fsvg%3E\";\n\nconst positiveRatingDisabled =\n  \"data:image/svg+xml,%3Csvg%20width%3D%2261%22%20height%3D%2261%22%20viewBox%3D%220%200%2061%2061%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M30.5%200.466797C13.9274%200.466797%200.5%2013.8942%200.5%2030.4668C0.5%2047.0394%2013.9274%2060.4668%2030.5%2060.4668C47.0726%2060.4668%2060.5%2047.0394%2060.5%2030.4668C60.5%2013.8942%2047.0726%200.466797%2030.5%200.466797ZM30.5%2054.6603C17.1573%2054.6603%206.30645%2043.8095%206.30645%2030.4668C6.30645%2017.1241%2017.1573%206.27325%2030.5%206.27325C43.8427%206.27325%2054.6935%2017.1241%2054.6935%2030.4668C54.6935%2043.8095%2043.8427%2054.6603%2030.5%2054.6603ZM20.8226%2028.5313C22.9637%2028.5313%2024.6935%2026.8015%2024.6935%2024.6603C24.6935%2022.5192%2022.9637%2020.7894%2020.8226%2020.7894C18.6815%2020.7894%2016.9516%2022.5192%2016.9516%2024.6603C16.9516%2026.8015%2018.6815%2028.5313%2020.8226%2028.5313ZM40.1774%2028.5313C42.3185%2028.5313%2044.0484%2026.8015%2044.0484%2024.6603C44.0484%2022.5192%2042.3185%2020.7894%2040.1774%2020.7894C38.0363%2020.7894%2036.3064%2022.5192%2036.3064%2024.6603C36.3064%2026.8015%2038.0363%2028.5313%2040.1774%2028.5313ZM40.6613%2037.3136C38.1452%2040.3378%2034.4314%2042.0797%2030.5%2042.0797C26.5685%2042.0797%2022.8548%2040.3499%2020.3387%2037.3136C19.3105%2036.0797%2017.4718%2035.9224%2016.25%2036.9386C15.0161%2037.9668%2014.8589%2039.7934%2015.875%2041.0273C19.504%2045.3821%2024.8387%2047.8741%2030.5%2047.8741C36.1613%2047.8741%2041.496%2045.3821%2045.125%2041.0273C46.1532%2039.7934%2045.9839%2037.9668%2044.75%2036.9386C43.5282%2035.9224%2041.6895%2036.0797%2040.6613%2037.3136Z%22%20fill%3D%22%23707070%22%20fill-opacity%3D%220.7%22%2F%3E%3C%2Fsvg%3E\";\n\nconst successMessage =\n  \"data:image/svg+xml,%3Csvg%20width%3D%2262%22%20height%3D%2264%22%20viewBox%3D%220%200%2062%2064%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M16.5%2062V29M1.5%2035V56C1.5%2059.3137%204.18629%2062%207.5%2062H47.7787C52.2209%2062%2055.9986%2058.759%2056.6741%2054.3685L59.9048%2033.3685C60.7436%2027.9167%2056.5255%2023%2051.0095%2023H40.5C38.8431%2023%2037.5%2021.6569%2037.5%2020V9.39752C37.5%205.31198%2034.188%202%2030.1025%202C29.128%202%2028.2449%202.57389%2027.8492%203.46437L17.2918%2027.2184C16.8103%2028.3018%2015.7359%2029%2014.5504%2029H7.5C4.18629%2029%201.5%2031.6863%201.5%2035Z%22%20stroke%3D%22%2301B163%22%20stroke-width%3D%223%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E\";\n\nexport {\n  positiveRating,\n  neutralRating,\n  negativeRating,\n  successMessage,\n  negativeRatingDisabled,\n  neutralRatingDisabled,\n  positiveRatingDisabled,\n};\n","import CustomerRatingScore from \"entities/customerRatingScore\";\nimport {\n  negativeRating,\n  negativeRatingDisabled,\n  neutralRating,\n  neutralRatingDisabled,\n  positiveRating,\n  positiveRatingDisabled,\n  successMessage,\n} from \"./ratingAssets\";\n\nexport const ratingTypeIcon = (rating: CustomerRatingScore, isDisabled: boolean) => {\n  if (isDisabled) {\n    switch (rating) {\n      case CustomerRatingScore.Negative:\n        return negativeRatingDisabled;\n      case CustomerRatingScore.Neutral:\n        return neutralRatingDisabled;\n      case CustomerRatingScore.Positive:\n        return positiveRatingDisabled;\n    }\n  }\n  switch (rating) {\n    case CustomerRatingScore.Negative:\n      return negativeRating;\n    case CustomerRatingScore.Neutral:\n      return neutralRating;\n    case CustomerRatingScore.Positive:\n      return positiveRating;\n  }\n};\n\nexport const successMessageIcon = () => {\n  return successMessage;\n};\n","import React from \"react\";\nimport type { ViewComponent } from \"@frui.ts/views\";\nimport { registerView } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport CustomerReviewViewModel, { CustomerReview } from \"viewModels/customerReview/customerReviewViewModel\";\nimport { ratingTypeIcon } from \"utils/ratingTypeIcon\";\nimport { Input } from \"@frui.ts/bootstrap\";\nimport Button from \"@edaz/edazkit/Button\";\nimport { Card, Form, Col } from \"react-bootstrap\";\nimport { RadioArray } from \"controls/radioArray\";\nimport { successMessage } from \"utils/ratingTypeIcon/ratingAssets\";\nimport AlertWithInfoIcon from \"views/common/alertWithInfoIcon/alertWithInfoIcon\";\nexport const CustomerReviewView: ViewComponent<CustomerReviewViewModel> = observer(({ vm }) => {\n  const translate = (code: string) => vm.translate(code);\n  const controlId = `customer-review-form`;\n  const labelContent = (index: React.Key | null | undefined, review: CustomerReview) => (\n    <Card.Body className=\"d-flex align-items-center justify-content-center p-0\">\n      <div className=\"d-flex flex-column justify-content-cente align-items-center\" key={index}>\n        <img src={ratingTypeIcon(review.value, vm.isDisabled)} />\n        <span className=\"mt-1\">{translate(`customerRatingScore.${review.value}`)}</span>\n      </div>\n    </Card.Body>\n  );\n\n  const successContent = () => {\n    return (\n      <div id=\"success-rating-card\" className=\"d-flex flex-column card-box-shadow mb-0 mb-md-0 mb-sm-3 p-5 p-md-7 jumbotron\">\n        <div className=\"d-flex flex-column justify-content-cente align-items-center\">\n          <img src={successMessage} style={{ maxHeight: \"5rem\", width: \"auto\" }} />\n        </div>\n        <h4 className=\"mt-3 mb-4 text-center\">{translate(\"successTitle\")}</h4>\n        <span className=\"mb-5 text-center\">{translate(\"successMessage\")}</span>\n      </div>\n    );\n  };\n\n  const ratingContet = () => {\n    return (\n      <div className=\"d-flex flex-column align-items-center card-box-shadow mb-0 mb-md-0 mb-sm-3 p-5 p-md-7 jumbotron\">\n        <h4 className=\"mb-3\">{translate(\"title\")}</h4>\n        <span className=\"mb-5 text-center\">{translate(\"question\")}</span>\n        <div className=\"mb-5 customer-rating-wrapper\">\n          {vm.customerReviews.map((review, index) => (\n            <Card\n              key={index}\n              className={`customer-rating-view ${review.value === vm.ratingScore ? vm.customerReviewColor(review.value) : \"\"} ${\n                vm.isDisabled ? \"disabled\" : \"\"\n              }`}>\n              <RadioArray\n                custom\n                label={labelContent(index, review)}\n                className={`customer-rating-select d-flex align-items-center label-stretch pl-0 `}\n                name={\"customerRating\"}\n                target={vm.customerRating}\n                property=\"score\"\n                isNumeric={false}\n                resetOnClick\n                id={review.id}\n                option={review.value}\n                disabled={vm.isDisabled}\n                isInvalid={!!vm.error}\n              />\n            </Card>\n          ))}\n        </div>\n        <div className=\"w-100\">\n          <Form.Group controlId={controlId} as={Col} sm={12} className=\"my-0 p-0\">\n            {vm.rating.score && (\n              <>\n                <Form.Label>\n                  <span className=\"mr-3\">{translate(\"comment\")}</span>\n                </Form.Label>\n                <Input\n                  as=\"textarea\"\n                  className=\"w-100\"\n                  target={vm.customerRating}\n                  property={\"comment\"}\n                  disabled={vm.isDisabled}\n                  placeholder={translate(\"customRatingPlaceholder\")}\n                />\n                <div style={{ textAlign: \"end\", color: \"#bdc7d1\" }}>{`${vm.customerRating.comment?.length ?? 0}/1000`}</div>\n              </>\n            )}\n          </Form.Group>\n          {vm.errorMessage && (\n            <AlertWithInfoIcon variant=\"warning\" className=\"mt-2 mb-5\" key={vm.errorMessage}>\n              {vm.errorMessage ? vm.translateError(vm.errorMessage) : translate(\"warning\")}\n            </AlertWithInfoIcon>\n          )}\n          <Button onClick={vm.onSubmit} className=\"d-block mx-auto\" disabled={vm.isDisabled || vm.isDisabledConfirm()}>\n            {translate(\"submit\")}\n          </Button>\n        </div>\n      </div>\n    );\n  };\n\n  return vm.step === 1 ? ratingContet() : successContent();\n});\n\nregisterView(CustomerReviewView, CustomerReviewViewModel);\n","import { registerView, View, ViewComponent } from \"@frui.ts/views/dist\";\nimport { observer } from \"mobx-react-lite\";\nimport * as React from \"react\";\nimport EshopViewModel from \"viewModels/eshop/eshopViewModel\";\n\nconst EshopView: ViewComponent<EshopViewModel> = observer(({ vm }) => <View vm={vm.activeChild} />);\n\nregisterView(EshopView, EshopViewModel);\n","import { RadioArray } from \"controls/radioArray\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport React, { FunctionComponent } from \"react\";\r\nimport { Card, Col, Row } from \"react-bootstrap\";\r\nimport ChargeTypeViewModel from \"viewModels/eshop/order/components/chargeViewModel\";\r\nimport { registerView } from \"@frui.ts/views\";\r\nimport { DataTestIds } from \"../../../../../data-test-constants\";\r\nimport { chargeTypeIcon } from \"utils/chargeTypeIcon\";\r\n\r\nconst ChargeTypeView: FunctionComponent<{\r\n  vm: ChargeTypeViewModel;\r\n}> = observer(({ vm }) => {\r\n  const chargeOrderChargeItem = vm.chargeOrderChargeItem;\r\n  const labelContent = (\r\n    <Card.Body className=\"p-2\" data-testid={DataTestIds.chargeCardPrice(vm.chargeType.validFor)}>\r\n      <Row className=\"m-0\">\r\n        <Col className=\"p-0 col-auto\">\r\n          <img\r\n            style={{ width: \"6rem\", height: \"6rem\" }}\r\n            src={chargeTypeIcon(vm.chargeType.validFor, vm.isCSLocale)}\r\n            alt={vm.description}\r\n          />\r\n        </Col>\r\n        <Col className=\"d-flex align-items-center mt-0 pt-lg-1 pt-sm-1 pt-xl-0 pl-xl-1 pl-xxl-2\">\r\n          <Row className=\"flex-sm-column align-items-center\">\r\n            <Col xs={12} sm={6} xl={12}>\r\n              <h5 className=\"m-0 text-nowrap align-self-center\">{vm.description}</h5>\r\n            </Col>\r\n            <Col xs={12} sm={6} xl={12}>\r\n              <span className=\"text-sm-right m-0 text-left text-nowrap text-xl-left\">{vm.price}</span>\r\n            </Col>\r\n          </Row>\r\n        </Col>\r\n      </Row>\r\n    </Card.Body>\r\n  );\r\n\r\n  const isSelected = chargeOrderChargeItem.chargeTypeId === vm.chargeType.id;\r\n\r\n  const radioId = `${vm.chargeTypeCode}-${vm.batchIndex ?? 0}`;\r\n  return (\r\n    <Card\r\n      className={\"mt-3 charge-view \" + (isSelected ? \" border-success\" : \"\") + (vm.error ? \" border-danger\" : \"\")}\r\n      style={{\r\n        backgroundColor: isSelected ? \"rgba(1, 177, 99, 0.1)\" : \"transparent\",\r\n      }}>\r\n      <RadioArray\r\n        custom\r\n        label={labelContent}\r\n        className={\"charge-type-select d-flex align-items-center label-stretch pl-0\"}\r\n        name={\"chargeType\"}\r\n        target={chargeOrderChargeItem}\r\n        property=\"chargeTypeId\"\r\n        isNumeric={false}\r\n        id={radioId}\r\n        option={vm.chargeType.id}\r\n        isInvalid={!!vm.error}\r\n      />\r\n    </Card>\r\n  );\r\n});\r\n\r\nregisterView(ChargeTypeView, ChargeTypeViewModel);\r\n","export const ecoIcon =\n  \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAPCAYAAAACsSQRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAEbSURBVHgBpZLBTcMwFIb/91Ihbs0IGcEdgTNSKRtUICRuzQYtE5QOQMgGLhOgbpARwgY5lFMUP+xwgGDXROo7JM/Pv7/ffjbhnNB5ChwVjRN+ZkCn+jHTlIUyYVEQuFpKscXMx1wgKyeM+YQh+kERG22zDCPCh+jHjLh9HwtwwV4haddxgNT2U0chIqJiADHmyjP2hZQhCkicyW9NE4BIcxpwCWJsBzOCKnAc7E8DAg0nlP5OxOzcFkcBXJjuELidycL+Utvg6j+AfYgb3Jb1AMJv98928VaAHItiFgWQlLgpnlw+6Sv6bknMKyO2qdLNLL36lrbK+Q3fpDQC2mBe7H7aopeptVuDZY/56wGhcJqLZNrn1y8ff6e/ALMCfwwgLRqGAAAAAElFTkSuQmCC\";\n\nexport const vehicleInfoIcon =\n  \"data:image/png;base64,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\";\n","import { ecoIcon } from \"./fuelAssets\";\nimport FuelType from \"entities/fuelType\";\n\nexport default function fuelEcoIcon(fuelType: FuelType) {\n  if (fuelType !== FuelType.Other) {\n    return ecoIcon;\n  }\n}\n","import { RadioArray } from \"controls/radioArray\";\nimport { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport { Card, Col, Row } from \"react-bootstrap\";\nimport FuelViewModel from \"viewModels/eshop/order/components/fuelViewModel\";\nimport { registerView } from \"@frui.ts/views\";\nimport fuelEcoIcon from \"utils/fuelEcoIcon\";\nimport Icon, { IconType } from \"@edaz/edazkit/Icon\";\nimport Tooltip from \"controls/tooltip\";\nimport { isMobile } from \"react-device-detect\";\n\nconst FuelTypeView: FunctionComponent<{\n  vm: FuelViewModel;\n}> = observer(({ vm }) => {\n  const chargeOrderFuelItem = vm.chargeOrderFuelItem;\n  const isSelected = chargeOrderFuelItem.fuelTypeId === vm.fuelTypeItem.id;\n  const infoTooltipTranslate = (code: string) => vm.localizationService.translateGeneral(`eshop.infoTooltip.${code}`);\n\n  const labelContent = (\n    <Card.Body className=\"test d-flex align-items-center pl-3 pl-sm-4 py-0 pr-1 pr-sm-3\">\n      <Row>\n        <Col className=\"pt-sm-1 pt-lg-1 pt-xl-0 pl-xl-1 pl-xxl-2\">\n          <Row className=\"d-flex align-items-center\">\n            <Col xs={12} sm={6} xl={12} className=\"d-flex align-items-center\">\n              {!vm.isOtherType && (\n                <img\n                  className=\"mr-2\"\n                  style={{ width: \"1rem\", height: \"1rem\" }}\n                  src={fuelEcoIcon(vm.fuelTypeItem.fuelType)}\n                  alt={\"\"}\n                />\n              )}\n              <h5 className=\"m-0\">{vm.translateAttribute(vm.fuelTypeItem.fuelType)}</h5>\n              {vm.isOtherType && (\n                <Tooltip\n                  id=\"license-plate-tooltip\"\n                  show={vm.displayTooltip}\n                  trigger=\"click\"\n                  placement={isMobile ? \"auto\" : \"right-start\"}\n                  onClose={vm.closeTooltip}\n                  tooltip={infoTooltipTranslate(\"OTHER\")}>\n                  <span className=\"px-2\" style={{ zIndex: 10 }} onClick={vm.showTooltip}>\n                    <Icon className=\"cursor-pointer\" icon={IconType.MiniInfo} width={16} height={16} />\n                  </span>\n                </Tooltip>\n              )}\n            </Col>\n            {vm.isTypeWithDescription && (\n              <Col xs={12} sm={6} xl={12}>\n                <span className=\"d-flex align-self-center m-0\">\n                  {vm.translateAttribute(`${vm.fuelTypeItem.fuelType}_DESCRIPTION`)}\n                </span>\n              </Col>\n            )}\n          </Row>\n        </Col>\n      </Row>\n    </Card.Body>\n  );\n\n  const radioId = `${vm.chargeFuelType}-${vm.batchIndex ?? 0}`;\n  return (\n    <Card\n      className={\"mt-3 fuel-view \" + (isSelected ? \" border-success\" : \"\") + (vm.error ? \" border-danger\" : \"\")}\n      style={{\n        backgroundColor: isSelected ? \"rgba(1, 177, 99, 0.1)\" : \"transparent\",\n      }}>\n      <RadioArray\n        custom\n        label={labelContent}\n        className={\"fuel-type-select d-flex align-items-center label-stretch pl-0\"}\n        name={\"fuelType\"}\n        target={chargeOrderFuelItem}\n        property=\"fuelTypeId\"\n        isNumeric={false}\n        id={radioId}\n        option={vm.fuelTypeItem.id}\n        isInvalid={!!vm.error}\n        disabled={vm.isDisabledFuelType}\n      />\n    </Card>\n  );\n});\n\nregisterView(FuelTypeView, FuelViewModel);\n","import { registerView, ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport * as React from \"react\";\nimport { Collapse } from \"react-bootstrap\";\nimport Icon, { IconType } from \"@edaz/edazkit/Icon\";\nimport GdprInfoViewModel from \"viewModels/eshop/order/components/gdprInfoViewModel\";\nimport ReactMarkdown from \"react-markdown\";\n\nconst GdprInfoView: ViewComponent<GdprInfoViewModel> = observer(({ vm }) => {\n  return (\n    <div className=\"mt-4 pt-4 pb-4\" style={{ borderTop: \"1px solid #E4E8EC\", borderBottom: \"1px solid #E4E8EC\" }}>\n      <div\n        className=\"d-flex justify-content-between align-items-center\"\n        onClick={vm.toggle}\n        style={{ cursor: \"pointer\" }}\n        role=\"button\"\n        aria-expanded={vm.isExpanded}>\n        <span className=\"font-weight-bold\">{vm.translate(\"title\")}</span>\n        <span\n          style={{\n            display: \"inline-flex\",\n            alignItems: \"center\",\n            justifyContent: \"center\",\n            width: 24,\n            height: 24,\n            borderRadius: \"50%\",\n            backgroundColor: \"#E4E8EC\",\n            transform: vm.isExpanded ? \"rotate(180deg)\" : \"rotate(0deg)\",\n            transition: \"transform 0.2s\",\n          }}>\n          <Icon icon={IconType.ArrowBottom} width={10} height={10} />\n        </span>\n      </div>\n      <Collapse in={vm.isExpanded}>\n        <div className=\"mt-3\">\n          <div className=\"mb-2\">{vm.translate(\"text1\")}</div>\n          <div className=\"mb-2\">\n            <ReactMarkdown\n              className=\"markdown\"\n              linkTarget=\"_blank\"\n              components={{ a: ({ node, ...props }) => <a {...props} />, p: ({ node, ...props }) => <span {...props} /> }}>\n              {vm.text2WithLink}\n            </ReactMarkdown>\n          </div>\n          <div className=\"mb-2\">{vm.translate(\"administrator\")}</div>\n        </div>\n      </Collapse>\n    </div>\n  );\n});\n\nregisterView(GdprInfoView, GdprInfoViewModel);\n","import { registerView, ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport * as React from \"react\";\nimport { Col, Form, Row } from \"react-bootstrap\";\nimport { Check } from \"@frui.ts/bootstrap\";\nimport { isMobile } from \"react-device-detect\";\nimport NotificationPreferencesRecapViewModel from \"viewModels/eshop/order/components/notificationPreferencesRecapViewModel\";\nimport AlertWithInfoIcon from \"views/common/alertWithInfoIcon/alertWithInfoIcon\";\n\nconst EditIconSvg = () => (\n  <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path\n      d=\"M17.4397 2.18294C17.5448 2.28838 17.6038 2.43119 17.6038 2.58007C17.6038 2.72895 17.5448 2.87175 17.4397 2.97719L16.2663 4.15169L14.0163 1.90169L15.1897 0.727192C15.2952 0.62174 15.4382 0.5625 15.5874 0.5625C15.7365 0.5625 15.8796 0.62174 15.985 0.727192L17.4397 2.18182V2.18294ZM15.4709 4.94594L13.2209 2.69594L5.5563 10.3617C5.49438 10.4236 5.44777 10.4991 5.42017 10.5822L4.51455 13.2979C4.49813 13.3475 4.49579 13.4006 4.50781 13.4513C4.51984 13.5021 4.54574 13.5485 4.58262 13.5854C4.61951 13.6223 4.66592 13.6482 4.71668 13.6602C4.76744 13.6722 4.82054 13.6699 4.87005 13.6534L7.5858 12.7478C7.66878 12.7205 7.74428 12.6743 7.8063 12.6128L15.4709 4.94594Z\"\n      fill=\"#51535D\"\n    />\n    <path\n      fillRule=\"evenodd\"\n      clipRule=\"evenodd\"\n      d=\"M1.125 15.1875C1.125 15.6351 1.30279 16.0643 1.61926 16.3807C1.93572 16.6972 2.36495 16.875 2.8125 16.875H15.1875C15.6351 16.875 16.0643 16.6972 16.3807 16.3807C16.6972 16.0643 16.875 15.6351 16.875 15.1875V8.4375C16.875 8.28832 16.8157 8.14524 16.7102 8.03975C16.6048 7.93426 16.4617 7.875 16.3125 7.875C16.1633 7.875 16.0202 7.93426 15.9148 8.03975C15.8093 8.14524 15.75 8.28832 15.75 8.4375V15.1875C15.75 15.3367 15.6907 15.4798 15.5852 15.5852C15.4798 15.6907 15.3367 15.75 15.1875 15.75H2.8125C2.66332 15.75 2.52024 15.6907 2.41475 15.5852C2.30926 15.4798 2.25 15.3367 2.25 15.1875V2.8125C2.25 2.66332 2.30926 2.52024 2.41475 2.41475C2.52024 2.30926 2.66332 2.25 2.8125 2.25H10.125C10.2742 2.25 10.4173 2.19074 10.5227 2.08525C10.6282 1.97976 10.6875 1.83668 10.6875 1.6875C10.6875 1.53832 10.6282 1.39524 10.5227 1.28975C10.4173 1.18426 10.2742 1.125 10.125 1.125H2.8125C2.36495 1.125 1.93572 1.30279 1.61926 1.61926C1.30279 1.93572 1.125 2.36495 1.125 2.8125V15.1875Z\"\n      fill=\"#51535D\"\n    />\n  </svg>\n);\n\nconst NotificationPreferencesRecapView: ViewComponent<NotificationPreferencesRecapViewModel> = observer(({ vm }) => {\n  const EditableValue = ({ children, className }: { children: React.ReactNode; className?: string }) => (\n    <Row\n      className=\"justify-content-end align-items-center\"\n      onClick={isMobile ? vm.navigateToContact : undefined}\n      style={isMobile ? { cursor: \"pointer\" } : undefined}\n      role={isMobile ? \"button\" : undefined}>\n      <div className={`font-weight-bold ${className || \"\"}`}>{children}</div>\n      <span\n        onClick={!isMobile ? vm.navigateToContact : undefined}\n        style={{ cursor: \"pointer\", marginLeft: 8 }}\n        role=\"button\"\n        aria-label={vm.translate(\"edit\")}>\n        <EditIconSvg />\n      </span>\n    </Row>\n  );\n\n  return (\n    <div className=\"mt-4\">\n      <Form.Row>\n        <Form.Group as={Col} className=\"mb-2\">\n          <Check\n            autoComplete=\"off\"\n            custom\n            target={vm.notificationPreferences}\n            property=\"_notificationEnabled\"\n            label={\n              <span className=\"font-weight-normal\">\n                <span>{vm.translateNotification(\"title\")}</span>\n                <br />\n                <span className=\"text-muted font-size-sm\">{vm.translateNotification(\"subtitle\")}</span>\n              </span>\n            }\n          />\n        </Form.Group>\n      </Form.Row>\n\n      {vm.isNotificationEnabled && (\n        <>\n          <AlertWithInfoIcon variant=\"info-light\" className=\"mt-3 mb-4\">\n            <span className=\"font-weight-normal\">{vm.notificationInfoText}</span>\n          </AlertWithInfoIcon>\n\n          <Row className=\"d-flex align-items-center justify-content-between px-3 px-md-0 mx-sm-1 mt-3\">\n            <Col xs=\"auto\">\n              <div className={`mb-0 text-wrap ${vm.emailValidationError && !vm.notificationEmail ? \"text-danger\" : \"\"}`}>\n                {vm.translateNotification(\"email\")}\n              </div>\n            </Col>\n            <Col xs=\"auto\" className=\"flex-grow-1 text-right\">\n              <EditableValue className={vm.emailValidationError && !vm.notificationEmail ? \"text-danger\" : \"\"}>\n                {vm.notificationEmail || vm.emptyState}\n              </EditableValue>\n            </Col>\n          </Row>\n\n          <Row className=\"d-flex align-items-center justify-content-between px-3 px-md-0 mx-sm-1 mt-3 mb-4\">\n            <Col xs=\"auto\">\n              <div className={`mb-0 text-wrap ${vm.phoneValidationError && !vm.notificationPhone ? \"text-danger\" : \"\"}`}>\n                {vm.translateNotification(\"phone\")}\n              </div>\n            </Col>\n            <Col xs=\"auto\" className=\"flex-grow-1 text-right\">\n              <EditableValue className={vm.phoneValidationError && !vm.notificationPhone ? \"text-danger\" : \"\"}>\n                {vm.notificationPhone || vm.emptyState}\n              </EditableValue>\n            </Col>\n          </Row>\n        </>\n      )}\n    </div>\n  );\n});\n\nregisterView(NotificationPreferencesRecapView, NotificationPreferencesRecapViewModel);\n","import { registerView, ViewComponent } from \"@frui.ts/views\";\nimport Tooltip from \"controls/tooltip\";\nimport { observer } from \"mobx-react-lite\";\nimport * as React from \"react\";\nimport { Card, Col, Row } from \"react-bootstrap\";\nimport { isMobile } from \"react-device-detect\";\nimport { getTimeZoneLabel } from \"utils/dateUtils\";\nimport OrderRecapitulationViewModel, { EditStep } from \"viewModels/eshop/order/components/orderRecapitulationViewModel\";\n\nconst OrderRecapitulationView: ViewComponent<OrderRecapitulationViewModel> = observer(({ vm }) => {\n  const renderDateWithTimeZone = (date: Date) => {\n    if (!date) {\n      return vm.emptyState;\n    }\n    const formatted = vm.localizationService.formatDateTime(date);\n    return !vm.isDifferentTimeZone ? (\n      <span>{formatted}</span>\n    ) : (\n      <>\n        <span>{formatted}</span>\n        <Tooltip\n          id=\"cet-tooltip\"\n          placement={isMobile ? \"bottom\" : \"right\"}\n          tooltip={vm.localizationService.translateGeneral(\"timezoneTooltip\")}\n          trigger={[\"hover\", \"focus\"]}>\n          <span style={{ marginLeft: 4, textDecoration: \"underline\", textDecorationStyle: \"dotted\" }}>\n            {getTimeZoneLabel(date)}\n          </span>\n        </Tooltip>\n      </>\n    );\n  };\n\n  const EditIconSvg = () => (\n    <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n      <path\n        d=\"M17.4397 2.18294C17.5448 2.28838 17.6038 2.43119 17.6038 2.58007C17.6038 2.72895 17.5448 2.87175 17.4397 2.97719L16.2663 4.15169L14.0163 1.90169L15.1897 0.727192C15.2952 0.62174 15.4382 0.5625 15.5874 0.5625C15.7365 0.5625 15.8796 0.62174 15.985 0.727192L17.4397 2.18182V2.18294ZM15.4709 4.94594L13.2209 2.69594L5.5563 10.3617C5.49438 10.4236 5.44777 10.4991 5.42017 10.5822L4.51455 13.2979C4.49813 13.3475 4.49579 13.4006 4.50781 13.4513C4.51984 13.5021 4.54574 13.5485 4.58262 13.5854C4.61951 13.6223 4.66592 13.6482 4.71668 13.6602C4.76744 13.6722 4.82054 13.6699 4.87005 13.6534L7.5858 12.7478C7.66878 12.7205 7.74428 12.6743 7.8063 12.6128L15.4709 4.94594Z\"\n        fill=\"#51535D\"\n      />\n      <path\n        fillRule=\"evenodd\"\n        clipRule=\"evenodd\"\n        d=\"M1.125 15.1875C1.125 15.6351 1.30279 16.0643 1.61926 16.3807C1.93572 16.6972 2.36495 16.875 2.8125 16.875H15.1875C15.6351 16.875 16.0643 16.6972 16.3807 16.3807C16.6972 16.0643 16.875 15.6351 16.875 15.1875V8.4375C16.875 8.28832 16.8157 8.14524 16.7102 8.03975C16.6048 7.93426 16.4617 7.875 16.3125 7.875C16.1633 7.875 16.0202 7.93426 15.9148 8.03975C15.8093 8.14524 15.75 8.28832 15.75 8.4375V15.1875C15.75 15.3367 15.6907 15.4798 15.5852 15.5852C15.4798 15.6907 15.3367 15.75 15.1875 15.75H2.8125C2.66332 15.75 2.52024 15.6907 2.41475 15.5852C2.30926 15.4798 2.25 15.3367 2.25 15.1875V2.8125C2.25 2.66332 2.30926 2.52024 2.41475 2.41475C2.52024 2.30926 2.66332 2.25 2.8125 2.25H10.125C10.2742 2.25 10.4173 2.19074 10.5227 2.08525C10.6282 1.97976 10.6875 1.83668 10.6875 1.6875C10.6875 1.53832 10.6282 1.39524 10.5227 1.28975C10.4173 1.18426 10.2742 1.125 10.125 1.125H2.8125C2.36495 1.125 1.93572 1.30279 1.61926 1.61926C1.30279 1.93572 1.125 2.36495 1.125 2.8125V15.1875Z\"\n        fill=\"#51535D\"\n      />\n    </svg>\n  );\n\n  const EditableValue = ({ step, children }: { step: EditStep; children: React.ReactNode }) => (\n    <Row className=\"justify-content-end align-items-center\">\n      <div\n        className=\"d-flex align-items-center\"\n        onClick={isMobile ? () => vm.navigateToStep(step) : undefined}\n        style={isMobile ? { cursor: \"pointer\" } : undefined}\n        role={isMobile ? \"button\" : undefined}\n        aria-label={isMobile ? vm.translate(\"edit\") : undefined}>\n        <div className=\"font-weight-bold\">{children}</div>\n        <span\n          onClick={!isMobile ? () => vm.navigateToStep(step) : undefined}\n          style={!isMobile ? { cursor: \"pointer\", marginLeft: 8 } : { marginLeft: 8 }}\n          role={!isMobile ? \"button\" : undefined}\n          aria-label={!isMobile ? vm.translate(\"edit\") : undefined}>\n          <EditIconSvg />\n        </span>\n      </div>\n    </Row>\n  );\n\n  const StaticValue = ({ children }: { children: React.ReactNode }) => (\n    <Row className=\"justify-content-end\">\n      <div className=\"font-weight-bold\">{children}</div>\n    </Row>\n  );\n\n  const ValueDisplay = ({ step, children }: { step: EditStep; children: React.ReactNode }) => {\n    if (step === \"fuelType\" && !vm.canEditFuelType) {\n      return <StaticValue>{children}</StaticValue>;\n    }\n    return vm.isSmartRedirect ? <EditableValue step={step}>{children}</EditableValue> : <StaticValue>{children}</StaticValue>;\n  };\n\n  return (\n    <Card className=\"bg-transparent mb-6 border-0 text-break\">\n      <Row className=\"d-flex align-items-center justify-content-between px-3 px-md-0 mx-sm-1 mt-3\">\n        <Col xs=\"auto\">\n          <Row>\n            <div className=\"mb-0 text-wrap\">{vm.translate(\"vehicle\")}</div>\n          </Row>\n        </Col>\n        <Col xs=\"auto\" className=\"flex-grow-1 text-right\">\n          <ValueDisplay step=\"licensePlate\">{vm.vehicleSummaryInfo}</ValueDisplay>\n        </Col>\n      </Row>\n      <Row className=\"d-flex align-items-center justify-content-between px-3 px-md-0 mx-sm-1 mt-3\">\n        <Col xs=\"auto\">\n          <Row>\n            <div className=\"mb-0 text-wrap\">{vm.translate(\"markType\")}</div>\n          </Row>\n        </Col>\n        <Col xs=\"auto\" className=\"flex-grow-1 text-right\">\n          <ValueDisplay step=\"chargeType\">{vm.markSummaryInfo}</ValueDisplay>\n        </Col>\n      </Row>\n      <Row className=\"d-flex align-items-center justify-content-between px-3 px-md-0 mx-sm-1 mt-3\">\n        <Col xs=\"auto\">\n          <Row>\n            <div className=\"mb-0 text-wrap\">{vm.translate(\"fuelType\")}</div>\n          </Row>\n        </Col>\n        <Col xs=\"auto\" className=\"flex-grow-1 text-right\">\n          <ValueDisplay step=\"fuelType\">{vm.fuelTypeInfo}</ValueDisplay>\n        </Col>\n      </Row>\n      <Row className=\"d-flex align-items-center justify-content-between px-3 px-md-0 mx-sm-1 mt-3\">\n        <Col xs=\"auto\">\n          <Row>\n            <div className=\"mb-0 text-wrap\">{vm.translate(\"validSince\")}</div>\n          </Row>\n        </Col>\n        <Col xs=\"auto\" className=\"flex-grow-1 text-right\">\n          <ValueDisplay step=\"validitySince\">\n            {vm.validitySinceInfo ? renderDateWithTimeZone(new Date(vm.validitySinceInfo)) : vm.emptyState}\n          </ValueDisplay>\n        </Col>\n      </Row>\n      <Row className=\"d-flex align-items-center justify-content-between px-3 px-md-0 mx-sm-1 mt-3\">\n        <Col xs=\"auto\">\n          <Row>\n            <div className=\"mb-0 text-wrap\">{vm.translate(\"validUntil\")}</div>\n          </Row>\n        </Col>\n        <Col xs=\"auto\" className=\"flex-grow-1 text-right\">\n          <Row className=\"justify-content-end align-items-center\">\n            <div className=\"font-weight-bold\">\n              {vm.validityUntilInfo ? renderDateWithTimeZone(new Date(vm.validityUntilInfo)) : vm.emptyState}\n            </div>\n          </Row>\n        </Col>\n      </Row>\n      <Row className=\"d-flex align-items-center justify-content-between px-3 px-md-0 mx-sm-1 mt-3 pb-4\">\n        <Col xs=\"auto\">\n          <Row>\n            <div className=\"mb-0 text-wrap\">{vm.translate(\"email\")}</div>\n          </Row>\n        </Col>\n        <Col xs=\"auto\" className=\"flex-grow-1 text-right\">\n          <ValueDisplay step=\"contact\">{vm.emailInfo}</ValueDisplay>\n        </Col>\n      </Row>\n      <Row\n        className=\"d-flex align-items-center justify-content-between px-sm-2 px-md-0 py-4 mx-0\"\n        style={{ borderBottom: \"1px solid #E4E8EC\", borderTop: \"1px solid #E4E8EC\" }}>\n        <Col xs=\"auto\">\n          <Row>\n            <h4 className=\"mb-0 text-wrap\">{vm.translate(\"price\")}</h4>\n          </Row>\n        </Col>\n        <Col xs=\"auto\">\n          <Row>\n            <h4 className=\"mb-0 text-wrap\">{vm.priceSummaryInfo}</h4>\n          </Row>\n        </Col>\n      </Row>\n    </Card>\n  );\n});\n\nregisterView(OrderRecapitulationView, OrderRecapitulationViewModel);\n","import { registerView, View, ViewComponent } from \"@frui.ts/views\";\nimport { observer, Observer } from \"mobx-react-lite\";\nimport * as React from \"react\";\nimport PaymentViewModel from \"../../../../viewModels/eshop/order/components/paymentViewModel\";\n\nconst PaymentView: ViewComponent<PaymentViewModel> = observer(({ vm }) => {\n  return (\n    <fieldset>\n      {vm.children.map((children, index) => {\n        return <Observer key={index}>{() => <View vm={children} />}</Observer>;\n      })}\n    </fieldset>\n  );\n});\n\nregisterView(PaymentView, PaymentViewModel);\n","import { registerView, ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport * as React from \"react\";\nimport Icon, { IconType } from \"@edaz/edazkit/Icon\";\nimport { Col, Form } from \"react-bootstrap\";\nimport { DataTestIds } from \"../../../../data-test-constants\";\nimport ReactMarkdown from \"react-markdown\";\nimport TermsAgreementViewModel from \"../../../../viewModels/eshop/order/components/termAgreementViewModel\";\nimport { Check } from \"@frui.ts/bootstrap\";\nimport { useEffect } from \"react\";\n\nconst TermAgreementView: ViewComponent<TermsAgreementViewModel> = observer(({ vm }) => {\n  const isIPhoneChrome = () => {\n    const ua = navigator.userAgent;\n    return /iPhone/i.test(ua) && /CriOS/i.test(ua);\n  };\n\n  useEffect(() => {\n    if (!isIPhoneChrome()) return;\n\n    const handlePageShow = (event: PageTransitionEvent) => {\n      if (event.persisted) {\n        window.location.reload();\n      }\n    };\n\n    window.addEventListener(\"pageshow\", handlePageShow);\n\n    return () => {\n      window.removeEventListener(\"pageshow\", handlePageShow);\n    };\n  }, []);\n\n  return (\n    <>\n      <Form.Row className=\"mt-4\">\n        <Form.Group as={Col}>\n          <Check\n            autoComplete=\"off\"\n            checked={vm.chargeOrder._termsAgreement}\n            onChange={e => (vm.chargeOrder._termsAgreement = e.target.checked)}\n            data-testid={DataTestIds.TERMS_AND_CONDITIONS_CHECK}\n            custom\n            target={vm.chargeOrder}\n            threeState={true}\n            property=\"_termsAgreement\"\n            label={\n              <ReactMarkdown\n                className=\"markdown\"\n                linkTarget=\"_blank\"\n                components={{ a: ({ node, ...props }) => <a {...props} /> }}>\n                {vm.translateTermsAgreement}\n              </ReactMarkdown>\n            }\n          />\n        </Form.Group>\n      </Form.Row>\n      {vm.termAgreementError && (\n        <div className=\"d-flex justify-content-center bg-danger-light py-0 p-2 font-size-sm font-weight-bold text-danger\">\n          <Icon className=\"mr-2\" icon={IconType.InvertedError} height={18} width={18} />\n          <span>{vm.translateGeneral(\"alertTermsAgreement\")}</span>\n        </div>\n      )}\n    </>\n  );\n});\n\nregisterView(TermAgreementView, TermsAgreementViewModel);\n","import React, { Fragment } from \"react\";\n\nexport type StepperItem = {\n  number: number;\n  label: string;\n  onClick?: () => void;\n};\n\nexport type StepperProps = {\n  current: number;\n  statusSteps: StepperItem[];\n};\n\nconst Stepper = ({ current, statusSteps }: StepperProps) => (\n  <div id=\"stepper\" className=\"d-flex justify-content-between align-items-center mb-5\">\n    {statusSteps.map(({ number }) => (\n      <Fragment key={number}>\n        <div className={`status-step ${current < number ? \"inactive\" : \"\"}`}>\n          <span>{number}</span>\n        </div>\n        {number < statusSteps[statusSteps.length - 1].number && (\n          <div className={`status-line ${current - 1 < number ? \"inactive\" : \"\"}`} />\n        )}\n      </Fragment>\n    ))}\n  </div>\n);\n\nexport default Stepper;\n","import { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent, useRef } from \"react\";\nimport Modal from \"react-bootstrap/Modal\";\nimport styles from \"./googlePay3DSecureModal.module.scss\";\n\nconst GooglePay3DSecureModal: FunctionComponent<{ isVisible: boolean; url?: string }> = observer(({ isVisible, url }) => {\n  const rootRef = useRef<HTMLDivElement>(null);\n\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  const onHide = () => {};\n\n  // As allowpaymentrequest is not recognized, we need to use the spread operator instead.\n  const iframeProps = {\n    allowpaymentrequest: \"true\",\n  };\n\n  return (\n    <div ref={rootRef}>\n      <Modal dialogClassName={styles.dialogIframeWrapper} show={isVisible && url !== undefined} onHide={onHide} centered>\n        <Modal.Body className={styles.dialogIframe}>\n          <iframe allow=\"payment\" {...iframeProps} src={url}></iframe>\n        </Modal.Body>\n      </Modal>\n    </div>\n  );\n});\n\nexport default GooglePay3DSecureModal;\n","import { FunctionComponent } from \"react\";\r\nimport Icon, { IconType } from \"@edaz/edazkit/Icon\";\r\nimport { Button, Jumbotron } from \"react-bootstrap\";\r\nimport * as React from \"react\";\r\n\r\nexport interface PaymentErrorProps {\r\n  title: string;\r\n  description: string;\r\n  buttonText: string;\r\n  showLink: boolean;\r\n  onClick: () => void;\r\n}\r\n\r\nconst splitLink = (str: string): string[] => {\r\n  return str.split(\"edalnice.cz\");\r\n};\r\n\r\nconst description1 = (str: string, showLink: boolean): string => {\r\n  if (!showLink) {\r\n    return str;\r\n  }\r\n\r\n  return splitLink(str)[0];\r\n};\r\n\r\nconst description2 = (str: string, showLink: boolean): string => {\r\n  if (!showLink) {\r\n    return \" \";\r\n  }\r\n\r\n  return splitLink(str)[1] ?? \"\";\r\n};\r\n\r\nexport const PaymentError: FunctionComponent<PaymentErrorProps> = (props: PaymentErrorProps) => {\r\n  return (\r\n    <Jumbotron className=\"p-3 p-lg-2 p-xl-3 text-center\">\r\n      <div style={{ padding: \"2.4rem\" }}>\r\n        <Icon icon={IconType.CircleError} width={84} height={84} className=\"mb-3 text-danger\" />\r\n        <h5 style={{ paddingTop: \"10px\" }}>{props.title}</h5>\r\n        <div className=\"px-3 mb-4\" style={{ paddingBottom: \"20px\" }}>\r\n          {description1(props.description, props.showLink)}\r\n          {props.showLink && (\r\n            <>\r\n              <a href=\"https://edalnice.cz\">edalnice.cz</a>\r\n            </>\r\n          )}\r\n          {description2(props.description, props.showLink)}\r\n        </div>\r\n        <Button\r\n          type=\"submit\"\r\n          variant=\"danger\"\r\n          className=\"text-wrap d-block mx-auto mt-2 mb-2 mw-100\"\r\n          style={{ paddingLeft: \"50px\", paddingRight: \"50px\" }}\r\n          onClick={props.onClick}>\r\n          {props.buttonText.toUpperCase()}\r\n        </Button>\r\n      </div>\r\n    </Jumbotron>\r\n  );\r\n};\r\n","import { FunctionComponent } from \"react\";\r\nimport Icon, { IconType } from \"@edaz/edazkit/Icon\";\r\nimport { Button, Jumbotron } from \"react-bootstrap\";\r\nimport * as React from \"react\";\r\n\r\nexport interface SuccessAlertProps {\r\n  title: string;\r\n  description: string;\r\n  buttonText: string;\r\n  showLink: boolean;\r\n  onClick: () => void;\r\n}\r\n\r\nconst splitLink = (str: string): string[] => {\r\n  return str.split(\"edalnice.cz\");\r\n};\r\n\r\nconst description1 = (str: string, showLink: boolean): string => {\r\n  if (!showLink) {\r\n    return str;\r\n  }\r\n\r\n  return splitLink(str)[0];\r\n};\r\n\r\nconst description2 = (str: string, showLink: boolean): string => {\r\n  if (!showLink) {\r\n    return \" \";\r\n  }\r\n\r\n  return splitLink(str)[1] ?? \"\";\r\n};\r\n\r\nexport const SuccessAlert: FunctionComponent<SuccessAlertProps> = (props: SuccessAlertProps) => {\r\n  return (\r\n    <Jumbotron className=\"p-3 p-lg-2 p-xl-3 text-center\">\r\n      <div style={{ padding: \"2.4rem\" }}>\r\n        <Icon icon={IconType.CircleCheck} width={84} height={84} className=\"mb-3 text-success\" />\r\n        <h5 style={{ paddingTop: \"10px\" }}>{props.title}</h5>\r\n        <div className=\"mb-4 px-3\" style={{ paddingBottom: \"20px\" }}>\r\n          {description1(props.description, props.showLink)}\r\n          {props.showLink && (\r\n            <>\r\n              <a href=\"https://edalnice.cz\">edalnice.cz</a>\r\n            </>\r\n          )}\r\n          {description2(props.description, props.showLink)}\r\n        </div>\r\n        <Button\r\n          type=\"submit\"\r\n          variant=\"primary\"\r\n          className=\"d-block mx-auto mt-2 mb-2 mw-100 text-wrap\"\r\n          style={{ paddingLeft: \"50px\", paddingRight: \"50px\" }}\r\n          onClick={props.onClick}>\r\n          {props.buttonText.toUpperCase()}\r\n        </Button>\r\n      </div>\r\n    </Jumbotron>\r\n  );\r\n};\r\n","import { registerView, View, ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport OrderWizardViewModel from \"viewModels/eshop/order/orderWizardModel\";\nimport Stepper from \"./components/stepper\";\nimport Button from \"@edaz/edazkit/Button\";\nimport { useIdleTimer } from \"react-idle-timer\";\nimport { Col, Jumbotron, Row } from \"react-bootstrap\";\nimport { IconType } from \"@edaz/edazkit/Icon\";\nimport formatMillisecondsToTime from \"utils/formatMilisecondsToTime\";\nimport Tooltip from \"controls/tooltip\";\nimport IdleModal from \"views/common/idleModal/idleModal\";\nimport AlertWithInfoIcon from \"views/common/alertWithInfoIcon/alertWithInfoIcon\";\nimport LicenseViewModel from \"viewModels/eshop/order/steps/licenseViewModel\";\nimport LoadingModal from \"views/common/loadingModal/loadingModal\";\nimport GooglePay3DSecureModal from \"./components/googlePay3DSecureModal\";\nimport { PaymentError } from \"views/common/error/paymentError\";\nimport ErrorCard from \"views/common/error/errorCard\";\nimport { isMobile as reactIsMobile } from \"react-device-detect\";\nimport { SuccessAlert } from \"views/common/success/successAlert\";\nimport \"views/common/payment/paymentRetryView\";\n\nconst OrderView: ViewComponent<OrderWizardViewModel> = observer(({ vm }) => {\n  const tg = (navigationName: string) => vm.localizationService.translateGeneral(`eshop.order.${navigationName}`);\n  const idleModalTranslate = (code: string) => vm.localizationService.translateGeneral(`eshop.idle.${code}`);\n  const modalTranslate = (code: string) => vm.localizationService.translateGeneral(`eshop.card.${code}`);\n  const tpf = (code: string) => vm.localizationService.translateGeneral(`eshop.payment.status.failure.${code}`);\n  const error = (code: string) => vm.localizationService.translateGeneral(`errors.${code}`);\n  const { getRemainingTime } = useIdleTimer({\n    onIdle: vm.handleOnIdle,\n    timeout: vm.IDLE_TIMER_TIMEOUT,\n    debounce: vm.IDLE_TIMER_DEBOUNCE,\n    crossTab: true,\n    eventsThrottle: 200,\n    events: [\n      \"mousemove\",\n      \"keydown\",\n      \"wheel\",\n      \"DOMMouseScroll\",\n      \"mousewheel\",\n      \"mousedown\",\n      \"touchstart\",\n      \"touchmove\",\n      \"MSPointerDown\",\n      \"MSPointerMove\",\n    ],\n  });\n\n  const [timeLeft, setTimeLeft] = useState(vm.IDLE_TIMER_TIMEOUT + vm.IDLE_PROMPT_TIMEOUT);\n  const [countdown, setCountdown] = useState(10);\n\n  const isMobile = () => {\n    const userAgentIndicatesMobile = reactIsMobile;\n    const screenWidthIndicatesMobile = window.innerWidth < 768;\n\n    return userAgentIndicatesMobile || screenWidthIndicatesMobile;\n  };\n\n  useEffect(() => {\n    const interval = setInterval(() => {\n      const remaining = getRemainingTime();\n      const calculatedTimeLeft = Math.ceil(remaining / 1000) * 1000 + vm.IDLE_PROMPT_TIMEOUT;\n      setTimeLeft(calculatedTimeLeft);\n    }, 1000);\n\n    return () => clearInterval(interval);\n  }, []);\n\n  useEffect(() => {\n    if (vm.paymentIsComplete) {\n      setCountdown(10);\n\n      const intervalId = setInterval(() => {\n        setCountdown(prev => {\n          if (prev <= 1) {\n            clearInterval(intervalId);\n            return 0;\n          }\n          return prev - 1;\n        });\n      }, 1000);\n\n      const timeoutId = setTimeout(() => {\n        vm.closePaymentComplete();\n      }, 10000);\n\n      return () => {\n        clearInterval(intervalId);\n        clearTimeout(timeoutId);\n      };\n    }\n  }, [vm.paymentIsComplete]);\n\n  let timer;\n  if (vm.IDLE_TIMER_TIMEOUT + vm.IDLE_PROMPT_TIMEOUT - timeLeft >= vm.IDLE_TIMER_DELAY && getRemainingTime() > 0) {\n    timer = (\n      <div className=\"d-flex flex-grow-1 justify-content-end order-timer-wrapper\">\n        <Tooltip id=\"order-timer-tooltip\" placement=\"bottom-end\" tooltip={tg(\"timerTooltip\")} show={true}>\n          <div className=\"order-timer\">\n            <span>{formatMillisecondsToTime(timeLeft)}</span>\n          </div>\n        </Tooltip>\n      </div>\n    );\n  }\n  const cancelButton = (\n    <Button\n      type=\"button\"\n      variant=\"light-danger\"\n      size=\"sm\"\n      className=\"mt-3 mt-sm-0 pr-3 pl-3\"\n      onClick={vm.resetOrder}\n      iconLeftVariant=\"light-danger\"\n      iconLeft={IconType.Cross}>\n      {tg(\"cancel\")}\n    </Button>\n  );\n  const mobileCancelButton = (\n    <Button\n      type=\"button\"\n      variant=\"light-danger\"\n      size=\"sm\"\n      className=\"mt-3 mt-sm-0 pr-3 pl-3\"\n      onClick={vm.resetOrder}\n      iconLeftVariant=\"light-danger\"\n      iconLeft={IconType.Cross}>\n      {tg(\"cancel\")}\n    </Button>\n  );\n\n  return (\n    <>\n      <div className=\"mx-auto p-0 p-sm-3 col-lg-10 col-xxl-8\" id=\"singleEshop\">\n        <View vm={vm.payGateOutagesViewModel} />\n        <View vm={vm.eshopOutagesViewModel} />\n        {vm.showPaymentErrorMessage && (\n          <PaymentError\n            title={vm.paymentErrorTitle}\n            description={tpf(\"infoCount\")}\n            showLink={vm.showPaymentErrorLink}\n            buttonText={tpf(\"buttonText\")}\n            onClick={vm.closePaymentFailureModal}\n          />\n        )}\n        {vm.paymentIsComplete && (\n          <SuccessAlert\n            title={tg(\"successPaymentRedirectTitle\")}\n            description={tg(\"successPaymentRedirectMessage\")}\n            showLink={false}\n            buttonText={tpf(\"buttonText\")}\n            onClick={vm.closePaymentComplete}\n          />\n        )}\n        {!vm.showPaymentErrorMessage && !vm.paymentIsComplete && (\n          <Jumbotron className=\"p-lg-6 p-s-0 p-xl-6\">\n            <div className=\"p-lg-4 p-s-0 p-xl-4\">\n              <div className=\"d-flex flex-column flex-wrap justify-content-between px-lg-6\">\n                {vm.showInlineErrorMessage && vm.errorMessage && <ErrorCard message={error(vm.errorMessage)} sticky={true} />}\n                <Stepper current={vm.navigationStep ?? 1} statusSteps={vm.statusNavigation} />\n                {vm.activeChild instanceof LicenseViewModel && (\n                  <Row>\n                    <AlertWithInfoIcon variant=\"warning\" className=\"mx-3 mt-2 mb-4\">\n                      <span className=\"font-size-sm\">{vm.translateCountryWarning}</span>\n                    </AlertWithInfoIcon>\n                  </Row>\n                )}\n                <Row>\n                  {isMobile() && (\n                    <Col sm={6} xl={6} className=\"d-flex align-items-center justify-content-end\" style={{ order: 2 }}>\n                      {timer ? timer : mobileCancelButton}\n                    </Col>\n                  )}\n                  <Col sm={6} xl={6} className=\"d-flex align-items-center justify-content-start\" style={{ order: 1 }}>\n                    <h3 className=\"m-0\">\n                      {vm.activeChild && vm.activeChild.navigationName ? tg(`${vm.activeChild.navigationName}.title`) : \"\"}\n                    </h3>\n                  </Col>\n                  {!isMobile() && (\n                    <Col sm={6} xl={6} className=\"d-flex align-items-center justify-content-end\" style={{ order: 2 }}>\n                      {timer ? timer : cancelButton}\n                    </Col>\n                  )}\n                </Row>\n\n                <div className=\"mt-4 mt-lg-7 mt-xl-7\">\n                  <View vm={vm.activeChild} />\n                </div>\n              </div>\n            </div>\n          </Jumbotron>\n        )}\n\n        <LoadingModal translate={modalTranslate} isVisible={vm.showPaymentLoadingModal} />\n        <GooglePay3DSecureModal isVisible={vm.showGooglePay3DSecureModal} url={vm.googlePay3DSecureUrl} />\n      </div>\n      <IdleModal\n        translate={idleModalTranslate}\n        isVisible={vm.showIdleModal}\n        remainTime={vm.counter}\n        resetIdle={vm.closeIdleModal}\n      />\n    </>\n  );\n});\n\nregisterView(OrderView, OrderWizardViewModel);\n","import DatePickerBox from \"controls/datePickerBox/datePickerBox\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport React, { FunctionComponent } from \"react\";\r\nimport { Col, Form } from \"react-bootstrap\";\r\nimport { disabledDaysRange, maxValidSince, minValidSince } from \"utils/dateUtils\";\r\nimport ValiditySelectViewModel from \"viewModels/eshop/order/components/validitySelectViewModel\";\r\nimport { DataTestIds } from \"data-test-constants\";\r\nimport { isSafari9OrLess } from \"utils/iOS\";\r\nimport { startOfDay, subDays } from \"date-fns\";\r\nimport { dateToIsoDate } from \"../../../../utils/dateUtils\";\r\n\r\nconst ValiditySelect: FunctionComponent<{\r\n  vm: ValiditySelectViewModel;\r\n  showLabel?: boolean;\r\n}> = observer(({ vm, showLabel = true }) => {\r\n  const ta = (code: string) => {\r\n    return vm.localizationService.translateAttribute(\"orderItem\", code);\r\n  };\r\n\r\n  const errorLocalization = (code: string) => {\r\n    if ([\"min\", \"max\"].includes(code)) {\r\n      if (code === \"max\" && vm.postponedValidityRule?.postponedValidityMaxDays) {\r\n        return vm.localizationService\r\n          .translateAttribute(\"validSince\", code)\r\n          .replace(\"%amount%\", `${vm.postponedValidityRule.postponedValidityMaxDays}`);\r\n      }\r\n      return vm.localizationService.translateAttribute(\"validSince\", code).replace(\"%amount%\", `${30}`);\r\n    } else if (code === \"invalidDateFormat\") {\r\n      return vm.localizationService.translateGeneral(code);\r\n    } else {\r\n      return code;\r\n    }\r\n  };\r\n\r\n  const disabledDays = disabledDaysRange(vm.serverTime, vm.serverTime, vm.postponedValidityRule?.postponedValidityMaxDays);\r\n  let fromMonth = isSafari9OrLess ? disabledDays.before : minValidSince();\r\n  let toMonth = disabledDays.after\r\n    ? disabledDays.after\r\n    : maxValidSince(fromMonth, vm.postponedValidityRule?.postponedValidityMaxDays);\r\n  if (vm.chargeOrderChargeItem.validSince) {\r\n    if (vm.chargeOrderChargeItem.validSince < fromMonth) {\r\n      fromMonth = vm.chargeOrderChargeItem.validSince;\r\n    } else if (vm.chargeOrderChargeItem.validSince > toMonth) {\r\n      toMonth = vm.chargeOrderChargeItem.validSince;\r\n    }\r\n  }\r\n  const datePicker = (\r\n    <DatePickerBox\r\n      id={DataTestIds.VALID_SINCE_INPUT}\r\n      errorLocalization={errorLocalization}\r\n      target={vm.chargeOrderChargeItem}\r\n      disabledDays={disabledDays}\r\n      fromMonth={subDays(fromMonth, 1)}\r\n      today={startOfDay(vm.serverTime)}\r\n      toMonth={toMonth}\r\n      property=\"validSince\"\r\n      placeholder={vm.localizationService.translateGeneral(\"datepicker.placeholder\")}\r\n      datePickerLocalization={vm.localizationService.datePickerLocalization}\r\n      forSale={true}\r\n      autoComplete=\"off\"\r\n    />\r\n  );\r\n\r\n  return (\r\n    <Form.Group controlId={DataTestIds.VALID_SINCE_INPUT} as={Col} sm={12} xl={6}>\r\n      {showLabel && <Form.Label>{ta(\"validSince\")}</Form.Label>}\r\n      {datePicker}\r\n    </Form.Group>\r\n  );\r\n});\r\n\r\nexport default ValiditySelect;\r\n","import * as React from \"react\";\nimport Button from \"@edaz/edazkit/Button\";\nimport { IconType } from \"@edaz/edazkit/Icon\";\nimport { Col, Row } from \"react-bootstrap\";\n\ntype StepsNavigationButtonsProps = {\n  tg: (value: string) => string;\n  onBack?: () => void;\n  continueDisabled?: boolean;\n  onContinue: () => void;\n};\n\nexport const StepsNavigationButtons = ({ tg, onBack, continueDisabled, onContinue }: StepsNavigationButtonsProps) => {\n  return (\n    <Row className=\"justify-content-center pt-4 pt-lg-7 pt-xl-7\">\n      {onBack ? (\n        <>\n          {/* Back button visible only in mobile view */}\n          <Col lg={10} xl={4} className=\"p-2 w-auto d-md-none\">\n            <Button\n              type=\"button\"\n              variant=\"light\"\n              className=\"px-lg-4 btn-block w-auto w-lg-100\"\n              onClick={onBack}\n              iconLeft={IconType.ArrowLeft}></Button>\n          </Col>\n          {/* Back button visible only in tablet/desktop view */}\n          <Col md={5} xl={4} className=\"p-2 d-none d-md-block\">\n            <Button type=\"button\" variant=\"light\" className=\"px-lg-4 btn-block\" onClick={onBack} iconLeft={IconType.ArrowLeft}>\n              {tg(\"back\")}\n            </Button>\n          </Col>\n        </>\n      ) : undefined}\n      {/* Continue button */}\n      <Col md={5} xl={4} className=\"p-2 w-auto flex-grow-1\">\n        <Button\n          type=\"button\"\n          variant=\"primary\"\n          className=\"px-2 px-md-4 btn-block\"\n          onClick={onContinue}\n          disabled={continueDisabled}\n          iconRight={IconType.ArrowRight}>\n          {tg(\"continue\")}\n        </Button>\n      </Col>\n    </Row>\n  );\n};\n","import { registerView, View, ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { Form } from \"react-bootstrap\";\nimport ChargeTypeViewModel from \"viewModels/eshop/order/steps/chargeTypeViewModel\";\nimport ValiditySelect from \"../components/validitySelect\";\nimport AlertWithInfoIcon from \"views/common/alertWithInfoIcon/alertWithInfoIcon\";\nimport { DEFAULT_FORMAT, formatDate } from \"@edaz/edazkit/DatePicker\";\nimport { StepsNavigationButtons } from \"../components/stepsNavigationButtons\";\nimport Tooltip from \"controls/tooltip\";\nimport { getTimeZoneLabel } from \"utils/dateUtils\";\nimport { isMobile } from \"react-device-detect\";\n\nconst ChargeTypeView: ViewComponent<ChargeTypeViewModel> = observer(({ vm }) => {\n  const dateRegex = /%DATE%/g;\n  const tg = (value: string) => vm.localizationService.translateGeneral(`eshop.order.${value}`);\n  const translate = (value: string) => vm.localizationService.translateGeneral(`eshop.order.charge.${value}`);\n  const translateOrderItem = (value: string) => vm.localizationService.translateAttribute(\"orderItem\", value);\n  const translateOverlappingCharge = (validSince: Date, validUntil: Date, isDifferentTimeZone?: boolean) => {\n    const renderDateWithTimeZone = (date: Date) => {\n      const formatted = vm.localizationService.formatDateTime(date);\n      return !isDifferentTimeZone ? (\n        <span>{formatted}</span>\n      ) : (\n        <>\n          <span>{formatted}</span>\n          <Tooltip\n            id=\"cet-tooltip\"\n            placement={isMobile ? \"bottom\" : \"right\"}\n            tooltip={vm.localizationService.translateGeneral(\"timezoneTooltip\")}\n            trigger={[\"hover\", \"focus\"]}>\n            <span style={{ marginLeft: 4, textDecoration: \"underline\", textDecorationStyle: \"dotted\" }}>\n              {getTimeZoneLabel(date)}\n            </span>\n          </Tooltip>\n        </>\n      );\n    };\n\n    return (\n      <span>\n        {vm.localizationService.translateGeneral(\"eshop.order.charge.overlappingChargeStart\")}\n        {renderDateWithTimeZone(validSince)}\n        {vm.localizationService.translateGeneral(\"eshop.order.charge.overlappingChargeEnd\")}\n        {renderDateWithTimeZone(validUntil)}\n        {\".\"}\n      </span>\n    );\n  };\n\n  const formRef = useCallback(node => {\n    if (node !== null) {\n      vm.formElement = node;\n    }\n  }, []);\n\n  return (\n    <>\n      <div>\n        <Form ref={formRef}>\n          <View vm={vm.chargeSelectViewModel} />\n        </Form>\n        <Form.Row>\n          <ValiditySelect vm={vm.validSinceSelectViewModel} />\n        </Form.Row>\n        {vm.isSingleCharTypeToday && (\n          <AlertWithInfoIcon variant=\"warning-dark\">\n            <span>{translate(\"isSingleCharTypeToday\")}</span>\n          </AlertWithInfoIcon>\n        )}\n        {vm.showExemptionOverlap && (\n          <AlertWithInfoIcon variant=\"warning\">\n            <span>{translate(\"exemptionOverlap\")}</span>\n          </AlertWithInfoIcon>\n        )}\n        {vm.proposedValidityFlag && (\n          <AlertWithInfoIcon variant=\"warning-dark\">\n            <span>{translateOrderItem(\"systemChangedFieldAutomatically\")}</span>\n          </AlertWithInfoIcon>\n        )}\n        {vm.isDifferentTimeZone && (\n          <AlertWithInfoIcon variant=\"warning\">\n            <span>{translate(\"differentTimeZone\")}</span>\n          </AlertWithInfoIcon>\n        )}\n        {vm.showChargeOverlap && vm.overlappingCharges?.length && vm.overlappingCharges?.length > 0 && (\n          <AlertWithInfoIcon variant=\"warning\">\n            {vm.overlappingCharges.map((charge, index) => {\n              return (\n                <p key={index}>{translateOverlappingCharge(charge.validSince, charge.validUntil, vm.isDifferentTimeZone)}</p>\n              );\n            })}\n          </AlertWithInfoIcon>\n        )}\n      </div>\n      <StepsNavigationButtons\n        tg={tg}\n        continueDisabled={vm.checkingProposedValidity}\n        onBack={() => vm.onBack()}\n        onContinue={() => vm.onContinue()}\n      />\n    </>\n  );\n});\n\nregisterView(ChargeTypeView, ChargeTypeViewModel);\n","import { registerView, View, ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { Form } from \"react-bootstrap\";\nimport ContactViewModel from \"viewModels/eshop/order/steps/contactViewModel\";\nimport { StepsNavigationButtons } from \"../components/stepsNavigationButtons\";\n\nconst ContactView: ViewComponent<ContactViewModel> = observer(({ vm }) => {\n  const tg = (value: string) => vm.localizationService.translateGeneral(`eshop.order.${value}`);\n  const formRef = useCallback(node => {\n    if (node !== null) {\n      vm.formElement = node;\n    }\n  }, []);\n\n  return (\n    <>\n      <div>\n        <Form ref={formRef}>\n          <View vm={vm.contactViewModel} />\n          <View vm={vm.gdprInfoViewModel} />\n        </Form>\n      </div>\n      <StepsNavigationButtons tg={tg} onBack={() => vm.onBack()} onContinue={() => vm.onContinue()} />\n    </>\n  );\n});\n\nregisterView(ContactView, ContactViewModel);\n","import React from \"react\";\n\nexport interface TextWithLinkProps {\n  text?: string;\n  link?: { link: string; text: string };\n  inline?: boolean;\n}\n\nexport default function textWithLink(props: TextWithLinkProps) {\n  return (\n    <div>\n      {props.inline ? (\n        <>\n          <div>\n            <span>{props.text}</span>\n            <a\n              href={props.link?.link}\n              target=\"_blank\"\n              rel=\"noreferrer\"\n              onClick={e => {\n                e.preventDefault();\n                window.open(props.link?.link);\n              }}>\n              <strong>{props.link?.text}</strong>\n            </a>\n          </div>\n        </>\n      ) : (\n        <>\n          <div>\n            <span>{props.text}</span>\n          </div>\n          <div>\n            <a\n              href={props.link?.link}\n              target=\"_blank\"\n              rel=\"noreferrer\"\n              onClick={e => {\n                e.preventDefault();\n                window.open(props.link?.link);\n              }}>\n              <strong>{props.link?.text}</strong>\n            </a>\n          </div>\n        </>\n      )}\n    </div>\n  );\n}\n","import React from \"react\";\nimport { vehicleInfoIcon } from \"utils/fuelEcoIcon/fuelAssets\";\nimport ReactMarkdown from \"react-markdown\";\nimport replaceLinkHost from \"../../../../utils/replaceLinkHost\";\nimport { isMobile } from \"react-device-detect\";\n\nexport type ChargeTypeVehicleInfoProps = {\n  title?: string;\n  markdownText: string;\n};\n\nconst ChargeTypeVehicleInfo = ({ title, markdownText }: ChargeTypeVehicleInfoProps) => {\n  const mobileSection = (\n    <>\n      <div className=\"col col-auto d-flex align-items-center justify-content-between py-13 pr-sm-3\">\n        <img className=\"vehicle-info-fuel-box-icon\" src={vehicleInfoIcon} alt=\"\" />\n        {title && <h5 className=\"mb-2 text-center\">{title}</h5>}\n      </div>\n      <div className=\"col d-flex flex-column align-items-top\">\n        <ReactMarkdown linkTarget=\"_blank\" className=\"markdown\">\n          {replaceLinkHost(markdownText)}\n        </ReactMarkdown>\n      </div>\n    </>\n  );\n  const desktopSection = (\n    <>\n      <div className=\"col col-auto py-13 pr-0 pr-sm-3\">\n        <img className=\"vehicle-info-fuel-box-icon\" src={vehicleInfoIcon} alt=\"\" />\n      </div>\n      <div className=\"col d-flex flex-column align-items-top\">\n        {title && <h5 className=\"mb-2\">{title}</h5>}\n        <ReactMarkdown linkTarget=\"_blank\" className=\"markdown\">\n          {replaceLinkHost(markdownText)}\n        </ReactMarkdown>\n      </div>\n    </>\n  );\n\n  return (\n    <div className=\"vehicle-info-fuel-box d-flex align-items-top mt-6 px-sm-4 py-3 font-weight-normal flex-column flex-sm-row\">\n      {isMobile ? mobileSection : desktopSection}\n    </div>\n  );\n};\n\nexport default ChargeTypeVehicleInfo;\n","import { registerView, View, ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { Form } from \"react-bootstrap\";\nimport FuelTypeViewModel from \"viewModels/eshop/order/steps/fuelTypeViewModel\";\nimport AlertWithInfoIcon from \"views/common/alertWithInfoIcon/alertWithInfoIcon\";\nimport TextWithLink from \"views/common/textWithLink/textWithLink\";\nimport ChargeTypeVehicleInfo from \"../components/chargeTypeVehicleInfo\";\nimport { StepsNavigationButtons } from \"../components/stepsNavigationButtons\";\n\nconst FuelTypeView: ViewComponent<FuelTypeViewModel> = observer(({ vm }) => {\n  const tg = (value: string) => vm.localizationService.translateGeneral(`eshop.order.${value}`);\n  const formRef = useCallback(node => {\n    if (node !== null) {\n      vm.formElement = node;\n    }\n  }, []);\n\n  return (\n    <>\n      <div>\n        <Form ref={formRef}>\n          <View vm={vm.fuelTypeSelectViewModel} />\n        </Form>\n        {vm.fuelTypeLimitation && (\n          <AlertWithInfoIcon variant=\"warning\">\n            <div>\n              <TextWithLink\n                text={vm.translateFuelTypeLimitation(vm.fuelTypeLimitation).replace(\"%FUEL_TYPE%\", vm.fuelType)}\n                link={vm.translateFuelTypeLimitationLink(vm.fuelTypeLimitation)}\n              />\n            </div>\n          </AlertWithInfoIcon>\n        )}\n        {vm.showInfoAboutVehicles && (\n          <ChargeTypeVehicleInfo\n            title={vm.translateInfoAboutVehicle(\"title\")}\n            markdownText={vm.translateInfoAboutVehicle(\"text\")}\n          />\n        )}\n      </div>\n      <StepsNavigationButtons tg={tg} onBack={() => vm.onBack()} onContinue={() => vm.onContinue()} />\n    </>\n  );\n});\n\nregisterView(FuelTypeView, FuelTypeViewModel);\n","import React from \"react\";\nimport styles from \"./electricVehicleExemptionAlert.module.scss\";\nimport { electricCarImage } from \"./electricCarAsset\";\n\nexport interface ElectricVehicleExemptionAlertProps {\n  title: string;\n  description: string;\n  highlightText: string;\n}\n\nexport default function ElectricVehicleExemptionAlert(props: ElectricVehicleExemptionAlertProps) {\n  const { title, description, highlightText } = props;\n\n  const renderDescription = () => {\n    if (!highlightText) {\n      return description;\n    }\n\n    const parts = description.split(highlightText);\n    if (parts.length === 1) {\n      return description;\n    }\n\n    return (\n      <>\n        {parts[0]}\n        <span className={styles.highlight}>{highlightText}</span>\n        {parts[1]}\n      </>\n    );\n  };\n\n  return (\n    <div className={styles.exemptionBox}>\n      <div className={styles.content}>\n        <h3 className={styles.title}>{title}</h3>\n        <p className={styles.description}>{renderDescription()}</p>\n      </div>\n      <img src={electricCarImage} alt=\"\" className={styles.carImage} />\n    </div>\n  );\n}\n","export const electricCarImage =\n  \"data:image/png;base64,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\";\n","import { registerView, View, ViewComponent } from \"@frui.ts/views\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport React from \"react\";\r\nimport { useCallback } from \"react\";\r\nimport { Col, Form, Row } from \"react-bootstrap\";\r\nimport LicenseViewModel from \"viewModels/eshop/order/steps/licenseViewModel\";\r\nimport LoadingPane from \"controls/loadingPane\";\r\nimport AlertWithInfoIcon from \"views/common/alertWithInfoIcon/alertWithInfoIcon\";\r\nimport ElectricVehicleExemptionAlert from \"views/common/electricVehicleExemptionAlert/electricVehicleExemptionAlert\";\r\nimport { StepsNavigationButtons } from \"../components/stepsNavigationButtons\";\r\n\r\nconst LicenseView: ViewComponent<LicenseViewModel> = observer(({ vm }) => {\r\n  const tg = (value: string) => vm.localizationService.translateGeneral(`eshop.order.${value}`);\r\n  const translate = (value: string) => vm.localizationService.translateGeneral(`eshop.order.license.${value}`);\r\n  localStorage.removeItem(\"orderReloaded\");\r\n  const formRef = useCallback(node => {\r\n    if (node !== null) {\r\n      vm.formElement = node;\r\n    }\r\n  }, []);\r\n\r\n  return (\r\n    <>\r\n      <div>\r\n        <Form ref={formRef}>\r\n          <View vm={vm.vehicleInfoViewModel} />\r\n        </Form>\r\n        {vm.hasElectricVehicleExemption && (\r\n          <ElectricVehicleExemptionAlert\r\n            title={vm.electricVehicleExemptionTitle}\r\n            description={vm.electricVehicleExemptionDescription}\r\n            highlightText={translate(\"electricVehicleExemption.highlight\")}\r\n          />\r\n        )}\r\n        {vm.exemptionReasonWarnings?.map((reason, index) => {\r\n          return (\r\n            <AlertWithInfoIcon key={index} variant=\"warning\">\r\n              <span>{vm.translateExemptionReasonWarnings(reason)}</span>\r\n            </AlertWithInfoIcon>\r\n          );\r\n        })}\r\n      </div>\r\n      {!vm.loading ? (\r\n        <StepsNavigationButtons tg={tg} onContinue={() => vm.onContinue()} />\r\n      ) : (\r\n        <Row className=\"d-flex align-items-center justify-content-center pt-4 pt-lg-4 pt-xl-4\">\r\n          <Col sm={1} lg=\"auto\" className=\"p-2\">\r\n            <LoadingPane />\r\n          </Col>\r\n          <Col sm={4} lg=\"auto\" className=\"p-2\">\r\n            <div className=\"d-flex align-items-center justify-content-center\">{translate(\"chargeInstructions\")}</div>\r\n          </Col>\r\n        </Row>\r\n      )}\r\n    </>\r\n  );\r\n});\r\n\r\nregisterView(LicenseView, LicenseViewModel);\r\n","import Button from \"@edaz/edazkit/Button\";\nimport { IconType } from \"@edaz/edazkit/Icon\";\nimport { registerView, View, ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport * as React from \"react\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { Col, Form, Row } from \"react-bootstrap\";\nimport RecapViewModel from \"viewModels/eshop/order/steps/recapViewModel\";\nimport { EDAZGooglePayButton } from \"../components/googlePayButton\";\nimport styles from \"../components/toolboxView.module.scss\";\nimport { ChargeOrderStatus } from \"models/chargeOrder\";\nimport LicenseViewModel from \"viewModels/eshop/order/steps/licenseViewModel\";\n\nconst RecapView: ViewComponent<RecapViewModel> = observer(({ vm }) => {\n  const tg = (value: string) => vm.localizationService.translateGeneral(`eshop.order.${value}`);\n  const iframeProps = {\n    allowpaymentrequest: \"true\",\n  };\n\n  const formRef = useCallback(node => {\n    if (node !== null) {\n      vm.formElement = node;\n    }\n  }, []);\n\n  useEffect(() => {\n    const handlePageShow = async () => {\n      const reloaded = localStorage.getItem(\"orderReloaded\");\n      const lastChargeOrder = vm.storage.getLastChargeOrder();\n      if (reloaded === \"true\") return;\n      if (vm.chargeOrderService.chargeOrder.id && vm.chargeOrderService.chargeOrder._status !== ChargeOrderStatus.Open) {\n        await vm.getOrderStatus(vm.chargeOrderService.chargeOrder.id);\n      }\n\n      if (vm.isOrderComplete) {\n        vm.onOrderIsCompleteCheck(vm.chargeOrderService.chargeOrder.id);\n      }\n      if (lastChargeOrder && !lastChargeOrder.charges[0].licensePlate) {\n        vm.chargeOrderService.reset();\n        vm.router.navigate(LicenseViewModel);\n      }\n    };\n\n    window.addEventListener(\"pageshow\", handlePageShow);\n    window.addEventListener(\"popstate\", handlePageShow);\n    window.addEventListener(\"beforeunload\", handlePageShow);\n\n    return () => {\n      handlePageShow();\n      window.removeEventListener(\"pageshow\", handlePageShow);\n    };\n  }, []);\n\n  return (\n    <>\n      <div>\n        <Form ref={formRef}>\n          <div className=\"pb-7\">\n            <View vm={vm.paymentViewModel} />\n          </div>\n          <div className=\"d-flex flex-row flex-wrap justify-content-between align-items-center\">\n            <h3>{vm.translate(\"titleSecond\")}</h3>\n          </div>\n          <View vm={vm.orderRecapitulationViewModel} />\n          {vm.shouldShowNotificationPreferences && <View vm={vm.notificationPreferencesRecapViewModel} />}\n          <View vm={vm.termsAgreementViewModel} />\n          <View vm={vm.gdprInfoViewModel} />\n        </Form>\n      </div>\n      {vm.isTransferPayment && vm.isChecked && <View vm={vm.turnstileViewModel} />}\n\n      <Row className=\"justify-content-center pt-4\">\n        {/* Back button visible only in mobile view */}\n        <Col lg={10} xl={4} className=\"p-2 w-auto d-md-none\">\n          <Button\n            type=\"button\"\n            variant=\"light\"\n            className=\"btn-block px-lg-4 w-auto w-lg-100\"\n            onClick={vm.onBack}\n            iconLeft={IconType.ArrowLeft}></Button>\n        </Col>\n        {/* Back button visible only in tablet/desktop view */}\n        <Col md={5} xl={4} className=\"d-md-block p-2 d-none\">\n          <Button type=\"button\" variant=\"light\" className=\"btn-block px-lg-4\" onClick={vm.onBack} iconLeft={IconType.ArrowLeft}>\n            {tg(\"back\")}\n          </Button>\n        </Col>\n\n        <Col md={5} xl={4} className=\"flex-grow-1 p-2 w-auto\">\n          {vm.isGooglePayPaymentMethodSelected && !!vm.isDisabled && !vm.isRequestBlocked ? (\n            <>\n              <div className=\"d-block mx-auto mt-1 mb-2 mb-lg-0 text-center mw-100\">\n                <EDAZGooglePayButton\n                  totalPrice={vm.orderRecapitulationViewModel.price}\n                  locale={vm.locale}\n                  googlePayMetadata={vm.googlePayMetadata!}\n                  loading={!vm.isGooglePayMetadataReady}\n                  createOrder={vm.payOrder}\n                  validateOrder={vm.validateOrder}\n                  errorMessage={vm.localizationService.translateGeneral(\"errors.generic\")}\n                />\n              </div>\n              {vm.googlePayPaymentFingerprint && (\n                <iframe\n                  {...iframeProps}\n                  className={styles.fingerprintIframe}\n                  onLoad={vm.onGooglePayPaymentFingerprintLoaded}\n                  src={vm.googlePayPaymentFingerprint}></iframe>\n              )}\n            </>\n          ) : (\n            <Button\n              type=\"button\"\n              variant=\"primary\"\n              className=\"btn-block px-4\"\n              onClick={() => vm.onContinue()}\n              disabled={\n                vm.isRequestBlocked ||\n                ((!vm.turnstileViewModel.turnstileToken || vm.turnstileViewModel.isDisabledByTurnsitel) &&\n                  vm.isTransferPayment &&\n                  vm.isChecked)\n              }\n              iconRight={IconType.ArrowRight}>\n              {tg(vm.buttonTextKey)}\n            </Button>\n          )}\n        </Col>\n      </Row>\n    </>\n  );\n});\n\nregisterView(RecapView, RecapViewModel);\n","import React, { Fragment, SyntheticEvent } from \"react\";\n\nexport type StatusItem = {\n  number: number;\n  label: string;\n  onClick?: () => void;\n};\n\nexport type StatusProps = {\n  current: number;\n  statusSteps: StatusItem[];\n  translate: (code: string) => string;\n};\n\nfunction cancel(call?: () => void) {\n  return (e: SyntheticEvent) => {\n    e.stopPropagation();\n    e.preventDefault();\n    call?.();\n  };\n}\n\nconst Status = ({ current, statusSteps, translate }: StatusProps) => (\n  <div id=\"stepper\" className=\"d-flex justify-content-between align-items-center mb-7\">\n    {statusSteps.map(({ number, label, onClick }) => (\n      <Fragment key={number}>\n        <div\n          onClick={current > number ? cancel(onClick) : undefined}\n          className={`status-step ${current < number ? \"inactive\" : \"\"}`}>\n          <span>{number}</span>\n          <div className={`d-none d-lg-block ${current === number ? \"current\" : current > number ? \"past\" : \"\"}`} />\n        </div>\n        {number < statusSteps[statusSteps.length - 1].number && (\n          <div className={`status-line ${current - 1 < number ? \"inactive\" : \"\"}`} />\n        )}\n      </Fragment>\n    ))}\n  </div>\n);\n\nexport default Status;\n","import BatchOrderItemViewModel from \"../../viewModels/multiEshop/batchOrderItemViewModel\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Col, Form, Jumbotron, Row } from \"react-bootstrap\";\r\nimport Button from \"@edaz/edazkit/Button/index\";\r\nimport { IconType } from \"@edaz/edazkit/Icon\";\r\nimport TaggedInput from \"@edaz/edazkit/TaggedInput\";\r\nimport React from \"react\";\r\nimport CountryIdInput from \"../common/countryIdInput/countryIdInput\";\r\nimport { isLicensePlate } from \"@edaz/services/validators/isLicensePlate\";\r\nimport range from \"@edaz/services/validators/range\";\r\nimport { View } from \"@frui.ts/views\";\r\nimport ValiditySelect from \"../eshop/order/components/validitySelect\";\r\nimport ChargeOrderItem from \"models/chargeOrderItem\";\r\nimport ChargeTypeVehicleInfo from \"views/eshop/order/components/chargeTypeVehicleInfo\";\r\nimport Status from \"./components/status\";\r\nimport AlertWithInfoIcon from \"views/common/alertWithInfoIcon/alertWithInfoIcon\";\r\n\r\ntype BatchOrderItemViewProps = {\r\n  vm: BatchOrderItemViewModel;\r\n  removeOrderItem: (chargeOrderItem: ChargeOrderItem) => void;\r\n  addOrderItem?: () => void;\r\n  index: number;\r\n  lengthChildren: number;\r\n};\r\n\r\nexport const BatchOrderItemView = observer(\r\n  ({ vm, removeOrderItem, addOrderItem, index, lengthChildren }: BatchOrderItemViewProps) => {\r\n    const tg = (code: string) => vm.localizationService.translateGeneral(`multiEshop.${code}`);\r\n    const tPage = (code: string) => vm.localizationService.translateGeneral(`multiEshop.batchPage.${code}`);\r\n    const ta = (code: string) => vm.localizationService.translateAttribute(\"orderItem\", code);\r\n    vm.fuelTypeSelectViewModel.batchIndex = index;\r\n    vm.chargeTypeSelectViewModel.batchIndex = index;\r\n    localStorage.removeItem(\"orderReloaded\");\r\n\r\n    return (\r\n      <>\r\n        <Jumbotron className=\"p-s-0 px-lg-10 py-lg-7 multi-eshop\">\r\n          {index < 1 && <Status current={1} statusSteps={vm.statusNavigation} translate={tg} />}\r\n          <Row className=\"mb-4\">\r\n            {index < 1 && (\r\n              <AlertWithInfoIcon variant=\"warning\" className=\"mt-2 mb-7\">\r\n                <strong className=\"font-size-sm\">{ta(\"countryWarning\")}</strong>\r\n              </AlertWithInfoIcon>\r\n            )}\r\n            <Col sm={6} xl={6} className=\"d-flex align-items-center justify-content-start mb-3\">\r\n              <h3 className=\"mb-0\">{index < 1 ? tg(\"title\") : `${index + 1}. ${tg(\"batch\")}`}</h3>\r\n            </Col>\r\n            <Col sm={6} xl={6} className=\"d-flex align-items-center justify-content-end mb-3\">\r\n              {index >= 1 && (\r\n                <div>\r\n                  {vm.chargeOrderItem._visible && (\r\n                    <Button\r\n                      type=\"button\"\r\n                      variant=\"light-danger\"\r\n                      size=\"sm\"\r\n                      style={{ textTransform: \"none\" }}\r\n                      onClick={() => removeOrderItem(vm.chargeOrderItem)}\r\n                      iconLeftVariant=\"light-danger\"\r\n                      iconLeft={IconType.Cross}>\r\n                      {tg(\"removeBatch\")}\r\n                    </Button>\r\n                  )}\r\n                </div>\r\n              )}\r\n              {index < 1 && (\r\n                <Button\r\n                  type=\"button\"\r\n                  variant=\"light-danger\"\r\n                  size=\"sm\"\r\n                  style={{ textTransform: \"none\" }}\r\n                  onClick={vm.resetChargeOrder}\r\n                  iconLeftVariant=\"light-danger\"\r\n                  iconLeft={IconType.Cross}>\r\n                  {tg(\"cancel\")}\r\n                </Button>\r\n              )}\r\n            </Col>\r\n          </Row>\r\n          {vm.chargeOrderItem._visible && (\r\n            <>\r\n              <Form.Row className=\"mt-7\">\r\n                <CountryIdInput vm={vm.vehicleInfoViewModel} translateKey=\"multiEshop\" />\r\n              </Form.Row>\r\n              <Form.Row>\r\n                <Form.Group as={Col} sm={12}>\r\n                  <Form.Label>{`${ta(\"licensePlate\")} ${\r\n                    vm.renderNumberOfLicensePlates ? `(${vm.renderNumberOfLicensePlates})` : \"\"\r\n                  }`}</Form.Label>\r\n                  <TaggedInput\r\n                    target={vm.chargeOrderItem}\r\n                    property={\"licensePlates\"}\r\n                    onBlur={vm.licensePlatesFieldVisited}\r\n                    onItemAdded={vm.addItem}\r\n                    onItemRemoved={vm.removeItem}\r\n                    errorMessage={vm.licensePlatesErrorMessage}\r\n                    items={vm.licensePlates.map(licensePlate => ({\r\n                      label: licensePlate,\r\n                      valid:\r\n                        isLicensePlate(licensePlate).isValid &&\r\n                        range(licensePlate, { min: 1, max: 10 }).isValid &&\r\n                        !vm.licensePlateHasOverlay(licensePlate),\r\n                    }))}\r\n                  />\r\n                  <Form.Label className=\"mt-2 font-weight-normal text-muted\">{tg(\"licensePlatesInputInfo\")}</Form.Label>\r\n                </Form.Group>\r\n              </Form.Row>\r\n              <div className=\"mb-7\">\r\n                <h4 className=\"mt-3 mb-2\">{tg(\"batchPage.fuelTypeTitle\")}</h4>\r\n                <View vm={vm.fuelTypeSelectViewModel} />\r\n                {vm.showInfoAboutVehicles && <ChargeTypeVehicleInfo markdownText={vm.translateInfoAboutVehicle(\"text\")} />}\r\n              </div>\r\n              <div>\r\n                <h4 className=\"mb-5\">{tg(\"batchPage.chargeTypeTitle\")}</h4>\r\n                <Form.Row>\r\n                  <ValiditySelect vm={vm.validitySelectViewModel} />\r\n                </Form.Row>\r\n              </div>\r\n              {vm.isDifferentTimeZone && (\r\n                <AlertWithInfoIcon variant=\"warning\">\r\n                  <span>{vm.translate(\"differentTimeZone\")}</span>\r\n                </AlertWithInfoIcon>\r\n              )}\r\n              <div>\r\n                <View vm={vm.chargeTypeSelectViewModel} />\r\n              </div>\r\n              {vm.isSingleCharTypeToday && (\r\n                <AlertWithInfoIcon variant=\"warning-dark\">\r\n                  <span>{vm.translate(\"isSingleCharTypeToday\")}</span>\r\n                </AlertWithInfoIcon>\r\n              )}\r\n            </>\r\n          )}\r\n        </Jumbotron>\r\n        {(lengthChildren === index || index === -1) && (\r\n          <Jumbotron className=\"p-4 px-lg-10 py-lg-7 multi-eshop\">\r\n            <Form.Row className=\"d-flex flex-row flex-wrap align-items-center justify-content-between\">\r\n              {vm.canAddOrderItem && (\r\n                <>\r\n                  <h3 className=\"mb-0 pt-0 pr-3 pb-3 pl-0\">{tPage(\"newBatch\")}</h3>\r\n                  <Button\r\n                    size=\"sm\"\r\n                    iconLeft={IconType.SignPlus}\r\n                    type=\"button\"\r\n                    className=\"flex-grow-1 flex-shrink-1 flex-md-grow-0 flex-md-shrink-0\"\r\n                    variant=\"success\"\r\n                    style={{ textTransform: \"none\" }}\r\n                    onClick={addOrderItem}>\r\n                    {tg(\"addBatch\")}\r\n                  </Button>\r\n                </>\r\n              )}\r\n            </Form.Row>\r\n          </Jumbotron>\r\n        )}\r\n      </>\r\n    );\r\n  }\r\n);\r\n","import { registerView, View, ViewComponent } from \"@frui.ts/views\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport React, { useCallback } from \"react\";\r\nimport { Col, Form, Row } from \"react-bootstrap\";\r\nimport BatchOrderViewModel from \"../../viewModels/multiEshop/batchOrderViewModel\";\r\nimport { BatchOrderItemView } from \"./batchOrderItemView\";\r\nimport ErrorCard from \"../common/error/errorCard\";\r\nimport { PaymentError } from \"../common/error/paymentError\";\r\n\r\nconst batchOrderView: ViewComponent<BatchOrderViewModel> = observer(({ vm }) => {\r\n  const error = (code: string) => vm.localizationService.translateGeneral(`errors.${code}`);\r\n  const tpf = (code: string) => vm.localizationService.translateGeneral(`eshop.payment.status.failure.${code}`);\r\n\r\n  const formRef = useCallback(node => {\r\n    if (node !== null) {\r\n      vm.formElement = node;\r\n    }\r\n  }, []);\r\n\r\n  if (vm.showPaymentErrorMessage) {\r\n    return (\r\n      <PaymentError\r\n        title={vm.paymentErrorTitle}\r\n        description={vm.paymentErrorDescription}\r\n        showLink={vm.showPaymentErrorLink}\r\n        buttonText={tpf(\"buttonText\")}\r\n        onClick={vm.closePaymentError}\r\n      />\r\n    );\r\n  }\r\n\r\n  return (\r\n    <Form ref={formRef}>\r\n      {vm.errorMessage && <ErrorCard message={error(vm.errorMessage)} sticky={true} />}\r\n      <Row>\r\n        <Col sm={12} lg={8}>\r\n          {vm.children.map((itemVM, index) => (\r\n            <BatchOrderItemView\r\n              key={index}\r\n              vm={itemVM}\r\n              addOrderItem={vm.addOrderItem}\r\n              removeOrderItem={vm.removeOrderItem}\r\n              index={vm.children.length > 1 ? index : -1}\r\n              lengthChildren={vm.children.length - 1}\r\n            />\r\n          ))}\r\n        </Col>\r\n        <Col sm={12} lg={4}>\r\n          <View vm={vm.summaryViewModel} />\r\n        </Col>\r\n      </Row>\r\n    </Form>\r\n  );\r\n});\r\n\r\nregisterView(batchOrderView, BatchOrderViewModel);\r\n","import React, { useCallback } from \"react\";\r\nimport { registerView, View, ViewComponent } from \"@frui.ts/views\";\r\nimport { observer, Observer } from \"mobx-react-lite\";\r\nimport { Col, Form, Jumbotron, Row } from \"react-bootstrap\";\r\nimport ContactMultiEshopViewModel from \"../../viewModels/multiEshop/contactMultiEshopViewModel\";\r\nimport ErrorCard from \"../common/error/errorCard\";\r\nimport Status from \"./components/status\";\r\nimport Button from \"@edaz/edazkit/Button\";\r\nimport { IconType } from \"@edaz/edazkit/Icon\";\r\n\r\nconst contactMultiEshopView: ViewComponent<ContactMultiEshopViewModel> = observer(({ vm }) => {\r\n  const error = (code: string) => vm.localizationService.translateGeneral(`errors.${code}`);\r\n  const formRef = useCallback(node => {\r\n    if (node !== null) {\r\n      vm.formElement = node;\r\n    }\r\n  }, []);\r\n\r\n  return (\r\n    <Form ref={formRef}>\r\n      <Row id=\"multiEshop\">\r\n        <Col sm={12} lg={8}>\r\n          <Jumbotron className=\"px-lg-10 py-lg-7 p-s-0 multi-eshop\">\r\n            <Status current={3} statusSteps={vm.statusNavigation} translate={vm.translate} />\r\n            {vm.errorMessage && <ErrorCard message={error(vm.errorMessage)} sticky={true} />}\r\n            <fieldset>\r\n              <Row className=\"mb-4\">\r\n                <Col sm={6} xl={6} className=\"d-flex justify-content-start align-items-center mb-3\">\r\n                  <h3 className=\"mb-0\">{vm.translate(\"contact\")}</h3>\r\n                </Col>\r\n                <Col sm={6} xl={6} className=\"d-flex justify-content-end align-items-center mb-3\">\r\n                  <Button\r\n                    type=\"button\"\r\n                    variant=\"light-danger\"\r\n                    size=\"sm\"\r\n                    style={{ textTransform: \"none\" }}\r\n                    onClick={vm.resetChargeOrder}\r\n                    iconLeftVariant=\"light-danger\"\r\n                    iconLeft={IconType.Cross}>\r\n                    {vm.translate(\"cancel\")}\r\n                  </Button>\r\n                </Col>\r\n              </Row>\r\n              <Observer>{() => <View vm={vm.contactViewModel} />}</Observer>\r\n              <Observer>{() => <View vm={vm.gdprInfoViewModel} />}</Observer>\r\n            </fieldset>\r\n          </Jumbotron>\r\n        </Col>\r\n        <Col sm={12} lg={4}>\r\n          <Observer>{() => <View vm={vm.summaryViewModel} />}</Observer>\r\n        </Col>\r\n      </Row>\r\n    </Form>\r\n  );\r\n});\r\n\r\nregisterView(contactMultiEshopView, ContactMultiEshopViewModel);\r\n","import React from \"react\";\nimport { View, ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport MultiEshopViewModel from \"../../viewModels/multiEshop/multiEshopViewModel\";\nimport { registerView } from \"@frui.ts/views/dist\";\n\nconst multiEshopView: ViewComponent<MultiEshopViewModel> = observer(({ vm }) => (\n  <>\n    {vm.showOutages && (\n      <>\n        <View vm={vm.payGateOutagesViewModel} />\n        <View vm={vm.eshopOutagesVieModel} />\n      </>\n    )}\n    <View vm={vm.activeChild} />\n  </>\n));\n\nregisterView(multiEshopView, MultiEshopViewModel);\n","import { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport { Alert, Button, Col, Row } from \"react-bootstrap\";\nimport OrderRecapViewModel from \"../../../viewModels/multiEshop/orderRecapViewModel\";\n\nconst RecommendationAlert: FunctionComponent<{\n  vm: OrderRecapViewModel;\n  descriptionLocalizationCode?: string;\n  removeButtonLabelLocalizationCode?: string;\n  closeButtonLabelLocalizationCode?: string;\n  removeAction?: () => Promise<void> | void;\n  disabled: boolean;\n  closeAction?: () => void;\n  children?: React.ReactNode;\n}> = observer(\n  ({\n    vm,\n    descriptionLocalizationCode,\n    removeButtonLabelLocalizationCode,\n    closeButtonLabelLocalizationCode,\n    removeAction,\n    disabled,\n    closeAction,\n    children,\n  }) => (\n    <Alert variant=\"warning\" className=\"p-4\">\n      <Row className=\"mt-0\">\n        <Col className=\"mt-0\">\n          <span className=\"text-dark font-weight-bold\">\n            {descriptionLocalizationCode ? vm.translate(descriptionLocalizationCode) : \"\"}\n          </span>\n        </Col>\n      </Row>\n      {children}\n      {(removeAction || closeAction) && (\n        <Row className=\"w-60 mt-4\">\n          <Col>\n            {removeAction && removeButtonLabelLocalizationCode && (\n              <Button\n                disabled={disabled}\n                variant=\"primary\"\n                size=\"sm\"\n                onClick={removeAction}\n                className=\"mr-3 mb-3\"\n                style={{ textTransform: \"none\" }}>\n                {vm.translate(removeButtonLabelLocalizationCode)}\n              </Button>\n            )}\n            {closeAction && closeButtonLabelLocalizationCode && (\n              <Button variant=\"light\" size=\"sm\" className=\"mb-3\" onClick={closeAction} style={{ textTransform: \"none\" }}>\n                {vm.translate(closeButtonLabelLocalizationCode)}\n              </Button>\n            )}\n          </Col>\n        </Row>\n      )}\n    </Alert>\n  )\n);\n\nexport default RecommendationAlert;\n","import { registerView, View, ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport React, { useRef, useEffect } from \"react\";\nimport { Col, Form, Jumbotron, Row } from \"react-bootstrap\";\nimport OrderRecapViewModel from \"../../viewModels/multiEshop/orderRecapViewModel\";\nimport RecommendationAlert from \"./components/recommendationAlert\";\nimport { Tag } from \"@edaz/edazkit/TaggedInput\";\nimport { Check } from \"@frui.ts/bootstrap\";\nimport Status from \"./components/status\";\nimport Button from \"@edaz/edazkit/Button\";\nimport { IconType } from \"@edaz/edazkit/Icon\";\nimport LoadingPane from \"controls/loadingPane\";\nimport ChargeOverlapType from \"entities/chargeOverlapType\";\nimport TextWithLink from \"views/common/textWithLink/textWithLink\";\nimport { getTimeZoneLabel } from \"utils/dateUtils\";\nimport Tooltip from \"controls/tooltip\";\nimport { isMobile } from \"react-device-detect\";\n\nconst orderRecapView: ViewComponent<OrderRecapViewModel> = observer(({ vm }) => {\n  const rootRef = useRef<HTMLDivElement>(null);\n\n  const renderDateWithTimeZone = (date: Date) => {\n    const formatted = vm.localizationService.formatDateTime(date);\n    return !vm.isDifferentTimeZone ? (\n      <span>{formatted}</span>\n    ) : (\n      <>\n        <span>{formatted}</span>\n        <Tooltip\n          id=\"cet-tooltip\"\n          placement={isMobile ? \"bottom\" : \"right\"}\n          tooltip={vm.localizationService.translateGeneral(\"timezoneTooltip\")}\n          trigger={[\"hover\", \"focus\"]}>\n          <span style={{ marginLeft: 4, textDecoration: \"underline\", textDecorationStyle: \"dotted\" }}>\n            {getTimeZoneLabel(date)}\n          </span>\n        </Tooltip>\n      </>\n    );\n  };\n\n  return (\n    <div ref={rootRef} id=\"multiEshop\">\n      <Row>\n        <Col sm={12} lg={8}>\n          <Jumbotron className=\"multi-eshop\">\n            <div className=\"p-s-0 px-lg-7\">\n              <Status current={2} statusSteps={vm.statusNavigation} translate={vm.translate} />\n            </div>\n            {vm.loading === false ? (\n              <>\n                {vm.countRecommendation > 0 && (\n                  <div className=\"mb-7 p-s-0 px-lg-7\">\n                    <Row className=\"mb-4\">\n                      <Col sm={6} xl={6} className=\"d-flex align-items-center justify-content-start mb-3\">\n                        <h3 className=\"mb-0\">{vm.translate(\"recommendation\")}</h3>\n                      </Col>\n                      <Col sm={6} xl={6} className=\"d-flex align-items-center justify-content-end mb-3\">\n                        <Button\n                          type=\"button\"\n                          variant=\"light-danger\"\n                          size=\"sm\"\n                          style={{ textTransform: \"none\" }}\n                          onClick={vm.resetChargeOrder}\n                          iconLeftVariant=\"light-danger\"\n                          iconLeft={IconType.Cross}>\n                          {vm.translate(\"cancel\")}\n                        </Button>\n                      </Col>\n                    </Row>\n                    {vm.possibleExemptions?.map((exemption, index) => {\n                      return (\n                        <RecommendationAlert key={index} vm={vm} disabled={false}>\n                          <div>\n                            <TextWithLink\n                              text={vm\n                                .translateFuelTypeLimitation(exemption.fuelTypeLimitation.limitationReason)\n                                .replace(\"%FUEL_TYPE%\", exemption.fuelTypeLable)}\n                              link={vm.translateFuelTypeLimitationLink(exemption.fuelTypeLimitation.limitationReason)}\n                            />\n                          </div>\n                          {exemption?.vehicles\n                            ? exemption.vehicles.map((v, index) => (\n                                <div\n                                  key={index}\n                                  className=\"d-inline-flex flex-wrap mt-3 mb-2 font-weight-normal text-dark with-gap\">\n                                  <Tag\n                                    key={`${Math.random().toString()}${v}`}\n                                    item={{ label: v.licensePlate ?? \"\", valid: false }}\n                                  />\n                                </div>\n                              ))\n                            : null}\n                        </RecommendationAlert>\n                      );\n                    })}\n                    {vm.exemptionIdentifiedPossibleLicensePlate?.map((exemption, index) => {\n                      return (\n                        <RecommendationAlert\n                          key={index}\n                          vm={vm}\n                          descriptionLocalizationCode={`recommendationExemptions.${exemption.instructionType}`}\n                          removeButtonLabelLocalizationCode=\"removeFromOrder\"\n                          closeButtonLabelLocalizationCode=\"closeRecommendation\"\n                          removeAction={\n                            exemption?.vehicles?.length ? () => vm.removeIdentifiedPossibleFromOrderItems(exemption) : undefined\n                          }\n                          closeAction={\n                            exemption?.vehicles?.length\n                              ? () => vm.hideIdentifiedPossibleRecommendation(exemption.possibleExemptionId)\n                              : undefined\n                          }\n                          disabled={false}>\n                          {exemption?.vehicles\n                            ? exemption.vehicles.map((v, index) => (\n                                <div\n                                  key={index}\n                                  className=\"d-inline-flex flex-wrap mt-3 mb-2 font-weight-normal text-dark with-gap\">\n                                  <Tag\n                                    key={`${Math.random().toString()}${v}`}\n                                    item={{ label: v.licensePlate ?? \"\", valid: true }}\n                                  />\n                                </div>\n                              ))\n                            : null}\n                        </RecommendationAlert>\n                      );\n                    })}\n                    {vm.exemptionLicensePlates?.map((exemption, index) => {\n                      return (\n                        <RecommendationAlert\n                          key={index}\n                          vm={vm}\n                          descriptionLocalizationCode={`recommendationExemptions.${exemption.instructionType}`}\n                          removeButtonLabelLocalizationCode=\"removeFromOrder\"\n                          closeButtonLabelLocalizationCode=\"closeRecommendation\"\n                          removeAction={\n                            exemption?.vehicles?.length ? () => vm.removeExemptionsFromOrderItems(exemption) : undefined\n                          }\n                          closeAction={\n                            exemption?.vehicles?.length\n                              ? () => vm.hideExemptionRecommendation(exemption.possibleExemptionId)\n                              : undefined\n                          }\n                          disabled={false}>\n                          {exemption?.vehicles\n                            ? exemption.vehicles.map((v, index) => (\n                                <div\n                                  key={index}\n                                  className=\"d-inline-flex flex-wrap mt-3 mb-2 font-weight-normal text-dark with-gap\">\n                                  <Tag\n                                    key={`${Math.random().toString()}${v}`}\n                                    item={{ label: v.licensePlate ?? \"\", valid: true }}\n                                  />\n                                </div>\n                              ))\n                            : null}\n                        </RecommendationAlert>\n                      );\n                    })}\n                    {vm.overlayExemptionVisible && (\n                      <RecommendationAlert\n                        vm={vm}\n                        descriptionLocalizationCode={`overlapWarnings.${ChargeOverlapType.ExemptionOverlap}`}\n                        disabled={false}\n                        removeButtonLabelLocalizationCode=\"removeFromOrder\"\n                        closeButtonLabelLocalizationCode=\"closeRecommendation\"\n                        removeAction={vm.removeExemptionOverlaysFromOrderItems}\n                        closeAction={vm.hideExemptionOverlayRecommendation}>\n                        {vm.overlapsExemption\n                          ? vm.overlapsExemption.map((v, index) => (\n                              <div\n                                key={index}\n                                className=\"d-inline-flex flex-wrap mt-3 mb-2 font-weight-normal text-dark with-gap\">\n                                <Tag\n                                  key={`${Math.random().toString()}${v}`}\n                                  item={{ label: v.vehicle.licensePlate, valid: true }}\n                                />\n                              </div>\n                            ))\n                          : null}\n                      </RecommendationAlert>\n                    )}\n                    {vm.overlayRecommendationVisible && (\n                      <RecommendationAlert\n                        vm={vm}\n                        descriptionLocalizationCode={`overlapWarnings.${ChargeOverlapType.ChargeOverlap}`}\n                        removeButtonLabelLocalizationCode=\"removeSelected\"\n                        closeButtonLabelLocalizationCode=\"closeRecommendation\"\n                        removeAction={vm.removeOverlaysFromOrderItems}\n                        closeAction={vm.hideOverlayRecommendation}\n                        disabled={vm.overlaysRemoveDisabled}>\n                        <div className=\"d-inline-flex flex-wrap mt-2 mb-4 w-100 font-weight-normal text-dark with-gap\">\n                          <div>\n                            <table className=\"table\">\n                              <thead>\n                                <tr>\n                                  <th>\n                                    <Check\n                                      autoComplete=\"off\"\n                                      custom\n                                      label=\"\"\n                                      target={vm}\n                                      threeState={true}\n                                      property=\"allOverlaysSelected\"\n                                      onValueChanged={vm.selectAllOverlays}\n                                    />\n                                  </th>\n                                  <th>{vm.translate(\"licensePlate\")}</th>\n                                  <th className=\"d-sm-block d-none\">{vm.translate(\"licensePlateState\")}</th>\n                                </tr>\n                              </thead>\n                              <tbody>\n                                {vm.overlayLicensePlates.map((item, index) => (\n                                  <tr key={index}>\n                                    <td>\n                                      <Check\n                                        autoComplete=\"off\"\n                                        target={item}\n                                        property=\"selected\"\n                                        custom\n                                        label=\"\"\n                                        key={item.licensePlate}\n                                        onValueChanged={vm.select}\n                                      />\n                                    </td>\n                                    <td>\n                                      <div className=\"d-inline-flex flex-wrap font-weight-normal text-dark with-gap\">\n                                        <Tag item={{ label: item.licensePlate, valid: true }} />\n                                      </div>\n                                      <div className=\"d-block d-sm-none\">\n                                        <span className=\"d-block\">{vm.formatOverlayState(item.state)}</span>\n                                        <span>{item?.expiration ? renderDateWithTimeZone(item?.expiration) : vm.emptyState}</span>\n                                      </div>\n                                    </td>\n                                    <td className=\"d-sm-block d-none\">\n                                      <span className=\"d-block d-md-inline\">{vm.formatOverlayState(item.state)}</span>\n                                      <span>{item?.expiration ? renderDateWithTimeZone(item?.expiration) : vm.emptyState}</span>\n                                    </td>\n                                  </tr>\n                                ))}\n                              </tbody>\n                            </table>\n                          </div>\n                        </div>\n                      </RecommendationAlert>\n                    )}\n                  </div>\n                )}\n                <div className=\"p-s-0 px-lg-7\">\n                  <Form.Row className=\"d-flex flex-row flex-wrap align-items-center justify-content-between mx-0 my-0 mb-7\">\n                    <h3 className=\"mb-0\">{vm.translate(\"recap\")}</h3>\n                    {vm.countRecommendation === 0 && (\n                      <Button\n                        type=\"button\"\n                        variant=\"light-danger\"\n                        size=\"sm\"\n                        style={{ textTransform: \"none\" }}\n                        onClick={vm.resetChargeOrder}\n                        iconLeftVariant=\"light-danger\"\n                        iconLeft={IconType.Cross}>\n                        {vm.translate(\"cancel\")}\n                      </Button>\n                    )}\n                  </Form.Row>\n                </div>\n                <div className=\"table-container\">\n                  <div className=\"table-header d-lg-flex d-none\">\n                    <div className=\"table-cell without-text\"></div>\n                    <div className=\"table-cell without-text\">\n                      <div>{vm.translate(\"pieces\")}</div>\n                    </div>\n                    <div className=\"table-cell\">\n                      <div>{vm.translate(\"type\")}</div>\n                    </div>\n                    <div className=\"table-cell\">\n                      <div>{vm.translate(\"fuelType\")}</div>\n                    </div>\n                    <div className=\"table-cell\">\n                      <div>{vm.translate(\"price\")}</div>\n                    </div>\n                    <div className=\"table-cell\">\n                      <div>{vm.translate(\"validityPeriod\")}</div>\n                    </div>\n                    <div className=\"table-cell without-text\"></div>\n                  </div>\n\n                  {vm.chargeOrderCharges\n                    .filter(item => item.licensePlates.length && item.fuelTypeId)\n                    .map((item, index) => {\n                      const showDetail = vm.detail === item && vm.detailIndex === index;\n                      return (\n                        <div key={index} className={`table-body ${index > 0 ? \"mt-2\" : \"\"}`}>\n                          <div className={`table-row align-items-start align-items-lg-center ${showDetail ? \"detail-row\" : \"\"}`}>\n                            <div className=\"table-cell font-weight-bold without-text\">{`${index + 1}.`}</div>\n                            <div className=\"table-cell without-text\">\n                              <strong className=\"mr-2 d-lg-none\">{vm.translate(\"pieces\")}</strong>\n                              {vm.translate(\"chargeCount\").replace(\"%charge%\", item.licensePlates.length.toString())}\n                            </div>\n                            <div className=\"table-cell\">\n                              <strong className=\"mr-2 d-lg-none\">{vm.translate(\"type\")}</strong>\n                              {vm.translateChargeLabel(item.chargeTypeId as string)}\n                            </div>\n                            <div className=\"table-cell\">\n                              <strong className=\"mr-2 d-lg-none\">{vm.translate(\"fuelType\")}</strong>\n                              {vm.translateFuelLabel(item.fuelTypeId as string)}\n                            </div>\n                            <div className=\"table-cell\">\n                              <strong className=\"mr-2 d-lg-none\">{vm.translate(\"price\")}</strong>\n                              {vm.formatPrice(vm.chargePrice(item))}\n                            </div>\n                            <div className=\"table-cell d-flex flex-column\">\n                              <strong className=\"mr-2 d-lg-none\">{vm.translate(\"validityPeriod\")}</strong>\n                              <span>{item.validSince ? renderDateWithTimeZone(new Date(item.validSince)) : vm.emptyState}</span>\n                              <span>{item._validUntil ? renderDateWithTimeZone(new Date(item._validUntil)) : vm.emptyState}</span>\n                            </div>\n                            <div className=\"table-cell d-flex justify-content-end without-text\">\n                              <Button\n                                onClick={() => vm.showDetail(item, index)}\n                                variant=\"light\"\n                                size=\"sm\"\n                                iconRight={showDetail ? IconType.ArrowTop : IconType.ArrowBottom}\n                              />\n                            </div>\n                          </div>\n                          {showDetail && (\n                            <>\n                              <div key={index} className={`table-row ${showDetail ? \"license-detail-row\" : \"\"}`}>\n                                <div className=\"table-cell license-plate-row\">\n                                  {item.licensePlates.map((license, index) => {\n                                    return (\n                                      <span key={index} className=\"mr-2 mb-2 license-plate-frame\">\n                                        {license}\n                                      </span>\n                                    );\n                                  })}\n                                </div>\n                                {item._allowedDelete && (\n                                  <div className=\"table-cell py-4 license-plate-btn-row\">\n                                    <Button\n                                      type=\"button\"\n                                      variant=\"light-danger\"\n                                      size=\"sm\"\n                                      style={{ textTransform: \"none\" }}\n                                      onClick={() => vm.removeBatch(item)}\n                                      iconLeftVariant=\"light-danger\"\n                                      iconLeft={IconType.Cross}>\n                                      {vm.translate(\"removeBatch\")}\n                                    </Button>\n                                  </div>\n                                )}\n                              </div>\n                            </>\n                          )}\n                        </div>\n                      );\n                    })}\n                </div>\n              </>\n            ) : (\n              <>\n                <Form.Row className=\"d-flex flex-row flex-wrap align-items-center justify-content-between mx-0 my-0 mb-3 p-s-0 px-lg-7\">\n                  <h3>{vm.translate(\"recap\")}</h3>\n                  <Button\n                    type=\"button\"\n                    variant=\"light-danger\"\n                    size=\"sm\"\n                    style={{ textTransform: \"none\" }}\n                    onClick={vm.resetChargeOrder}\n                    iconLeftVariant=\"light-danger\"\n                    iconLeft={IconType.Cross}>\n                    {vm.translate(\"cancel\")}\n                  </Button>\n                </Form.Row>\n                <Col className=\"d-flex d-flex flex-column align-items-center justify-content-center pt-4 pt-lg-4 pt-xl-4\">\n                  <Col sm={1} xl={1} className=\"p-2\">\n                    <LoadingPane />\n                  </Col>\n                  <Col sm={4} xl={4} className=\"d-flex align-items-center justify-content-center p-2\">\n                    <div className=\"d-flex align-items-center justify-content-center\">{vm.translate(\"chargeInstructions\")}</div>\n                  </Col>\n                </Col>\n              </>\n            )}\n          </Jumbotron>\n        </Col>\n        <Col sm={12} lg={4}>\n          <View vm={vm.summaryViewModel} />\n        </Col>\n      </Row>\n    </div>\n  );\n});\n\nregisterView(orderRecapView, OrderRecapViewModel);\n","import React, { useCallback, useEffect } from \"react\";\r\nimport { registerView, View, ViewComponent } from \"@frui.ts/views\";\r\nimport { observer, Observer } from \"mobx-react-lite\";\r\nimport { Col, Form, Jumbotron, Row } from \"react-bootstrap\";\r\nimport PaymentMultiEshopViewModel from \"../../viewModels/multiEshop/paymentMultiEshopViewModel\";\r\nimport ErrorCard from \"../common/error/errorCard\";\r\nimport Portal from \"../eshop/order/components/portal\";\r\nimport { turnstileSiteKey } from \"../../config\";\r\nimport LoadingModal from \"../common/loadingModal/loadingModal\";\r\nimport Status from \"./components/status\";\r\nimport GooglePay3DSecureModal from \"views/eshop/order/components/googlePay3DSecureModal\";\r\nimport Button from \"@edaz/edazkit/Button\";\r\nimport { IconType } from \"@edaz/edazkit/Icon\";\r\nimport BatchOrderViewModel from \"viewModels/multiEshop/batchOrderViewModel\";\r\nimport \"views/common/payment/paymentRetryView\";\r\n\r\nconst paymentMultiEshopView: ViewComponent<PaymentMultiEshopViewModel> = observer(({ vm }) => {\r\n  const error = (code: string) => vm.localizationService.translateGeneral(`errors.${code}`);\r\n  const modalTranslate = (code: string) => vm.localizationService.translateGeneral(`eshop.card.${code}`);\r\n  const formRef = useCallback(node => {\r\n    if (node !== null) {\r\n      vm.formElement = node;\r\n    }\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    const handlePageShow = async (event: any) => {\r\n      const reloaded = localStorage.getItem(\"orderReloaded\");\r\n      const lastChargeOrder = vm.storage.getLastChargeOrder();\r\n\r\n      if (reloaded === \"true\") return;\r\n\r\n      if (vm.chargeOrderService.chargeOrder.id) {\r\n        await vm.getOrderStatus(vm.chargeOrderService.chargeOrder.id);\r\n      }\r\n\r\n      if (vm.isOrderComplete) {\r\n        vm.onOrderIsCompleteCheck(vm.chargeOrderService.chargeOrder.id);\r\n      }\r\n      if (lastChargeOrder && lastChargeOrder.charges[0].licensePlates?.length === 0) {\r\n        vm.chargeOrderService.reset();\r\n        vm.router.navigate(BatchOrderViewModel);\r\n      }\r\n    };\r\n    window.addEventListener(\"pageshow\", handlePageShow);\r\n    window.addEventListener(\"popstate\", handlePageShow);\r\n    window.addEventListener(\"beforeunload\", handlePageShow);\r\n\r\n    return () => {\r\n      window.removeEventListener(\"pageshow\", handlePageShow);\r\n    };\r\n  }, []);\r\n\r\n  return (\r\n    <Form ref={formRef}>\r\n      <Row id=\"multiEshop\">\r\n        <Col sm={12} lg={8}>\r\n          <Jumbotron className=\"p-s-0 px-lg-10 py-lg-7 multi-eshop\">\r\n            <Status current={4} statusSteps={vm.statusNavigation} translate={vm.translate} />\r\n            {vm.errorMessage && <ErrorCard message={error(vm.errorMessage)} sticky={true} />}\r\n            <fieldset>\r\n              <Row className=\"mb-4\">\r\n                <Col sm={6} xl={6} className=\"d-flex align-items-center justify-content-start mb-3\">\r\n                  <h3 className=\"mb-0\">{vm.translate(\"paymentMethod\")}</h3>\r\n                </Col>\r\n                <Col sm={6} xl={6} className=\"d-flex align-items-center justify-content-end mb-3\">\r\n                  <Button\r\n                    type=\"button\"\r\n                    variant=\"light-danger\"\r\n                    size=\"sm\"\r\n                    style={{ textTransform: \"none\" }}\r\n                    onClick={vm.resetChargeOrder}\r\n                    iconLeftVariant=\"light-danger\"\r\n                    iconLeft={IconType.Cross}>\r\n                    {vm.translate(\"cancel\")}\r\n                  </Button>\r\n                </Col>\r\n              </Row>\r\n              <Observer>{() => <View vm={vm.selectPaymentMethodViewModel} />}</Observer>\r\n              <div className=\"mx-4 mt-6 mb-3 border-top\" />\r\n              <Observer>{() => <View vm={vm.termsAgreementViewModel} />}</Observer>\r\n            </fieldset>\r\n          </Jumbotron>\r\n        </Col>\r\n        <Col sm={12} lg={4}>\r\n          <Observer>{() => <View vm={vm.summaryViewModel} />}</Observer>\r\n        </Col>\r\n        <div>\r\n          <LoadingModal translate={modalTranslate} isVisible={vm.showPaymentLoadingModal} />\r\n          <GooglePay3DSecureModal isVisible={vm.showGooglePay3DSecureModal} url={vm.googlePay3DSecureUrl} />\r\n        </div>\r\n      </Row>\r\n    </Form>\r\n  );\r\n});\r\n\r\nregisterView(paymentMultiEshopView, PaymentMultiEshopViewModel);\r\n","import { Col, Jumbotron, Row } from \"react-bootstrap\";\nimport Button from \"@edaz/edazkit/Button/index\";\nimport React, { useEffect, useState } from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { registerView, View, ViewComponent } from \"@frui.ts/views\";\nimport SummaryViewModel from \"../../viewModels/multiEshop/summaryMultiEshopViewModel\";\nimport { EDAZGooglePayButton } from \"../eshop/order/components/googlePayButton\";\nimport styles from \"./summaryMultiEshopView.module.scss\";\nimport { IconType } from \"@edaz/edazkit/Icon\";\n\nconst SummaryView: ViewComponent<SummaryViewModel> = observer(({ vm }) => {\n  const standardPaymentButtonOnClick = () => {\n    if (vm.onContinue) {\n      vm.onContinue(undefined);\n    }\n  };\n  // As allowPaymentRequest is not recognized, we need to use the spread operator instead.\n  const iframeProps = {\n    allowpaymentrequest: \"true\",\n  };\n\n  const backButton = (\n    <>\n      {/* Back button visible only in mobile view */}\n\n      <Button\n        type=\"button\"\n        variant=\"light\"\n        className=\"d-sm-block w-100\"\n        disabled={vm.disabledButton}\n        onClick={vm.onBack}\n        iconLeftAlign=\"right\"\n        iconLeft={IconType.ArrowLeft}>\n        {vm.tg(\"back\")}\n      </Button>\n    </>\n  );\n  const continueButton = (\n    <>\n      {vm.isGooglePayPaymentMethodSelected && vm.isFinal && vm.showGooglePaymentButton && !vm.isRequestBlocked ? (\n        <>\n          <EDAZGooglePayButton\n            totalPrice={vm.total}\n            locale={vm.locale}\n            googlePayMetadata={vm.googlePayMetadata!}\n            loading={!vm.isGooglePayMetadataReady}\n            createOrder={vm.onContinue}\n            validateOrder={vm.validateOrder}\n            errorMessage={vm.localizationService.translateGeneral(\"errors.generic\")}\n          />\n          {vm.googlePayPaymentFingerprint && (\n            <iframe\n              {...iframeProps}\n              allow=\"payment\"\n              className={styles.fingerprintIframe}\n              onLoad={vm.onGooglePayPaymentFingerprintLoaded}\n              src={vm.googlePayPaymentFingerprint}></iframe>\n          )}\n        </>\n      ) : (\n        <Button\n          type=\"button\"\n          variant=\"primary\"\n          className=\"w-100\"\n          iconRight={IconType.ArrowRight}\n          iconRightAlign=\"left\"\n          onClick={standardPaymentButtonOnClick}\n          disabled={\n            vm.isRequestBlocked ||\n            ((!vm.turnstileViewModel?.turnstileToken || vm.turnstileViewModel?.isDisabledByTurnsitel) && vm.isChecked) ||\n            vm.disabledButton\n          }>\n          {vm.tg(vm.buttonTextKey)}\n        </Button>\n      )}\n    </>\n  );\n\n  return (\n    <Jumbotron className=\"p-0 pt-7 pb-4 multi-eshop\">\n      <Row className=\"px-4\">\n        <Col xs={12}>\n          <h3>{vm.tg(\"summary\")}</h3>\n        </Col>\n      </Row>\n      {vm\n        .uniqueCharges()\n        .sort((a, b) => a.index - b.index)\n        .map(charge => (\n          <Row key={charge.index} className=\"justify-content-between px-4\">\n            <Col xs={12} md={6} className=\"font-weight-bold\">\n              <label>{vm.vehicleCountForChargeType(charge.index)}</label>\n            </Col>\n            <Col xs=\"auto\">\n              <label>{vm.chargeTypeTotal(charge.index, charge.chargeTypeId, charge.fuelTypeId)}</label>\n            </Col>\n          </Row>\n        ))}\n      <div className=\"mx-4 mt-3 mb-4 px-4 border-top\" />\n      <Row className=\"justify-content-between px-4\">\n        <Col xs=\"auto\" className=\"font-weight-bold\">\n          <label>{vm.tg(\"totalToPay\")}</label>\n        </Col>\n        <Col xs=\"auto\" className=\"font-weight-bold\">\n          <label>{vm.grandTotal}</label>\n        </Col>\n      </Row>\n\n      <Row className=\"justify-content-center mt-4 px-4\">{vm.isChecked && <View vm={vm.turnstileViewModel} />}</Row>\n\n      {(vm.onBack || vm.onContinue) && (\n        <div className=\"d-flex flex-column align-items-center justify-content-center mt-4 mb-3 px-xxl-4\">\n          {vm.onContinue &&\n            (vm.isGooglePayPaymentMethodSelected && vm.showGooglePaymentButton ? (\n              <div className=\"mb-2 text-center\">{continueButton}</div>\n            ) : (\n              <Col\n                xs={\"auto\"}\n                sm={vm.onBack ? 12 : 12}\n                lg={12}\n                xl={vm.onBack ? 12 : 12}\n                className=\"flex-grow-1 mb-2 text-center w-100\">\n                {continueButton}\n              </Col>\n            ))}\n          {vm.onBack && (\n            <Col xs={\"auto\"} sm={12} lg={12} xl={12} className=\"mb-2 text-center w-100\">\n              {backButton}\n            </Col>\n          )}\n        </div>\n      )}\n    </Jumbotron>\n  );\n});\n\nregisterView(SummaryView, SummaryViewModel);\n","import { Input } from \"@frui.ts/bootstrap\";\nimport DatePickerBox from \"controls/datePickerBox/datePickerBox\";\nimport { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport { Col, Form } from \"react-bootstrap\";\nimport PersonViewModel from \"viewModels/notice/components/personViewModel\";\n\nconst PersonInput: FunctionComponent<{\n  vm: PersonViewModel;\n  fullNamePredicate?: boolean;\n  fullNameValidationAction?: () => void;\n  birthDatePredicate?: boolean;\n  birthDateValidationAction?: () => void;\n  showBirthdate?: boolean;\n}> = observer(\n  ({ vm, fullNamePredicate, fullNameValidationAction, birthDatePredicate, birthDateValidationAction, showBirthdate }) => {\n    const ta = (code: string) => vm.translateAttribute(\"individual\", code);\n    const errorLocalization = (code: string) => {\n      if ([\"min\", \"max\"].includes(code)) {\n        return vm.translateAttribute(\"birthdate\", code);\n      } else if (code === \"invalidDateFormat\") {\n        return vm.translateGeneral(code);\n      } else {\n        return code;\n      }\n    };\n    const fromMonth = new Date(new Date().getFullYear() - 100, 0);\n    const toMonth = new Date(new Date().getFullYear() - 18, new Date().getMonth());\n\n    const datePickerLocalization = vm.datePickerLocalization;\n    datePickerLocalization.strings.todayButton = undefined;\n\n    return (\n      <Form.Row>\n        <Form.Group controlId=\"full-name-input\" as={Col} sm={12} xl={showBirthdate ? 6 : 12}>\n          <Form.Label>{ta(\"fullName\")}</Form.Label>\n          <Input target={vm.person} property=\"fullName\" />\n        </Form.Group>\n        {showBirthdate && (\n          <Form.Group controlId=\"date-of-birth-input\" as={Col} sm={12} xl={6}>\n            <Form.Label>{ta(\"birthdate\")}</Form.Label>\n            <DatePickerBox\n              id=\"date-of-birth-input\"\n              ignoreTime={true}\n              fromMonth={fromMonth}\n              toMonth={toMonth}\n              month={toMonth}\n              errorLocalization={errorLocalization}\n              target={vm.person}\n              property=\"birthDate\"\n              placeholder={vm.translateGeneral(\"datepicker.placeholder\")}\n              datePickerLocalization={datePickerLocalization}\n              useEndBoundaryAsDefault={true}\n            />\n          </Form.Group>\n        )}\n      </Form.Row>\n    );\n  }\n);\n\nexport default PersonInput;\n","import { Input } from \"@frui.ts/bootstrap\";\nimport { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport { Col, Form } from \"react-bootstrap\";\nimport PersonViewModel from \"viewModels/notice/components/personViewModel\";\n\nconst AddressInput: FunctionComponent<{\n  vm: PersonViewModel;\n  legal?: boolean;\n}> = observer(({ vm, legal = false }) => {\n  const ta = (code: string) => vm.translateAttribute(\"address\", code);\n\n  const controlId = `${legal ? \"organization\" : \"home\"}-address-input`;\n\n  return (\n    <Form.Row>\n      <Form.Group controlId={controlId} as={Col} sm={12}>\n        <Form.Label>{ta(legal ? \"organizationTitle\" : \"title\")}</Form.Label>\n        <Input as=\"textarea\" target={vm.person} property={\"mailingAddress\"} />\n      </Form.Group>\n    </Form.Row>\n  );\n});\n\nexport default AddressInput;\n","import EdazPhoneInput from \"@edaz/edazkit/InputPhone\";\nimport { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport { Col, Form } from \"react-bootstrap\";\nimport { setVisitedProperty } from \"utils/validationPatch\";\nimport PersonViewModel from \"viewModels/notice/components/personViewModel\";\nimport EmailInput from \"../../../common/emailInput/emailInput\";\n\nconst ContactInput: FunctionComponent<{\n  vm: PersonViewModel;\n}> = observer(({ vm }) => {\n  const ta = (code: string) => vm.translateAttribute(\"contact\", code);\n  return (\n    <Form.Row>\n      <EmailInput\n        id=\"optional-email\"\n        xl={6}\n        label={ta(\"classicOptionalEmail.email\")}\n        translate={ta}\n        target={vm.person}\n        property=\"emailAddress\"\n      />\n      <Form.Group controlId=\"optional-phone-number\" as={Col} sm={12} xl={6}>\n        <Form.Label>{ta(\"classicOptionalPhoneNumber\")}</Form.Label>\n        <EdazPhoneInput\n          id=\"optional-phone-number\"\n          target={vm.person}\n          property=\"phoneNumber\"\n          defaultPrefix={vm.defaultPrefixNumber}\n          placeholder={ta(\"phoneNumberPlaceholder\")}\n          onBlur={() => setVisitedProperty(vm.person, \"phoneNumber\")}\n        />\n      </Form.Group>\n    </Form.Row>\n  );\n});\n\nexport default ContactInput;\n","import { registerView } from \"@frui.ts/views/dist\";\nimport { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport { View } from \"@frui.ts/views\";\nimport PersonInput from \"./common/personInput\";\nimport AddressInput from \"./common/addressInput\";\nimport ContactInput from \"./common/contactInput\";\nimport ApplicantPersonViewModel from \"../../../viewModels/notice/components/applicantPersonViewModel\";\n\nconst ApplicantView: FunctionComponent<{\n  vm: ApplicantPersonViewModel;\n}> = observer(({ vm }) => {\n  const tg = (code: string) => vm.translateGeneral(`notifier.${code}`);\n\n  return (\n    <fieldset>\n      <legend className=\"h3\">{tg(\"title\")}</legend>\n      {/* TODO: enable NIA interactive form if REQUESTED */}\n      {/*<Button variant=\"secondary\" onClick={vm.redirectToNia} size=\"sm\">*/}\n      {/* tslint:disable-next-line:no-commented-code */}\n      {/*  {tg(\"fillUsingNia\")}*/}\n      {/*</Button>*/}\n      <PersonInput vm={vm} showBirthdate={vm.showBirthdate} />\n      <AddressInput vm={vm} />\n      <ContactInput vm={vm} />\n      {vm.gdprViewModel && <View vm={vm.gdprViewModel} />}\n    </fieldset>\n  );\n});\n\nregisterView(ApplicantView, ApplicantPersonViewModel);\n","import { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport ExemptionViewModel from \"viewModels/notice/exemption/exemptionViewModel\";\nimport Button from \"@edaz/edazkit/Button\";\nimport { IconType } from \"@edaz/edazkit/Icon\";\nimport { Col, Row } from \"react-bootstrap\";\nimport OmissionViewModel from \"../../../../viewModels/notice/omission/omissionViewModel\";\nimport LicensePlateChangeViewModel from \"../../../../viewModels/notice/licensePlateChange/licensePlateChangeViewModel\";\nimport DocumentsUploadedViewModel from \"viewModels/notice/components/documentsUploadedViewModel\";\nimport RefundRequestViewModel from \"../../../../viewModels/notice/refundRequest/refundRequestViewModel\";\n\ntype ToolboxViewModel =\n  | ExemptionViewModel\n  | OmissionViewModel\n  | LicensePlateChangeViewModel\n  | RefundRequestViewModel\n  | DocumentsUploadedViewModel;\n\nconst Toolbox: FunctionComponent<{\n  vm: ToolboxViewModel;\n}> = observer(({ vm }) => {\n  const tg = (code: string) => vm.translateGeneral(`toolbox.${code}`);\n\n  return (\n    <Row className=\"justify-content-center\">\n      {vm.canCancelNotice && (\n        <Col sm={10} xl={4} className=\"p-2\">\n          <Button variant=\"light\" onClick={vm.cancel} size=\"sm\" className=\"m-0 pr-4 pl-4 mb-2 mb-lg-2 btn-block\">\n            {tg(\"cancel\")}\n          </Button>\n        </Col>\n      )}\n      {vm.canSaveNoticePDF && (\n        <Col sm={10} xl={4} className=\"p-2\">\n          <Button\n            iconLeft={IconType.Save}\n            variant=\"primary\"\n            onClick={vm.savePDF}\n            disabled={(!(vm instanceof ExemptionViewModel) && vm.isContinueDisabled) ?? false}\n            size=\"sm\"\n            className=\"m-0 pr-4 pl-4 mb-2 mb-lg-2 btn-block\">\n            {tg(\"savePDF\")}\n          </Button>\n        </Col>\n      )}\n      {vm.canPrintNotice && (\n        <Col sm={10} xl={4} className=\"p-2\">\n          <Button\n            iconLeft={IconType.Print}\n            variant=\"primary\"\n            onClick={vm.printPDF}\n            disabled={(!(vm instanceof ExemptionViewModel) && vm.isContinueDisabled) ?? false}\n            size=\"sm\"\n            className=\"m-0 pr-4 pl-4 mb-2 mb-lg-2 btn-block\">\n            {tg(\"printPDF\")}\n          </Button>\n        </Col>\n      )}\n      {vm.canProceedToExternalService && (\n        <Col sm={10} xl={4} className=\"p-2\">\n          <Button\n            variant=\"primary\"\n            onClick={vm.continue}\n            iconRight={IconType.ArrowRight}\n            disabled={(!(vm instanceof ExemptionViewModel) && vm.isContinueDisabled) ?? false}\n            size=\"sm\"\n            className=\"pr-4 pl-4 mb-2 mb-lg-2 btn-block\">\n            {tg(\"continue\")}\n          </Button>\n        </Col>\n      )}\n    </Row>\n  );\n});\n\nexport default Toolbox;\n","import { registerView, ViewComponent } from \"@frui.ts/views\";\nimport Icon, { IconType } from \"@edaz/edazkit/Icon\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { Jumbotron } from \"react-bootstrap\";\nimport DocumentsUploadedViewModel from \"viewModels/notice/components/documentsUploadedViewModel\";\nimport Toolbox from \"./toolbox\";\n\nconst DocumentsUploadedView: ViewComponent<DocumentsUploadedViewModel> = observer(({ vm }) => {\n  return (\n    <Jumbotron className=\"col-10 p-7 text-center\">\n      <div className=\"px-md-7 mx-md-7 my-4\">\n        <Icon icon={IconType.CircleCheck} width={61} height={61} className=\"mb-3 text-success\" />\n        <h3 className=\"px-lg-3\">{vm.title}</h3>\n        <span>{vm.description}</span>\n      </div>\n      <Toolbox vm={vm} />\n    </Jumbotron>\n  );\n});\n\nregisterView(DocumentsUploadedView, DocumentsUploadedViewModel);\n","import { registerView, ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport NiaViewModel from \"../../../viewModels/notice/components/niaViewModel\";\n\nconst NiaView: ViewComponent<NiaViewModel> = observer(({ vm }) => {\n  return <></>;\n});\n\nregisterView(NiaView, NiaViewModel);\n","import { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport { DataTestIds } from \"data-test-constants\";\nimport LegalPersonViewModel from \"viewModels/notice/components/operator/legalPersonViewModel\";\nimport { Col, Form } from \"react-bootstrap\";\nimport { Input } from \"@frui.ts/bootstrap\";\nimport { registerView } from \"@frui.ts/views\";\n\nconst LegalPersonView: FunctionComponent<{\n  vm: LegalPersonViewModel;\n}> = observer(\n  ({ vm }) =>\n    vm.person && (\n      <>\n        <Form.Row>\n          <Form.Group controlId=\"company-name\" as={Col} sm={12} xl={6}>\n            <Form.Label>{vm.translateAttribute(\"organization\", \"name\")}</Form.Label>\n            <Input target={vm.person} property=\"companyName\" data-testid={DataTestIds.COMPANY_NAME_INPUT} />\n          </Form.Group>\n          <Form.Group controlId=\"company-identifier\" as={Col} sm={12} xl={6}>\n            <Form.Label>{vm.translateAttribute(\"organization\", \"organizationIdentifier\")}</Form.Label>\n            <Input target={vm.person} property=\"companyRegistrationNumber\" data-testid={DataTestIds.COMPANY_IDENTIFIER_INPUT} />\n          </Form.Group>\n        </Form.Row>\n        <Form.Row>\n          <Form.Group controlId=\"organization-address-input\" as={Col} sm={12}>\n            <Form.Label>{vm.translateAttribute(\"address\", \"organizationTitle\")}</Form.Label>\n            <Input as=\"textarea\" target={vm.person} property={\"companyAddress\"} />\n          </Form.Group>\n        </Form.Row>\n      </>\n    )\n);\n\nregisterView(LegalPersonView, LegalPersonViewModel);\n","import { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport PersonInput from \"../common/personInput\";\nimport AddressInput from \"../common/addressInput\";\nimport NaturalPersonViewModel from \"../../../../viewModels/notice/components/operator/naturalPersonViewModel\";\nimport { registerView } from \"@frui.ts/views\";\n\nconst NaturalPersonView: FunctionComponent<{\n  vm: NaturalPersonViewModel;\n}> = observer(({ vm }) => (\n  <>\n    <PersonInput\n      vm={vm}\n      fullNamePredicate={vm.person.validateFullName}\n      birthDatePredicate={vm.person.validateBirthDate}\n      showBirthdate={vm.showBirthdate}\n    />\n    <AddressInput vm={vm} />\n  </>\n));\n\nregisterView(NaturalPersonView, NaturalPersonViewModel);\n","import { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport { Form } from \"react-bootstrap\";\nimport OperatorViewModel from \"viewModels/notice/components/operator/operatorViewModel\";\nimport { RadioArray } from \"controls/radioArray\";\n\nconst RepresentativeTypeSelect: FunctionComponent<{\n  vm: OperatorViewModel;\n}> = observer(({ vm }) => {\n  const tg = (code: string) => vm.translateGeneral(`representative.${code}`);\n\n  return (\n    <>\n      <Form.Group className=\"mb-3\">\n        <RadioArray\n          custom\n          label={tg(\"applicant\")}\n          target={vm}\n          property=\"isRepresentedAsProxy\"\n          isNumeric={false}\n          option={false}\n          id={\"appliciant\"}\n        />\n      </Form.Group>\n      <Form.Group className=\"mb-3\">\n        <RadioArray\n          custom\n          label={tg(\"operator\")}\n          target={vm}\n          property=\"isRepresentedAsProxy\"\n          isNumeric={false}\n          option={true}\n          id={\"operator\"}\n        />\n      </Form.Group>\n    </>\n  );\n});\n\nexport default RepresentativeTypeSelect;\n","import { observer, Observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport OperatorViewModel from \"../../../../viewModels/notice/components/operator/operatorViewModel\";\nimport { registerView, View } from \"@frui.ts/views\";\nimport { Col, Form } from \"react-bootstrap\";\nimport { RadioArray } from \"../../../../controls/radioArray\";\nimport RepresentativeTypeSelect from \"./representativeTypeSelect\";\n\nconst OperatorView: FunctionComponent<{\n  vm: OperatorViewModel;\n}> = observer(({ vm }) => {\n  return (\n    <fieldset className=\"mb-4\">\n      <legend className=\"h3\">{vm.translate(\"operator\")}</legend>\n      <RepresentativeTypeSelect vm={vm} />\n      {vm.isRepresentedAsProxy && (\n        <>\n          <p className=\"pb-1 font-size-sm\">{vm.translate(\"operatorDescription\")}</p>\n          <Form.Row className=\"mt-4 mb-3\">\n            <Form.Group as={Col} xs={\"auto\"} className=\"mb-3\">\n              <RadioArray\n                custom\n                label={vm.translate(\"individual\")}\n                target={vm}\n                property=\"isLegalPerson\"\n                isNumeric={false}\n                option={false}\n                id={\"individual\"}\n                className=\"mr-7\"\n              />\n            </Form.Group>\n            <Form.Group as={Col} xs={\"auto\"} className=\"mb-3\">\n              <RadioArray\n                custom\n                label={vm.translate(\"legal\")}\n                target={vm}\n                property=\"isLegalPerson\"\n                isNumeric={false}\n                id={\"legal\"}\n                option={true}\n              />\n            </Form.Group>\n          </Form.Row>\n          <Observer>{() => <View vm={vm.activeChild} />}</Observer>\n        </>\n      )}\n    </fieldset>\n  );\n});\n\nregisterView(OperatorView, OperatorViewModel);\n","import React from \"react\";\nimport OriginalAdvancedSelect, { AdvancedSelectControlProps } from \"@edaz/edazkit/controls/AdvancedSelect\";\nimport { setVisitedProperty } from \"../utils/validationPatch\";\nimport { IBindingProps } from \"@frui.ts/views\";\nimport { PropertyName } from \"@frui.ts/helpers\";\nimport { CommonInputProps } from \"@frui.ts/bootstrap/dist/controls/commonInputProps\";\n\nexport default function AdvancedSelect<TTarget, IsMulti extends boolean = false>(\n  props: Omit<AdvancedSelectControlProps<IsMulti>, \"onChange\" | \"value\"> & IBindingProps<TTarget> & CommonInputProps\n) {\n  const { onBlur, ...rest } = props;\n  const { target, property } = props as { target: TTarget; property: PropertyName<TTarget> };\n  const modifiedOnBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n    if (onBlur) {\n      onBlur(e);\n    }\n\n    setVisitedProperty(target, property);\n  };\n\n  return <OriginalAdvancedSelect onBlur={modifiedOnBlur} {...rest} />;\n}\n","import { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport ExemptionViewModel from \"viewModels/notice/exemption/exemptionViewModel\";\nimport { Form, Col } from \"react-bootstrap\";\nimport AdvancedSelect from \"controls/advancedSelect\";\nimport Tooltip from \"controls/tooltip\";\n\nconst ExemptionReasonSelect: FunctionComponent<{\n  vm: ExemptionViewModel;\n}> = observer(({ vm }) => {\n  const labelId = \"exemption-reason-label\";\n\n  return (\n    <Form.Row>\n      <Form.Group as={Col} sm={12}>\n        <Form.Label id={labelId}>{vm.translateAttribute(\"reason\")}</Form.Label>\n        <Tooltip\n          id=\"exemption-reasons-changed\"\n          placement={\"top\"}\n          tooltip={vm.translateGeneral(\"reasonOptionsChanged\")}\n          show={vm.showTooltip}\n          trigger=\"click\">\n          <AdvancedSelect\n            target={vm.notice}\n            isSearchable={false}\n            property=\"exemptionReasonId\"\n            items={vm.reasons}\n            aria-labelledby={labelId}\n            mode=\"key\"\n            formatOptionLabel={(data: any) => {\n              return <span dangerouslySetInnerHTML={{ __html: data.label }} />;\n            }}\n          />\n        </Tooltip>\n      </Form.Group>\n    </Form.Row>\n  );\n});\n\nexport default ExemptionReasonSelect;\n","import { View } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport ExemptionViewModel from \"viewModels/notice/exemption/exemptionViewModel\";\nimport ExemptionReasonSelect from \"./exemptionReasonView\";\n\nconst ExemptionNotice: FunctionComponent<{\n  vm: ExemptionViewModel;\n}> = observer(({ vm }) => (\n  <div>\n    <div className=\"d-flex flex-row flex-wrap justify-content-between align-items-center\">\n      <h3>{vm.translateGeneral(\"title\")}</h3>\n    </div>\n    <View vm={vm.vehicleInfoViewModel} />\n    <ExemptionReasonSelect vm={vm} />\n  </div>\n));\n\nexport default ExemptionNotice;\n","import { RadioArray } from \"controls/radioArray\";\nimport { observer } from \"mobx-react-lite\";\nimport { SignatureType } from \"models/notice\";\nimport React, { FunctionComponent } from \"react\";\nimport { Form } from \"react-bootstrap\";\nimport ReactMarkdown from \"react-markdown\";\nimport ExemptionViewModel from \"viewModels/notice/exemption/exemptionViewModel\";\nimport OmissionViewModel from \"viewModels/notice/omission/omissionViewModel\";\nimport LicensePlateChangeViewModel from \"../../../../viewModels/notice/licensePlateChange/licensePlateChangeViewModel\";\nimport AlertWithInfoIcon from \"views/common/alertWithInfoIcon/alertWithInfoIcon\";\nimport RefundRequestViewModel from \"../../../../viewModels/notice/refundRequest/refundRequestViewModel\";\n\nconst MethodOfSignature: FunctionComponent<{\n  vm: ExemptionViewModel | OmissionViewModel | LicensePlateChangeViewModel | RefundRequestViewModel;\n}> = observer(({ vm }) => {\n  const target = vm.notice;\n  let tg;\n  let description;\n  let requiredDocuments = \"\";\n  if (vm instanceof LicensePlateChangeViewModel) {\n    tg = (code: string) => vm.localizationService.translateGeneral(`submission.${code}`);\n    requiredDocuments = tg(\"description\");\n    description = vm.localizationService.translateGeneral(`signature.description.${target._signatureType}`);\n  } else if (vm instanceof RefundRequestViewModel) {\n    tg = (code: string) => vm.localizationService.translateGeneral(`submission.${code}`);\n    requiredDocuments = tg(\"refundRequestDescription\").replace(\"%link%\", vm.termsAgreementDocumentPath);\n    description = vm.localizationService.translateGeneral(`signature.description.${target._signatureType}`);\n  } else if (vm instanceof ExemptionViewModel) {\n    tg = (code: string) => vm.localizationService.translateGeneral(`submission.${code}`);\n    description = vm.localizationService.translateGeneral(`signature.description.${target._signatureType}`);\n    if ([SignatureType.ElectronicSignature, SignatureType.DataBox].includes(target._signatureType)) {\n      requiredDocuments = tg(\"exemptionRequestDescription\");\n    }\n    if ([SignatureType.OfficiallyVerifiedSignature].includes(target._signatureType)) {\n      description = vm.localizationService.translateGeneral(`signature.description.OFFICIALLY_VERIFIED_SELF_SIGNATURE`);\n      requiredDocuments = tg(\"exemptionVerifiedSignatureDescription\");\n    }\n  } else {\n    tg = (code: string) => vm.localizationService.translateGeneral(`submission.${code}`);\n    description = vm.localizationService.translateGeneral(`signature.description.${target._signatureType}`);\n    if ([SignatureType.ElectronicSignature, SignatureType.DataBox].includes(target._signatureType)) {\n      requiredDocuments = tg(\"omissionRequestDescription\");\n    }\n    if ([SignatureType.OfficiallyVerifiedSignature].includes(target._signatureType)) {\n      requiredDocuments = tg(\"omissionVerifiedSignatureDescription\");\n      description = vm.localizationService.translateGeneral(`signature.description.OFFICIALLY_VERIFIED_SELF_SIGNATURE`);\n    }\n  }\n\n  return (\n    <fieldset>\n      <legend className=\"h3\">{tg(\"title\")}</legend>\n      <>\n        <Form.Group className=\"mb-3\">\n          <RadioArray\n            custom\n            label={<ReactMarkdown className=\"markdown\">{tg(\"electronic\")}</ReactMarkdown>}\n            target={target}\n            property=\"_signatureType\"\n            isNumeric={false}\n            id={SignatureType.ElectronicSignature}\n            option={SignatureType.ElectronicSignature}\n          />\n        </Form.Group>\n        <Form.Group className=\"mb-3\">\n          <RadioArray\n            custom\n            label={<ReactMarkdown className=\"markdown\">{tg(\"dataBox\")}</ReactMarkdown>}\n            target={target}\n            property=\"_signatureType\"\n            disabled={vm.isdsHasActiveOutage}\n            isNumeric={false}\n            id={SignatureType.DataBox}\n            option={SignatureType.DataBox}\n          />\n        </Form.Group>\n        <Form.Group className=\"mb-3\">\n          <RadioArray\n            custom\n            label={<ReactMarkdown className=\"markdown\">{tg(\"officiallyVerified\")}</ReactMarkdown>}\n            target={target}\n            property=\"_signatureType\"\n            isNumeric={false}\n            id={SignatureType.OfficiallyVerifiedSignature}\n            option={SignatureType.OfficiallyVerifiedSignature}\n          />\n        </Form.Group>\n      </>\n      {requiredDocuments.length > 0 && (\n        <div className=\"mt-4 mb-4 text-muted\">\n          <AlertWithInfoIcon variant=\"light\">\n            <ReactMarkdown linkTarget=\"_blank\" className=\"markdown\">\n              {requiredDocuments}\n            </ReactMarkdown>\n          </AlertWithInfoIcon>\n        </div>\n      )}\n      <div className=\"mt-4 mb-7 text-muted\">\n        <AlertWithInfoIcon variant=\"light\">\n          <ReactMarkdown linkTarget=\"_blank\" className=\"markdown\">\n            {description}\n          </ReactMarkdown>\n        </AlertWithInfoIcon>\n      </div>\n    </fieldset>\n  );\n});\n\nexport default MethodOfSignature;\n","import Icon, { IconType } from \"@edaz/edazkit/Icon\";\nimport { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport { Alert } from \"react-bootstrap\";\nimport { PersistedBase64 } from \"../../../../models/notice\";\n\nconst FilesList: FunctionComponent<{\n  files: PersistedBase64[];\n  removeFile: (file: PersistedBase64) => () => void;\n}> = observer(({ files, removeFile }) => {\n  return (\n    <>\n      {files.map((file: PersistedBase64, index: number) => (\n        <Alert\n          key={`${file.fileName}-${index}`}\n          variant=\"info\"\n          className=\"d-flex justify-content-between align-items-center mb-2 text-shadow-none py-3 font-weight-bold\">\n          <span className=\"text-break pr-3\">{file.fileName}</span>\n          <div>\n            <Icon onClick={removeFile(file)} icon={IconType.Cross} width={12} height={12} style={{ cursor: \"pointer\" }} />\n          </div>\n        </Alert>\n      ))}\n    </>\n  );\n});\n\nexport default FilesList;\n","import { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent, useState } from \"react\";\nimport { Alert } from \"react-bootstrap\";\nimport AlertWithInfoIcon from \"views/common/alertWithInfoIcon/alertWithInfoIcon\";\nimport ReactMarkdown from \"react-markdown\";\n\nconst RejectedFiles: FunctionComponent<{\n  files: File[];\n  allowedFileTypes: string[];\n  translate: (code: string) => string;\n}> = observer(({ files, allowedFileTypes, translate }) => {\n  const [showFileFormats, setFileFormats] = useState(false);\n  if (files.length < 1) {\n    return null;\n  }\n\n  return (\n    <>\n      {files.map((file: File, index: number) => (\n        <Alert\n          key={`${file.name}-${index}`}\n          variant=\"danger\"\n          className=\"d-flex justify-content-between align-items-center mb-2 text-shadow-none py-3 font-weight-bold\">\n          <span className=\"text-break pr-3\">{file.name}</span>\n        </Alert>\n      ))}\n      <AlertWithInfoIcon variant=\"light\">\n        <ReactMarkdown\n          className=\"markdown\"\n          components={{\n            a: ({ node, ...props }) => (\n              <span className=\"text-body link-underline\" style={{ cursor: \"pointer\" }} onClick={() => setFileFormats(true)}>\n                {props.children}\n              </span>\n            ),\n          }}>\n          {translate(\"documentUploader.unsportedFileTypes\")}\n        </ReactMarkdown>\n        {showFileFormats && (\n          <>\n            <div className=\"py-2\">{allowedFileTypes.join(\", \")}</div>\n            <label className=\"text-body link-underline\" style={{ cursor: \"pointer\" }} onClick={() => setFileFormats(false)}>\n              {translate(\"documentUploader.unsportedFileTypesHide\")}\n            </label>\n          </>\n        )}\n      </AlertWithInfoIcon>\n    </>\n  );\n});\n\nexport default RejectedFiles;\n","import Uploader from \"@edaz/edazkit/Uploader\";\nimport { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport Alert from \"react-bootstrap/Alert\";\nimport ExemptionViewModel from \"viewModels/notice/exemption/exemptionViewModel\";\nimport OmissionViewModel from \"viewModels/notice/omission/omissionViewModel\";\nimport LicensePlateChangeViewModel from \"viewModels/notice/licensePlateChange/licensePlateChangeViewModel\";\nimport RefundRequestViewModel from \"viewModels/notice/refundRequest/refundRequestViewModel\";\nimport FilesList from \"./filesList\";\nimport RejectedFiles from \"./rejectedFiles\";\n\nconst DocumentUploader: FunctionComponent<{\n  vm: ExemptionViewModel | OmissionViewModel | LicensePlateChangeViewModel | RefundRequestViewModel;\n  translateKey?: string;\n}> = observer(({ vm, translateKey }) => {\n  const tg = (code: string) =>\n    vm.localizationService.translateGeneral(\n      translateKey ? `documentUploader.${translateKey}.${code}` : `documentUploader.${code}`\n    );\n\n  if (!vm.documentsUploadEnabled) {\n    return null;\n  }\n\n  const filesSizeErrorMessage = vm.filesSizeErrorMessage();\n\n  return (\n    <fieldset>\n      <legend className=\"h3\">{tg(\"title\")}</legend>\n      {filesSizeErrorMessage && (\n        <Alert variant=\"danger\" className=\"is-invalid\">\n          {filesSizeErrorMessage}\n        </Alert>\n      )}\n      {vm.hasToUploadPowerOfAttorney && (\n        <div className=\"mb-7\">\n          <Uploader\n            onDrop={vm.addPowerOfAttorneyFiles}\n            localization={vm.localizationService.translateUploader()}\n            label={tg(\"powerOfAttorney\")}\n            accept={vm.allowedFileTypes}\n            error={vm.powerOfAttorneyErrorMessage()}\n          />\n          <FilesList files={vm.notice._powerOfAttorneyFilesBase64} removeFile={vm.removePowerOfAttorneyFile} />\n          <RejectedFiles\n            files={vm.rejectedPowerOfAttorneyFiles}\n            allowedFileTypes={vm.allowedFileTypes}\n            translate={vm.localizationService.translateGeneral}\n          />\n        </div>\n      )}\n      {vm.hasToUploadTechnicalLicense && (\n        <div className=\"mb-7\">\n          <Uploader\n            onDrop={vm.addTechnicalLicenseFiles}\n            localization={vm.localizationService.translateUploader()}\n            label={tg(\"technicalLicense\")}\n            accept={vm.allowedFileTypes}\n            error={vm.technicalLicenseErrorMessage()}\n          />\n          <FilesList files={vm.notice._technicalLicenseFilesBase64} removeFile={vm.removeTechnicalLicenseFile} />\n          <RejectedFiles\n            files={vm.rejectedTechnicalLicenseFiles}\n            allowedFileTypes={vm.allowedFileTypes}\n            translate={vm.localizationService.translateGeneral}\n          />\n        </div>\n      )}\n    </fieldset>\n  );\n});\n\nexport default DocumentUploader;\n","import { registerView, View, ViewComponent } from \"@frui.ts/views/dist\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { useCallback } from \"react\";\r\nimport * as React from \"react\";\r\nimport { Alert, Col, Form, Row } from \"react-bootstrap\";\r\nimport ExemptionViewModel from \"../../../viewModels/notice/exemption/exemptionViewModel\";\r\nimport ExemptionNotice from \"./notice\";\r\nimport MethodOfSignature from \"../components/methodOfSignature\";\r\nimport Toolbox from \"../components/toolbox\";\r\nimport LoadingModal from \"../../common/loadingModal/loadingModal\";\r\nimport DocumentUploader from \"../components/documentUploader\";\r\nimport ErrorCard from \"views/common/error/errorCard\";\r\nimport LoadingPane from \"../../../controls/loadingPane\";\r\n\r\nconst ExemptionView: ViewComponent<ExemptionViewModel> = observer(({ vm }) => {\r\n  const translate = (value: string) => vm.localizationService.translateGeneral(`exemption.${value}`);\r\n  const formRef = useCallback(node => {\r\n    if (node !== null) {\r\n      vm.formElement = node;\r\n    }\r\n  }, []);\r\n\r\n  return (\r\n    <>\r\n      <View vm={vm.outagesViewModel} />\r\n      <div className=\"bg-white p-3 p-lg-4 p-xl-7 rounded\">\r\n        <Form className=\"p-3 p-lg-4 p-xl-7\" ref={formRef}>\r\n          <ErrorCard message={vm.errorMessage} sticky={true} />\r\n          <ExemptionNotice vm={vm} />\r\n          {vm.loadingData && !vm.vehicleChargingInstructions && (\r\n            <Row className=\"d-flex justify-content-center align-items-center pb-3 pb-lg- pb-xl-3\">\r\n              <Col sm={1} lg=\"auto\" className=\"p-2 spinner-auto\">\r\n                <LoadingPane />\r\n              </Col>\r\n              <Col sm={4} lg=\"auto\" className=\"p-2\">\r\n                <div className=\"d-flex justify-content-center align-items-center\">{translate(\"loadingInstruction\")}</div>\r\n              </Col>\r\n            </Row>\r\n          )}\r\n          {vm.vehicleChargingInstructions &&\r\n            vm.vehicleChargingInstructions.warningReasons?.map(instruction => (\r\n              <Alert key={instruction} variant=\"warning\">\r\n                <strong className=\"font-size-sm\">\r\n                  {vm.translateWarningReason(instruction, vm.vehicleChargingInstructions?.possibleExemptionReasonIds)}\r\n                </strong>\r\n              </Alert>\r\n            ))}\r\n          <View vm={vm.applicantPersonViewModel} />\r\n          <View vm={vm.operatorInputViewModel} />\r\n          <MethodOfSignature vm={vm} />\r\n          <DocumentUploader vm={vm} />\r\n          {vm.exemptionApplicationProduction &&\r\n            vm.exemptionApplicationProduction.warningReasons?.map(instruction => (\r\n              <Alert key={instruction} variant=\"warning\">\r\n                <strong className=\"font-size-sm\">{vm.translateWarningReason(instruction)}</strong>\r\n              </Alert>\r\n            ))}\r\n          <Toolbox vm={vm} />\r\n          <LoadingModal translate={vm.translateGeneral} isVisible={vm.showLoadingModal} />\r\n        </Form>\r\n      </div>\r\n    </>\r\n  );\r\n});\r\n\r\nregisterView(ExemptionView, ExemptionViewModel);\r\n","import { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport { Form } from \"react-bootstrap\";\nimport LicensePlateChangeViewModel from \"../../../../viewModels/notice/licensePlateChange/licensePlateChangeViewModel\";\nimport CountryIdInput from \"../../../common/countryIdInput/countryIdInput\";\nimport LicensePlateInput from \"../../../common/licensePlateInput/licensePlateInput\";\n\nconst LicensePlateChangeNotice: FunctionComponent<{\n  vm: LicensePlateChangeViewModel;\n}> = observer(({ vm }) => {\n  const translate = (translateKey?: string) => (code: string) =>\n    vm.localizationService.translateAttribute(translateKey ? `orderItem.${translateKey}` : \"orderItem\", code);\n\n  return (\n    <>\n      <div>\n        <h1 className=\"mb-0 h3\">{vm.translateGeneral(\"title\")}</h1>\n        <span>{vm.translateGeneral(\"reason\")}</span>\n      </div>\n      <div className=\"mt-4\">\n        <>\n          <Form.Row className=\"align-items-baseline\">\n            <CountryIdInput vm={vm.originalVehicleInfoViewModel} translateKey={\"old\"} />\n            <CountryIdInput\n              vm={vm.newVehicleInfoViewModel}\n              translateKey={\"new\"}\n              errorMessage={vm.newVehicleErrorMessage}\n              labelId={\"new-vehicle-country-label\"}\n            />\n          </Form.Row>\n          <Form.Row className=\"align-items-baseline\">\n            <LicensePlateInput\n              id=\"notice-vehicle-license-plate-input\"\n              target={vm.notice.vehicle}\n              property=\"licensePlate\"\n              countryCode={vm.originalVehicleInfoViewModel.countryCode}\n              countryId={vm.notice.vehicle?.countryId}\n              translate={translate(\"old\")}\n              locale={vm.localizationService.locale}\n            />\n            <LicensePlateInput\n              id=\"notice-license-plate-input\"\n              target={vm.notice}\n              property=\"licensePlate\"\n              errorMessage={vm.newVehicleErrorMessage}\n              countryCode={vm.newVehicleInfoViewModel.countryCode}\n              countryId={vm.notice.countryId}\n              translate={translate(\"new\")}\n              locale={vm.localizationService.locale}\n            />\n          </Form.Row>\n        </>\n      </div>\n    </>\n  );\n});\n\nexport default LicensePlateChangeNotice;\n","import { registerView, View, ViewComponent } from \"@frui.ts/views/dist\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { useCallback } from \"react\";\r\nimport * as React from \"react\";\r\nimport { Col, Form, Row } from \"react-bootstrap\";\r\nimport MethodOfSignature from \"views/notice/components/methodOfSignature\";\r\nimport Toolbox from \"../components/toolbox\";\r\nimport LoadingModal from \"../../common/loadingModal/loadingModal\";\r\nimport ErrorCard from \"../../common/error/errorCard\";\r\nimport LicensePlateChangeViewModel from \"../../../viewModels/notice/licensePlateChange/licensePlateChangeViewModel\";\r\nimport LicensePlateChangeNotice from \"./notice\";\r\nimport DocumentUploader from \"../components/documentUploader\";\r\nimport { Alert } from \"react-bootstrap\";\r\nimport ReactMarkdown from \"react-markdown\";\r\nimport LoadingPane from \"../../../controls/loadingPane\";\r\n\r\nconst LicensePlateChangeView: ViewComponent<LicensePlateChangeViewModel> = observer(({ vm }) => {\r\n  const translate = (value: string) => vm.localizationService.translateGeneral(`licensePlateChange.${value}`);\r\n  const formRef = useCallback(node => {\r\n    if (node !== null) {\r\n      vm.formElement = node;\r\n    }\r\n  }, []);\r\n\r\n  return (\r\n    <>\r\n      <View vm={vm.outagesViewModel} />\r\n      <div className=\"bg-white p-3 p-lg-4 p-xl-7 rounded\">\r\n        <Form className=\"p-3 p-lg-4 p-xl-7\" ref={formRef}>\r\n          <ErrorCard message={vm.errorMessage} sticky={true} />\r\n          <LicensePlateChangeNotice vm={vm} />\r\n          {vm.loadingData && !vm.vehicleChargingInstructions && (\r\n            <Row className=\"d-flex justify-content-center align-items-center pb-3 pb-lg- pb-xl-3\">\r\n              <Col sm={1} lg=\"auto\" className=\"p-2 spinner-auto\">\r\n                <LoadingPane />\r\n              </Col>\r\n              <Col sm={4} lg=\"auto\" className=\"p-2\">\r\n                <div className=\"d-flex justify-content-center align-items-center\">{translate(\"loadingInstruction\")}</div>\r\n              </Col>\r\n            </Row>\r\n          )}\r\n          {vm.vehicleChargingInstructions &&\r\n            vm.vehicleChargingInstructions.warningReasons?.map(instruction => (\r\n              <Alert key={instruction} variant=\"warning\">\r\n                <strong className=\"font-size-sm\">\r\n                  {vm.translateWarningReason(instruction, vm.vehicleChargingInstructions?.possibleExemptionReasonIds)}\r\n                </strong>\r\n              </Alert>\r\n            ))}\r\n          <View vm={vm.applicantPersonViewModel} />\r\n          <MethodOfSignature vm={vm} />\r\n          <DocumentUploader vm={vm} translateKey={\"licensePlateChange\"} />\r\n          {vm.vehicleChangeApplicationProduction &&\r\n            !vm.vehicleChangeApplicationProduction?.rejectionReason &&\r\n            vm.vehicleChangeApplicationProduction.warningReasons?.map(instruction => (\r\n              <Alert key={instruction} variant=\"warning\">\r\n                <ReactMarkdown linkTarget=\"_blank\">{vm.translateWarningReason(instruction)}</ReactMarkdown>\r\n              </Alert>\r\n            ))}\r\n          {vm.vehicleChangeApplicationProduction?.rejectionReason && (\r\n            <Alert key={vm.vehicleChangeApplicationProduction.rejectionReason} variant=\"danger\">\r\n              <strong className=\"font-size-sm\">\r\n                {vm.translateWarningReason(vm.vehicleChangeApplicationProduction.rejectionReason)}\r\n              </strong>\r\n            </Alert>\r\n          )}\r\n          <Toolbox vm={vm} />\r\n          <LoadingModal translate={vm.translateGeneral} isVisible={vm.showLoadingModal} />\r\n        </Form>\r\n      </div>\r\n    </>\r\n  );\r\n});\r\n\r\nregisterView(LicensePlateChangeView, LicensePlateChangeViewModel);\r\n","import { registerView, View, ViewComponent } from \"@frui.ts/views\";\nimport { observer, Observer } from \"mobx-react-lite\";\nimport * as React from \"react\";\nimport OmissionNoticeViewModel from \"viewModels/notice/omission/omissionNoticeViewModel\";\nimport ExemptionNoticeViewModel from \"../../viewModels/notice/exemption/exemptionNoticeViewModel\";\nimport LicensePlateChangeNoticeViewModel from \"../../viewModels/notice/licensePlateChange/licensePlateChangeNoticeViewModel\";\nimport RefundRequestNoticeViewModel from \"../../viewModels/notice/refundRequest/refundRequestNoticeViewModel\";\n\nconst NoticeView: ViewComponent<\n  OmissionNoticeViewModel | LicensePlateChangeNoticeViewModel | ExemptionNoticeViewModel | RefundRequestNoticeViewModel\n> = observer(({ vm }) => {\n  return <Observer>{() => <View vm={vm.activeChild} />}</Observer>;\n});\n\nregisterView(NoticeView, OmissionNoticeViewModel);\nregisterView(NoticeView, LicensePlateChangeNoticeViewModel);\nregisterView(NoticeView, ExemptionNoticeViewModel);\nregisterView(NoticeView, RefundRequestNoticeViewModel);\n","import { registerView, View, ViewComponent } from \"@frui.ts/views/dist\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { useCallback } from \"react\";\r\nimport * as React from \"react\";\r\nimport { Form } from \"react-bootstrap\";\r\nimport OmissionViewModel from \"viewModels/notice/omission/omissionViewModel\";\r\nimport MethodOfSignature from \"views/notice/components/methodOfSignature\";\r\nimport Toolbox from \"../components/toolbox\";\r\nimport LoadingModal from \"../../common/loadingModal/loadingModal\";\r\nimport ErrorCard from \"../../common/error/errorCard\";\r\nimport DocumentUploader from \"../components/documentUploader\";\r\nimport { Alert } from \"react-bootstrap\";\r\n\r\nconst OmissionView: ViewComponent<OmissionViewModel> = observer(({ vm }) => {\r\n  const tg = (code: string) => vm.localizationService.translateGeneral(`omission.${code}`);\r\n  const formRef = useCallback(node => {\r\n    if (node !== null) {\r\n      vm.formElement = node;\r\n    }\r\n  }, []);\r\n\r\n  return (\r\n    <>\r\n      <View vm={vm.outagesViewModel} />\r\n      <div className=\"bg-white p-3 p-lg-4 p-xl-7 rounded\">\r\n        <Form className=\"p-3 p-lg-4 p-xl-7\" ref={formRef}>\r\n          <ErrorCard message={vm.errorMessage} sticky={true} />\r\n          <div className=\"d-flex flex-row flex-wrap justify-content-between align-items-center\">\r\n            <h3>{tg(\"title\")}</h3>\r\n          </div>\r\n          <View vm={vm.vehicleInfoViewModel} />\r\n          <View vm={vm.applicantPersonViewModel} />\r\n          <View vm={vm.operatorViewModel} />\r\n          <MethodOfSignature vm={vm} />\r\n          <DocumentUploader vm={vm} />\r\n          {vm.cancellationApplicationProduction?.rejectionReason && (\r\n            <Alert key={vm.cancellationApplicationProduction.rejectionReason} variant=\"danger\">\r\n              <strong className=\"font-size-sm\">\r\n                {vm.translateWarningReason(vm.cancellationApplicationProduction.rejectionReason)}\r\n              </strong>\r\n            </Alert>\r\n          )}\r\n          <Toolbox vm={vm} />\r\n          <LoadingModal translate={vm.translateGeneral} isVisible={vm.showLoadingModal} />\r\n        </Form>\r\n      </div>\r\n    </>\r\n  );\r\n});\r\n\r\nregisterView(OmissionView, OmissionViewModel);\r\n","import { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport { Form, Col } from \"react-bootstrap\";\nimport AdvancedSelect from \"controls/advancedSelect\";\nimport RefundRequestViewModel from \"../../../viewModels/notice/refundRequest/refundRequestViewModel\";\nimport { Input } from \"@frui.ts/bootstrap\";\nimport CustomerRefundApplicationReason from \"../../../entities/customerRefundApplicationReason\";\n\nconst RefundReasonSelect: FunctionComponent<{\n  vm: RefundRequestViewModel;\n}> = observer(({ vm }) => {\n  const labelId = \"refund-reason-label\";\n  const otherLabelId = \"refund-reason-other-label\";\n\n  return (\n    <>\n      <Form.Row>\n        <Form.Group as={Col} sm={12}>\n          <Form.Label id={labelId}>{vm.translateAttribute(\"reason\")}</Form.Label>\n          <AdvancedSelect\n            target={vm.notice}\n            property=\"reason\"\n            items={vm.reasons}\n            isSearchable={false}\n            aria-labelledby={labelId}\n            mode=\"key\"\n            formatOptionLabel={(data: any) => {\n              return <span dangerouslySetInnerHTML={{ __html: data.label }} />;\n            }}\n          />\n        </Form.Group>\n      </Form.Row>\n      {vm.notice.reason === CustomerRefundApplicationReason.Other && (\n        <Form.Row>\n          <Form.Group as={Col} sm={12}>\n            <Form.Label id={otherLabelId}>{vm.translateAttribute(\"otherReasonText\")}</Form.Label>\n            <Input target={vm.notice} property=\"otherReasonText\" required aria-labelledby={otherLabelId} maxLength={500} />\n          </Form.Group>\n        </Form.Row>\n      )}\n    </>\n  );\n});\n\nexport default RefundReasonSelect;\n","import { observer } from \"mobx-react-lite\";\nimport React, { FunctionComponent } from \"react\";\nimport { Form } from \"react-bootstrap\";\nimport { Input } from \"@frui.ts/bootstrap\";\nimport RefundRequestViewModel from \"../../../viewModels/notice/refundRequest/refundRequestViewModel\";\nimport { RadioArray } from \"../../../controls/radioArray\";\nimport ReactMarkdown from \"react-markdown\";\nimport AlertWithInfoIcon from \"../../common/alertWithInfoIcon/alertWithInfoIcon\";\nimport CustomerRefundApplicationOrderSourceType from \"../../../entities/customerRefundApplicationOrderSourceType\";\n\nconst OrderSourceTypeView: FunctionComponent<{\n  vm: RefundRequestViewModel;\n}> = observer(({ vm }) => {\n  const t = vm.translateAttribute;\n  const bankAccountInputId = \"request-refund-bank-account\";\n\n  return (\n    <fieldset>\n      <>\n        <Form.Group className=\"mb-3\">\n          <RadioArray\n            custom\n            label={\n              <ReactMarkdown className=\"markdown\">\n                {t(`chargeOrderSourceType.${CustomerRefundApplicationOrderSourceType.Eshop}`)}\n              </ReactMarkdown>\n            }\n            target={vm.notice}\n            property=\"chargeOrderSourceType\"\n            isNumeric={false}\n            id={CustomerRefundApplicationOrderSourceType.Eshop}\n            option={CustomerRefundApplicationOrderSourceType.Eshop}\n          />\n        </Form.Group>\n        <Form.Group className=\"mb-3\">\n          <RadioArray\n            custom\n            label={\n              <ReactMarkdown className=\"markdown\">\n                {t(`chargeOrderSourceType.${CustomerRefundApplicationOrderSourceType.Kiosk}`)}\n              </ReactMarkdown>\n            }\n            target={vm.notice}\n            property=\"chargeOrderSourceType\"\n            isNumeric={false}\n            id={CustomerRefundApplicationOrderSourceType.Kiosk}\n            option={CustomerRefundApplicationOrderSourceType.Kiosk}\n          />\n        </Form.Group>\n        <Form.Group className=\"mb-3\">\n          <RadioArray\n            custom\n            label={\n              <ReactMarkdown className=\"markdown\">\n                {t(`chargeOrderSourceType.${CustomerRefundApplicationOrderSourceType.Salespoint}`)}\n              </ReactMarkdown>\n            }\n            target={vm.notice}\n            property=\"chargeOrderSourceType\"\n            isNumeric={false}\n            id={CustomerRefundApplicationOrderSourceType.Salespoint}\n            option={CustomerRefundApplicationOrderSourceType.Salespoint}\n          />\n        </Form.Group>\n      </>\n      {vm.notice.chargeOrderSourceType !== CustomerRefundApplicationOrderSourceType.Unknown && (\n        <div className=\"mt-4 mb-7 text-muted\">\n          <AlertWithInfoIcon variant=\"info\" className=\"font-weight-bold\">\n            {t(`chargeOrderSourceTypeNotice.${vm.notice.chargeOrderSourceType}`)}\n          </AlertWithInfoIcon>\n        </div>\n      )}\n      {vm.notice.chargeOrderSourceType === CustomerRefundApplicationOrderSourceType.Salespoint && (\n        <Form.Group className=\"mb-3\">\n          <Form.Label id={bankAccountInputId}>{t(\"bankAccount\")}</Form.Label>\n          <Input target={vm.notice} property=\"bankAccount\" aria-labelledby={bankAccountInputId} />\n        </Form.Group>\n      )}\n    </fieldset>\n  );\n});\n\nexport default OrderSourceTypeView;\n","import { registerView, View, ViewComponent } from \"@frui.ts/views/dist\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { useCallback } from \"react\";\r\nimport * as React from \"react\";\r\nimport { Alert, Form } from \"react-bootstrap\";\r\nimport ReactMarkdown from \"react-markdown\";\r\nimport MethodOfSignature from \"views/notice/components/methodOfSignature\";\r\nimport Toolbox from \"../components/toolbox\";\r\nimport LoadingModal from \"../../common/loadingModal/loadingModal\";\r\nimport ErrorCard from \"../../common/error/errorCard\";\r\nimport DocumentUploader from \"../components/documentUploader\";\r\nimport RefundRequestViewModel from \"../../../viewModels/notice/refundRequest/refundRequestViewModel\";\r\nimport AlertWithInfoIcon from \"../../common/alertWithInfoIcon/alertWithInfoIcon\";\r\nimport RefundReasonSelect from \"./refundReasonView\";\r\nimport OrderSourceTypeView from \"./orderSourceTypeView\";\r\n\r\nconst RefundRequestView: ViewComponent<RefundRequestViewModel> = observer(({ vm }) => {\r\n  const formRef = useCallback(node => {\r\n    if (node !== null) {\r\n      vm.formElement = node;\r\n    }\r\n  }, []);\r\n\r\n  const refundFeeInformation = vm.translateGeneral(\"refundFeeInformation\").replace(\"%link%\", vm.termsAgreementDocumentPath);\r\n\r\n  return (\r\n    <>\r\n      <View vm={vm.outagesViewModel} />\r\n      <div className=\"bg-white p-3 p-lg-4 p-xl-7 rounded\">\r\n        <Form className=\"p-3 p-lg-4 p-xl-7\" ref={formRef}>\r\n          <div>\r\n            <h1 className=\"h3\">{vm.translateGeneral(\"title\")}</h1>\r\n          </div>\r\n          <ErrorCard message={vm.errorMessage} sticky={true} />\r\n          <View vm={vm.vehicleInfoViewModel} />\r\n\r\n          <RefundReasonSelect vm={vm} />\r\n\r\n          <OrderSourceTypeView vm={vm} />\r\n          <View vm={vm.applicantPersonViewModel} />\r\n          <div className=\"mb-7\">\r\n            <AlertWithInfoIcon className=\"font-weight-bold\">\r\n              <ReactMarkdown linkTarget=\"_blank\">{refundFeeInformation}</ReactMarkdown>\r\n            </AlertWithInfoIcon>\r\n          </div>\r\n          <MethodOfSignature vm={vm} />\r\n          <DocumentUploader vm={vm} translateKey={\"refundRequest\"} />\r\n          {vm.customerRefundApplicationProduction &&\r\n            !vm.customerRefundApplicationProduction?.rejectionReason &&\r\n            vm.customerRefundApplicationProduction.warningReasons?.map(instruction => (\r\n              <Alert key={instruction} variant=\"warning\">\r\n                <ReactMarkdown linkTarget=\"_blank\">{vm.translateWarningReason(instruction)}</ReactMarkdown>\r\n              </Alert>\r\n            ))}\r\n          {vm.customerRefundApplicationProduction && vm.customerRefundApplicationProduction.rejectionReason && (\r\n            <Alert key={vm.customerRefundApplicationProduction.rejectionReason} variant=\"danger\">\r\n              <strong className=\"font-size-sm\">\r\n                {vm.translateWarningReason(vm.customerRefundApplicationProduction.rejectionReason)}\r\n              </strong>\r\n            </Alert>\r\n          )}\r\n          <Toolbox vm={vm} />\r\n          <LoadingModal translate={vm.translateGeneral} isVisible={vm.showLoadingModal} />\r\n        </Form>\r\n      </div>\r\n    </>\r\n  );\r\n});\r\n\r\nregisterView(RefundRequestView, RefundRequestViewModel);\r\n","import React from \"react\";\nimport { registerView, View, ViewComponent } from \"@frui.ts/views\";\nimport OutagesWidgetViewModel from \"../../viewModels/outages/outagesWidgetViewModel\";\nimport { observer } from \"mobx-react-lite\";\n\nconst OutagesWidgetView: ViewComponent<OutagesWidgetViewModel> = observer(({ vm }) => {\n  return <View vm={vm.activeChild} />;\n});\n\nregisterView(OutagesWidgetView, OutagesWidgetViewModel);\n","import { registerView, ViewComponent, View, preventDefault } from \"@frui.ts/views\";\r\nimport Button from \"@edaz/edazkit/Button/index\";\r\nimport { observer, Observer } from \"mobx-react-lite\";\r\nimport { useCallback } from \"react\";\r\nimport * as React from \"react\";\r\nimport { Form, Row, Col } from \"react-bootstrap\";\r\nimport PaymentValidationViewModel from \"viewModels/paymentValidation/paymentValidationViewModel\";\r\nimport LoadingPane from \"../../controls/loadingPane\";\r\nimport ErrorCard from \"../common/error/errorCard\";\r\nimport LoaderOverlay from \"@edaz/edazkit/LoaderOverlay\";\r\n\r\nconst PaymentValidationView: ViewComponent<PaymentValidationViewModel> = observer(({ vm }) => {\r\n  const tg = (code: string) => vm.localizationService.translateGeneral(`validation.${code}`);\r\n  const formRef = useCallback(node => {\r\n    if (node !== null) {\r\n      vm.childElement = node;\r\n    }\r\n  }, []);\r\n\r\n  let child;\r\n  if (vm.activeChild) {\r\n    child = <Observer>{() => <View vm={vm.activeChild} />}</Observer>;\r\n  } else {\r\n    child = (\r\n      <Form onSubmit={preventDefault(vm.validate)}>\r\n        <View vm={vm.vehicleInfoViewModel} />\r\n        <Row>\r\n          <Col md={6}>\r\n            <Button type=\"submit\" disabled={vm.busyWatcher.isBusy} block={true}>\r\n              {tg(\"validate\")}\r\n            </Button>\r\n          </Col>\r\n        </Row>\r\n      </Form>\r\n    );\r\n  }\r\n\r\n  return (\r\n    <LoaderOverlay loading={vm.busyWatcher.isBusy} loader={<LoadingPane />}>\r\n      {vm.errorMessage && <ErrorCard message={tg(vm.errorMessage)} />}\r\n      <h3 className=\"text-center text-lg-left\">{tg(\"title_full\")}</h3>\r\n      <p className={\"mb-4 pr-3 pr-md-7\"} dangerouslySetInnerHTML={{ __html: tg(\"description\") }} />\r\n      <div ref={formRef}>{child}</div>\r\n    </LoaderOverlay>\r\n  );\r\n});\r\n\r\nregisterView(PaymentValidationView, PaymentValidationViewModel);\r\n","import React from \"react\";\nimport { FunctionComponent } from \"react\";\nimport { Jumbotron } from \"react-bootstrap\";\nimport { observer } from \"mobx-react-lite\";\n\ninterface ValidationCardProps {\n  title: React.ReactNode;\n  badges?: React.ReactNode;\n}\n\nconst ValidationCard: FunctionComponent<ValidationCardProps> = observer(props => {\n  const { badges, title, children } = props;\n  return (\n    <Jumbotron className=\"col-12 py-4 mb-3\">\n      <div className=\"d-flex flex-row flex-wrap justify-content-between align-items-center mb-0\">\n        <h4 className=\"mb-1 mr-3\">{title}</h4>\n        <div className=\"d-flex flex-row align-content-end\">{badges}</div>\n      </div>\n      {children && <hr className=\"mt-4 mb-4\" />}\n      {children}\n    </Jumbotron>\n  );\n});\n\nexport default ValidationCard;\n","import { FunctionComponent } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Badge } from \"react-bootstrap\";\r\nimport ValidationSummaryViewModel, {\r\n  ChargeRegistrationStatus,\r\n} from \"../../viewModels/paymentValidation/validationSummaryViewModel\";\r\nimport * as React from \"react\";\r\nimport Icon, { IconType } from \"@edaz/edazkit/Icon\";\r\nimport ValidationCard from \"./validationCard\";\r\nimport RegisteredChargeResponse from \"entities/registeredChargeResponse\";\r\nimport Tooltip from \"controls/tooltip\";\r\nimport { getTimeZoneLabel } from \"utils/dateUtils\";\r\nimport { isMobile } from \"react-device-detect\";\r\n\r\nexport interface ChargeCardProps {\r\n  charge: RegisteredChargeResponse;\r\n  vm: ValidationSummaryViewModel;\r\n}\r\n\r\nconst ChargeCard: FunctionComponent<ChargeCardProps> = props => {\r\n  const { vm, charge } = props;\r\n  const renderDateWithTimeZone = (charge: RegisteredChargeResponse) => {\r\n    return !vm.isDifferentTimeZone ? (\r\n      `${vm.ta(\"valid\")} ${vm.localizationService.formatDateTime(\r\n        new Date(charge.validSince)\r\n      )} – ${vm.localizationService.formatDateTime(new Date(charge.validUntil))}`\r\n    ) : (\r\n      <>\r\n        <span>{`${vm.ta(\"valid\")} `}</span>\r\n        <span>{vm.localizationService.formatDateTime(new Date(charge.validSince))}</span>\r\n        <Tooltip\r\n          id=\"cet-tooltip\"\r\n          placement={isMobile ? \"bottom\" : \"right\"}\r\n          tooltip={vm.localizationService.translateGeneral(\"timezoneTooltip\")}\r\n          trigger={[\"hover\", \"focus\"]}>\r\n          <span style={{ marginLeft: 4, textDecoration: \"underline\", textDecorationStyle: \"dotted\" }}>\r\n            {getTimeZoneLabel(new Date(charge.validSince))}\r\n          </span>\r\n        </Tooltip>\r\n        <span>{\" – \"}</span>\r\n        <span>{vm.localizationService.formatDateTime(new Date(charge.validUntil))}</span>\r\n        <Tooltip\r\n          id=\"cet-tooltip\"\r\n          placement={isMobile ? \"bottom\" : \"right\"}\r\n          tooltip={vm.localizationService.translateGeneral(\"timezoneTooltip\")}\r\n          trigger={[\"hover\", \"focus\"]}>\r\n          <span style={{ marginLeft: 4, textDecoration: \"underline\", textDecorationStyle: \"dotted\" }}>\r\n            {getTimeZoneLabel(new Date(charge.validUntil))}\r\n          </span>\r\n        </Tooltip>\r\n      </>\r\n    );\r\n  };\r\n\r\n  let iconSize = 14;\r\n  if (window.innerWidth >= 768) {\r\n    iconSize = 20;\r\n  }\r\n\r\n  let notice;\r\n  if (charge.isCurrentlyValid) {\r\n    notice = vm.getChargeExpiration(charge);\r\n  } else {\r\n    notice = vm.getChargeValidIn(charge);\r\n  }\r\n\r\n  const badges = (\r\n    <>\r\n      {vm.isChargeEco(charge) && (\r\n        <Badge className=\"mr-1 mb-1 badge-lg\" pill={false} variant=\"success-inverted\">\r\n          <Icon icon={IconType.Leaf} width={iconSize} height={iconSize} /> {vm.translate(\"eco\")}\r\n        </Badge>\r\n      )}\r\n      <Badge className=\"mb-1 badge-lg\" pill={false} variant={charge.isCurrentlyValid ? \"success-inverted\" : \"light\"}>\r\n        {vm.ta(charge.isCurrentlyValid ? \"valid\" : \"future\")}\r\n      </Badge>\r\n    </>\r\n  );\r\n\r\n  return (\r\n    <ValidationCard title={vm.vehicleInfo} badges={badges}>\r\n      {charge.isCurrentlyValid && (\r\n        <h5 className={\"mt-2 text-success font-weight-normal\"}>{vm.ta(`description.${ChargeRegistrationStatus.valid}`)}</h5>\r\n      )}\r\n      <div>{renderDateWithTimeZone(charge)}</div>\r\n      <div className=\"text-muted\">{notice}</div>\r\n    </ValidationCard>\r\n  );\r\n};\r\n\r\nexport default observer(ChargeCard);\r\n","import { FunctionComponent } from \"react\";\nimport ValidationSummaryViewModel, {\n  ChargeRegistrationStatus,\n} from \"../../viewModels/paymentValidation/validationSummaryViewModel\";\nimport { Badge } from \"react-bootstrap\";\nimport { observer } from \"mobx-react-lite\";\nimport * as React from \"react\";\nimport ValidationCard from \"./validationCard\";\n\nexport interface ExemptionCardProps {\n  vm: ValidationSummaryViewModel;\n}\n\nconst ExemptionCard: FunctionComponent<ExemptionCardProps> = props => {\n  const { vm } = props;\n\n  if (!vm.hasExemption) {\n    return null;\n  }\n\n  return (\n    <ValidationCard\n      title={vm.vehicleInfo}\n      badges={\n        <Badge className=\"badge-lg mb-1\" pill={false} variant=\"info-inverted\">\n          {vm.ta(\"exempted\")}\n        </Badge>\n      }>\n      {vm.validCharges.length === 0 && (\n        <>\n          <h5 className=\"mt-2 text-success font-weight-normal\">{vm.ta(`description.${ChargeRegistrationStatus.exempted}`)}</h5>\n          <span className=\"text-muted\">{vm.ta(`note.${ChargeRegistrationStatus.exempted}`)}</span>\n        </>\n      )}\n    </ValidationCard>\n  );\n};\n\nexport default observer(ExemptionCard);\n","import * as React from \"react\";\nimport { FunctionComponent } from \"react\";\nimport ValidationSummaryViewModel, {\n  ChargeRegistrationStatus,\n} from \"../../viewModels/paymentValidation/validationSummaryViewModel\";\nimport { observer } from \"mobx-react-lite\";\nimport { Badge } from \"react-bootstrap\";\nimport { IconType } from \"@edaz/edazkit/Icon\";\nimport Button from \"@edaz/edazkit/Button/index\";\nimport ValidationCard from \"./validationCard\";\nimport classNames from \"classnames\";\n\nexport interface NoRegistrationCardProps {\n  vm: ValidationSummaryViewModel;\n}\n\nconst NoRegistrationCard: FunctionComponent<NoRegistrationCardProps> = observer(props => {\n  const { vm } = props;\n  const status = vm.status;\n\n  if (![ChargeRegistrationStatus.invalid, ChargeRegistrationStatus.possibleExempted].includes(status)) {\n    return null;\n  }\n\n  let badges;\n  if (status === ChargeRegistrationStatus.invalid) {\n    badges = (\n      <Badge className=\"badge-lg mb-1\" pill={false} variant=\"danger-inverted\">\n        {vm.ta(\"invalid\")}\n      </Badge>\n    );\n  }\n\n  return (\n    <ValidationCard title={vm.vehicleInfo} badges={badges}>\n      <h5\n        className={classNames(\"mt-2\", \"font-weight-normal\", {\n          \"text-danger\": status === ChargeRegistrationStatus.invalid,\n          \"text-info\": status === ChargeRegistrationStatus.possibleExempted,\n        })}>\n        {vm.ta(`description.${status}`)}\n      </h5>\n      {status === ChargeRegistrationStatus.possibleExempted &&\n        vm.possibleExemptionReason &&\n        vm.possibleExemptionReason.map((reason, index) => {\n          return (\n            <div key={index} className=\"text-muted\">\n              {vm.ta(`note.${vm.status}.${reason}`)}\n            </div>\n          );\n        })}\n      {vm.upcomingCharges.length > 0 && (\n        <Button iconLeft={IconType.ShoppingCart} iconLeftAlign={\"right\"} onClick={vm.buy} className={\"d-block mt-2\"} block>\n          {vm.translate(\"buy\")}\n        </Button>\n      )}\n    </ValidationCard>\n  );\n});\n\nexport default NoRegistrationCard;\n","import { registerView, ViewComponent } from \"@frui.ts/views\";\nimport Button from \"@edaz/edazkit/Button\";\nimport { IconType } from \"@edaz/edazkit/Icon\";\nimport { observer } from \"mobx-react-lite\";\nimport * as React from \"react\";\nimport { Col, Row } from \"react-bootstrap\";\nimport ValidationSummaryViewModel from \"viewModels/paymentValidation/validationSummaryViewModel\";\nimport ChargeCard from \"./chargeCard\";\nimport ExemptionCard from \"./exemptionCard\";\nimport NoRegistrationCard from \"./noRegistrationCard\";\n\nconst ValidationSummaryView: ViewComponent<ValidationSummaryViewModel> = observer(({ vm }) => {\n  const showBuyButton = vm.buyEnabled && !vm.upcomingCharges.length;\n\n  return (\n    <>\n      <ExemptionCard vm={vm} />\n      <NoRegistrationCard vm={vm} />\n      {vm.validCharges.map((validCharge, index) => (\n        <ChargeCard key={index} vm={vm} charge={validCharge} />\n      ))}\n      {vm.upcomingCharges.length > 0 && <h5 className=\"text-muted mt-5\">{vm.translate(\"upcomingCharges\")}</h5>}\n      {vm.upcomingCharges.map((upcomingCharge, index) => (\n        <ChargeCard key={index} vm={vm} charge={upcomingCharge} />\n      ))}\n      <Row>\n        <Col sm={showBuyButton ? true : 6} lg={showBuyButton ? 12 : \"auto\"} xl={showBuyButton ? true : 6}>\n          <Button onClick={vm.next} className={\"d-block mt-2 white-space-wrap-lg white-space-nowrap-xl \"} block={true}>\n            {vm.translate(\"next\")}\n          </Button>\n        </Col>\n        {showBuyButton && (\n          <Col sm={true}>\n            <Button iconLeft={IconType.ShoppingCart} iconLeftAlign={\"right\"} onClick={vm.buy} className={\"d-block mt-2\"} block>\n              {vm.translate(\"buy\")}\n            </Button>\n          </Col>\n        )}\n      </Row>\n    </>\n  );\n});\n\nregisterView(ValidationSummaryView, ValidationSummaryViewModel);\n","import React from \"react\";\nimport type { ViewComponent } from \"@frui.ts/views\";\nimport { registerView } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport DotLoader from \"../common/dotLoader\";\nimport { chargeTypeIcon } from \"utils/chargeTypeIcon\";\nimport styles from \"./priceListView.module.scss\";\nimport PriceListViewModel from \"viewModels/common/priceListViewModel\";\nimport ReactMarkdown from \"react-markdown\";\nimport replaceLinkHost from \"utils/replaceLinkHost\";\n\nexport const PriceListView: ViewComponent<PriceListViewModel> = observer(({ vm }) => {\n  if (!vm.isInitialized) {\n    return (\n      <div className=\"text-center\">\n        <DotLoader />\n      </div>\n    );\n  }\n  const chargeTypePrices = vm.chargeTypesWithPrices();\n\n  return (\n    <div>\n      <h3 className=\"mb-6\">{vm.translateTitle}</h3>\n      <div className={styles.priceListWrapper}>\n        <div className={styles.table}>\n          {vm.fuelTypes.map(item => (\n            <div key={item.id} className={styles.tableHeader}>\n              <span>{vm.translateFuelType(item.fuelType)}</span>\n              {vm.fuelTypeDescription(item.fuelType) && (\n                <span className={vm.isDescriptionTooLong(item.fuelType) ? styles.small : styles.thin}>\n                  <ReactMarkdown className=\"markdown\">{replaceLinkHost(vm.fuelTypeDescription(item.fuelType)!)}</ReactMarkdown>\n                </span>\n              )}\n            </div>\n          ))}\n        </div>\n        <div className={styles.priceListItems}>\n          {chargeTypePrices.map(chargeTypePrice => (\n            <div key={chargeTypePrice.id} className={styles.priceListItem}>\n              <div className={styles.imageWrapper}>\n                <img className={styles.img} src={chargeTypeIcon(chargeTypePrice.validFor, vm.isCSLocale)} />\n              </div>\n              {chargeTypePrice.prices.map(item => (\n                <div key={item.id} className={styles.priceWrapper}>\n                  <div className={styles.priceHeader}>\n                    <span>{vm.translateFuelType(item.fuelType)}</span>\n                    {vm.fuelTypeDescription(item.fuelType) && (\n                      <span className={vm.isDescriptionTooLong(item.fuelType) ? styles.small : styles.thin}>\n                        <ReactMarkdown className=\"markdown\">\n                          {replaceLinkHost(vm.fuelTypeDescription(item.fuelType)!)}\n                        </ReactMarkdown>\n                      </span>\n                    )}\n                  </div>\n                  <div className={styles.price}>{vm.formatPrice(item.price)}</div>\n                </div>\n              ))}\n            </div>\n          ))}\n        </div>\n      </div>\n    </div>\n  );\n});\n\nregisterView(PriceListView, PriceListViewModel);\n","import React from \"react\";\nimport { observer, Observer } from \"mobx-react-lite\";\nimport { registerView, View, ViewComponent } from \"@frui.ts/views\";\nimport RootViewModel from \"viewModels/rootViewModel\";\nimport PaymentValidationViewModel from \"../viewModels/paymentValidation/paymentValidationViewModel\";\nimport TradingPlacesViewModel from \"../viewModels/tradingPlaces/tradingPlacesViewModel\";\nimport OutagesWidgetViewModel from \"../viewModels/outages/outagesWidgetViewModel\";\nimport ChargeTypesViewModel from \"../viewModels/chargeTypes/chargeTypesViewModel\";\nimport MultiEshopViewModel from \"viewModels/multiEshop/multiEshopViewModel\";\nimport EshopViewModel from \"viewModels/eshop/eshopViewModel\";\nimport PriceListViewModel from \"viewModels/common/priceListViewModel\";\nimport CustomerReviewViewModel from \"viewModels/customerReview/customerReviewViewModel\";\n\nconst rootView: ViewComponent<RootViewModel> = observer(({ vm }) => {\n  const hasMargin =\n    vm.activeChild &&\n    !(\n      vm.activeChild instanceof PaymentValidationViewModel ||\n      vm.activeChild instanceof MultiEshopViewModel ||\n      vm.activeChild instanceof EshopViewModel ||\n      vm.activeChild instanceof TradingPlacesViewModel ||\n      vm.activeChild instanceof OutagesWidgetViewModel ||\n      vm.activeChild instanceof ChargeTypesViewModel ||\n      vm.activeChild instanceof PriceListViewModel ||\n      vm.activeChild instanceof CustomerReviewViewModel\n    );\n\n  const view = <View vm={vm.activeChild} />;\n\n  return (\n    <>\n      <Observer>\n        {() => {\n          if (vm.alerts.length < 1) {\n            return null;\n          }\n          return (\n            <div className={`position-sticky ${hasMargin && \"mb-n5\"}`} style={{ top: \"8px\", zIndex: 1000 }}>\n              {vm.alerts.map((item, i) => (\n                <View key={i} vm={item} useLifecycle />\n              ))}\n            </div>\n          );\n        }}\n      </Observer>\n      {hasMargin ? <div className=\"mt-7\">{view}</div> : view}\n    </>\n  );\n});\n\nregisterView(rootView, RootViewModel);\n","import { ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { Col } from \"react-bootstrap\";\nimport Icon, { IconType } from \"@edaz/edazkit/Icon\";\nimport TradingPlacesViewModel from \"../../../viewModels/tradingPlaces/tradingPlacesViewModel\";\nimport styles from \"./popupView.module.scss\";\nimport classNames from \"classnames\";\n\nconst PopupView: ViewComponent<TradingPlacesViewModel> = observer(({ vm, children }) => (\n  <div className={styles.popupViewContainer}>\n    <Col xs={12} className={classNames(\"m-0 p-0\", styles.h100)}>\n      <div className={classNames(\"p-4 shadow bg-white rounded\", styles.h100, styles.scroll, styles.styledScrollbars)}>\n        <div className=\"d-flex justify-content-end mb-1\">\n          <Icon\n            onClick={vm.closePopover}\n            height={18}\n            width={18}\n            className=\"text-muted\"\n            style={{ cursor: \"pointer\" }}\n            icon={IconType.ModalClose}\n          />\n        </div>\n        {children}\n      </div>\n    </Col>\n  </div>\n));\n\nexport default PopupView;\n","import { ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport Icon, { IconType } from \"@edaz/edazkit/Icon\";\nimport formatPostalCode from \"@edaz/utils/formatPostalCode\";\nimport TradingPlacesViewModel from \"viewModels/tradingPlaces/tradingPlacesViewModel\";\nimport TradingPlaceType from \"entities/tradingPlaceType\";\n\nconst TradingPlaceHeaderView: ViewComponent<TradingPlacesViewModel> = observer(({ vm }) => (\n  <>\n    {vm.place && (\n      <div className=\"mb-3\">\n        {vm.place.type === TradingPlaceType.Kiosk && <h5 className=\"mb-3\">{vm.translateGeneral(\"kiosk\")}</h5>}\n        <strong className=\"text-ellipsis d-block mb-1\">{vm.place.name}</strong>\n        {vm.place.salespoint && (\n          <div className=\"text-ellipsis mb-2\">\n            {vm.place.salespoint.address}\n            {vm.place.salespoint.postalCode ? `, ${formatPostalCode(vm.place.salespoint.postalCode)}` : \"\"}\n          </div>\n        )}\n        {vm.place.salespoint && (\n          <>\n            {vm.place.salespoint.cardPaymentAllowed ? (\n              <div className=\"d-flex align-items-center\">\n                <Icon width={15} height={13} icon={IconType.CardPaymentYes} className=\"mr-1\" />\n                <span className=\"text-success font-weight-bold\">{vm.translateGeneral(\"cardPaymentAllowed\")}</span>\n              </div>\n            ) : (\n              <div className=\"text-danger font-weight-bold\">{vm.translateGeneral(\"cardPaymentNotAllowed\")}</div>\n            )}\n          </>\n        )}\n      </div>\n    )}\n  </>\n));\n\nexport default TradingPlaceHeaderView;\n","import { ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { Alert, Col, Row } from \"react-bootstrap\";\nimport TradingPlacesViewModel from \"../../../viewModels/tradingPlaces/tradingPlacesViewModel\";\nimport TradingPlaceType from \"entities/tradingPlaceType\";\nimport OpeningHoursKind from \"entities/openingHoursKind\";\nimport OpeningHoursIntervalResponse from \"entities/openingHoursIntervalResponse\";\nimport OpeningHoursWeekResponse from \"entities/openingHoursWeekResponse\";\n\nconst TradingPlaceSalesTimeView: ViewComponent<TradingPlacesViewModel> = observer(({ vm }) => {\n  const standardOpeningHours = vm.place?.salespoint?.openingHours.find(hours => hours.kind === OpeningHoursKind.Standard)?.week;\n  const holidayOpeningHours = vm.place?.salespoint?.openingHours.filter(hours => hours.kind === OpeningHoursKind.Holiday);\n  const dayRows = [];\n  const timeRows = [];\n\n  const formatOpeningHours = (openingHoursDay?: OpeningHoursIntervalResponse[]) =>\n    openingHoursDay ? (\n      <>\n        {openingHoursDay.length > 0 && <span className=\"d-inline-block\">{vm.openingTimeRange(openingHoursDay[0])}</span>}\n        {openingHoursDay.length > 1 && <span className=\"d-inline-block ml-2\">{vm.openingTimeRange(openingHoursDay[1])}</span>}\n      </>\n    ) : (\n      <span>{vm.translate(\"closed\")}</span>\n    );\n\n  for (const dayOfWeek in new OpeningHoursWeekResponse()) {\n    const dayKey = dayOfWeek as keyof OpeningHoursWeekResponse;\n    const openingHoursDay = standardOpeningHours && dayKey in standardOpeningHours ? standardOpeningHours[dayKey] : undefined;\n\n    dayRows.push(\n      <Row key={dayOfWeek} className=\"mb-2\">\n        <Col xs=\"auto\" style={{ minWidth: \"5.4rem\" }}>\n          <span>{vm.translateGeneral(`week.${dayOfWeek}`)}</span>\n        </Col>\n        <Col className=\"d-block d-sm-none\">{formatOpeningHours(openingHoursDay)}</Col>\n      </Row>\n    );\n\n    timeRows.push(\n      <Row key={dayOfWeek} className=\"mb-2\">\n        <Col xs=\"auto\">{formatOpeningHours(openingHoursDay)}</Col>\n      </Row>\n    );\n  }\n\n  const salespointExternalDetailLink =\n    vm.localizationService.locale === \"cs\"\n      ? vm.place?.salespoint?.externalDetailLinkCs\n      : vm.place?.salespoint?.externalDetailLinkEn;\n\n  return (\n    <>\n      {vm.place && (vm.place.type === TradingPlaceType.Kiosk || (vm.place.salespoint && dayRows.length !== 0)) && (\n        <div className=\"mb-3\">\n          <Row className=\"mb-2\">\n            <Col>\n              <label>\n                <strong>{vm.translateGeneral(\"salesTime\")}</strong>\n              </label>\n            </Col>\n          </Row>\n          {salespointExternalDetailLink && (\n            <Row className=\"mb-2\">\n              <Col>\n                <label>\n                  <strong>\n                    <span className=\"text-danger\">{vm.translateGeneral(\"outageInfoLabel\")}</span>&nbsp;\n                    <a href={salespointExternalDetailLink} target=\"_blank\" rel=\"noreferrer\">\n                      {vm.translateGeneral(\"outageInfoLink\")}\n                    </a>\n                  </strong>\n                </label>\n              </Col>\n            </Row>\n          )}\n          {vm.closures.length > 0 && (\n            <>\n              {vm.closures.map((closure, index) => (\n                <Row key={index}>\n                  <Col>\n                    <Alert variant=\"danger-light\" className=\"border-none text-center\">\n                      {vm.closureInfo(closure)}\n                    </Alert>\n                  </Col>\n                </Row>\n              ))}\n            </>\n          )}\n          {vm.place.type === TradingPlaceType.Kiosk ? (\n            <Row>\n              <Col>\n                <label>{vm.translateGeneral(\"nonstop\")}</label>\n              </Col>\n            </Row>\n          ) : (\n            <Row className=\"flex-nowrap\">\n              <Col className=\"flex-grow-1 flex-sm-grow-0\">{dayRows}</Col>\n              <Col className=\"d-none d-sm-block\">{timeRows}</Col>\n            </Row>\n          )}\n          {holidayOpeningHours && holidayOpeningHours.length > 0 && (\n            <>\n              <Row className=\"my-2\">\n                <Col>\n                  <label>\n                    <strong>{vm.translateGeneral(\"holidayTime\")}</strong>\n                  </label>\n                </Col>\n              </Row>\n              <Row className=\"flex-nowrap\">\n                <Col className=\"flex-grow-1 flex-sm-grow-0\">\n                  {holidayOpeningHours\n                    .sort((a, b) => new Date(a.validSince).getTime() - new Date(b.validSince).getTime())\n                    .map(holidayOpeningHour => {\n                      const date = new Date(holidayOpeningHour.validSince);\n                      const day = vm.holidayDay(holidayOpeningHour);\n                      const openingHoursDay = day ? holidayOpeningHour.week[day] : undefined;\n                      return (\n                        <Row key={date.toISOString()} className=\"mb-2\">\n                          <Col xs=\"auto\" style={{ minWidth: \"5.4rem\" }}>\n                            <span>{vm.localizationService.formatDate(date)}</span>\n                          </Col>\n                          <Col xs=\"12\" className=\"d-block d-sm-none\">\n                            {formatOpeningHours(openingHoursDay)}\n                          </Col>\n                        </Row>\n                      );\n                    })}\n                </Col>\n                <Col className=\"d-none d-sm-block\">\n                  {holidayOpeningHours.map(holidayOpeningHour => {\n                    const date = new Date(holidayOpeningHour.validSince);\n                    const day = vm.holidayDay(holidayOpeningHour);\n                    const openingHoursDay = day ? holidayOpeningHour.week[day] : undefined;\n                    return (\n                      <Row key={date.toISOString()} className=\"mb-2\">\n                        <Col xs=\"auto\">{formatOpeningHours(openingHoursDay)}</Col>\n                      </Row>\n                    );\n                  })}\n                </Col>\n              </Row>\n            </>\n          )}\n        </div>\n      )}\n    </>\n  );\n});\n\nexport default TradingPlaceSalesTimeView;\n","import { parsePhoneNumber } from \"libphonenumber-js\";\n\nexport const formatDisplayPhoneNumber = (phoneNumber: string) => {\n  try {\n    const parsed = parsePhoneNumber(phoneNumber, \"CZ\");\n    return parsed.formatInternational();\n  } catch {\n    return phoneNumber;\n  }\n};\n","import { ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { Col, Row } from \"react-bootstrap\";\nimport TradingPlacesViewModel from \"../../../viewModels/tradingPlaces/tradingPlacesViewModel\";\nimport { formatDisplayPhoneNumber } from \"../../../utils/phoneNumberUtils\";\nimport TradingPlaceType from \"entities/tradingPlaceType\";\n\nconst TradingPlaceContactView: ViewComponent<TradingPlacesViewModel> = observer(({ vm }) => (\n  <div>\n    {vm.place && vm.place.salespoint && vm.place.type === TradingPlaceType.Salespoint && (\n      <Col>\n        <Row>\n          <label>\n            <b>{vm.translateGeneral(\"contactInformation\")}</b>\n          </label>\n        </Row>\n        {vm.place.salespoint.contactPhone && (\n          <Row>\n            <label>{formatDisplayPhoneNumber(vm.place.salespoint.contactPhone)}</label>\n          </Row>\n        )}\n      </Col>\n    )}\n  </div>\n));\n\nexport default TradingPlaceContactView;\n","import { ViewComponent } from \"@frui.ts/views\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport TradingPlacesViewModel from \"../../../viewModels/tradingPlaces/tradingPlacesViewModel\";\nimport PopupView from \"./popupView\";\nimport TradingPlaceHeaderView from \"./tradingPlaceHeaderView\";\nimport TradingPlaceSalesTimeView from \"./tradingPlaceSalesTimeView\";\nimport TradingPlaceContactView from \"./tradingPlaceContactView\";\n\ntype TradingPlaceInfoViewProps = {\n  vm: TradingPlacesViewModel;\n  mobileView: boolean;\n};\n\nconst TradingPlaceInfoView: React.FC<TradingPlaceInfoViewProps> = observer(({ vm, mobileView }) => {\n  return (\n    <PopupView vm={vm}>\n      <TradingPlaceHeaderView vm={vm} />\n      {vm.visibleTradingPlaces.salesPoint && mobileView ? (\n        <>\n          <div className={`${vm.mobileHideSalesPoint ? \"over-map-hidden\" : \"\"}`}>\n            <TradingPlaceSalesTimeView vm={vm} />\n            <TradingPlaceContactView vm={vm} />\n          </div>\n          <button\n            className={`btn-map ${vm.mobileHideSalesPoint ? \"btn-map-down\" : \"btn-map-up\"}`}\n            onClick={() => vm.toogleMobileSalesPoint()}>\n            {\" \"}\n          </button>\n        </>\n      ) : (\n        <>\n          <TradingPlaceSalesTimeView vm={vm} />\n          <TradingPlaceContactView vm={vm} />\n        </>\n      )}\n    </PopupView>\n  );\n});\n\nexport default TradingPlaceInfoView;\n","import React from \"react\";\nimport styles from \"./tradingPlacesFilter.module.scss\";\nimport { Check } from \"@frui.ts/bootstrap\";\nimport TradingPlacesViewModel from \"../../../viewModels/tradingPlaces/tradingPlacesViewModel\";\nimport { observer } from \"mobx-react-lite\";\n\ntype Props = {\n  vm: TradingPlacesViewModel;\n};\nconst TradingPlacesFilter = observer(({ vm }: Props) => {\n  return (\n    <div className={styles.checkboxGroup}>\n      <div className={styles.checkbox}>\n        <Check autoComplete=\"off\" custom target={vm} property=\"allTradingPlacesVisible\" label={vm.translate(\"filterAll\")} />\n      </div>\n      <div className={styles.checkbox}>\n        <Check autoComplete=\"off\" custom target={vm.visibleTradingPlaces} property=\"kiosk\" label={vm.translate(\"filterKiosks\")} />\n      </div>\n      <div className={styles.checkbox}>\n        <Check\n          autoComplete=\"off\"\n          custom\n          target={vm.visibleTradingPlaces}\n          property=\"salesPoint\"\n          label={vm.translate(\"filterSalesPoints\")}\n        />\n      </div>\n    </div>\n  );\n});\n\nexport default TradingPlacesFilter;\n","import Icon, { IconType } from \"@edaz/edazkit/Icon\";\nimport { observer } from \"mobx-react-lite\";\nimport { toJS } from \"mobx\";\nimport React from \"react\";\nimport Autosuggest, { RenderSuggestionsContainerParams } from \"react-autosuggest\";\nimport \"./autosuggest.css\";\nimport styles from \"./tradingPlacesAutosuggest.module.scss\";\nimport TradingPlacesViewModel from \"viewModels/tradingPlaces/tradingPlacesViewModel\";\nimport TradingPlacesFilter from \"./tradingPlacesFilter\";\nimport classNames from \"classnames\";\nimport TradingPlaceResponse from \"entities/tradingPlaceResponse\";\nimport TradingPlaceType from \"entities/tradingPlaceType\";\n\nconst getSuggestionValue = (suggestion: TradingPlaceResponse) => suggestion.name || \"\";\n\nconst renderSuggestion = (place: TradingPlaceResponse) => {\n  let icon;\n  if (place.type === TradingPlaceType.Kiosk) {\n    icon = IconType.KioskOpen;\n  } else {\n    icon = IconType.PlaceOpen;\n  }\n\n  return (\n    <div className={styles.suggestion}>\n      <Icon icon={icon} className={styles.suggestionIcon} />\n      <span className={classNames(\"ml-2\", styles.suggestionLabel)}>{place.name || `${place.latitude}, ${place.longitude}`}</span>\n    </div>\n  );\n};\n\nexport interface TradingPlacesAutosuggestProps {\n  placeholder: string;\n  notFoundMessage: string;\n  vm: TradingPlacesViewModel;\n  mobileView?: boolean;\n}\n\nconst TradingPlacesAutosuggest = observer(({ vm, notFoundMessage, placeholder, mobileView }: TradingPlacesAutosuggestProps) => {\n  const onChange = (event: any, { newValue }: { newValue: string }) => {\n    vm.searchValue = newValue;\n  };\n\n  const onSuggestionsFetchRequested = async ({ value }: { value: string }) => {\n    await vm.debouncedSearchTradingPlaces(value);\n  };\n\n  const onSuggestionsClearRequested = () => {\n    vm.suggestedPlaces = [];\n  };\n\n  const onSuggestionSelected = (event: any, data: any) => {\n    vm.tradingPlaceSelected(data.suggestion);\n  };\n\n  const renderSuggestionsContainer = (params: RenderSuggestionsContainerParams) => {\n    return params.query && vm.suggestedPlaces ? (\n      <div {...params.containerProps} className=\"react-autosuggest__suggestions-container--open\">\n        {params.children ?? <div className=\"react-autosuggest__container__not-found-message\">{notFoundMessage}</div>}\n      </div>\n    ) : undefined;\n  };\n\n  const suggestions = toJS(vm.suggestedPlaces);\n\n  const isAnyAutosuggestInputOpen = (suggestions && suggestions.length > 0) || vm.searchValue;\n  const inputProps = {\n    placeholder: placeholder,\n    value: vm.searchValue,\n    onChange: onChange,\n    className: `form-control react-autosuggest__input ${isAnyAutosuggestInputOpen ? \"react-autosuggest__input--open\" : \"\"}`,\n  };\n\n  const renderInputComponent = (props: any) => {\n    return (\n      <>\n        <input {...props} />\n        <Icon icon={IconType.Search} width={20} height={20} className={styles.mapSearchIcon} />\n      </>\n    );\n  };\n  const showTradingPlaceFilter = suggestions.length === 0 && vm.searchValue.length === 0 && !mobileView;\n\n  return (\n    <div className={styles.filterContainer}>\n      <Autosuggest\n        suggestions={suggestions ?? []}\n        onSuggestionsFetchRequested={onSuggestionsFetchRequested}\n        onSuggestionsClearRequested={onSuggestionsClearRequested}\n        getSuggestionValue={getSuggestionValue}\n        onSuggestionSelected={onSuggestionSelected}\n        renderSuggestionsContainer={renderSuggestionsContainer}\n        renderSuggestion={renderSuggestion}\n        renderInputComponent={renderInputComponent}\n        inputProps={inputProps}\n      />\n      {showTradingPlaceFilter && <TradingPlacesFilter vm={vm} />}\n    </div>\n  );\n});\n\nexport default TradingPlacesAutosuggest;\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { observer } from \"mobx-react-lite\";\nimport { Check } from \"@frui.ts/bootstrap\";\nimport styles from \"./roadLayerSelection.module.scss\";\nimport TradingPlacesViewModel from \"../../../viewModels/tradingPlaces/tradingPlacesViewModel\";\nimport { RadioArray } from \"../../../controls/radioArray\";\n\ntype Props = {\n  vm: TradingPlacesViewModel;\n};\n\nconst RoadLayerSelection = observer(({ vm }: Props) => {\n  return (\n    <div className={styles.container}>\n      <div className={classNames(styles.content, styles.col)}>\n        <div className={styles.checkboxGroup}>\n          <div className={classNames(styles.checkbox, styles.freeCheckbox)}>\n            <Check autoComplete=\"off\" custom target={vm.visibleRoads} property=\"free\" label={vm.translate(\"tollFreeRoads\")} />\n          </div>\n          <div className={classNames(styles.checkbox, styles.paidCheckbox)}>\n            <Check autoComplete=\"off\" custom target={vm.visibleRoads} property=\"paid\" label={vm.translate(\"tollPaidRoads\")} />\n          </div>\n        </div>\n        {(vm.visibleRoads.free || vm.visibleRoads.paid) && (\n          <div className={styles.row}>\n            <div className={styles.radioGroup}>\n              {vm.roadMapYears.map(year => (\n                <RadioArray\n                  custom\n                  key={year}\n                  label={year}\n                  target={vm.visibleRoads}\n                  property=\"year\"\n                  option={year}\n                  isNumeric={true}\n                />\n              ))}\n            </div>\n          </div>\n        )}\n      </div>\n    </div>\n  );\n});\n\nexport default RoadLayerSelection;\n","import { observer } from \"mobx-react-lite\";\nimport { Col, Row } from \"react-bootstrap\";\nimport Button from \"@edaz/edazkit/Button/index\";\nimport Icon, { IconType } from \"@edaz/edazkit/Icon\";\nimport React from \"react\";\n\ntype RoadMapTooltipProps = {\n  roadData: {\n    road?: string;\n    roadType?: string;\n  };\n  position: {\n    x: number;\n    y: number;\n  };\n  show: boolean;\n  onClose?: () => void;\n  t: (code: string) => string;\n};\n\nconst RoadMapTooltip = observer(({ roadData, position, show, onClose, t }: RoadMapTooltipProps) => {\n  const { x, y } = position;\n  let roadTypeMessage;\n  switch (roadData?.roadType) {\n    // Paid roads\n    case \"a\":\n      roadTypeMessage = t(\"tollPaidRoad\");\n      break;\n    // Free roads\n    case \"n\":\n      roadTypeMessage = t(\"tollFreeRoad\");\n      break;\n    // Paid only in direction out of the country\n    case \"p\":\n    default:\n      roadTypeMessage = t(\"tollPartialRoad\");\n      break;\n  }\n  return (\n    <>\n      {show && roadData.road && (\n        <div className=\"fade kit__tooltip show tooltip bs-tooltip-bottom\" style={{ left: x, top: y, position: \"fixed\" }}>\n          <div className=\"tooltip-inner\">\n            <div className=\"m-2 position-relative\">\n              <Row>\n                {onClose && (\n                  <Button variant=\"link\" onClick={onClose} className=\"p-0 m-0 right-corner\">\n                    <Icon width={8} height={8} className=\"text-white-50\" icon={IconType.Cross} />\n                  </Button>\n                )}\n                <Col xs={12}>\n                  <b>{roadData.road}</b>\n                  {roadTypeMessage && (\n                    <span>\n                      <br />\n                      {roadTypeMessage}\n                    </span>\n                  )}\n                </Col>\n              </Row>\n            </div>\n          </div>\n        </div>\n      )}\n    </>\n  );\n});\n\nexport default RoadMapTooltip;\n","import React from \"react\";\nimport Icon, { IconType } from \"@edaz/edazkit/Icon\";\nimport styles from \"./mobileFilter.module.scss\";\nimport RoadLayerSelection from \"./roadLayerSelection\";\nimport TradingPlacesViewModel from \"../../../viewModels/tradingPlaces/tradingPlacesViewModel\";\nimport { observer } from \"mobx-react-lite\";\nimport TradingPlacesFilter from \"./tradingPlacesFilter\";\n\ninterface MobileFilterProps {\n  vm: TradingPlacesViewModel;\n}\n\nconst MobileFilter = observer(({ vm }: MobileFilterProps) => {\n  if (!vm.mobileFilterOpen) {\n    return (\n      <div className={styles.mobileFilterContainer}>\n        <div className={styles.openButton} onClick={vm.toggleMobileFilter}>\n          <Icon icon={IconType.CogWheel} className={styles.cogWheelIcon} />\n        </div>\n      </div>\n    );\n  }\n  return (\n    <div className={styles.mobileFilterContainer}>\n      <div className={styles.filters}>\n        <div className={styles.closeButton} onClick={vm.toggleMobileFilter}>\n          <Icon icon={IconType.Cross} className={styles.closeIcon} />\n        </div>\n        <section className={styles.section}>\n          <h3 className={styles.heading}>{vm.translate(\"headingTollRoads\")}</h3>\n          <RoadLayerSelection vm={vm} />\n        </section>\n        <div className={styles.divider} />\n        <section className={styles.section}>\n          <h3 className={styles.heading}>{vm.translate(\"headingSalesPoints\")}</h3>\n          <TradingPlacesFilter vm={vm} />\n        </section>\n      </div>\n    </div>\n  );\n});\n\nexport default MobileFilter;\n","import { observer } from \"mobx-react-lite\";\r\nimport { registerView, ViewComponent } from \"@frui.ts/views/dist\";\r\nimport * as React from \"react\";\r\nimport Button from \"@edaz/edazkit/Button\";\r\nimport TradingPlaces from \"@edaz/edazkit/TradingPlaces\";\r\nimport LoaderOverlay from \"@edaz/edazkit/LoaderOverlay\";\r\nimport { useWindowWidth } from \"@react-hook/window-size\";\r\nimport TradingPlacesViewModel from \"../../viewModels/tradingPlaces/tradingPlacesViewModel\";\r\nimport { googleMapsApiKey } from \"../../config\";\r\nimport TradingPlaceInfoView from \"./components/tradingPlaceInfoView\";\r\nimport LoadingPane from \"../../controls/loadingPane\";\r\nimport TradingPlacesAutosuggest from \"./components/tradingPlacesAutosuggest\";\r\nimport RoadLayerSelection from \"./components/roadLayerSelection\";\r\nimport RoadMapTooltip from \"./components/roadMapTooltip\";\r\nimport RoadMapViewModel from \"../../viewModels/tradingPlaces/roadMapViewModel\";\r\nimport MobileFilter from \"./components/mobileFilter\";\r\nimport KioskViewModel from \"../../viewModels/tradingPlaces/kioskViewModel\";\r\n\r\nfunction calculateOffset() {\r\n  let offsetY = 0;\r\n  let offsetX = 0;\r\n\r\n  if (window.innerWidth <= 450) {\r\n    offsetY = -240;\r\n  } else if (window.innerWidth <= 800) {\r\n    offsetY = 0;\r\n    offsetX = 180;\r\n  }\r\n\r\n  return {\r\n    offsetX,\r\n    offsetY,\r\n  };\r\n}\r\n\r\nconst TradingPlacesView: ViewComponent<TradingPlacesViewModel | RoadMapViewModel> = observer(({ vm }) => {\r\n  const offset = calculateOffset();\r\n  const currentWidth = useWindowWidth();\r\n\r\n  if (!vm.showMap) {\r\n    return (\r\n      <div className={vm.mapButtonContainerClassName}>\r\n        <Button variant=\"danger\" onClick={vm.onShowMapClick} className={vm.mapButtonClassName}>\r\n          {vm.mapButtonTitle}\r\n        </Button>\r\n      </div>\r\n    );\r\n  }\r\n\r\n  const mobileBranchLink =\r\n    vm.localizationService.locale === \"cs\"\r\n      ? \"https://www.ceskaposta.cz/cs/mobilni-posta\"\r\n      : \"https://www.ceskaposta.cz/en/mobilni-posta\";\r\n\r\n  const mobileView = currentWidth <= 767;\r\n\r\n  return (\r\n    <div className=\"position-relative\">\r\n      {vm.showMap ? (\r\n        <>\r\n          {googleMapsApiKey && (\r\n            <LoaderOverlay loader={<LoadingPane />} loading={vm.busyWatcher.isBusy}>\r\n              <TradingPlaces\r\n                places={vm.placesCoords}\r\n                apiKey={googleMapsApiKey!}\r\n                defaultZoom={7}\r\n                centerYOffset={offset.offsetY}\r\n                centerXOffset={offset.offsetX}\r\n                radius={100}\r\n                choosenPlace={vm.place?.id}\r\n                choosePlace={vm.choosePlace}\r\n                center={[49.90547, 15.278731]}\r\n                mapHeight={686}\r\n                options={{ fullscreenControl: false }}\r\n                onGoogleApiLoaded={vm.onGoogleApiLoaded}\r\n              />\r\n            </LoaderOverlay>\r\n          )}\r\n          {!vm.mobileFilterOpen && (\r\n            <div className=\"over-map\">\r\n              {vm.place ? (\r\n                <TradingPlaceInfoView vm={vm} mobileView={mobileView} />\r\n              ) : (\r\n                <TradingPlacesAutosuggest\r\n                  placeholder={vm.localizationService.translateGeneral(\"tradingPlaces.searchTradingPlaces\")}\r\n                  notFoundMessage={vm.localizationService.translateGeneral(\"tradingPlaces.tradingPlaceNotFound\")}\r\n                  vm={vm}\r\n                  mobileView={mobileView}\r\n                />\r\n              )}\r\n            </div>\r\n          )}\r\n          {!mobileView && <RoadLayerSelection vm={vm} />}\r\n          {mobileView && <MobileFilter vm={vm} />}\r\n          <p className=\"fz-20 mt-4\">\r\n            {vm.translate(\"mobileBranchInformation\")}:&nbsp;\r\n            <a href={mobileBranchLink} target=\"_blank\" rel=\"noreferrer\">\r\n              {mobileBranchLink}\r\n            </a>\r\n          </p>\r\n          <RoadMapTooltip roadData={vm.tooltipMessage} position={vm.tooltipPosition} show={vm.showTooltip} t={vm.translate} />\r\n        </>\r\n      ) : (\r\n        <LoadingPane />\r\n      )}\r\n    </div>\r\n  );\r\n});\r\n\r\nregisterView(TradingPlacesView, TradingPlacesViewModel);\r\nregisterView(TradingPlacesView, RoadMapViewModel);\r\nregisterView(TradingPlacesView, KioskViewModel);\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"fingerprintIframe\":\"summaryMultiEshopView_fingerprintIframe__2CHcO\"};","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n  window.location.hostname === \"localhost\" ||\n    // [::1] is the IPv6 localhost address.\n    window.location.hostname === \"[::1]\" ||\n    // 127.0.0.0/8 are considered localhost for IPv4.\n    window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n);\n\ntype Config = {\n  onSuccess?: (registration: ServiceWorkerRegistration) => void;\n  onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n  if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\n    // The URL constructor is available in all browsers that support SW.\n    const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n    if (publicUrl.origin !== window.location.origin) {\n      // Our service worker won't work if PUBLIC_URL is on a different origin\n      // from what our page is served on. This might happen if a CDN is used to\n      // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n      return;\n    }\n\n    window.addEventListener(\"load\", () => {\n      const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n      if (isLocalhost) {\n        // This is running on localhost. Let's check if a service worker still exists or not.\n        checkValidServiceWorker(swUrl, config);\n\n        // Add some additional logging to localhost, pointing developers to the\n        // service worker/PWA documentation.\n        navigator.serviceWorker.ready.then(() => {\n          console.log(\n            \"This web app is being served cache-first by a service worker. To learn more, visit https://bit.ly/CRA-PWA\"\n          );\n        });\n      } else {\n        // Is not localhost. Just register service worker\n        registerValidSW(swUrl, config);\n      }\n    });\n  }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n  navigator.serviceWorker\n    .register(swUrl)\n    .then((registration) => {\n      registration.onupdatefound = () => {\n        const installingWorker = registration.installing;\n        if (installingWorker == null) {\n          return;\n        }\n        installingWorker.onstatechange = () => {\n          if (installingWorker.state === \"installed\") {\n            if (navigator.serviceWorker.controller) {\n              // At this point, the updated precached content has been fetched,\n              // but the previous service worker will still serve the older\n              // content until all client tabs are closed.\n              console.log(\n                \"New content is available and will be used when all \" +\n                  \"tabs for this page are closed. See https://bit.ly/CRA-PWA.\"\n              );\n\n              // Execute callback\n              if (config && config.onUpdate) {\n                config.onUpdate(registration);\n              }\n            } else {\n              // At this point, everything has been precached.\n              // It's the perfect time to display a\n              // \"Content is cached for offline use.\" message.\n              console.log(\"Content is cached for offline use.\");\n\n              // Execute callback\n              if (config && config.onSuccess) {\n                config.onSuccess(registration);\n              }\n            }\n          }\n        };\n      };\n    })\n    .catch((error) => {\n      console.error(\"Error during service worker registration:\", error);\n    });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n  // Check if the service worker can be found. If it can't reload the page.\n  fetch(swUrl, {\n    headers: { \"Service-Worker\": \"script\" },\n  })\n    .then((response) => {\n      // Ensure service worker exists, and that we really are getting a JS file.\n      const contentType = response.headers.get(\"content-type\");\n      if (response.status === 404 || (contentType != null && contentType.indexOf(\"javascript\") === -1)) {\n        // No service worker found. Probably a different app. Reload the page.\n        navigator.serviceWorker.ready.then((registration) => {\n          registration.unregister().then(() => {\n            window.location.reload();\n          });\n        });\n      } else {\n        // Service worker found. Proceed as normal.\n        registerValidSW(swUrl, config);\n      }\n    })\n    .catch(() => {\n      console.log(\"No internet connection found. App is running in offline mode.\");\n    });\n}\n\nexport function unregister() {\n  if (\"serviceWorker\" in navigator) {\n    navigator.serviceWorker.ready\n      .then((registration) => {\n        registration.unregister();\n      })\n      .catch((error) => {\n        console.error(error.message);\n      });\n  }\n}\n","import { appendQueryString, NavigationConfiguration, ScreenBase, HashNavigationAdapter } from \"@frui.ts/screens\";\n\n/**\n * Monkey patch of UrlNavigationAdapter\n * https://github.com/eManPrague/frui.ts/blob/develop/packages/screens/src/navigation/hashNavigationAdapter.ts#L53\n *\n * Fix push to history on widget init\n */\n/* eslint-disable @typescript-eslint/ban-ts-comment */\nexport function monkeyPatchHashNavigationAdapter() {\n  // @ts-ignore\n  HashNavigationAdapter.prototype.updateUrl = function (screen) {\n    // @ts-ignore\n    if (this.rootViewModel) {\n      const path = screen.getNavigationPath();\n      const url = appendQueryString(NavigationConfiguration.hashPrefix + path.path, path.params);\n\n      // @ts-ignore\n      const lastWasRetry = !!this.lastActiveScreen?.navigationName?.includes(\"retry/\");\n\n      if (window.location.hash !== url) {\n        const shouldReplaceUrl =\n          // !!! Only change is commented next line !!!\n          // window.location.hash &&\n          url.startsWith(window.location.hash) &&\n          // @ts-ignore\n          (!this.lastActiveScreen || (this.lastActiveScreen as ScreenBase).childReplacesNavigationPath);\n\n        if (shouldReplaceUrl) {\n          window.history.replaceState(null, screen.name, url);\n        } else {\n          window.history.pushState(null, screen.name, url);\n        }\n      } else if (lastWasRetry && !/\\/retry\\//.test(url)) {\n        window.history.pushState(null, screen.name, url);\n      }\n    }\n    // @ts-ignore\n    this.lastActiveScreen = screen;\n  };\n}\n\n/* eslint-enable @typescript-eslint/ban-ts-comment */\n","import { environment, sentryDSN } from \"../config\";\r\nimport * as Sentry from \"@sentry/react\"; // Ensure you import Sentry from the correct source\r\n\r\nexport default function initializeSentry() {\r\n  if (sentryDSN) {\r\n    Sentry.init({\r\n      dsn: sentryDSN,\r\n      environment: environment,\r\n      // https://docs.sentry.io/clients/javascript/tips/\r\n      ignoreErrors: [\r\n        // Random plugins/extensions\r\n        \"top.GLOBALS\",\r\n        // See: http://blog.errorception.com/2012/03/tale-of-unfindable-js-error.html\r\n        \"originalCreateNotification\",\r\n        \"canvas.contentDocument\",\r\n        \"MyApp_RemoveAllHighlights\",\r\n        \"http://tt.epicplay.com\",\r\n        \"Can't find variable: ZiteReader\",\r\n        \"jigsaw is not defined\",\r\n        \"ComboSearch is not defined\",\r\n        \"http://loading.retry.widdit.com/\",\r\n        \"atomicFindClose\",\r\n        // Facebook borked\r\n        \"fb_xd_fragment\",\r\n        // ISP \"optimizing\" proxy - `Cache-Control: no-transform` seems to reduce this. (thanks @acdha)\r\n        // See http://stackoverflow.com/questions/4113268/how-to-stop-javascript-injection-from-vodafone-proxy\r\n        \"bmi_SafeAddOnload\",\r\n        \"EBCallBackMessageReceived\",\r\n        // See http://toolbar.conduit.com/Developer/HtmlAndGadget/Methods/JSInjection.aspx\r\n        \"conduitPage\",\r\n        // Generic error code from errors outside the security sandbox\r\n        // You can delete this if using raven.js > 1.0, which ignores these automatically.\r\n        \"Script error.\",\r\n        \"Background Image 404: %23a\",\r\n        \"Object(...) is not a function\",\r\n        \"Object(r.b) is not a function. (In 'Object(r.b)({component:Object(n.a)(c,[a.b],o.a),configuration:{tagname:c}})', 'Object(r.b)' is an instance of Object)\",\r\n        \"Object(r.b) is not a function\",\r\n        \"Fetch of access token failed\",\r\n        // ES6 Class constructor errors - zachytí všechny možné varianty\r\n        /class constructor/i,\r\n        /cannot be invoked without.*new/i,\r\n        /Cannot call a class constructor/i,\r\n        /Class constructor [\\w$]+ cannot be invoked without 'new'/i,\r\n        \"Cannot call a class constructor without |new|\",\r\n        '\"undefined\" is not valid JSON',\r\n        \"Fetch of access token failed\",\r\n      ],\r\n      denyUrls: [\r\n        // Facebook flakiness\r\n        /graph\\.facebook\\.com/i,\r\n        // Facebook blocked\r\n        /connect\\.facebook\\.net\\/en_US\\/all\\.js/i,\r\n        // Woopra flakiness\r\n        /eatdifferent\\.com\\.woopra-ns\\.com/i,\r\n        /static\\.woopra\\.com\\/js\\/woopra\\.js/i,\r\n        // Chrome extensions\r\n        /extensions\\//i,\r\n        /^chrome:\\/\\//i,\r\n        // Other plugins\r\n        /127\\.0\\.0\\.1:4001\\/isrunning/i, // Cacaoweb\r\n        /webappstoolbarba\\.texthelp\\.com\\//i,\r\n        /metrics\\.itunes\\.apple\\.com\\.edgesuite\\.net\\//i,\r\n      ],\r\n      allowUrls: [\r\n        \"edalnice.cz\",\r\n        \"edalnice.gov.cz\",\r\n        \"test.edalnice.cz\",\r\n        \"edalnice.cz\",\r\n        \"dev.edalnice.cz\",\r\n        \"dev.edalnice.gov.cz\",\r\n        \"preview.edalnice.cz\",\r\n        \"localhost:3000\",\r\n      ],\r\n    });\r\n  }\r\n}\r\n","// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nenum ChargeRefundationStatus {\n  Valid = \"VALID\",\n  Refunded = \"REFUNDED\",\n  RefundedToDistributor = \"REFUNDED_TO_DISTRIBUTOR\",\n  PartiallyRefunded = \"PARTIALLY_REFUNDED\",\n}\nexport default ChargeRefundationStatus;\n","// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nenum CustomerRefundPaymentType {\n  Transfer = \"TRANSFER\",\n  PayGate = \"PAY_GATE\",\n}\nexport default CustomerRefundPaymentType;\n","import { formatBankAccount } from \"@edaz/utils/bankAccount\";\nimport { bound } from \"@frui.ts/helpers\";\nimport { ConductorAllChildrenActive, Router, watchBusy } from \"@frui.ts/screens\";\nimport BusyWatcher from \"@frui.ts/screens/dist/structure/busyWatcher\";\nimport ScreenBase from \"@frui.ts/screens/dist/structure/screenBase\";\nimport { action, computed, observable, reaction, when } from \"mobx\";\nimport subMinutes from \"date-fns/subMinutes\";\nimport EshopError from \"models/eshopError\";\nimport ChargeManagementService from \"services/chargeManagementService\";\nimport ChargeRegistrationService from \"services/chargeRegistrationService\";\nimport ChargeTypesService from \"services/chargeTypesService\";\nimport EnumService from \"services/enumService\";\nimport EventBus, { putChargeValiditySuccess, putChargeVehicleSuccess } from \"services/eventBus\";\nimport LocalizationService from \"services/localizationService\";\nimport { getTooltipPosition } from \"../../utils\";\nimport ChargeManagementActiveChargeLicensePlateChangeViewModel from \"./chargeManagementActiveChargeLicensePlateChangeViewModel\";\nimport ChargeManagementBeforeValidChargeLicensePlateChangeViewModel from \"./chargeManagementBeforeValidChargeLicensePlateChangeViewModel\";\nimport ChargeManagementContactViewModel from \"./chargeManagementContactViewModel\";\nimport ChargeManagementReceiptViewModel from \"./chargeManagementReceiptViewModel\";\nimport ChargeManagementValidityViewModel from \"./chargeManagementValidityViewModel\";\nimport CodeChangedAlertViewModel from \"./codeChangedAlertViewModel\";\nimport { IChargeManagementEditPartViewModel } from \"./types\";\nimport type Enum from \"models/enum\";\nimport TurnstileViewModel from \"../../common/turnstileViewModel\";\nimport ChargeRefundationStatus from \"entities/chargeRefundationStatus\";\nimport SourceType from \"entities/sourceType\";\nimport CustomerRefundPaymentType from \"entities/customerRefundPaymentType\";\nimport TimeService from \"services/timeService\";\nimport { dateToIsoString, isBeforePragueDay, utcToCZZonedTime } from \"../../../utils/dateUtils\";\nimport ChargeChangeRejectionReason from \"entities/chargeChangeRejectionReason\";\n\nconst navigationName = \"edit\";\n\nconst REGEX_AMOUNT = /%amount%/gi;\nconst REGEX_RETURNED = /%returned%/gi;\nconst REGEX_VARIABLE_SYMBOL = /%variable%/gi;\nconst REGEX_ACCOUNT = /%account%/gi;\n\n@Router.registerRoute({ route: navigationName, name: Router.Self })\nexport default class ChargeManagementEditViewModel extends ConductorAllChildrenActive<\n  ScreenBase & (IChargeManagementEditPartViewModel | CodeChangedAlertViewModel)\n> {\n  protected unsubscriptions: Array<() => void> = [];\n  @observable position: \"right-start\" | \"bottom\";\n  @observable country?: Enum;\n  @observable turnstileToken?: string;\n  @observable turnstileError?: string;\n  @observable turnstileInfo?: string;\n  @observable turnstileViewModel: TurnstileViewModel;\n  turnstileRef: any;\n  busyWatcher = new BusyWatcher();\n\n  @computed\n  get isRefunded() {\n    return [ChargeRefundationStatus.Refunded, ChargeRefundationStatus.RefundedToDistributor].includes(\n      this.charge?.refundationStatus!\n    );\n  }\n\n  @computed\n  get newChargePurchaseUrl() {\n    return this.charge?.newChargePurchaseUrl?.replace(\"https://edalnice.cz\", window.location.origin);\n  }\n\n  @computed\n  get sectionsChildren() {\n    return this.children.filter(child => !(child instanceof CodeChangedAlertViewModel)) as Array<\n      ScreenBase & IChargeManagementEditPartViewModel\n    >;\n  }\n\n  @computed\n  get codeChangedAlertViewModel() {\n    return this.children.find(child => child instanceof CodeChangedAlertViewModel);\n  }\n\n  @computed\n  get charge() {\n    return this.chargeManagementService.charge;\n  }\n\n  @computed\n  get vehicle() {\n    if (!this.charge || !this.charge.vehicle) return \"-\";\n\n    const country = this.country;\n    const licensePlate = this.charge.vehicle.licensePlate;\n\n    return country && licensePlate ? `${country.code} – ${licensePlate}` : \"-\";\n  }\n\n  constructor(\n    public localizationService: LocalizationService,\n    private enumService: EnumService,\n    protected timeService: TimeService,\n    private chargeTypesService: ChargeTypesService,\n    private eventBus: EventBus,\n    private chargeManagementService: ChargeManagementService,\n    private chargeRegistrationService: ChargeRegistrationService,\n    private chargeManagementBeforeValidityChangeLicensePlateViewModel: ChargeManagementBeforeValidChargeLicensePlateChangeViewModel,\n    private chargeManagementActiveChargeChangeLicensePlateViewModel: ChargeManagementActiveChargeLicensePlateChangeViewModel,\n    private chargeManagementValidityViewModel: ChargeManagementValidityViewModel,\n    private chargeManagementContactViewModel: ChargeManagementContactViewModel,\n    private chargeManagementReceiptViewModel: ChargeManagementReceiptViewModel,\n    private turnstileViewModelFactory: ReturnType<typeof TurnstileViewModel.Factory>,\n    private codeChangedAlertViewModelFactory: ReturnType<typeof CodeChangedAlertViewModel.Factory>,\n    private receiptEmailModalViewModelFactory: ReturnType<typeof CodeChangedAlertViewModel.Factory>\n  ) {\n    super();\n    this.nameValue = \"chargeManagement.title\";\n    this.navigationName = navigationName;\n    this.turnstileViewModel = this.turnstileViewModelFactory(\"chargeManagementEdit\", true);\n    this.handleResize();\n  }\n\n  protected async onInitialize(): Promise<any> {\n    await this.chargeTypesService.startInitialization(true);\n    await this.timeService.getCurrentServerTime();\n    this.turnstileToken = this.turnstileViewModel?.turnstileToken;\n    this.turnstileError = this.turnstileViewModel?.turnstileError;\n    this.turnstileInfo = this.turnstileViewModel?.turnstileInfo;\n    this.turnstileRef = this.turnstileViewModel?.turnstileRef;\n    this.fetchCountry();\n    this.unsubscriptions.push(\n      this.eventBus.subscribe(putChargeValiditySuccess, this.onCodeChanged),\n      this.eventBus.subscribe(putChargeVehicleSuccess, this.onCodeChanged),\n      this.eventBus.subscribe(putChargeValiditySuccess, this.onValidityChanged)\n    );\n    this.unsubscriptions.push(\n      reaction(\n        () => this.charge?.vehicle.countryId,\n        () => {\n          this.fetchCountry();\n        }\n      )\n    );\n    return super.onInitialize();\n  }\n\n  protected onActivate(): Promise<any[]> {\n    this.children.clear();\n    if (this.charge && this.charge.validSince && utcToCZZonedTime(this.charge.validSince) <= this.timeService.currentServerTime) {\n      this.children.push(this.chargeManagementActiveChargeChangeLicensePlateViewModel);\n    } else {\n      this.children.push(this.chargeManagementBeforeValidityChangeLicensePlateViewModel);\n    }\n\n    this.children.push(\n      this.chargeManagementValidityViewModel,\n      this.chargeManagementContactViewModel,\n      this.chargeManagementReceiptViewModel\n    );\n    if (this.chargeManagementService.charge) this.receiptEmailModalViewModelFactory(this.chargeManagementService.charge);\n\n    return super.onActivate();\n  }\n\n  protected onDeactivate(isClosing: boolean): Promise<void> {\n    if (isClosing) {\n      this.unsubscriptions.forEach(unsubscribe => unsubscribe());\n      this.unsubscriptions = [];\n    }\n\n    return super.onDeactivate(isClosing);\n  }\n\n  @computed\n  get isDifferentTimeZone() {\n    return this.timeService.isFetched && !this.timeService.isServerTimeSame;\n  }\n\n  @computed\n  get serverTime() {\n    return this.timeService.currentServerTime;\n  }\n\n  @bound\n  private onCodeChanged() {\n    if (this.chargeManagementService.charge) {\n      this.children.push(this.codeChangedAlertViewModelFactory(this.chargeManagementService.charge));\n    }\n  }\n\n  @bound\n  private onValidityChanged(event: ReturnType<typeof putChargeValiditySuccess>) {\n    // Before validity charge become valid - subMinutes is needed to deal with server vs. client clock inaccuracy\n    if (\n      dateToIsoString(subMinutes(utcToCZZonedTime(event.payload.validity.validSince), 1)) <=\n      dateToIsoString(this.timeService.currentServerTime)\n    ) {\n      this.children[0] = this.chargeManagementActiveChargeChangeLicensePlateViewModel;\n    }\n  }\n\n  @watchBusy\n  protected async fetchCountry() {\n    await when(() => this.charge !== undefined);\n    this.country = await this.enumService.lazyValue(\"countries\", this.charge?.vehicle.countryId!);\n  }\n\n  @watchBusy\n  protected async fetchCharge(countryId: string, licensePlate: string, authCode: string, turnstileToken: string) {\n    return await this.chargeManagementService.getCharge(countryId, licensePlate, authCode, turnstileToken);\n  }\n\n  setNavigationParams(countryId: string, licensePlate: string, authCode: string) {\n    this.navigationParamsValue = {\n      countryId,\n      licensePlate,\n      authCode,\n    };\n    this.notifyNavigationChanged();\n  }\n\n  async navigate(subPath: string, params: any) {\n    if (!params) return Promise.resolve(this.back());\n\n    const countryId = params.countryId;\n    const licensePlate = params.licensePlate;\n    const authCode = params.authCode;\n    const turnstileToken = this.chargeManagementService.getLoginChargeManagement() ?? \"\";\n\n    if (countryId && licensePlate && authCode) {\n      this.setNavigationParams(countryId, licensePlate, authCode);\n    }\n\n    if (countryId && licensePlate && authCode && !this.charge && turnstileToken) {\n      const response = await this.fetchCharge(countryId, licensePlate, authCode, turnstileToken);\n      if (response instanceof EshopError) {\n        return this.back();\n      }\n    } else if (!this.charge) {\n      return Promise.resolve(this.back());\n    }\n\n    return super.navigate(subPath, params);\n  }\n\n  @bound\n  translate(code: string) {\n    return this.localizationService.translateGeneral(`charge.management.edit.${code}`);\n  }\n\n  @computed\n  get refundMessage() {\n    if (!this.charge?.refund) return \"\";\n\n    const { variableSymbol, amount, refundedAt, bankAccount, refundPaymentType } = this.charge.refund;\n\n    const formattedBankAccount = formatBankAccount(bankAccount);\n\n    if (refundedAt)\n      return this.translate(refundPaymentType === CustomerRefundPaymentType.PayGate ? \"refundPayGatePast\" : \"refundTransferPast\")\n        .replace(REGEX_AMOUNT, this.localizationService.formatPrice(amount))\n        .replace(REGEX_RETURNED, this.localizationService.formatDate(refundedAt))\n        .replace(REGEX_ACCOUNT, formattedBankAccount)\n        .replace(REGEX_VARIABLE_SYMBOL, variableSymbol?.toString() ?? \"\");\n    else\n      return this.translate(\n        refundPaymentType === CustomerRefundPaymentType.PayGate ? \"refundPayGateFuture\" : \"refundTransferFuture\"\n      )\n        .replace(REGEX_AMOUNT, this.localizationService.formatPrice(amount))\n        .replace(REGEX_ACCOUNT, formattedBankAccount)\n        .replace(REGEX_VARIABLE_SYMBOL, variableSymbol?.toString() ?? \"\");\n  }\n\n  @computed\n  get notAllowedByOrderSourceType() {\n    const isNotAllowed =\n      this.charge &&\n      this.charge.chargeOrderSourceType &&\n      ![SourceType.Eshop, SourceType.Kiosk, SourceType.Salespoint].includes(this.charge.chargeOrderSourceType);\n\n    return isNotAllowed;\n  }\n\n  @computed\n  get afterValidityStart() {\n    return (\n      this.charge &&\n      !this.charge.permittedActions.validityChange.isAllowed &&\n      this.charge.permittedActions.validityChange.rejectionReason === ChargeChangeRejectionReason.InvalidChargeValidityStatus\n    );\n  }\n  @computed\n  get rejectionReasonEmailAddressChange() {\n    if (this.charge && !this.charge.permittedActions.emailAddressChange.isAllowed) {\n      return this.charge.permittedActions.emailAddressChange.rejectionReason;\n    }\n  }\n\n  @computed\n  get rejectionReasonContact() {\n    if (\n      this.charge &&\n      !this.charge.permittedActions.emailNotificationPreferencesChange.isAllowed &&\n      !this.charge.permittedActions.smsNotificationPreferencesChange.isAllowed &&\n      !this.charge.permittedActions.emailAddressChange.isAllowed\n    ) {\n      return this.charge.permittedActions.emailAddressChange.rejectionReason;\n    }\n    if (this.charge && !this.charge.permittedActions.emailNotificationPreferencesChange.isAllowed) {\n      return this.charge.permittedActions.emailNotificationPreferencesChange.rejectionReason;\n    }\n    if (this.charge && !this.charge.permittedActions.smsNotificationPreferencesChange.isAllowed) {\n      return this.charge.permittedActions.smsNotificationPreferencesChange.rejectionReason;\n    }\n  }\n  @computed\n  get rejectionReasonObtainingPaymentConfirmation() {\n    if (this.charge && !this.charge.permittedActions.obtainingPaymentConfirmation.isAllowed) {\n      return this.charge.permittedActions.obtainingPaymentConfirmation.rejectionReason;\n    }\n  }\n  @computed\n  get rejectionReasonSmsNotificationPreferencesChange() {\n    if (this.charge && !this.charge.permittedActions.smsNotificationPreferencesChange.isAllowed) {\n      return this.charge.permittedActions.smsNotificationPreferencesChange.rejectionReason;\n    }\n  }\n  @computed\n  get rejectionReasonValidityChange() {\n    if (this.charge && !this.charge.permittedActions.validityChange.isAllowed) {\n      return this.charge.permittedActions.validityChange.rejectionReason;\n    }\n  }\n  @computed\n  get rejectionReasonVehicleChangeBeforeValidity() {\n    if (this.charge && !this.charge.permittedActions.vehicleChangeBeforeValidity.isAllowed) {\n      return this.charge.permittedActions.vehicleChangeBeforeValidity.rejectionReason;\n    }\n  }\n  @computed\n  get rejectionReasonVehicleChangeDuringValidity() {\n    if (this.charge && !this.charge.permittedActions.vehicleChangeDuringValidity.isAllowed) {\n      return this.charge.permittedActions.vehicleChangeDuringValidity.rejectionReason;\n    }\n  }\n\n  @computed\n  get getChargeType() {\n    const chargeType = this.charge\n      ? this.chargeTypesService.getPriceListItemChargeType(this.charge.priceListItemId, true)\n      : undefined;\n    return chargeType?.description;\n  }\n\n  @computed\n  get afterValidity() {\n    return this.charge && isBeforePragueDay(this.charge.validUntil, this.timeService.currentServerTime);\n  }\n\n  @computed\n  get licensePlate() {\n    if (!this.charge || !this.charge.vehicle) return \"-\";\n\n    const licensePlate = this.charge.vehicle.licensePlate;\n\n    return licensePlate ? licensePlate : \"-\";\n  }\n\n  @computed\n  get validSince() {\n    if (!this.charge || !this.charge.validSince) return \"-\";\n\n    const validSince = this.charge.validSince;\n\n    return validSince ? validSince : \"-\";\n  }\n\n  @computed\n  get validUntil() {\n    if (!this.charge || !this.charge.validUntil) return \"-\";\n\n    const validUntil = this.charge.validUntil;\n\n    return validUntil ? validUntil : \"-\";\n  }\n\n  @computed\n  get drive() {\n    if (!this.charge || !this.charge.priceListItemId) {\n      return \"-\";\n    }\n\n    const fuelType = this.chargeTypesService.getPriceListItemFuelType(this.charge.priceListItemId, true);\n    return fuelType ? this.localizationService.translateAttribute(\"fuelType\", fuelType) : \"-\";\n  }\n\n  @computed\n  get authCode() {\n    if (!this.charge) return \"-\";\n\n    const authCode = this.charge?.authCode;\n\n    return authCode ? authCode : \"-\";\n  }\n\n  @computed\n  get chargeTypeWithPrice() {\n    if (!this.charge || !this.charge.priceListItemId) {\n      return \"-\";\n    }\n\n    const chargeType = this.chargeTypesService.getPriceListItemChargeType(this.charge.priceListItemId, true);\n    if (!chargeType) {\n      return \"-\";\n    }\n\n    const price = this.chargeTypesService.getPrice(this.charge.priceListItemId, true);\n    if (!price) {\n      return chargeType.description;\n    }\n\n    return `${chargeType.description} – ${this.localizationService.formatPrice(price)}`;\n  }\n\n  @computed\n  get registrationCountry() {\n    return this.country ? this.country.name : \"-\";\n  }\n\n  @bound\n  handleResize() {\n    this.position = getTooltipPosition(window);\n  }\n\n  @action.bound\n  back() {\n    this.chargeManagementService.reset();\n    this.chargeRegistrationService.reset();\n    this.requestClose();\n  }\n}\n","import { isLicensePlate } from \"@edaz/services/validators/isLicensePlate\";\r\nimport range from \"@edaz/services/validators/range\";\r\nimport { bound } from \"@frui.ts/helpers\";\r\nimport { ConductorAllChildrenActive, Router } from \"@frui.ts/screens\";\r\nimport { validate } from \"@frui.ts/validation\";\r\nimport { action, computed, observable, reaction } from \"mobx\";\r\nimport AppRouter from \"services/appRouter\";\r\nimport { scrollToElement, scrollToFirstError } from \"utils/scrollTo\";\r\nimport * as types from \"viewModels/common/types\";\r\nimport LocalizationService from \"services/localizationService\";\r\nimport BatchOrderItemViewModel from \"./batchOrderItemViewModel\";\r\nimport SummaryViewModel from \"./summaryMultiEshopViewModel\";\r\nimport OutageService from \"../../services/outageService\";\r\nimport { PaymentResultFailureOrigin, PaymentResultFailureType } from \"../../models/paymentResult\";\r\nimport EnumService from \"services/enumService\";\r\nimport EventBus, { paymentValidSinceInvalid } from \"services/eventBus\";\r\nimport ChargeOrderService from \"services/chargeOrderService\";\r\nimport { ChargeOrderStatus } from \"models/chargeOrder\";\r\nimport ChargeOrderItem from \"models/chargeOrderItem\";\r\nimport { isMobile } from \"react-device-detect\";\r\n\r\nexport const BatchOrderViewModelNavigationName = \"batch\";\r\n\r\n@Router.registerRoute({ name: Router.Self, route: BatchOrderViewModelNavigationName })\r\nexport default class BatchOrderViewModel extends ConductorAllChildrenActive<BatchOrderItemViewModel> {\r\n  @observable errorMessage?: types.ErrorMessage;\r\n  @observable paymentResultFailureType?: PaymentResultFailureType;\r\n  @observable paymentResultFailureOrigin?: PaymentResultFailureOrigin;\r\n  @observable invalidValidSince = false;\r\n\r\n  summaryViewModel: SummaryViewModel;\r\n  @observable formElement?: HTMLFormElement;\r\n  private unsubscription: Array<() => void> = [];\r\n\r\n  tg = (code: string) => this.localizationService.translateGeneral(`multiEshop.${code}`);\r\n\r\n  constructor(\r\n    public localizationService: LocalizationService,\r\n    public enumService: EnumService,\r\n    public chargeOrderService: ChargeOrderService,\r\n    private outageService: OutageService,\r\n    private batchOrderItemViewModelFactory: ReturnType<typeof BatchOrderItemViewModel.Factory>,\r\n    private summaryViewModelFactory: ReturnType<typeof SummaryViewModel.Factory>,\r\n    private router: AppRouter,\r\n    private eventBus: EventBus\r\n  ) {\r\n    super();\r\n    this.navigationName = BatchOrderViewModelNavigationName;\r\n    this.summaryViewModel = this.summaryViewModelFactory(false, false, this.onContinue);\r\n    this.eventBus.subscribe(paymentValidSinceInvalid, () => this.paymentValidSinceInvalid());\r\n  }\r\n\r\n  @bound\r\n  async addOrderItem() {\r\n    const chargeOrderItem = this.chargeOrderService.addChargeOrderItem();\r\n    await this.enumService.lazyValues(\"charge_validity_rules\");\r\n\r\n    this.children.push(this.batchOrderItemViewModelFactory(chargeOrderItem, this.reset));\r\n  }\r\n\r\n  @bound\r\n  removeOrderItem(chargeOrderItem: ChargeOrderItem) {\r\n    const childIndex = this.children.findIndex(children => children.chargeOrderItem === chargeOrderItem);\r\n    if (~childIndex) {\r\n      this.children.splice(childIndex, 1);\r\n    }\r\n    this.chargeOrderService.removeChargeOrderItem(chargeOrderItem);\r\n    this.chargeOrderService.chargeOrderItems.forEach(item => (item._isModified = true));\r\n    this.chargeOrderService.persistChargeOrder();\r\n  }\r\n\r\n  protected async onActivate() {\r\n    if (isMobile && this.stepper) {\r\n      scrollToElement(this.stepper);\r\n    }\r\n    this.children.clear();\r\n    this.chargeOrderService.chargeOrderItems.forEach(item =>\r\n      this.children.push(this.batchOrderItemViewModelFactory(item, this.reset))\r\n    );\r\n\r\n    if (this.chargeOrderService.chargeOrderItems.length === 0) {\r\n      this.addOrderItem();\r\n    }\r\n    if (this.chargeOrderService.chargeOrder._origin !== \"multiple\") {\r\n      this.reset();\r\n    }\r\n\r\n    this.errorMessage = undefined;\r\n    switch (this.chargeOrderService.chargeOrder._status) {\r\n      case ChargeOrderStatus.PaidBankTransfer:\r\n      case ChargeOrderStatus.Paid:\r\n      case ChargeOrderStatus.Deferred:\r\n        this.reset();\r\n        break;\r\n      case ChargeOrderStatus.Failed:\r\n        this.chargeOrderService.reopenOrder();\r\n        break;\r\n    }\r\n\r\n    this.unsubscription.push(\r\n      reaction(\r\n        () => this.chargeOrderService.areOrderItemsValid,\r\n        areOrderItemsValid => {\r\n          if (areOrderItemsValid && this.errorMessage === \"invalidData\") {\r\n            this.errorMessage = undefined;\r\n          }\r\n        }\r\n      )\r\n    );\r\n    this.invalidValidSince && this.validateAll();\r\n    this.chargeOrderService.chargeOrder._origin = \"multiple\";\r\n    this.chargeOrderService.persistChargeOrder();\r\n    return super.onActivate();\r\n  }\r\n\r\n  protected onDeactivate(isClosing: boolean): Promise<void> {\r\n    this.unsubscription.forEach(unsubscribe => unsubscribe());\r\n    this.unsubscription = [];\r\n    return super.onDeactivate(isClosing);\r\n  }\r\n\r\n  @computed\r\n  get stepper() {\r\n    return window.document.getElementById(\"stepper\");\r\n  }\r\n\r\n  @bound\r\n  public onContinue() {\r\n    this.chargeOrderService.chargeOrder.charges = this.children.map(children => children.chargeOrderItem);\r\n    this.chargeOrderService.filterEmptyChargeOrderCharges();\r\n    this.children.splice(\r\n      0,\r\n      this.children.length,\r\n      ...this.children.filter(children => this.chargeOrderService.chargeOrderItems.includes(children.chargeOrderItem))\r\n    );\r\n\r\n    if (!this.validateAll()) {\r\n      return;\r\n    }\r\n    this.chargeOrderService.chargeOrder._origin = \"multiple\";\r\n\r\n    this.chargeOrderService.persistStoredChargeOrder(this.chargeOrderService.chargeOrder);\r\n\r\n    scrollToElement(this.formElement);\r\n    this.router.navigate(\"recap\");\r\n  }\r\n\r\n  @action.bound\r\n  paymentValidSinceInvalid() {\r\n    this.errorMessage = \"invalidData\";\r\n    this.invalidValidSince = true;\r\n    this.onActivate();\r\n  }\r\n\r\n  @action.bound\r\n  closePaymentError() {\r\n    this.paymentResultFailureType = undefined;\r\n    this.paymentResultFailureOrigin = undefined;\r\n    // Reopen the order preserving existing data\r\n    this.chargeOrderService.reopenOrder();\r\n  }\r\n\r\n  @action.bound\r\n  reset() {\r\n    this.chargeOrderService.reset();\r\n    this.children.clear();\r\n    this.chargeOrderService.chargeOrder._status = ChargeOrderStatus.Open;\r\n    this.chargeOrderService.chargeOrderItems.forEach(item =>\r\n      this.children.push(this.batchOrderItemViewModelFactory(item, this.reset))\r\n    );\r\n  }\r\n\r\n  @computed\r\n  get showPaymentErrorMessage(): boolean {\r\n    return !!(this.paymentResultFailureType && this.paymentResultFailureOrigin);\r\n  }\r\n\r\n  @computed\r\n  get paymentErrorTitle(): string {\r\n    return this.localizationService.translateGeneral(\r\n      `eshop.payment.status.failure.messages.${this.paymentResultFailureOrigin}.${this.paymentResultFailureType}.title`\r\n    );\r\n  }\r\n\r\n  @computed\r\n  get paymentErrorDescription(): string {\r\n    return this.localizationService.translateGeneral(\r\n      `eshop.payment.status.failure.messages.${this.paymentResultFailureOrigin}.${this.paymentResultFailureType}.description`\r\n    );\r\n  }\r\n\r\n  @computed\r\n  get showPaymentErrorLink(): boolean {\r\n    return (\r\n      this.paymentResultFailureOrigin == PaymentResultFailureOrigin.Init &&\r\n      this.paymentResultFailureType == PaymentResultFailureType.AlreadyConfirmed\r\n    );\r\n  }\r\n\r\n  @action.bound\r\n  validateAll() {\r\n    this.errorMessage = undefined;\r\n\r\n    const chargeOrderItems = this.chargeOrderService.chargeOrder.charges;\r\n    if (chargeOrderItems === undefined || chargeOrderItems.length === 0) return false;\r\n    const orderItemsIsValid = chargeOrderItems.reduce((acc, item) => {\r\n      return validate(item) && acc;\r\n    }, true);\r\n\r\n    const chargeOrderItemsHasValidLicensePlates = chargeOrderItems.reduce(\r\n      (summary: boolean, item: ChargeOrderItem) =>\r\n        summary &&\r\n        item.licensePlates.reduce(\r\n          (summary: boolean, licensePlate: string) =>\r\n            summary && isLicensePlate(licensePlate).isValid && range(licensePlate, { min: 1, max: 10 }).isValid,\r\n          true\r\n        ),\r\n      true\r\n    );\r\n\r\n    const chargeOrderItemsHasOverlays = this.children.reduce(\r\n      (summary: boolean, itemVM) => summary || itemVM.licensePlatesHasOverlay,\r\n      false\r\n    );\r\n    const isAllValid: boolean = !chargeOrderItemsHasOverlays && chargeOrderItemsHasValidLicensePlates && orderItemsIsValid;\r\n\r\n    if (!isAllValid) {\r\n      this.errorMessage = \"invalidData\";\r\n      scrollToFirstError(this.formElement);\r\n    }\r\n\r\n    return isAllValid;\r\n  }\r\n}\r\n","export interface WidgetOptions {\n  component: React.FC<any> | React.ComponentClass<any, any>;\n  configuration: {\n    tagname: string;\n  };\n}\n\nconst widgets: any = {};\n\nexport function registerWidget(options: WidgetOptions) {\n  widgets[options.configuration.tagname] = options.component;\n}\n\nexport function getWidgetById(id: string) {\n  if (id) {\n    return widgets[id] || null;\n  }\n  return null;\n}\n","import { canNavigate, ConductorOneChildActive, Router, ScreenBase, splitUrlSegments } from \"@frui.ts/screens\";\r\nimport EventBus, { orderIsPaid, paymentMultiFuelTypeNotAllowed } from \"services/eventBus\";\r\nimport BankTransferViewModel, { BankTransferNavigationName } from \"../common/payment/bankTransferViewModel\";\r\nimport StatusViewModel, { StatusViewNavigationName } from \"../common/payment/statusViewModel\";\r\nimport BatchOrderViewModel, { BatchOrderViewModelNavigationName } from \"./batchOrderViewModel\";\r\nimport OrderRecapViewModel from \"./orderRecapViewModel\";\r\nimport OutageService from \"../../services/outageService\";\r\nimport { action, computed, reaction, when } from \"mobx\";\r\nimport OrderOutageViewModel from \"../common/orderOutage/orderOutageViewModel\";\r\nimport { SystemComponent } from \"../../models/outage\";\r\nimport OutagesViewModel from \"../common/outagesViewModel\";\r\nimport ChargeOrderService from \"services/chargeOrderService\";\r\nimport ChargeOrder, { ChargeOrderStatus } from \"models/chargeOrder\";\r\nimport EnumService from \"services/enumService\";\r\nimport ContactMultiEshopViewModel from \"./contactMultiEshopViewModel\";\r\nimport ChargeTypesService from \"services/chargeTypesService\";\r\nimport PaymentMultiEshopViewModel from \"./paymentMultiEshopViewModel\";\r\nimport ChargeOrderContactItem from \"models/chargeOrderContactItem\";\r\nimport TimeService from \"services/timeService\";\r\nimport PaymentResult from \"models/paymentResult\";\r\nimport PaymentRetryViewModel, {\r\n  clearRetryConsumed,\r\n  isRetryBlocked,\r\n  markRetryConsumed,\r\n  PaymentRetryNavigationName,\r\n} from \"../common/payment/paymentRetryViewModel\";\r\nimport MultiPaymentRetryViewModel from \"../common/payment/multiPaymentRetryViewModel\";\r\nimport PaymentService from \"services/payment/paymentService\";\r\nimport ChargeOrderRepository from \"repositories/chargeOrderRepository\";\r\nimport { PayGatePaymentStatus } from \"models/payGatePaymentResponse\";\r\n\r\nexport const MultiEshopModuleNavigationName = \"multi_eshop\";\r\n\r\n@Router.registerRoute({\r\n  name: Router.Self,\r\n  route: MultiEshopModuleNavigationName,\r\n  children: [\r\n    BatchOrderViewModel,\r\n    OrderRecapViewModel,\r\n    ContactMultiEshopViewModel,\r\n    PaymentMultiEshopViewModel,\r\n    StatusViewModel,\r\n    BankTransferViewModel,\r\n    MultiPaymentRetryViewModel,\r\n  ],\r\n})\r\nexport default class MultiEshopViewModel extends ConductorOneChildActive<ScreenBase> {\r\n  private unsubscriptions: Array<() => void> = [];\r\n  public contactMultiEshopViewModel: ContactMultiEshopViewModel;\r\n  public paymentMultiEshopViewModel: PaymentMultiEshopViewModel;\r\n  payGateOutagesViewModel: OutagesViewModel;\r\n  eshopOutagesVieModel: OutagesViewModel;\r\n\r\n  @computed\r\n  get eshopOutage() {\r\n    return this.outageService.eshopActiveOutage;\r\n  }\r\n\r\n  @computed\r\n  get showOutages() {\r\n    return !(this.activeChild instanceof OrderOutageViewModel) && !(this.activeChild instanceof StatusViewModel);\r\n  }\r\n\r\n  constructor(\r\n    public enumService: EnumService,\r\n    private chargeOrderService: ChargeOrderService,\r\n    private timeService: TimeService,\r\n    private eventBus: EventBus,\r\n    private batchOrderViewModel: BatchOrderViewModel,\r\n    private orderRecapViewModel: OrderRecapViewModel,\r\n    private chargeTypesService: ChargeTypesService,\r\n    private paymentMultiEshopViewModelFactory: ReturnType<typeof PaymentMultiEshopViewModel.Factory>,\r\n    private outageService: OutageService,\r\n    private bankTransferVMFactory: ReturnType<typeof BankTransferViewModel.Factory>,\r\n    private statusVMFactory: ReturnType<typeof StatusViewModel.Factory>,\r\n    private orderOutageViewModelFactory: ReturnType<typeof OrderOutageViewModel.Factory>,\r\n    private contactMultiEshopViewModelFactory: ReturnType<typeof ContactMultiEshopViewModel.Factory>,\r\n    private outagesViewModelFactory: ReturnType<typeof OutagesViewModel.Factory>,\r\n    private paymentRetryVMFactory: ReturnType<typeof PaymentRetryViewModel.Factory>,\r\n    private paymentService: PaymentService,\r\n    private chargeOrderRepository: ChargeOrderRepository\r\n  ) {\r\n    super();\r\n    this.navigationName = MultiEshopModuleNavigationName;\r\n    this.nameValue = \"multiEshop.title\";\r\n    this.payGateOutagesViewModel = this.outagesViewModelFactory(SystemComponent.PAY_GATE);\r\n    this.eshopOutagesVieModel = this.outagesViewModelFactory(SystemComponent.ESHOP);\r\n    this.children.push(\r\n      this.batchOrderViewModel,\r\n      this.orderRecapViewModel,\r\n      (this.contactMultiEshopViewModel = this.contactMultiEshopViewModelFactory(\r\n        new ChargeOrderContactItem(this.chargeOrder.notificationPreferences)\r\n      )),\r\n      (this.paymentMultiEshopViewModel = this.paymentMultiEshopViewModelFactory(this.chargeOrder))\r\n    );\r\n  }\r\n\r\n  protected async onInitialize(): Promise<any> {\r\n    await this.enumService.startInitialization();\r\n    await this.timeService.getCurrentServerTime();\r\n\r\n    await this.chargeTypesService.startInitialization();\r\n    this.unsubscriptions.push(\r\n      this.eventBus.subscribe(orderIsPaid, this.onOrderIsPaid),\r\n      this.eventBus.subscribe(paymentMultiFuelTypeNotAllowed, this.onPaymentMultiFuelTypeNotAllowed),\r\n      reaction(() => this.eshopOutage, this.onEshopOutageChanged)\r\n    );\r\n\r\n    return super.onInitialize();\r\n  }\r\n\r\n  protected async onActivate() {\r\n    // Symmetric to orderWizardModel.onActivate: wipe leftovers from the single flow\r\n    // before the bulk flow starts.\r\n    if (this.chargeOrderService.chargeOrder._origin === \"single\") {\r\n      this.chargeOrderService.reset();\r\n    }\r\n\r\n    if (!this.activeChild || this.chargeOrderService.orderIsEmptyOrIncomplete) {\r\n      if (!window.location.hash.includes(`/${PaymentRetryNavigationName}/`)) {\r\n        this.lazyCheckEshopOutage();\r\n        await this.tryActivateChild(this.batchOrderViewModel);\r\n      }\r\n    }\r\n\r\n    return super.onActivate();\r\n  }\r\n\r\n  @action.bound\r\n  protected async changeActiveChild(newChild: ScreenBase | undefined, closePrevious: boolean): Promise<any> {\r\n    if (this.activeChild instanceof StatusViewModel && newChild instanceof BatchOrderViewModel) {\r\n      this.chargeOrderService.reset();\r\n    }\r\n    super.changeActiveChild(newChild, closePrevious);\r\n  }\r\n\r\n  protected onDeactivate(isClosing: boolean): Promise<void> {\r\n    if (isClosing) {\r\n      this.unsubscriptions.forEach(unsubscribe => unsubscribe());\r\n      this.unsubscriptions = [];\r\n    }\r\n    return super.onDeactivate(isClosing);\r\n  }\r\n\r\n  // tslint:disable-next-line:cognitive-complexity\r\n  async navigate(subPath: string | undefined, params: any) {\r\n    const segments = splitUrlSegments(subPath);\r\n\r\n    // Vymažeme consumed flag před kontrolou — čerstvé načtení (změna jazyka, F5)\r\n    // musí vždy projít. Pohyb zpět zachytí popstate handler ještě před tímto kódem.\r\n    if (segments.length > 1 && segments[0] === PaymentRetryNavigationName && segments[1]) {\r\n      clearRetryConsumed(segments[1]);\r\n    }\r\n    // Tato podmínka je nyní prakticky vždy false (flag byl právě vymazán výše),\r\n    // ponecháme ji jako bezpečnostní síť pro případ selhání clearRetryConsumed.\r\n    if (segments.length > 1 && segments[0] === PaymentRetryNavigationName && segments[1] && isRetryBlocked(segments[1])) {\r\n      await this.tryActivateChild(this.batchOrderViewModel);\r\n      return;\r\n    }\r\n\r\n    let childToActivate;\r\n    if (segments[0] === BankTransferNavigationName) {\r\n      childToActivate = await this.findNavigationChild(subPath || \"\");\r\n    } else if (segments[0] === PaymentRetryNavigationName && segments[1]) {\r\n      childToActivate = await this.findNavigationChild(subPath || \"\");\r\n    } else if (segments[0] === StatusViewNavigationName && segments[1]) {\r\n      const storedOrder = await this.chargeOrderService.getStoredChargeOrder(segments[1]);\r\n      const chargeOrder = storedOrder ?? this.chargeOrderService.chargeOrder;\r\n\r\n      if (storedOrder) {\r\n        storedOrder._origin = \"multiple\";\r\n        this.chargeOrderService.chargeOrder = storedOrder;\r\n      }\r\n\r\n      const result = params.result;\r\n      const failureType = params[\"failure_type\"];\r\n      const failureOrigin = params[\"failure_origin\"];\r\n\r\n      if (chargeOrder) {\r\n        await this.chargeOrderService.updateChargeOrderStatus(result, chargeOrder, segments[1]);\r\n      }\r\n\r\n      if (chargeOrder?.id) {\r\n        const retryChild = await this.tryCreatePaymentRetryChild(chargeOrder);\r\n        if (retryChild) {\r\n          childToActivate = retryChild;\r\n        } else {\r\n          this.batchOrderViewModel.paymentResultFailureType = failureType;\r\n          this.batchOrderViewModel.paymentResultFailureOrigin = failureOrigin;\r\n          childToActivate = await this.findNavigationChild(subPath || \"\");\r\n        }\r\n      } else {\r\n        this.batchOrderViewModel.paymentResultFailureType = failureType;\r\n        this.batchOrderViewModel.paymentResultFailureOrigin = failureOrigin;\r\n        childToActivate = await this.findNavigationChild(subPath || \"\");\r\n      }\r\n    } else {\r\n      childToActivate = await this.findNavigationChild(segments[0] || \"\");\r\n    }\r\n\r\n    if (segments[0] !== BatchOrderViewModelNavigationName && this.activeChild instanceof BatchOrderViewModel) {\r\n      const isValid = this.activeChild.validateAll();\r\n\r\n      if (!isValid) return;\r\n    }\r\n\r\n    if (childToActivate) {\r\n      await this.tryActivateChild(childToActivate);\r\n\r\n      if (canNavigate(childToActivate)) {\r\n        await childToActivate.navigate(segments[1], params);\r\n      }\r\n    }\r\n\r\n    await this.onChildNavigated(childToActivate);\r\n  }\r\n\r\n  async findNavigationChild(navigationName: string) {\r\n    const retrySegments = splitUrlSegments(navigationName);\r\n    if (retrySegments[0] === PaymentRetryNavigationName && retrySegments.length > 1 && retrySegments[1]) {\r\n      const orderId = retrySegments[1];\r\n      if (isRetryBlocked(orderId)) {\r\n        return super.findNavigationChild(MultiEshopModuleNavigationName);\r\n      }\r\n      let chargeOrder = this.chargeOrderService.chargeOrder;\r\n      if (!chargeOrder || chargeOrder.id !== orderId) {\r\n        const stored = await this.chargeOrderService.getStoredChargeOrder(orderId);\r\n        if (stored) {\r\n          stored._origin = \"multiple\";\r\n          this.chargeOrderService.chargeOrder = stored;\r\n          chargeOrder = stored;\r\n        }\r\n      }\r\n      if (chargeOrder?.id) {\r\n        return this.buildPaymentRetryChild(chargeOrder);\r\n      }\r\n    }\r\n    if (navigationName.includes(BankTransferNavigationName)) {\r\n      const segments = splitUrlSegments(navigationName);\r\n      if (segments[1]) {\r\n        const chargeOrder = await this.chargeOrderService.getStoredChargeOrder(segments[1]);\r\n        if (chargeOrder && chargeOrder._status === ChargeOrderStatus.PaidBankTransfer) {\r\n          return this.bankTransferVMFactory(chargeOrder);\r\n        }\r\n      }\r\n    } else if (navigationName.includes(StatusViewNavigationName)) {\r\n      const segments = splitUrlSegments(navigationName);\r\n      if (segments[1]) {\r\n        const orderId = segments[1];\r\n        let chargeOrder = this.chargeOrderService.chargeOrder;\r\n\r\n        if (!chargeOrder || chargeOrder.id !== orderId) {\r\n          const storedOrder = await this.chargeOrderService.getStoredChargeOrder(orderId);\r\n          if (storedOrder) {\r\n            this.chargeOrderService.chargeOrder = storedOrder;\r\n            chargeOrder = storedOrder;\r\n          }\r\n        }\r\n\r\n        // Ask BE for the authoritative status using the id from the URL.\r\n        let beStatus: ChargeOrderStatus | undefined;\r\n        try {\r\n          const remote = await this.chargeOrderRepository.get(orderId);\r\n          beStatus = remote?.status;\r\n        } catch {\r\n          beStatus = undefined;\r\n        }\r\n\r\n        // Local status was just set by navigate() based on the URL `result` query param.\r\n        // Trust it as a fallback when BE hasn't caught up yet\r\n        // (race after second-tab payment_confirmation roundtrip).\r\n        const localStatus = chargeOrder?._status;\r\n        const isFinalStatus = (s?: ChargeOrderStatus) => s === ChargeOrderStatus.Paid || s === ChargeOrderStatus.Deferred;\r\n\r\n        if (chargeOrder && (isFinalStatus(beStatus) || isFinalStatus(localStatus))) {\r\n          const finalStatus = isFinalStatus(beStatus) ? beStatus! : localStatus!;\r\n          chargeOrder._status = finalStatus;\r\n          this.chargeOrderService.persistStoredChargeOrder(chargeOrder);\r\n          return this.statusVMFactory(chargeOrder);\r\n        } else {\r\n          return super.findNavigationChild(MultiEshopModuleNavigationName);\r\n        }\r\n      }\r\n    }\r\n    return super.findNavigationChild(navigationName);\r\n  }\r\n\r\n  private async lazyCheckEshopOutage() {\r\n    await when(() => this.outageService.isInitialized === true);\r\n    if (this.eshopOutage) {\r\n      this.tryActivateChild(this.orderOutageViewModelFactory(this.eshopOutage));\r\n    }\r\n  }\r\n\r\n  @computed\r\n  get chargeOrder() {\r\n    return this.chargeOrderService.chargeOrder;\r\n  }\r\n\r\n  @action.bound\r\n  private onEshopOutageChanged() {\r\n    if (this.eshopOutage === undefined) {\r\n      this.tryActivateChild(this.batchOrderViewModel);\r\n    }\r\n  }\r\n\r\n  @action.bound\r\n  private onOrderIsPaid() {\r\n    this.tryActivateChild(this.batchOrderViewModel);\r\n  }\r\n\r\n  @action.bound\r\n  private async tryCreatePaymentRetryChild(chargeOrder: ChargeOrder): Promise<ScreenBase | undefined> {\r\n    if (chargeOrder._status !== ChargeOrderStatus.Failed) return undefined;\r\n    try {\r\n      const payGatePayment = await this.chargeOrderRepository.getPayGatePayment(chargeOrder.id);\r\n\r\n      if (payGatePayment?.permittedActions?.paymentRetry?.isAllowed) {\r\n        return this.buildPaymentRetryChild(chargeOrder, payGatePayment);\r\n      }\r\n\r\n      // If payment is still in progress, show existing deferred screen\r\n      if (payGatePayment?.status === PayGatePaymentStatus.IN_PROGRESS) {\r\n        chargeOrder._status = ChargeOrderStatus.Deferred;\r\n        this.chargeOrderService.persistStoredChargeOrder(chargeOrder);\r\n        return this.statusVMFactory(chargeOrder);\r\n      }\r\n    } catch {\r\n      // If endpoint fails, fall back to existing behavior\r\n    }\r\n    return undefined;\r\n  }\r\n\r\n  private buildPaymentRetryChild(chargeOrder: ChargeOrder, payGatePayment?: any) {\r\n    clearRetryConsumed(chargeOrder.id);\r\n    const retryVM = this.paymentRetryVMFactory(\r\n      chargeOrder,\r\n      () => this.handleRetryPayment(chargeOrder),\r\n      () => this.handleBackToPurchaseWithPrefill(),\r\n      () => this.handlePaymentSucceeded(chargeOrder),\r\n      () => this.handlePaymentInProgress(chargeOrder),\r\n      paymentData => this.handleRetryGooglePayPayment(chargeOrder, paymentData),\r\n      () => this.handleRetryIdleTimeout(chargeOrder)\r\n    );\r\n    if (payGatePayment) retryVM.payGatePaymentResponse = payGatePayment;\r\n    return retryVM;\r\n  }\r\n\r\n  @action.bound\r\n  private handleRetryIdleTimeout(chargeOrder: ChargeOrder) {\r\n    markRetryConsumed(chargeOrder.id);\r\n    this.chargeOrderService.reset();\r\n    window.location.href = this.batchOrderViewModel.localizationService.translateGeneral(\r\n      \"eshop.idle.timeoutRedirect\",\r\n      undefined,\r\n      true\r\n    );\r\n  }\r\n\r\n  @action.bound\r\n  private async handleRetryGooglePayPayment(chargeOrder: ChargeOrder, paymentData: google.payments.api.PaymentData) {\r\n    try {\r\n      await this.paymentService.submitGooglePayment(chargeOrder.id, paymentData);\r\n    } catch {\r\n      // submit failure events are handled by retry VM's own subscribers.\r\n    }\r\n  }\r\n\r\n  @action.bound\r\n  private async handleRetryPayment(chargeOrder: ChargeOrder) {\r\n    await this.paymentService.payGateRedirect(chargeOrder.id, MultiEshopModuleNavigationName);\r\n  }\r\n\r\n  @action.bound\r\n  private async handlePaymentSucceeded(chargeOrder: ChargeOrder) {\r\n    markRetryConsumed(chargeOrder.id);\r\n    await this.chargeOrderService.updateChargeOrderStatus(PaymentResult.SUCCESS, chargeOrder, chargeOrder.id);\r\n    await this.tryActivateChild(this.statusVMFactory(chargeOrder));\r\n  }\r\n\r\n  @action.bound\r\n  private async handlePaymentInProgress(chargeOrder: ChargeOrder) {\r\n    markRetryConsumed(chargeOrder.id);\r\n    chargeOrder._status = ChargeOrderStatus.Deferred;\r\n    this.chargeOrderService.persistStoredChargeOrder(chargeOrder);\r\n    await this.tryActivateChild(this.statusVMFactory(chargeOrder));\r\n  }\r\n\r\n  @action.bound\r\n  private handleBackToPurchaseWithPrefill() {\r\n    this.chargeOrderService.reopenOrder();\r\n    this.tryActivateChild(this.batchOrderViewModel);\r\n  }\r\n\r\n  @action.bound\r\n  private onPaymentMultiFuelTypeNotAllowed() {\r\n    this.chargeOrderService.chargeOrder.charges.forEach(charge => (charge._isModified = true));\r\n    this.chargeOrderService.persistChargeOrder();\r\n    this.tryActivateChild(this.orderRecapViewModel);\r\n  }\r\n}\r\n","import { Type } from \"class-transformer\";\nimport { computed, observable } from \"mobx\";\nimport LanguageCode from \"./languageCode\";\n\nexport enum SystemComponent {\n  \"PAY_GATE\" = \"paygate\",\n  \"ISDS\" = \"isds\",\n  \"ESHOP\" = \"eshop\",\n  \"OTHER\" = \"other\",\n}\n\nclass SystemComponentOutageLocalizationResponse {\n  @observable\n  languageCode: LanguageCode;\n\n  @observable\n  description: string;\n}\n\nexport default class Outage {\n  @Type(() => Date)\n  @observable\n  validSince: Date;\n\n  @Type(() => Date)\n  @observable\n  validUntil?: Date;\n\n  @Type(() => Date)\n  @observable\n  visibleSince: Date;\n\n  @observable\n  systemComponentId: string;\n\n  @observable\n  systemComponentCode: SystemComponent | string;\n\n  @observable\n  description?: string;\n\n  @observable\n  @Type(() => SystemComponentOutageLocalizationResponse)\n  systemComponentOutageLocalizations?: SystemComponentOutageLocalizationResponse[];\n\n  @computed\n  get id() {\n    return `${this.systemComponentId}-${this.validSince.toISOString()}`;\n  }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"paymentCard\":\"selectPaymentMethod_paymentCard__3C1xg\",\"selected\":\"selectPaymentMethod_selected__1Kymu\",\"disabled\":\"selectPaymentMethod_disabled__2SK1G\",\"paymentTitle\":\"selectPaymentMethod_paymentTitle__2aL8H\",\"speedIcon\":\"selectPaymentMethod_speedIcon__3M41d\",\"paymentContent\":\"selectPaymentMethod_paymentContent__3QcaT\",\"paymentTitleRow\":\"selectPaymentMethod_paymentTitleRow__2l1oV\",\"paymentDescription\":\"selectPaymentMethod_paymentDescription__DEmMD\",\"paymentLogos\":\"selectPaymentMethod_paymentLogos__-KfNL\",\"hiddenRadio\":\"selectPaymentMethod_hiddenRadio__3bx5g\"};","import { RestRequestBuilder } from \"@frui.ts/apiclient\";\nimport AuthorizationService from \"../services/authorizationService\";\nimport EventBus, { serverError, userLogout } from \"../services/eventBus\";\n\nexport default abstract class RepositoryBase<TRequestBuilder = RestRequestBuilder> {\n  constructor(\n    protected apiFactory: () => TRequestBuilder,\n    protected authorizationService: AuthorizationService,\n    protected eventBus: EventBus\n  ) {}\n\n  protected async callApi<T>(action: (api: TRequestBuilder) => Promise<T>, useGenericErrorMessageHandler = true) {\n    if (!this.authorizationService.isAuthorized()) {\n      await this.authorizationService.authorize();\n    } else {\n      await this.authorizationService.startAccessTokenRenewCycle();\n    }\n\n    const promise = action(this.apiFactory());\n\n    promise.catch(error => {\n      if (error.response?.status === 401) {\n        this.eventBus.publish(userLogout());\n      }\n\n      if (!useGenericErrorMessageHandler) {\n        return error;\n      }\n\n      const status = error.response?.status;\n      if (status && status >= 500) {\n        this.eventBus.publish(serverError({ type: \"internalServerError\" }));\n      } else {\n        this.eventBus.publish(serverError({}));\n      }\n    });\n\n    return promise;\n  }\n}\n","import { IconType } from \"@edaz/edazkit/Icon\";\nimport * as Sentry from \"@sentry/react\";\nimport ClientOAuth2, { Token } from \"client-oauth2\";\nimport { accessTokenKey, accessTokenStoreTimestamp, clientId, clientSecret, eshopPaymentAPIScope, scope, tokenUrl } from \"config\";\nimport { action, observable, when } from \"mobx\";\nimport LocalizationService from \"./localizationService\";\nimport NotificationService, { NotificationType } from \"./notificationService\";\n\nexport default class AuthorizationService {\n  @observable authClient?: ClientOAuth2;\n  @observable authorizationInProgress = false;\n  @observable tokenRefreshCycleInProgress = false;\n\n  private TOKEN_EXPIRATION_OFFSET = 30;\n  private tokenRefreshTimeout?: number;\n\n  constructor(private notificationService: NotificationService, private localizationService: LocalizationService) {\n    this.initialize();\n  }\n\n  @action.bound\n  initialize() {\n    if (!clientId || !clientSecret || !tokenUrl || !scope) {\n      Sentry.withScope(scope => {\n        scope.setTag(\"AuthorizationService\", \"token session storage parse\");\n        Sentry.captureException(new Error(\"Authorization service ENV not configured properly\"));\n      });\n      return;\n    }\n\n    this.authClient = new ClientOAuth2({\n      clientId: clientId,\n      clientSecret: clientSecret,\n      accessTokenUri: tokenUrl,\n      scopes: [scope, eshopPaymentAPIScope],\n    });\n  }\n\n  token() {\n    const tokenDataJSON = sessionStorage.getItem(accessTokenKey);\n\n    try {\n      if (!tokenDataJSON) {\n        return undefined;\n      }\n\n      const data = this.authClient?.createToken(JSON.parse(tokenDataJSON));\n\n      if (data && !this.isTokenExpired(data)) {\n        return data;\n      } else {\n        sessionStorage.removeItem(accessTokenKey);\n        sessionStorage.removeItem(accessTokenStoreTimestamp);\n        return undefined;\n      }\n    } catch (error) {\n      Sentry.withScope(scope => {\n        scope.setTag(\"AuthorizationService\", \"token session storage parse\");\n        Sentry.captureException(error);\n      });\n      return undefined;\n    }\n  }\n\n  isTokenExpired(token: Token) {\n    const timeout = this.getTimeout(token);\n\n    return !timeout || timeout <= 0;\n  }\n\n  isAuthorized() {\n    return this.token() !== undefined;\n  }\n\n  @action.bound\n  async authorize() {\n    if (this.authorizationInProgress) {\n      await when(() => !this.authorizationInProgress);\n      return;\n    }\n\n    this.authorizationInProgress = true;\n    try {\n      await this.getAccessToken();\n    } catch (e) {\n      try {\n        await this.getAccessToken();\n      } catch (e) {\n        this.notificationService.add({\n          type: NotificationType.ERROR,\n          icon: IconType.Offline,\n          title: this.localizationService.translateGeneral(\"errors.accessToken\"),\n          permanent: true,\n        });\n        Sentry.withScope(scope => {\n          scope.setTag(\"AuthorizationService\", \"token fetch failed\");\n          Sentry.captureException(e);\n        });\n        throw new Error(\"Fetch of access token failed\");\n      }\n    }\n  }\n\n  @action.bound\n  async getAccessToken() {\n    if (!this.authClient || !this.authClient.credentials) return;\n\n    const token = await this.authClient.credentials.getToken();\n    sessionStorage.setItem(accessTokenKey, JSON.stringify(token.data));\n    sessionStorage.setItem(accessTokenStoreTimestamp, ((Date.now() / 1000) | 0).toString());\n\n    this.authorizationInProgress = false;\n    this.tokenRefreshCycleInProgress = false;\n    await this.startAccessTokenRenewCycle();\n  }\n\n  @action.bound\n  async startAccessTokenRenewCycle() {\n    if (this.tokenRefreshCycleInProgress) return;\n\n    const token = this.token();\n\n    if (token === undefined) {\n      await this.authorize();\n\n      return;\n    }\n\n    const timeout = this.getTimeout(token);\n    if (!timeout || timeout <= 0 || !this.isAuthorized()) {\n      await this.authorize();\n\n      return;\n    }\n\n    clearTimeout(this.tokenRefreshTimeout);\n    this.tokenRefreshCycleInProgress = true;\n    this.tokenRefreshTimeout = window.setTimeout(() => this.authorize(), timeout * 1000);\n  }\n\n  private static accessTokenStoreTimestamp() {\n    return sessionStorage.getItem(accessTokenStoreTimestamp) || AuthorizationService.getNowTimestampInSeconds();\n  }\n\n  private static getNowTimestampInSeconds() {\n    return (Date.now() / 1000) | 0;\n  }\n\n  @action.bound\n  getTimeout(token: Token) {\n    const timeout =\n      +AuthorizationService.accessTokenStoreTimestamp() +\n      (+token.data.expires_in - this.TOKEN_EXPIRATION_OFFSET) -\n      AuthorizationService.getNowTimestampInSeconds();\n\n    return timeout;\n  }\n\n  buildHeaders = (): { [key: string]: string } => {\n    const header = this.authorizationHeader();\n    return header\n      ? {\n          authorization: header,\n        }\n      : {};\n  };\n\n  authorizationHeader = () => {\n    const token = this.token();\n\n    return token ? `${token.tokenType} ${token.accessToken}` : undefined;\n  };\n}\n","import { FetchApiConnector } from \"@frui.ts/apiclient\";\nimport { ClassTransformOptions, serialize } from \"class-transformer\";\nimport formatISO from \"date-fns/formatISO\";\n\nconst serializeOptions: ClassTransformOptions = {\n  excludePrefixes: [\"_\", \"__\"],\n};\n\nconst serializeEntity = (value: any): string => serialize(value, serializeOptions);\n\nconst middleware = (response: Response) => {\n  if (response.status >= 500 && response.status < 600) {\n    throw new Error(\"SERVER_ERROR\");\n  } else {\n    return response;\n  }\n};\n\nconst ApiConnector = new FetchApiConnector({ jsonSerializer: serializeEntity, middleware });\n\n// eslint-disable-next-line no-extend-native\nDate.prototype.toJSON = function () {\n  return formatISO(this);\n};\n\nexport default ApiConnector;\n","import { appendJsonHeader, RestRequestBuilder } from \"@frui.ts/apiclient\";\nimport { deserialize, plainToClass } from \"class-transformer\";\nimport { ClassConstructor } from \"class-transformer\";\nimport { interfaces } from \"inversify\";\nimport { apiUrl, apiVersion } from \"../config\";\nimport AuthorizationService from \"../services/authorizationService\";\nimport ApiConnector from \"./backendConnector\";\nimport { IResults } from \"./types\";\nimport { RequestBuilderConfiguration } from \"./eshopRequestBuilder\";\n\nexport default class DeserializingRequestBuilder extends RestRequestBuilder {\n  constructor(authorizationService: AuthorizationService, configuration?: RequestBuilderConfiguration) {\n    super(ApiConnector, `${configuration?.customApiUrl || apiUrl}${configuration?.customApiVersion || apiVersion}`, {\n      headers: {\n        ...authorizationService.buildHeaders(),\n      },\n    });\n  }\n\n  getEntities<T>(returnType: ClassConstructor<T>, queryParams?: any): Promise<IResults<T>> {\n    const requestUrl = this.appendQuery(this.url, queryParams);\n    const params = appendJsonHeader(this.params);\n    return this.apiConnector\n      .get(requestUrl, params)\n      .then(x => x.json())\n      .then(x => {\n        return {\n          items: x.items.map((item: any) => plainToClass(returnType, item)),\n        };\n      });\n  }\n\n  getEntity<T>(returnType: ClassConstructor<T>, queryParams?: any): Promise<T> {\n    const requestUrl = this.appendQuery(this.url, queryParams);\n    const params = appendJsonHeader(this.params);\n    return this.apiConnector\n      .get(requestUrl, params)\n      .then(x => x.text())\n      .then(x => deserialize(returnType, x));\n  }\n\n  postEntity<T>(content: any, returnType: ClassConstructor<T>): Promise<T> {\n    const params = appendJsonHeader(this.params);\n    return this.apiConnector\n      .postJson(this.url, content, params)\n      .then(x => x.text())\n      .then(x => deserialize(returnType, x));\n  }\n\n  putEntity<T>(content: any, returnType: ClassConstructor<T>): Promise<T> {\n    const params = appendJsonHeader(this.params);\n    return this.apiConnector\n      .putJson(this.url, content, params)\n      .then(x => x.text())\n      .then(x => deserialize(returnType, x));\n  }\n\n  patchEntity<T>(content: any, returnType: ClassConstructor<T>): Promise<T> {\n    const params = appendJsonHeader(this.params);\n    return this.apiConnector\n      .patchJson(this.url, content, params)\n      .then(x => x.text())\n      .then(x => deserialize(returnType, x));\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (configuration?: RequestBuilderConfiguration) =>\n      new DeserializingRequestBuilder(container.get(AuthorizationService), configuration);\n  }\n}\n","import { RestRequestBuilder } from \"@frui.ts/apiclient\";\nimport { IApiConnector } from \"@frui.ts/apiclient/dist/types\";\nimport { apiUrl, apiVersion } from \"../config\";\nimport AuthorizationService from \"../services/authorizationService\";\nimport LocaleProvider from \"../services/localeProvider\";\nimport ApiConnector from \"./backendConnector\";\nimport { interfaces } from \"inversify\";\nimport { plainToClass, ClassConstructor } from \"class-transformer\";\nimport { IResults } from \"./types\";\n\nfunction appendAuthCodeHeader(params: RequestInit | undefined, authCode: string): RequestInit {\n  return {\n    ...params,\n    headers: {\n      ...(params || {}).headers,\n      \"Auth-Code\": authCode,\n    },\n  };\n}\n\nconst ContentTypes = {\n  json: \"application/json,text/json\",\n  pdf: \"application/pdf\",\n};\n\nfunction appendAcceptHeader(params: RequestInit | undefined, acceptContentType: string): RequestInit {\n  return {\n    ...params,\n    headers: {\n      ...(params || {}).headers,\n      Accept: acceptContentType,\n    },\n  };\n}\n\nfunction appendContentTypeHeader(params: RequestInit | undefined, acceptContentType: string): RequestInit {\n  return {\n    ...params,\n    headers: {\n      ...(params || {}).headers,\n      \"Content-Type\": acceptContentType,\n    },\n  };\n}\n\nfunction appendSignalRConnectionIdHeader(params: RequestInit | undefined, connectionId: string): RequestInit {\n  return {\n    ...params,\n    headers: {\n      ...(params || {}).headers,\n      \"SignalR-ConnectionId\": connectionId,\n    },\n  };\n}\n\nfunction appendGTurnstileResponseHeader(params: RequestInit | undefined, token: string): RequestInit {\n  return {\n    ...params,\n    headers: {\n      ...(params || {}).headers,\n      \"cf-turnstile-response\": token,\n    },\n  };\n}\n\nfunction appendISDSSessionIdHeader(params: RequestInit | undefined, sessionId: string): RequestInit {\n  return {\n    ...params,\n    headers: {\n      ...(params || {}).headers,\n      \"Isds-Session-Id\": sessionId,\n    },\n  };\n}\n\nexport type RequestBuilderConfiguration = {\n  customApiUrl?: string;\n  customApiVersion?: string;\n  customApiConnector?: IApiConnector;\n};\n\nexport default class EshopRequestBuilder extends RestRequestBuilder {\n  protected configuration: RequestBuilderConfiguration | undefined;\n\n  constructor(\n    authorizationService: AuthorizationService,\n    localeProvider: LocaleProvider,\n    configuration?: RequestBuilderConfiguration\n  ) {\n    super(\n      configuration?.customApiConnector || ApiConnector,\n      `${configuration?.customApiUrl || apiUrl}${configuration?.customApiVersion || apiVersion}`,\n      {\n        headers: {\n          ...authorizationService.buildHeaders(),\n          \"Accept-Language\": localeProvider.locale === \"en-GB\" ? \"en\" : localeProvider.locale,\n        },\n      }\n    );\n\n    this.configuration = configuration;\n  }\n\n  apiVersion(version: number) {\n    this.urlValue = `${this.configuration?.customApiUrl || apiUrl}/api/v${version}`;\n\n    return this;\n  }\n\n  customApiUrlWithVersion(url: string, apiVersion: number) {\n    const baseCustomUrl = url.split(\"/api/v\")[0];\n    this.urlValue = `${baseCustomUrl}/api/v${apiVersion}`;\n\n    return this;\n  }\n\n  get<T>(\n    queryParams?: any,\n    authCode?: string,\n    connectionId: string | undefined = undefined,\n    sessionId: string | undefined = undefined,\n    gTurnstileResponse: string | undefined | null = undefined\n  ): Promise<T> {\n    const requestUrl = this.appendQuery(this.urlValue, queryParams);\n    let params = appendAcceptHeader(this.params, ContentTypes.json);\n\n    if (authCode) {\n      params = appendAuthCodeHeader(params, authCode);\n    }\n\n    if (connectionId) {\n      params = appendSignalRConnectionIdHeader(params, connectionId);\n    }\n\n    if (gTurnstileResponse) {\n      params = appendGTurnstileResponseHeader(params, gTurnstileResponse);\n    }\n\n    if (sessionId) {\n      params = appendISDSSessionIdHeader(params, sessionId);\n    }\n\n    return this.apiConnector.get(requestUrl, params).then(x => x.json().catch(() => x));\n  }\n\n  getEntities<T>(returnType: ClassConstructor<T>, queryParams?: any): Promise<IResults<T>> {\n    const requestUrl = this.appendQuery(this.url, queryParams);\n    const params = appendAcceptHeader(this.params, ContentTypes.json);\n    return this.apiConnector\n      .get(requestUrl, params)\n      .then(x => x.json())\n      .then(x => {\n        return {\n          items: x.items.map((item: any) => plainToClass(returnType, item)),\n        };\n      });\n  }\n\n  clearGet(\n    queryParams?: any,\n    authCode?: string,\n    connectionId: string | undefined = undefined,\n    sessionId: string | undefined = undefined,\n    gTurnstileResponse: string | undefined | null = undefined\n  ): Promise<Response> {\n    const requestUrl = this.appendQuery(this.urlValue, queryParams);\n    let params = appendAcceptHeader(this.params, ContentTypes.json);\n\n    if (authCode) {\n      params = appendAuthCodeHeader(params, authCode);\n    }\n\n    if (connectionId) {\n      params = appendSignalRConnectionIdHeader(params, connectionId);\n    }\n\n    if (gTurnstileResponse) {\n      params = appendGTurnstileResponseHeader(params, gTurnstileResponse);\n    }\n\n    if (sessionId) {\n      params = appendISDSSessionIdHeader(params, sessionId);\n    }\n\n    return this.apiConnector.get(requestUrl, params);\n  }\n\n  postData(data?: BodyInit, sessionId: string | undefined = undefined) {\n    let params = appendAcceptHeader(this.params, ContentTypes.json);\n\n    if (sessionId) {\n      params = appendISDSSessionIdHeader(params, sessionId);\n    }\n\n    return this.apiConnector.post(this.urlValue, data, params);\n  }\n\n  post<T>(\n    content: any,\n    authCode?: string,\n    connectionId: string | undefined = undefined,\n    sessionId: string | undefined = undefined,\n    gTurnstileResponse: string | undefined | null = undefined,\n    contentTypes: string | undefined = undefined\n  ): Promise<T> {\n    let params = appendAcceptHeader(this.params, contentTypes ?? ContentTypes.json);\n\n    if (authCode) {\n      params = appendAuthCodeHeader(params, authCode);\n    }\n\n    if (connectionId) {\n      params = appendSignalRConnectionIdHeader(params, connectionId);\n    }\n\n    if (gTurnstileResponse) {\n      params = appendGTurnstileResponseHeader(params, gTurnstileResponse);\n    }\n\n    if (sessionId) {\n      params = appendISDSSessionIdHeader(params, sessionId);\n    }\n\n    if (contentTypes) {\n      params = appendAcceptHeader(this.params, ContentTypes.pdf);\n      params = appendContentTypeHeader(params, ContentTypes.pdf);\n    }\n\n    return this.apiConnector.postJson(this.urlValue, content, params).then(x => x.json().catch(() => x));\n  }\n\n  clearPost(\n    content: any,\n    authCode?: string,\n    connectionId: string | undefined = undefined,\n    gTurnstileResponse: string | undefined | null = undefined,\n    contentTypes: string | undefined = undefined\n  ): Promise<Response> {\n    let params = appendAcceptHeader(this.params, ContentTypes.json);\n\n    if (authCode) {\n      params = appendAuthCodeHeader(params, authCode);\n    }\n\n    if (connectionId) {\n      params = appendSignalRConnectionIdHeader(params, connectionId);\n    }\n\n    if (gTurnstileResponse) {\n      params = appendGTurnstileResponseHeader(params, gTurnstileResponse);\n    }\n\n    if (contentTypes) {\n      params = appendAcceptHeader(this.params, ContentTypes.pdf);\n      params = appendContentTypeHeader(params, ContentTypes.pdf);\n    }\n\n    return this.apiConnector.postJson(this.urlValue, content, params);\n  }\n\n  put<T>(content: any, authCode?: string, connectionId: string | undefined = undefined): Promise<T> {\n    let params = appendAcceptHeader(this.params, ContentTypes.json);\n\n    if (authCode) {\n      params = appendAuthCodeHeader(params, authCode);\n    }\n\n    if (connectionId) {\n      params = appendSignalRConnectionIdHeader(params, connectionId);\n    }\n\n    return this.apiConnector.putJson(this.urlValue, content, params).then(x => x.json().catch(() => undefined));\n  }\n\n  clearPut(\n    content: any,\n    authCode?: string,\n    connectionId: string | undefined = undefined,\n    gTurnstileResponse: string | undefined | null = undefined\n  ): Promise<Response> {\n    let params = appendAcceptHeader(this.params, ContentTypes.json);\n\n    if (authCode) {\n      params = appendAuthCodeHeader(params, authCode);\n    }\n\n    if (connectionId) {\n      params = appendSignalRConnectionIdHeader(params, connectionId);\n    }\n\n    if (gTurnstileResponse) {\n      params = appendGTurnstileResponseHeader(params, gTurnstileResponse);\n    }\n\n    return this.apiConnector.putJson(this.urlValue, content, params);\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (configuration?: RequestBuilderConfiguration) =>\n      new EshopRequestBuilder(container.get(AuthorizationService), container.get(LocaleProvider), configuration);\n  }\n}\n","import { v4 as uuidv4 } from \"uuid\";\nimport { plainToClass } from \"class-transformer\";\nimport ChargePriceListResponse from \"entities/chargePriceListResponse\";\n\nconst SESSION_STORAGE_PRICE_LIST_KEY = \"price_list\";\n\nexport default class ChargePriceListStorageRepository {\n  addPriceList(priceList: ChargePriceListResponse) {\n    if (!!priceList && !priceList?.id) {\n      priceList.id = uuidv4();\n    }\n\n    const priceListString = sessionStorage.getItem(SESSION_STORAGE_PRICE_LIST_KEY);\n    if (priceListString) {\n      this.removePriceList();\n    }\n    sessionStorage.setItem(SESSION_STORAGE_PRICE_LIST_KEY, JSON.stringify(priceList));\n  }\n\n  getPriceList() {\n    let priceList: ChargePriceListResponse;\n    const priceListString = sessionStorage.getItem(SESSION_STORAGE_PRICE_LIST_KEY);\n    if (priceListString) {\n      priceList = JSON.parse(priceListString) as ChargePriceListResponse;\n      return plainToClass(ChargePriceListResponse, priceList);\n    }\n  }\n\n  removePriceList() {\n    this.clearPriceList();\n  }\n\n  storePriceList(priceList: ChargePriceListResponse[]) {\n    sessionStorage.setItem(SESSION_STORAGE_PRICE_LIST_KEY, JSON.stringify(priceList));\n  }\n\n  async clearPriceList() {\n    sessionStorage.removeItem(SESSION_STORAGE_PRICE_LIST_KEY);\n  }\n}\n","import { observable } from \"mobx\";\n\nexport default class ExemptionRegistrationResponse {\n  @observable\n  licensePlate: string;\n}\n","import { observable } from \"mobx\";\n\nexport default class PossibleExemptionRegistrationResponse {\n  @observable\n  licensePlate: string;\n\n  @observable\n  possibleExemption: string;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport ExemptionRegistrationResponse from \"./exemptionRegistrationResponse\";\nimport ExistingChargeResponse from \"./existingChargeResponse\";\nimport PossibleExemptionRegistrationResponse from \"entities/possibleExemptionRegistrationResponse\";\n\nexport default class ChargeRegistrationReport {\n  @observable\n  countryId: string;\n\n  @observable\n  @Type(() => Date)\n  validSince: Date;\n\n  @Type(() => ExemptionRegistrationResponse)\n  @observable\n  exemptions: ExemptionRegistrationResponse[] = [];\n\n  @Type(() => PossibleExemptionRegistrationResponse)\n  @observable\n  possibleExemptions: PossibleExemptionRegistrationResponse[] = [];\n\n  @Type(() => ExemptionRegistrationResponse)\n  @observable\n  charges: ExistingChargeResponse[] = [];\n}\n","import { observable } from \"mobx\";\nimport type PossibleExemptionType from \"./possibleExemptionType\";\n\nexport default class VehicleRegistrationsResponse {\n  @observable\n  isGivenExemption: boolean;\n\n  @observable\n  possibleExemption?: PossibleExemptionType;\n\n  @observable\n  chargeWasPurchasedBefore: boolean;\n}\n","import { plainToClass } from \"class-transformer\";\nimport formatISO from \"date-fns/formatISO\";\nimport AuthorizationService from \"../services/authorizationService\";\nimport RepositoryBase from \"./repositoryBase\";\nimport EshopError from \"../models/eshopError\";\nimport EshopRequestBuilder from \"../data/eshopRequestBuilder\";\nimport ChargeRegistrationReport from \"../models/chargeRegistrationReport\";\nimport EventBus from \"../services/eventBus\";\nimport VehicleRegistrationsResponse from \"models/vehicleRegistrationsResponse\";\nimport ChargeRegistrationsResponse from \"entities/chargeRegistrationsResponse\";\n\nexport const GET_CHARGE_REGISTRATIONS_REQUEST_FAILURE = \"GET_CHARGE_REGISTRATIONS_REQUEST_FAILURE\";\nexport const GET_VEHICLE_REGISTRATIONS_REQUEST_FAILURE = \"GET_VEHICLE_REGISTRATIONS_REQUEST_FAILURE\";\nconst POST_VEHICLE_REGISTRATIONS_REPORT_REQUEST_FAILURE = \"POST_VEHICLE_REGISTRATIONS_REPORT_REQUEST_FAILURE\";\n\nexport default class ChargeRegistrationRepository extends RepositoryBase<EshopRequestBuilder> {\n  constructor(\n    protected apiFactory: ReturnType<typeof EshopRequestBuilder.Factory>,\n    protected authorizationService: AuthorizationService,\n    protected eventBus: EventBus\n  ) {\n    super(() => apiFactory(), authorizationService, eventBus);\n  }\n\n  vehicleRegistrationsReport(countryId: string, licensePlates: string[], validSince?: Date) {\n    return this.callApi(() =>\n      this.apiFactory()\n        .one(\"vehicle_registrations/report\")\n        .clearPost({ licensePlates, countryId, validSince })\n        .then(async response => {\n          if (!response.ok) return plainToClass(EshopError, (await response.json()) as EshopError);\n\n          return plainToClass(ChargeRegistrationReport, (await response.json()) as ChargeRegistrationReport);\n        })\n        .catch(() => new EshopError(POST_VEHICLE_REGISTRATIONS_REPORT_REQUEST_FAILURE))\n    );\n  }\n\n  getWithCharge(countryId: string, licensePlate: string) {\n    return this.callApi(api =>\n      api\n        .apiVersion(3)\n        .one(`charge_registrations/${countryId}/${licensePlate}`)\n        .get<ChargeRegistrationsResponse>()\n        .then(response => {\n          return plainToClass(ChargeRegistrationsResponse, response);\n        })\n        .catch(() => new EshopError(GET_CHARGE_REGISTRATIONS_REQUEST_FAILURE))\n    );\n  }\n\n  vehicleRegistration(countryId: string, licensePlate: string, validSince?: Date) {\n    const queryValidSince = validSince ? new Date(validSince) : undefined;\n\n    return this.callApi(api =>\n      api\n        .apiVersion(2)\n        .one(`vehicle_registrations/${countryId}/${licensePlate}`)\n        .get(\n          queryValidSince\n            ? {\n                // eslint-disable-next-line\n                valid_since: formatISO(queryValidSince),\n              }\n            : {}\n        )\n        .then(response => {\n          return plainToClass(VehicleRegistrationsResponse, response);\n        })\n        .catch(() => new EshopError(GET_VEHICLE_REGISTRATIONS_REQUEST_FAILURE))\n    );\n  }\n}\n","import { plainToInstance } from \"class-transformer\";\r\nimport ChargeTypeResponse from \"entities/chargeTypeResponse\";\r\n\r\nconst SESSION_STORAGE_CHARGE_TYPES_KEY = \"charge_types\";\r\n\r\nexport default class ChargeTypesStorageRepository {\r\n  addChargeTypes(chargeTypes: ChargeTypeResponse[]) {\r\n    if (!chargeTypes.length) {\r\n      return;\r\n    }\r\n\r\n    const chargeTypesString = sessionStorage.getItem(SESSION_STORAGE_CHARGE_TYPES_KEY);\r\n    if (chargeTypesString) {\r\n      this.removeChargeTypes();\r\n    }\r\n    sessionStorage.setItem(SESSION_STORAGE_CHARGE_TYPES_KEY, JSON.stringify(chargeTypes));\r\n  }\r\n\r\n  getChargeTypes() {\r\n    let chargeTypes: ChargeTypeResponse[];\r\n    const chargeTypesString = sessionStorage.getItem(SESSION_STORAGE_CHARGE_TYPES_KEY);\r\n    if (chargeTypesString) {\r\n      chargeTypes = JSON.parse(chargeTypesString) as ChargeTypeResponse[];\r\n      return plainToInstance(ChargeTypeResponse, chargeTypes);\r\n    }\r\n  }\r\n\r\n  removeChargeTypes() {\r\n    this.clearChargeTypes();\r\n  }\r\n\r\n  storeChargeTypes(chargeTypes: ChargeTypeResponse[]) {\r\n    sessionStorage.setItem(SESSION_STORAGE_CHARGE_TYPES_KEY, JSON.stringify(chargeTypes));\r\n  }\r\n\r\n  async clearChargeTypes() {\r\n    sessionStorage.removeItem(SESSION_STORAGE_CHARGE_TYPES_KEY);\r\n  }\r\n}\r\n","import { observable } from \"mobx\";\nimport ChargeOrderCustomerRatingRequest from \"./chargeOrderCustomerRatingRequest\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class CustomerRating {\n  @observable\n  rating?: ChargeOrderCustomerRatingRequest;\n\n  @observable\n  step?: number;\n\n  @observable\n  orderId?: string;\n\n  @observable\n  warning?: string;\n}\n","import { plainToInstance } from \"class-transformer\";\nimport CustomerRating from \"entities/customerRating\";\n\nconst SESSION_STORAGE_CUSTOMER_REVIEW_KEY = \"customer_review\";\n\nexport default class CustomerReviewStorageRepository {\n  addCustomerRating(customerRating: CustomerRating) {\n    if (!customerRating || !customerRating.orderId) {\n      return;\n    }\n\n    const customerRatingsString = sessionStorage.getItem(SESSION_STORAGE_CUSTOMER_REVIEW_KEY);\n    const customerRatings = customerRatingsString ? JSON.parse(customerRatingsString) : [];\n    const updatedRatings = customerRatings.filter((rating: CustomerRating) => rating.orderId !== customerRating.orderId);\n\n    updatedRatings.push(customerRating);\n    sessionStorage.setItem(SESSION_STORAGE_CUSTOMER_REVIEW_KEY, JSON.stringify(updatedRatings));\n  }\n\n  getCustomerRating(orderId: string): CustomerRating | undefined {\n    if (!orderId) {\n      return undefined;\n    }\n\n    const customerRatingsString = sessionStorage.getItem(SESSION_STORAGE_CUSTOMER_REVIEW_KEY);\n    if (!customerRatingsString) {\n      return undefined;\n    }\n\n    const customerRatings = JSON.parse(customerRatingsString) as CustomerRating[];\n    const customerRating = customerRatings?.find(rating => rating.orderId === orderId);\n\n    return customerRating ? plainToInstance(CustomerRating, customerRating) : undefined;\n  }\n\n  removeCustomerRating(orderId: string) {\n    if (!orderId) {\n      return;\n    }\n\n    const customerRatingsString = sessionStorage.getItem(SESSION_STORAGE_CUSTOMER_REVIEW_KEY);\n    if (!customerRatingsString) {\n      return;\n    }\n\n    const customerRatings = JSON.parse(customerRatingsString) as CustomerRating[];\n    const updatedRatings = customerRatings.filter(rating => rating.orderId !== orderId);\n\n    sessionStorage.setItem(SESSION_STORAGE_CUSTOMER_REVIEW_KEY, JSON.stringify(updatedRatings));\n  }\n\n  clearCustomerRatings() {\n    sessionStorage.removeItem(SESSION_STORAGE_CUSTOMER_REVIEW_KEY);\n  }\n}\n","import Enum from \"models/enum\";\nimport AuthorizationService from \"../services/authorizationService\";\nimport RepositoryBase from \"./repositoryBase\";\nimport { EnumContainer, IEnumRepository } from \"@edaz/services/baseEnumService\";\nimport { EnumTypes } from \"../services/enumService\";\nimport EventBus from \"../services/eventBus\";\nimport EshopRequestBuilder from \"../data/eshopRequestBuilder\";\n\nexport type SupportedEnumAPIVersions = 2 | 2.1 | 2.2 | 3.0;\n\nexport default class EnumRepository extends RepositoryBase<EshopRequestBuilder> implements IEnumRepository<Enum> {\n  constructor(\n    protected apiFactory: ReturnType<typeof EshopRequestBuilder.Factory>,\n    protected authorizationService: AuthorizationService,\n    protected eventBus: EventBus\n  ) {\n    super(apiFactory, authorizationService, eventBus);\n  }\n\n  getAll(enumName: EnumTypes, apiVersion: SupportedEnumAPIVersions = 2) {\n    return this.callApi(api => api.apiVersion(apiVersion).all(\"enums\").all(enumName).get<EnumContainer<Enum>>());\n  }\n\n  getEnum(enumName: EnumTypes, apiVersion: SupportedEnumAPIVersions = 2) {\n    return this.getAll(enumName, apiVersion).then(result => {\n      return result.items;\n    });\n  }\n\n  async fetchEnums(): Promise<EnumContainer<Enum>> {\n    const [countries, exemption_reasons, charge_validity_rules, fuel_types, charge_types] = await Promise.all([\n      this.getEnum(\"countries\", 3.0),\n      this.getEnum(\"exemption_reasons\", 3.0),\n      this.getEnum(\"charge_validity_rules\", 3.0),\n      this.getEnum(\"fuel_types\", 3.0),\n      this.getEnum(\"charge_types\", 3.0),\n    ]);\n\n    return {\n      countries,\n      exemption_reasons,\n      charge_validity_rules,\n      fuel_types,\n      charge_types,\n    };\n  }\n}\n","import { observable } from \"mobx\";\nimport ExemptionApplicationWarningReason from \"./exemptionApplicationWarningReason\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ExemptionApplicationProductionResponse {\n  /**\n   * Exemption application warning reasons.\n   */\n  @observable\n  warningReasons!: ExemptionApplicationWarningReason[];\n}\n","import AuthorizationService from \"../services/authorizationService\";\nimport RepositoryBase from \"./repositoryBase\";\nimport Exemption from \"models/exemption\";\nimport EshopRequestBuilder from \"../data/eshopRequestBuilder\";\nimport EshopError from \"../models/eshopError\";\nimport { plainToClass } from \"class-transformer\";\nimport { toJS } from \"mobx\";\nimport IsdsResponse from \"models/isdsResponse\";\nimport { PersistedBase64 } from \"../models/notice\";\nimport { parseFileNameFromHeaderResponse, persistedBlobToISDSFormat } from \"../utils/fileUtils\";\nimport EventBus from \"../services/eventBus\";\nimport ExemptionApplicationProductionResponse from \"entities/exemptionApplicationProductionResponse\";\nimport BlobWithFileName from \"models/blobWithFileName\";\n\nexport const POST_EXEMPTION_REQUEST_FAILURE = \"POST_EXEMPTION_REQUEST_FAILURE\";\nexport const POST_EXEMPTION_PREVIEW_REQUEST_FAILURE = \"POST_EXEMPTION_PREVIEW_REQUEST_FAILURE\";\nconst POST_EXEMPTION_APPLICATIONS_DOCUMENTS_ISDS_FAILURE = \"POST_EXEMPTION_APPLICATIONS_DOCUMENTS_ISDS_FAILURE\";\n\nexport default class ExemptionRepository extends RepositoryBase<EshopRequestBuilder> {\n  constructor(\n    protected apiFactory: ReturnType<typeof EshopRequestBuilder.Factory>,\n    protected authorizationService: AuthorizationService,\n    protected eventBus: EventBus\n  ) {\n    super(() => apiFactory(), authorizationService, eventBus);\n  }\n\n  createExemptionRequestObj(exemption: Exemption) {\n    const notice = toJS(exemption);\n\n    if (notice.vehicleOperator) {\n      if (notice.vehicleOperator.isLegalPerson) {\n        notice.vehicleOperator.naturalPerson = undefined;\n      } else {\n        notice.vehicleOperator.legalPerson = undefined;\n      }\n    }\n\n    if (\n      notice.vehicleOperator?.isLegalPerson === false &&\n      notice.vehicleOperator?.naturalPerson?.isRepresentedByProxy === false\n    ) {\n      notice.vehicleOperator.naturalPerson = undefined;\n    }\n\n    if (\n      (!notice.vehicleOperator?.legalPerson?.companyAddress ||\n        !notice.vehicleOperator?.legalPerson?.companyRegistrationNumber ||\n        !notice.vehicleOperator?.legalPerson?.companyName) &&\n      (!notice.vehicleOperator?.naturalPerson?.mailingAddress ||\n        !notice.vehicleOperator?.naturalPerson?.birthDate ||\n        !notice.vehicleOperator?.naturalPerson?.fullName)\n    ) {\n      notice.vehicleOperator = undefined;\n    }\n\n    return notice;\n  }\n\n  createExemption(exemption: Exemption): Promise<EshopError | BlobWithFileName> {\n    const notice = this.createExemptionRequestObj(exemption);\n\n    return this.callApi(() =>\n      this.apiFactory()\n        .apiVersion(3)\n        .one(\"exemptions/applications\")\n        .clearPost(notice, undefined, undefined, undefined, \"application/pdf\")\n        .then(async (response: any) => {\n          if (!response.ok) return plainToClass(EshopError, (await response.json()) as EshopError);\n\n          const fileName = parseFileNameFromHeaderResponse(response.headers.get(\"Content-Disposition\"));\n          const blob = await response.blob();\n\n          return { blob: blob, fileName: fileName ?? \"download\" } as BlobWithFileName;\n        })\n        .catch(() => {\n          throw new EshopError(POST_EXEMPTION_REQUEST_FAILURE);\n        })\n    );\n  }\n\n  getProduction(exemption: Exemption): Promise<ExemptionApplicationProductionResponse | EshopError> {\n    const notice = this.createExemptionRequestObj(exemption);\n\n    return this.callApi(() =>\n      this.apiFactory()\n        .apiVersion(3)\n        .one(\"exemptions/application_preview\")\n        .post(notice)\n        .then(response => {\n          return plainToClass(ExemptionApplicationProductionResponse, response);\n        })\n        .catch(() => new EshopError(POST_EXEMPTION_PREVIEW_REQUEST_FAILURE))\n    );\n  }\n\n  uploadDocuments(ISDSSessionId: string, files: PersistedBase64[]) {\n    const data = new FormData();\n    files.forEach(persistedBlob => data.append(\"documentFiles\", persistedBlobToISDSFormat(persistedBlob)));\n\n    return this.callApi(api =>\n      api\n        .apiVersion(3)\n        .one(\"exemptions/applications/documents/isds\")\n        .postData(data, ISDSSessionId)\n        .then(async response => {\n          if (!response.ok) return plainToClass(EshopError, (await response.json()) as EshopError);\n\n          return plainToClass(IsdsResponse, (await response.json()) as IsdsResponse);\n        })\n        .catch(() => {\n          throw new EshopError(POST_EXEMPTION_APPLICATIONS_DOCUMENTS_ISDS_FAILURE);\n        })\n    );\n  }\n}\n","import { observable } from \"mobx\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class IsdsMessageDeliveryStatusResponse {\n  /**\n   * Result code of sending operation (0 = OK, 2305 = Denied by user, other - other error described in reason phrase).\n   */\n  @observable\n  statusCode?: string;\n\n  /**\n   * Optional reason phrase for status code.\n   */\n  @observable\n  statusMessage?: string;\n}\n","import { plainToClass } from \"class-transformer\";\nimport EshopRequestBuilder from \"data/eshopRequestBuilder\";\nimport EshopError from \"../models/eshopError\";\nimport AuthorizationService from \"../services/authorizationService\";\nimport RepositoryBase from \"./repositoryBase\";\nimport EventBus from \"../services/eventBus\";\nimport IsdsMessageDeliveryStatusResponse from \"entities/isdsMessageDeliveryStatusResponse\";\n\nexport default class ISDSRepository extends RepositoryBase<EshopRequestBuilder> {\n  constructor(\n    protected apiFactory: ReturnType<typeof EshopRequestBuilder.Factory>,\n    protected authorizationService: AuthorizationService,\n    protected eventBus: EventBus\n  ) {\n    super(() => apiFactory(), authorizationService, eventBus);\n  }\n\n  conceptStatus = (sessionId: string) =>\n    this.callApi(api =>\n      api\n        .apiVersion(3)\n        .one(\"isds/message_status\")\n        .clearGet({}, undefined, undefined, sessionId)\n        .then(async response => {\n          if (!response.ok) return plainToClass(EshopError, (await response.json()) as EshopError);\n\n          return plainToClass(IsdsMessageDeliveryStatusResponse, (await response.json()) as IsdsMessageDeliveryStatusResponse);\n        })\n    );\n}\n","import { observable } from \"mobx\";\nimport VehicleChangeApplicationRejectionReason from \"./vehicleChangeApplicationRejectionReason\";\nimport VehicleChangeApplicationWarningReason from \"./vehicleChangeApplicationWarningReason\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class VehicleChangeApplicationProductionResponse {\n  /**\n   * If true - application is valid and can be submitted.\n   */\n  @observable\n  canBeAppliedFor!: boolean;\n\n  @observable\n  rejectionReason?: VehicleChangeApplicationRejectionReason;\n\n  /**\n   * Warning reasons.\n   */\n  @observable\n  warningReasons?: VehicleChangeApplicationWarningReason[];\n\n  /**\n   * Charge management URL - only filled when charge before validity exists.\n   */\n  @observable\n  chargeManagementUrl?: string;\n}\n","import { plainToClass } from \"class-transformer\";\nimport { toJS } from \"mobx\";\nimport IsdsResponse from \"models/isdsResponse\";\nimport LicensePlateChange from \"models/licensePlateChange\";\nimport EshopRequestBuilder from \"../data/eshopRequestBuilder\";\nimport EshopError from \"../models/eshopError\";\nimport AuthorizationService from \"../services/authorizationService\";\nimport RepositoryBase from \"./repositoryBase\";\nimport { parseFileNameFromHeaderResponse, persistedBlobToISDSFormat } from \"../utils/fileUtils\";\nimport { PersistedBase64 } from \"../models/notice\";\nimport EventBus from \"../services/eventBus\";\nimport VehicleChangeApplicationProductionResponse from \"entities/vehicleChangeApplicationProductionResponse\";\nimport BlobWithFileName from \"models/blobWithFileName\";\n\nexport const POST_LICENSE_PLATE_CHANGE_REQUEST_FAILURE = \"POST_LICENSE_PLATE_CHANGE_REQUEST_FAILURE\";\nexport const POST_LICENSE_PLATE_CHANGE_PREVIEW_REQUEST_FAILURE = \"POST_LICENSE_PLATE_CHANGE_PREVIEW_REQUEST_FAILURE\";\nconst POST_LICENSE_PLATE_CHANGE_APPLICATIONS_DOCUMENTS_ISDS_FAILURE =\n  \"POST_LICENSE_PLATE_CHANGE_APPLICATIONS_DOCUMENTS_ISDS_FAILURE\";\n\nexport default class LicensePlateChangeRepository extends RepositoryBase<EshopRequestBuilder> {\n  constructor(\n    protected apiFactory: ReturnType<typeof EshopRequestBuilder.Factory>,\n    protected authorizationService: AuthorizationService,\n    protected eventBus: EventBus\n  ) {\n    super(() => apiFactory(), authorizationService, eventBus);\n  }\n\n  createRequestObj(licensePlateChange: LicensePlateChange) {\n    const notice = toJS(licensePlateChange);\n\n    notice.originalVehicle = notice?.vehicle;\n    notice.newVehicle = {\n      countryId: notice.countryId,\n      licensePlate: notice.licensePlate,\n    };\n    notice.vehicleOperator = undefined;\n    notice.vehicle = undefined;\n    notice.countryId = undefined;\n    notice.licensePlate = undefined;\n\n    return notice;\n  }\n\n  createLicensePlateChangeNotice(licensePlateChange: LicensePlateChange): Promise<EshopError | BlobWithFileName> {\n    const notice = this.createRequestObj(licensePlateChange);\n\n    return this.callApi(api =>\n      api\n        .apiVersion(3)\n        .one(`charge_registrations/vehicle_change_applications`)\n        .clearPost(notice, undefined, undefined, undefined, \"application/pdf\")\n        .then(async (response: any) => {\n          if (!response.ok) return plainToClass(EshopError, (await response.json()) as EshopError);\n\n          const fileName = parseFileNameFromHeaderResponse(response.headers.get(\"Content-Disposition\"));\n          const blob = await response.blob();\n\n          return { blob: blob, fileName: fileName ?? \"download\" } as BlobWithFileName;\n        })\n        .catch(() => {\n          throw new EshopError(POST_LICENSE_PLATE_CHANGE_REQUEST_FAILURE);\n        })\n    );\n  }\n  getProduction(licensePlateChange: LicensePlateChange): Promise<VehicleChangeApplicationProductionResponse | EshopError> {\n    const notice = this.createRequestObj(licensePlateChange);\n\n    return this.callApi(() =>\n      this.apiFactory()\n        .apiVersion(3)\n        .one(\"charge_registrations/vehicle_change_application_preview\")\n        .post(notice)\n        .then(response => {\n          return plainToClass(VehicleChangeApplicationProductionResponse, response);\n        })\n        .catch(() => new EshopError(POST_LICENSE_PLATE_CHANGE_PREVIEW_REQUEST_FAILURE))\n    );\n  }\n\n  uploadDocuments(ISDSSessionId: string, files: PersistedBase64[]) {\n    const data = new FormData();\n    files.forEach(persistedBlob => data.append(\"documentFiles\", persistedBlobToISDSFormat(persistedBlob)));\n\n    return this.callApi(api =>\n      api\n        .apiVersion(3)\n        .one(`charge_registrations/vehicle_change_applications/documents/isds`)\n        .postData(data, ISDSSessionId)\n        .then(async response => {\n          if (!response.ok) return plainToClass(EshopError, (await response.json()) as EshopError);\n\n          return plainToClass(IsdsResponse, (await response.json()) as IsdsResponse);\n        })\n        .catch(() => {\n          throw new EshopError(POST_LICENSE_PLATE_CHANGE_APPLICATIONS_DOCUMENTS_ISDS_FAILURE);\n        })\n    );\n  }\n}\n","import { ILocalizationProvider } from \"@edaz/services/baseLocalizationService\";\nimport { LocalizationContainer } from \"services/localizationService\";\n\nimport cs from \"../localization/cs.json\";\nimport en from \"../localization/en.json\";\nimport de from \"../localization/de.json\";\nimport pl from \"../localization/pl.json\";\nimport ru from \"../localization/ru.json\";\nimport hu from \"../localization/hu.json\";\n\nexport default class LocalizationRepository implements ILocalizationProvider {\n  async get(language: string): Promise<LocalizationContainer> {\n    switch (language) {\n      case \"en\":\n      case \"en-GB\":\n        return en as LocalizationContainer;\n      case \"de\":\n        return de as LocalizationContainer;\n      case \"pl\":\n        return pl as LocalizationContainer;\n      case \"ru\":\n        return ru as LocalizationContainer;\n      case \"hu\":\n        return hu as LocalizationContainer;\n      case \"cs\":\n      default:\n        return cs as LocalizationContainer;\n    }\n  }\n}\n","import { observable } from \"mobx\";\n\nexport default class Redirect {\n  @observable\n  redirectUrl: string;\n}\n","import AuthorizationService from \"../services/authorizationService\";\nimport RepositoryBase from \"./repositoryBase\";\nimport Redirect from \"../models/redirect\";\nimport EshopError from \"../models/eshopError\";\nimport { plainToClass } from \"class-transformer\";\nimport EshopRequestBuilder from \"../data/eshopRequestBuilder\";\nimport EventBus from \"../services/eventBus\";\n\nconst POST_NIA_AUTH_REQUEST_FAILURE = \"POST_NIA_AUTH_REQUEST_FAILURE\";\n\nexport default class NiaRepository extends RepositoryBase<EshopRequestBuilder> {\n  constructor(\n    protected apiFactory: ReturnType<typeof EshopRequestBuilder.Factory>,\n    protected authorizationService: AuthorizationService,\n    protected eventBus: EventBus\n  ) {\n    super(() => apiFactory(), authorizationService, eventBus);\n  }\n\n  niaRedirect = () =>\n    this.callApi(api =>\n      api\n        .one(\"nia/auth_request\")\n        .clearPost({})\n        .then(async response => {\n          if (!response.ok) return plainToClass(EshopError, (await response.json()) as EshopError);\n\n          return plainToClass(Redirect, (await response.json()) as Redirect);\n        })\n        .catch(() => {\n          throw new EshopError(POST_NIA_AUTH_REQUEST_FAILURE);\n        })\n    );\n}\n","import { observable } from \"mobx\";\nimport ExemptionCancellationApplicationRejectionReason from \"./exemptionCancellationApplicationRejectionReason\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ExemptionCancellationApplicationProductionResponse {\n  /**\n   * If true - application is valid and can be submitted.\n   */\n  @observable\n  canBeAppliedFor!: boolean;\n\n  @observable\n  rejectionReason?: ExemptionCancellationApplicationRejectionReason;\n}\n","import { plainToClass } from \"class-transformer\";\nimport AuthorizationService from \"../services/authorizationService\";\nimport RepositoryBase from \"./repositoryBase\";\nimport Omission from \"models/omission\";\nimport EshopError from \"models/eshopError\";\nimport EventBus from \"../services/eventBus\";\nimport EshopRequestBuilder from \"../data/eshopRequestBuilder\";\nimport { toJS } from \"mobx\";\nimport IsdsResponse from \"models/isdsResponse\";\nimport { PersistedBase64 } from \"models/notice\";\nimport { parseFileNameFromHeaderResponse, persistedBlobToISDSFormat } from \"../utils/fileUtils\";\nimport ExemptionCancellationApplicationProductionResponse from \"../entities/exemptionCancellationApplicationProductionResponse\";\nimport BlobWithFileName from \"models/blobWithFileName\";\n\nexport const GET_EXEMPTION_REQUEST_FAILURE = \"GET_EXEMPTION_REQUEST_FAILURE\";\nexport const POST_OMISSION_REQUEST_FAILURE = \"POST_OMISSION_REQUEST_FAILURE\";\nexport const POST_OMISSION_PREVIEW_REQUEST_FAILURE = \"POST_OMISSION_PREVIEW_REQUEST_FAILURE\";\nconst POST_OMISSION_APPLICATIONS_DOCUMENTS_ISDS_FAILURE = \"POST_OMISSION_APPLICATIONS_DOCUMENTS_ISDS_FAILURE\";\n\nexport default class OmissionRepository extends RepositoryBase<EshopRequestBuilder> {\n  constructor(\n    protected apiFactory: ReturnType<typeof EshopRequestBuilder.Factory>,\n    protected authorizationService: AuthorizationService,\n    protected eventBus: EventBus\n  ) {\n    super(() => apiFactory(), authorizationService, eventBus);\n  }\n\n  createOmissionRequestObj(omission: Omission) {\n    const notice = toJS(omission);\n\n    if (notice.vehicleOperator) {\n      if (notice.vehicleOperator.isLegalPerson) {\n        notice.vehicleOperator.naturalPerson = undefined;\n      } else {\n        notice.vehicleOperator.legalPerson = undefined;\n      }\n    }\n\n    if (\n      notice.vehicleOperator?.isLegalPerson === false &&\n      notice.vehicleOperator?.naturalPerson?.isRepresentedByProxy === false\n    ) {\n      notice.vehicleOperator.naturalPerson = undefined;\n    }\n\n    if (\n      (!notice.vehicleOperator?.legalPerson?.companyAddress ||\n        !notice.vehicleOperator?.legalPerson?.companyRegistrationNumber ||\n        !notice.vehicleOperator?.legalPerson?.companyName) &&\n      (!notice.vehicleOperator?.naturalPerson?.mailingAddress ||\n        !notice.vehicleOperator?.naturalPerson?.birthDate ||\n        !notice.vehicleOperator?.naturalPerson?.fullName)\n    ) {\n      notice.vehicleOperator = undefined;\n    }\n\n    return notice;\n  }\n\n  getProduction(omission: Omission): Promise<EshopError | ExemptionCancellationApplicationProductionResponse> {\n    const notice = this.createOmissionRequestObj(omission);\n\n    return this.callApi(() =>\n      this.apiFactory()\n        .apiVersion(3)\n        .one(\"exemptions/cancellation_application_preview\")\n        .post(notice)\n        .then(response => {\n          return plainToClass(ExemptionCancellationApplicationProductionResponse, response);\n        })\n        .catch(() => new EshopError(POST_OMISSION_PREVIEW_REQUEST_FAILURE))\n    );\n  }\n\n  createOmission(omission: Omission): Promise<EshopError | BlobWithFileName> {\n    const notice = this.createOmissionRequestObj(omission);\n\n    return this.callApi(api =>\n      api\n        .apiVersion(3)\n        .one(\"exemptions/cancellation_applications\")\n        .clearPost(notice, undefined, undefined, undefined, \"application/pdf\")\n        .then(async (response: any) => {\n          if (!response.ok) return plainToClass(EshopError, (await response.json()) as EshopError);\n\n          const fileName = parseFileNameFromHeaderResponse(response.headers.get(\"Content-Disposition\"));\n          const blob = await response.blob();\n\n          return { blob: blob, fileName: fileName ?? \"download\" } as BlobWithFileName;\n        })\n        .catch(() => {\n          throw new EshopError(POST_OMISSION_REQUEST_FAILURE);\n        })\n    );\n  }\n\n  uploadDocuments(ISDSSessionId: string, files: PersistedBase64[]) {\n    const data = new FormData();\n    files.forEach(persistedBlob => data.append(\"documentFiles\", persistedBlobToISDSFormat(persistedBlob)));\n\n    return this.callApi(api =>\n      api\n        .apiVersion(3)\n        .one(\"exemptions/cancellation_applications/documents/isds\")\n        .postData(data, ISDSSessionId)\n        .then(async response => {\n          if (!response.ok) return plainToClass(EshopError, (await response.json()) as EshopError);\n\n          return plainToClass(IsdsResponse, (await response.json()) as IsdsResponse);\n        })\n        .catch(() => {\n          throw new EshopError(POST_OMISSION_APPLICATIONS_DOCUMENTS_ISDS_FAILURE);\n        })\n    );\n  }\n}\n","import type { EntityValidationRules } from \"services/validationService\";\nimport { computed, observable } from \"mobx\";\n\nexport const EmailValidationRules: EntityValidationRules<Contact> = {\n  emailAddress: {\n    isEmail: true,\n  },\n};\n\nexport const EmailConfirmationValidationRules: EntityValidationRules<Contact> = {\n  _emailConfirmation: {\n    equalWith: { property: \"emailAddress\" as const },\n    isEmail: true,\n  },\n};\n\nexport const PhoneNumberValidationRules: EntityValidationRules<Contact> = {\n  phoneNumber: { isPhoneNumber: true },\n};\n\nexport default class Contact {\n  @observable\n  phoneNumber?: string;\n\n  @observable\n  smsNotificationEnabled = false;\n\n  @observable\n  emailAddress: string;\n\n  @observable\n  _emailConfirmation: string;\n\n  @observable\n  emailNotificationEnabled = false;\n\n  @observable\n  authCode?: string;\n\n  @observable\n  canBeChanged?: boolean;\n\n  @computed\n  get rules(): EntityValidationRules<Contact> {\n    return {\n      ...EmailValidationRules,\n      ...EmailConfirmationValidationRules,\n      ...(this.smsNotificationEnabled ? PhoneNumberValidationRules : {}),\n    };\n  }\n\n  @computed\n  get editRules(): EntityValidationRules<Contact> {\n    return {\n      ...EmailValidationRules,\n      ...(this.smsNotificationEnabled ? PhoneNumberValidationRules : {}),\n    };\n  }\n}\n\nexport const ContactValidationRules: EntityValidationRules<Contact> = {\n  emailAddress: {\n    isEmail: true,\n  },\n  _emailConfirmation: {\n    equalWith: { property: \"emailAddress\" as const },\n    isEmail: true,\n  },\n};\n\nexport const PhoneContactValidationRules: EntityValidationRules<Contact> = {\n  emailAddress: { isEmail: true },\n  phoneNumber: { isPhoneNumber: true },\n};\n\nexport const SMSNotificationEnabledRules: EntityValidationRules<Contact> = {\n  phoneNumber: { isPhoneNumber: true },\n};\n\nexport type ContactEditationTriggerer = \"licensePlateChange\" | \"validityChange\" | \"contactChange\" | \"receiptChange\";\n","import Contact from \"./contact\";\nimport Payment from \"./payment\";\nimport OrderItem from \"./orderItem\";\nimport { Type } from \"class-transformer\";\nimport { observable } from \"mobx\";\nimport { EntityValidationRules } from \"../services/validationService\";\n\nexport enum OrderStatus {\n  Open = \"OPEN\",\n  PaidBankTransfer = \"PAID_BANK_TRANSFER\",\n  Paid = \"PAID\",\n  Deferred = \"DEFERRED\",\n  Failed = \"FAILED\",\n}\n\nexport default class Order {\n  @Type(() => Contact)\n  @observable\n  contact: Contact = new Contact();\n\n  @Type(() => Payment)\n  @observable\n  payment: Payment = new Payment();\n\n  @observable\n  proposedPurchaseRequestId?: string;\n\n  @observable\n  status: OrderStatus = OrderStatus.Open;\n\n  id: string;\n\n  @Type(() => Date)\n  expires: Date;\n\n  @Type(() => OrderItem)\n  @observable\n  orderItems: OrderItem[] = [new OrderItem()];\n\n  _createdAt: Date = new Date();\n\n  @observable\n  _termsAgreement = false;\n\n  _origin: \"single\" | \"multiple\" = \"single\";\n\n  @observable\n  _wasReopen = false;\n}\n\nexport const OrderValidationRules: EntityValidationRules<Order> = {\n  _termsAgreement: {\n    isTrue: true,\n  },\n};\n","import Order from \"models/order\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { plainToClass } from \"class-transformer\";\n\nconst SESSION_STORAGE_ORDERS_KEY = \"orders\";\n\nexport default class OrderRepository {\n  getLastOrder(): Order | undefined {\n    return OrderRepository.getOrders()\n      .sort((order1, order2) => new Date(order2._createdAt).getTime() - new Date(order1._createdAt).getTime())\n      .shift();\n  }\n\n  getOrder(id: string): Order | undefined {\n    return OrderRepository.getOrders().find(order => order.id === id);\n  }\n\n  addOrder(order: Order) {\n    if (!order.id) {\n      order.id = uuidv4();\n      order._createdAt = new Date();\n    }\n\n    let orders: Order[] = [];\n    const ordersString = sessionStorage.getItem(SESSION_STORAGE_ORDERS_KEY);\n    if (ordersString) {\n      orders = JSON.parse(ordersString) as Order[];\n    }\n    orders.push(order);\n\n    sessionStorage.setItem(SESSION_STORAGE_ORDERS_KEY, JSON.stringify(orders));\n  }\n\n  updateOrder(order: Order) {\n    this.removeOrder(order.id);\n\n    this.addOrder(order);\n  }\n\n  private static getOrders() {\n    let orders: Order[] = [];\n    const ordersString = sessionStorage.getItem(SESSION_STORAGE_ORDERS_KEY);\n    if (ordersString) {\n      orders = JSON.parse(ordersString) as Order[];\n    }\n\n    return orders.map(order => plainToClass(Order, order));\n  }\n\n  removeOrder(id: string) {\n    let orders = OrderRepository.getOrders();\n\n    orders = orders.filter(order => order.id !== id);\n\n    OrderRepository.storeOrders(orders);\n  }\n\n  private static storeOrders(orders: Order[]) {\n    sessionStorage.setItem(SESSION_STORAGE_ORDERS_KEY, JSON.stringify(orders));\n  }\n\n  async clearOrders() {\n    sessionStorage.removeItem(SESSION_STORAGE_ORDERS_KEY);\n  }\n}\n","import RepositoryBase from \"./repositoryBase\";\r\nimport EshopRequestBuilder from \"../data/eshopRequestBuilder\";\r\nimport AuthorizationService from \"../services/authorizationService\";\r\nimport EventBus from \"../services/eventBus\";\r\nimport SystemComponentOutagesResponse from \"entities/systemComponentOutagesResponse\";\r\nimport { plainToInstance } from \"class-transformer\";\r\n\r\nexport default class OutageRepository extends RepositoryBase<EshopRequestBuilder> {\r\n  constructor(\r\n    protected apiFactory: ReturnType<typeof EshopRequestBuilder.Factory>,\r\n    protected authorizationService: AuthorizationService,\r\n    protected eventBus: EventBus\r\n  ) {\r\n    super(() => apiFactory(), authorizationService, eventBus);\r\n  }\r\n\r\n  getSystemComponentOutages() {\r\n    return this.callApi(api =>\r\n      api\r\n        .apiVersion(3)\r\n        .all(\"system_component_outages\")\r\n        .get<SystemComponentOutagesResponse>()\r\n        .then(response => plainToInstance(SystemComponentOutagesResponse, response))\r\n    );\r\n  }\r\n}\r\n","import RepositoryBase from \"./repositoryBase\";\nimport EshopRequestBuilder from \"../data/eshopRequestBuilder\";\nimport AuthorizationService from \"../services/authorizationService\";\nimport EventBus from \"../services/eventBus\";\nimport GooglePayMetadata from \"../models/googlePayMetadata\";\nimport { plainToClass } from \"class-transformer\";\nimport { paymentGateway } from \"../config\";\nimport EshopError from \"../models/eshopError\";\nimport * as Sentry from \"@sentry/react\";\nimport GooglePayInitPaymentResponse from \"../models/googlePayInitPaymentResponse\";\nimport GooglePayProcessPaymentRequest from \"models/googlePayProcessPaymentRequest\";\nimport GooglePayProcessPaymentResponse from \"models/googlePayProcessPaymentResponse\";\n\nexport const GET_GOOGLE_PAY_INFO_REQUEST_FAILURE = \"GET_GOOGLE_PAY_INFO_REQUEST_FAILURE\";\nexport const GET_GOOGLE_PAY_TRANSACTION_STATUS_CHECK_FAILURE = \"GET_GOOGLE_PAY_TRANSACTION_STATUS_CHECK_FAILURE\";\nexport const SUBMIT_GOOGLE_PAY_PAYMENT_FAILURE = \"SUBMIT_GOOGLE_PAY_PAYMENT_FAILURE\";\nexport const SUBMIT_GOOGLE_PAY_PAYMENT_CONFIRMATION_FAILURE = \"SUBMIT_GOOGLE_PAY_PAYMENT_CONFIRMATION_FAILURE\";\n\nexport default class PaymentRepository extends RepositoryBase<EshopRequestBuilder> {\n  constructor(\n    protected apiFactory: ReturnType<typeof EshopRequestBuilder.Factory>,\n    protected authorizationService: AuthorizationService,\n    protected eventBus: EventBus\n  ) {\n    super(() => apiFactory(), authorizationService, eventBus);\n  }\n\n  getGooglePayMetadata() {\n    return this.callApi(() =>\n      this.apiFactory()\n        .customApiUrlWithVersion(paymentGateway, 1)\n        .all(\"paygate\")\n        .all(\"google_pay\")\n        .all(\"metadata\")\n        .get<GooglePayMetadata>()\n        .then(googlePayMetadata => plainToClass(GooglePayMetadata, googlePayMetadata))\n        .catch(error => {\n          Sentry.captureException(error);\n\n          return new EshopError(GET_GOOGLE_PAY_INFO_REQUEST_FAILURE);\n        })\n    );\n  }\n\n  submitGooglePayment(orderId: string, redirectAfterConfirmationUrl: string, payload: google.payments.api.PaymentData) {\n    return this.callApi(() =>\n      this.apiFactory()\n        .customApiUrlWithVersion(paymentGateway, 1)\n        .all(\"paygate\")\n        .all(\"google_pay\")\n        .one(\"charge_orders\", orderId)\n        .all(\"payment\")\n        .post<GooglePayInitPaymentResponse>({\n          payload: btoa(payload.paymentMethodData.tokenizationData.token),\n          redirectAfterConfirmationUrl: redirectAfterConfirmationUrl,\n        })\n        .catch(error => {\n          Sentry.captureException(error);\n\n          return new EshopError(SUBMIT_GOOGLE_PAY_PAYMENT_FAILURE);\n        })\n    );\n  }\n\n  submitGooglePayPaymentConfirmation(orderId: string, connectionId: string, payload: GooglePayProcessPaymentRequest) {\n    return this.callApi(() =>\n      this.apiFactory()\n        .customApiUrlWithVersion(paymentGateway, 1.1)\n        .all(\"paygate\")\n        .all(\"google_pay\")\n        .one(\"charge_orders\", orderId)\n        .all(\"payment_confirmation\")\n        .post<GooglePayProcessPaymentResponse>(payload, undefined, connectionId)\n        .catch(error => {\n          Sentry.captureException(error);\n\n          return new EshopError(SUBMIT_GOOGLE_PAY_PAYMENT_CONFIRMATION_FAILURE);\n        })\n    );\n  }\n\n  getGooglePayTransactionStatus(orderId: string) {\n    return this.callApi(() =>\n      this.apiFactory()\n        .customApiUrlWithVersion(paymentGateway, 1)\n        .all(\"paygate\")\n        .all(\"google_pay\")\n        .one(\"charge_order_payments\", orderId)\n        .get<GooglePayProcessPaymentResponse>()\n        .catch(error => {\n          Sentry.captureException(error);\n\n          return new EshopError(GET_GOOGLE_PAY_TRANSACTION_STATUS_CHECK_FAILURE);\n        })\n    );\n  }\n}\n","import { observable } from \"mobx\";\nimport CustomerRefundApplicationRejectionReason from \"./customerRefundApplicationRejectionReason\";\nimport CustomerRefundApplicationWarningReason from \"./customerRefundApplicationWarningReason\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class CustomerRefundApplicationProductionResponse {\n  /**\n   * If true - application is valid and can be submitted.\n   */\n  @observable\n  canBeAppliedFor!: boolean;\n\n  @observable\n  rejectionReason?: CustomerRefundApplicationRejectionReason;\n\n  /**\n   * Warning reasons.\n   */\n  @observable\n  warningReasons?: CustomerRefundApplicationWarningReason[];\n\n  /**\n   * Charge management URL - only filled when charge before validity exists.\n   */\n  @observable\n  chargeManagementUrl?: string;\n}\n","import { plainToClass } from \"class-transformer\";\nimport { toJS } from \"mobx\";\nimport IsdsResponse from \"models/isdsResponse\";\nimport EshopRequestBuilder from \"../data/eshopRequestBuilder\";\nimport EshopError from \"../models/eshopError\";\nimport AuthorizationService from \"../services/authorizationService\";\nimport RepositoryBase from \"./repositoryBase\";\nimport { parseFileNameFromHeaderResponse, persistedBlobToISDSFormat } from \"../utils/fileUtils\";\nimport { PersistedBase64 } from \"../models/notice\";\nimport EventBus from \"../services/eventBus\";\nimport CustomerRefundApplicationRequest from \"../entities/customerRefundApplicationRequest\";\nimport RefundRequestNotice from \"../models/refundRequestNotice\";\nimport CustomerRefundApplicationProductionResponse from \"entities/customerRefundApplicationProductionResponse\";\nimport BlobWithFileName from \"models/blobWithFileName\";\n\nconst POST_REFUND_REQUEST_REQUEST_FAILURE = \"POST_REFUND_REQUEST_REQUEST_FAILURE\";\nconst POST_REFUND_REQUEST_PREVIEW_REQUEST_FAILURE = \"POST_REFUND_REQUEST_PREVIEW_REQUEST_FAILURE\";\nconst POST_REFUND_REQUEST_APPLICATIONS_DOCUMENTS_ISDS_FAILURE = \"POST_REFUND_REQUEST_APPLICATIONS_DOCUMENTS_ISDS_FAILURE\";\n\nexport default class RefundRequestRepository extends RepositoryBase<EshopRequestBuilder> {\n  constructor(\n    protected apiFactory: ReturnType<typeof EshopRequestBuilder.Factory>,\n    protected authorizationService: AuthorizationService,\n    protected eventBus: EventBus\n  ) {\n    super(() => apiFactory(), authorizationService, eventBus);\n  }\n\n  createRefundRequestObj(refundRequest: RefundRequestNotice, countryId: string, licensePlate: string) {\n    const notice = toJS(refundRequest);\n    // Convert Notice class to API Request\n    const request: CustomerRefundApplicationRequest = {\n      chargeOrderSourceType: notice.chargeOrderSourceType,\n      reason: notice.reason,\n      otherReasonText: notice.otherReasonText,\n      bankAccount: notice.bankAccount,\n      applicant: {\n        ...notice.applicant,\n        fullName: notice.applicant.fullName!,\n        birthDate: notice.applicant.birthDate!,\n        address: notice.applicant.mailingAddress!,\n      },\n      vehicle: {\n        countryId: countryId!,\n        licensePlate: licensePlate!,\n      },\n    };\n\n    return request;\n  }\n\n  createRefundRequest(\n    refundRequest: RefundRequestNotice,\n    countryId: string,\n    licensePlate: string\n  ): Promise<EshopError | BlobWithFileName> {\n    const request = this.createRefundRequestObj(refundRequest, countryId, licensePlate);\n    // Convert Notice class to API Request\n\n    return this.callApi(api =>\n      api\n        .apiVersion(3)\n        .one(`charges/customer_refund_applications`)\n        .clearPost(request, undefined, undefined, undefined, \"application/pdf\")\n        .then(async (response: any) => {\n          if (!response.ok) return plainToClass(EshopError, (await response.json()) as EshopError);\n\n          const fileName = parseFileNameFromHeaderResponse(response.headers.get(\"Content-Disposition\"));\n          const blob = await response.blob();\n\n          return { blob: blob, fileName: fileName ?? \"download\" } as BlobWithFileName;\n        })\n        .catch(() => {\n          throw new EshopError(POST_REFUND_REQUEST_REQUEST_FAILURE);\n        })\n    );\n  }\n\n  getProduction(\n    refundRequest: RefundRequestNotice,\n    countryId: string,\n    licensePlate: string\n  ): Promise<EshopError | CustomerRefundApplicationProductionResponse> {\n    const request = this.createRefundRequestObj(refundRequest, countryId, licensePlate);\n\n    return this.callApi(() =>\n      this.apiFactory()\n        .apiVersion(3)\n        .one(\"charges/customer_refund_application_preview\")\n        .post(request)\n        .then(response => {\n          return plainToClass(CustomerRefundApplicationProductionResponse, response);\n        })\n        .catch(() => new EshopError(POST_REFUND_REQUEST_PREVIEW_REQUEST_FAILURE))\n    );\n  }\n\n  uploadDocuments(ISDSSessionId: string, files: PersistedBase64[]) {\n    const data = new FormData();\n    files.forEach(persistedBlob => data.append(\"documentFiles\", persistedBlobToISDSFormat(persistedBlob)));\n\n    return this.callApi(api =>\n      api\n        .apiVersion(3)\n        .one(`charges/customer_refund_applications/documents/isds`)\n        .postData(data, ISDSSessionId)\n        .then(async response => {\n          if (!response.ok) return plainToClass(EshopError, (await response.json()) as EshopError);\n\n          return plainToClass(IsdsResponse, (await response.json()) as IsdsResponse);\n        })\n        .catch(() => {\n          throw new EshopError(POST_REFUND_REQUEST_APPLICATIONS_DOCUMENTS_ISDS_FAILURE);\n        })\n    );\n  }\n}\n","import { plainToClass } from \"class-transformer\";\r\nimport AuthorizationService from \"../services/authorizationService\";\r\nimport RepositoryBase from \"./repositoryBase\";\r\nimport EshopError from \"../models/eshopError\";\r\nimport EshopRequestBuilder from \"../data/eshopRequestBuilder\";\r\nimport EventBus from \"../services/eventBus\";\r\nimport ServerTimeResponse from \"entities/serverTimeResponse\";\r\n\r\nconst CURRENT_SERVER_TIME_ERROR = \"CURRENT_SERVER_TIME_ERROR\";\r\n\r\nexport default class SystemRepository extends RepositoryBase<EshopRequestBuilder> {\r\n  constructor(\r\n    protected apiFactory: ReturnType<typeof EshopRequestBuilder.Factory>,\r\n    protected authorizationService: AuthorizationService,\r\n    protected eventBus: EventBus\r\n  ) {\r\n    super(() => apiFactory(), authorizationService, eventBus);\r\n  }\r\n\r\n  getCurrentServerTime() {\r\n    return this.callApi(api =>\r\n      api\r\n        .apiVersion(3)\r\n        .one(`system/current_server_time`)\r\n        .get<ServerTimeResponse>()\r\n        .then(response => {\r\n          return plainToClass(ServerTimeResponse, response);\r\n        })\r\n        .catch(() => new EshopError(CURRENT_SERVER_TIME_ERROR))\r\n    );\r\n  }\r\n}\r\n","import { observable } from \"mobx\";\nimport TradingPlaceType from \"./tradingPlaceType\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class TradingPlaceResponse {\n  /**\n   * Trading place ID.\n   */\n  id!: string;\n\n  /**\n   * Trading place name.\n   */\n  @observable\n  name!: string;\n\n  @observable\n  type!: TradingPlaceType;\n\n  /**\n   * Indicating whether the trading place is visible and purchase is allowed.\n   */\n  @observable\n  isAvailable!: boolean;\n\n  /**\n   * Location latitude.\n   */\n  @observable\n  latitude: number;\n\n  /**\n   * Location longitude.\n   */\n  @observable\n  longitude: number;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport TradingPlaceResponse from \"./tradingPlaceResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class TradingPlacesResponse {\n  /**\n   * The list of trading places (salespoints and kiosks).\n   */\n  @observable\n  @Type(() => TradingPlaceResponse)\n  items!: TradingPlaceResponse[];\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport OpeningHoursKind from \"./openingHoursKind\";\nimport OpeningHoursWeekResponse from \"./openingHoursWeekResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class OpeningHoursResponse {\n  @observable\n  kind!: OpeningHoursKind;\n\n  /**\n   * Opening hours valid since.\n   */\n  @observable\n  @Type(() => Date)\n  validSince: Date;\n\n  /**\n   * Opening hours valid until.\n   */\n  @observable\n  @Type(() => Date)\n  validUntil: Date;\n\n  @observable\n  @Type(() => OpeningHoursWeekResponse)\n  week: OpeningHoursWeekResponse;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport OpeningHoursResponse from \"./openingHoursResponse\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class SalespointResponse {\n  /**\n   * Contact phone.\n   */\n  @observable\n  contactPhone?: string;\n\n  /**\n   * Salespoint address.\n   */\n  @observable\n  address?: string;\n\n  /**\n   * Salespoint postal code.\n   */\n  @observable\n  postalCode?: string;\n\n  /**\n   * Indicates whether card payment is allowed.\n   */\n  @observable\n  cardPaymentAllowed!: boolean;\n\n  /**\n   * External detail link in Czech.\n   */\n  @observable\n  externalDetailLinkCs?: string;\n\n  /**\n   * External detail link in English.\n   */\n  @observable\n  externalDetailLinkEn?: string;\n\n  /**\n   * The list of opening hours.\n   */\n  @observable\n  @Type(() => OpeningHoursResponse)\n  openingHours!: OpeningHoursResponse[];\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ShutdownIntervalResponse {\n  /**\n   * Trading place is closed from this date and time.\n   */\n  @observable\n  @Type(() => Date)\n  from!: Date;\n\n  /**\n   * Trading place is closed to this date and time.\n   */\n  @observable\n  @Type(() => Date)\n  to?: Date;\n}\n","import { observable } from \"mobx\";\nimport { Type } from \"class-transformer\";\nimport SalespointResponse from \"./salespointResponse\";\nimport ShutdownIntervalResponse from \"./shutdownIntervalResponse\";\nimport TradingPlaceType from \"./tradingPlaceType\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class TradingPlaceDetailResponse {\n  /**\n   * Trading place ID.\n   */\n  id!: string;\n\n  /**\n   * Trading place name.\n   */\n  @observable\n  name!: string;\n\n  @observable\n  type!: TradingPlaceType;\n\n  /**\n   * Indicates whether the trading place is visible and purchase is allowed.\n   */\n  @observable\n  isAvailable!: boolean;\n\n  /**\n   * Location latitude.\n   */\n  @observable\n  latitude?: number;\n\n  /**\n   * Location longitude.\n   */\n  @observable\n  longitude?: number;\n\n  @observable\n  @Type(() => SalespointResponse)\n  salespoint?: SalespointResponse;\n\n  /**\n   * Trading place shutdowns.\n   */\n  @observable\n  @Type(() => ShutdownIntervalResponse)\n  shutdowns?: ShutdownIntervalResponse[];\n}\n","import EshopRequestBuilder from \"data/eshopRequestBuilder\";\nimport AuthorizationService from \"../services/authorizationService\";\nimport RepositoryBase from \"./repositoryBase\";\nimport EventBus from \"../services/eventBus\";\nimport TradingPlacesResponse from \"entities/tradingPlacesResponse\";\nimport { plainToClass } from \"class-transformer\";\nimport TradingPlaceDetailResponse from \"entities/tradingPlaceDetailResponse\";\n\nexport default class TradingPlaceRepository extends RepositoryBase<EshopRequestBuilder> {\n  constructor(\n    protected apiFactory: ReturnType<typeof EshopRequestBuilder.Factory>,\n    protected authorizationService: AuthorizationService,\n    protected eventBus: EventBus\n  ) {\n    super(() => apiFactory(), authorizationService, eventBus);\n  }\n\n  tradingPlaces() {\n    return this.callApi(api =>\n      api\n        .apiVersion(3)\n        .all(\"trading_places\")\n        .get<TradingPlacesResponse>()\n        .then(item => plainToClass(TradingPlacesResponse, item))\n    );\n  }\n\n  getDetail(itemId: string) {\n    return this.callApi(api =>\n      api\n        .apiVersion(3)\n        .one(\"trading_places\", itemId)\n        .get<TradingPlaceDetailResponse>()\n        .then(item => plainToClass(TradingPlaceDetailResponse, item))\n    );\n  }\n}\n","import { action, observable } from \"mobx\";\nimport Exemption, { defaultExemptionReason } from \"models/exemption\";\nimport IsdsResponse from \"models/isdsResponse\";\nimport ExemptionRepository from \"repositories/exemptionRepository\";\nimport EshopError from \"../models/eshopError\";\nimport EventBus, {\n  exemptionApplicationProduction,\n  exemptionCreationFailed,\n  exemptionDocumentsUploadFailed,\n  exemptionDocumentsUploadSuccess,\n} from \"./eventBus\";\nimport { Notice } from \"./NIA/niaService\";\nimport { SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY } from \"./omissionService\";\nimport { PersistedBase64 } from \"../models/notice\";\nimport { plainToClass } from \"class-transformer\";\nimport * as Sentry from \"@sentry/react\";\nimport ExemptionApplicationProductionResponse from \"entities/exemptionApplicationProductionResponse\";\nimport ChargeRegistrationService from \"./chargeRegistrationService\";\n\nexport const POST_EXEMPTION_CREATION_FAILED = \"POST_EXEMPTION_CREATION_FAILED\";\nexport const POST_EXEMPTION_DOCUMENTS_UPLOAD_FAILED = \"POST_EXEMPTION_DOCUMENTS_UPLOAD_FAILED\";\n\nexport default class ExemptionService {\n  @observable notice: Exemption = new Exemption();\n  @observable exemptionApplicationProduction: ExemptionApplicationProductionResponse | undefined;\n\n  constructor(\n    private repository: ExemptionRepository,\n    private chargeRegistrationService: ChargeRegistrationService,\n    private eventBus: EventBus\n  ) {\n    this.initialize();\n  }\n\n  @action.bound\n  async createExemption(exemption: Exemption) {\n    return await this.repository\n      .createExemption(exemption)\n      .then(async (response: any | EshopError) => {\n        if (response instanceof EshopError) {\n          this.eventBus.publish(exemptionCreationFailed({ type: response.type }));\n        } else if (response.blob && response.fileName) {\n          return response;\n        }\n      })\n      .catch(() => {\n        this.eventBus.publish(exemptionCreationFailed({ type: POST_EXEMPTION_CREATION_FAILED }));\n        return undefined;\n      });\n  }\n\n  @action.bound\n  async getProduction(exemption: Exemption) {\n    return await this.repository\n      .getProduction(exemption)\n      .then(response => {\n        this.exemptionApplicationProduction = response as ExemptionApplicationProductionResponse;\n        return response;\n      })\n      .catch(() => this.eventBus.publish(exemptionApplicationProduction({ exemptionApplicationProduction: undefined })));\n  }\n\n  @action.bound\n  async uploadDocuments(ISDSSessionId: string, files: PersistedBase64[]) {\n    sessionStorage.setItem(SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY, Notice.EXEMPTION);\n    return await this.repository\n      .uploadDocuments(ISDSSessionId, files)\n      .then(response => {\n        if (response instanceof IsdsResponse) {\n          this.eventBus.publish(exemptionDocumentsUploadSuccess({ conceptIdent: response.conceptIdent }));\n        } else {\n          this.publishDocumentsUploadFailure(response.type, response, files, ISDSSessionId);\n        }\n      })\n      .catch(error => {\n        this.publishDocumentsUploadFailure(POST_EXEMPTION_DOCUMENTS_UPLOAD_FAILED, error, files, ISDSSessionId);\n      });\n  }\n\n  private publishDocumentsUploadFailure(type: string, error: any, files: PersistedBase64[], sessionId: string) {\n    Sentry.withScope(scope => {\n      scope.setTag(\"ExemptionService\", \"upload\");\n      scope.setExtras({\n        type,\n        files,\n        sessionId,\n      });\n      Sentry.captureException(error);\n    });\n\n    this.eventBus.publish(exemptionDocumentsUploadFailed({ type }));\n  }\n\n  @action.bound\n  initialize() {\n    const noticeString = sessionStorage.getItem(\"exemption\");\n    if (noticeString) {\n      this.notice = plainToClass(Exemption, JSON.parse(noticeString));\n    } else {\n      this.notice.exemptionReasonId = defaultExemptionReason;\n    }\n  }\n\n  @action.bound\n  reset = () => {\n    this.notice = new Exemption();\n    this.exemptionApplicationProduction = undefined;\n    this.chargeRegistrationService.vehicleChargingInstructions = undefined;\n  };\n}\n","import { action, observable } from \"mobx\";\nimport IsdsResponse from \"models/isdsResponse\";\nimport LicensePlateChange from \"models/licensePlateChange\";\nimport LicensePlateChangeRepository from \"repositories/licensePlateChangeRepository\";\nimport EshopError from \"../models/eshopError\";\nimport EventBus, {\n  licensePlateChangeCreationFailed,\n  licensePlateChangeDocumentsUploadFailed,\n  licensePlateChangeDocumentsUploadSuccess,\n  vehicleChangeApplicationProduction,\n} from \"./eventBus\";\nimport { Notice } from \"./NIA/niaService\";\nimport { SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY } from \"./omissionService\";\nimport { PersistedBase64 } from \"../models/notice\";\nimport { plainToClass } from \"class-transformer\";\nimport * as Sentry from \"@sentry/react\";\nimport VehicleChangeApplicationProductionResponse from \"../entities/vehicleChangeApplicationProductionResponse\";\nimport ChargeRegistrationService from \"./chargeRegistrationService\";\n\nexport const POST_LICENSE_PLATE_CHANGE_CREATION_FAILED = \"POST_LICENSE_PLATE_CHANGE_CREATION_FAILED\";\nexport const POST_LICENSE_PLATE_CHANGE_DOCUMENTS_UPLOAD_FAILED = \"POST_LICENSE_PLATE_CHANGE_DOCUMENTS_UPLOAD_FAILED\";\n\nexport default class LicensePlateChangeService {\n  @observable notice: LicensePlateChange = new LicensePlateChange();\n  @observable vehicleChangeApplicationProduction: VehicleChangeApplicationProductionResponse | undefined;\n\n  constructor(\n    private repository: LicensePlateChangeRepository,\n    private chargeRegistrationService: ChargeRegistrationService,\n    private eventBus: EventBus\n  ) {\n    this.initialize();\n  }\n\n  @action.bound\n  async createLicensePlateChangeNotice(licensePlateChange: LicensePlateChange) {\n    return await this.repository\n      .createLicensePlateChangeNotice(licensePlateChange)\n      .then(async (response: any | EshopError) => {\n        if (response instanceof EshopError) {\n          this.eventBus.publish(licensePlateChangeCreationFailed({ type: response.type }));\n        } else if (response.blob && response.fileName) {\n          return response;\n        }\n      })\n      .catch(() => {\n        this.eventBus.publish(licensePlateChangeCreationFailed({ type: POST_LICENSE_PLATE_CHANGE_CREATION_FAILED }));\n        return undefined;\n      });\n  }\n\n  @action.bound\n  async getProduction(notice: LicensePlateChange) {\n    return await this.repository\n      .getProduction(notice)\n      .then(response => {\n        this.vehicleChangeApplicationProduction = response as VehicleChangeApplicationProductionResponse;\n        return response;\n      })\n      .catch(() => this.eventBus.publish(vehicleChangeApplicationProduction({ vehicleChangeApplicationProduction: undefined })));\n  }\n\n  @action.bound\n  async uploadDocuments(ISDSSessionId: string, files: PersistedBase64[]) {\n    sessionStorage.setItem(SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY, Notice.LICENSE_PLATE_CHANGE);\n    return await this.repository\n      .uploadDocuments(ISDSSessionId, files)\n      .then(response => {\n        if (response instanceof IsdsResponse) {\n          this.eventBus.publish(licensePlateChangeDocumentsUploadSuccess({ conceptIdent: response.conceptIdent }));\n        } else {\n          this.publishDocumentsUploadFailure(response.type, response, files, ISDSSessionId);\n        }\n      })\n      .catch(error => {\n        this.publishDocumentsUploadFailure(POST_LICENSE_PLATE_CHANGE_DOCUMENTS_UPLOAD_FAILED, error, files, ISDSSessionId);\n      });\n  }\n\n  private publishDocumentsUploadFailure(type: string, error: any, files: PersistedBase64[], sessionId: string) {\n    Sentry.withScope(scope => {\n      scope.setTag(\"LicensePlateService\", \"upload\");\n      scope.setExtras({\n        type,\n        files,\n        sessionId,\n      });\n      Sentry.captureException(error);\n    });\n\n    this.eventBus.publish(licensePlateChangeDocumentsUploadFailed({ type }));\n  }\n\n  @action.bound\n  initialize() {\n    const noticeString = sessionStorage.getItem(\"license_plate_change\");\n    this.notice = new LicensePlateChange();\n\n    if (noticeString) {\n      this.notice = plainToClass(LicensePlateChange, JSON.parse(noticeString));\n    }\n\n    this.notice.vehicleOperator = undefined;\n  }\n\n  @action.bound\n  reset = () => {\n    this.notice = new LicensePlateChange();\n    this.vehicleChangeApplicationProduction = undefined;\n    this.chargeRegistrationService.vehicleChargingInstructions = undefined;\n  };\n}\n","import { action, observable } from \"mobx\";\nimport IsdsResponse from \"models/isdsResponse\";\nimport EshopError from \"../models/eshopError\";\nimport EventBus, {\n  customerRefundApplicationProduction,\n  refundRequestCreationFailed,\n  refundRequestDocumentsUploadFailed,\n  refundRequestDocumentsUploadSuccess,\n} from \"./eventBus\";\nimport { Notice } from \"./NIA/niaService\";\nimport { SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY } from \"./omissionService\";\nimport { PersistedBase64 } from \"../models/notice\";\nimport { plainToClass } from \"class-transformer\";\nimport * as Sentry from \"@sentry/react\";\nimport RefundRequestNotice from \"../models/refundRequestNotice\";\nimport RefundRequestRepository from \"../repositories/refundRequestRepository\";\nimport CustomerRefundApplicationProductionResponse from \"entities/customerRefundApplicationProductionResponse\";\n\nexport const POST_REFUND_REQUEST_CREATION_FAILED = \"POST_REFUND_REQUEST_CREATION_FAILED\";\nexport const POST_REFUND_REQUEST_DOCUMENTS_UPLOAD_FAILED = \"POST_REFUND_REQUEST_DOCUMENTS_UPLOAD_FAILED\";\n\nexport default class RefundRequestService {\n  @observable notice: RefundRequestNotice = new RefundRequestNotice();\n  @observable customerRefundApplicationProduction: CustomerRefundApplicationProductionResponse | undefined;\n\n  constructor(private repository: RefundRequestRepository, private eventBus: EventBus) {\n    this.initialize();\n  }\n\n  @action.bound\n  async createRefundRequest(refundRequest: RefundRequestNotice, countryId: string, licensePlate: string) {\n    return await this.repository\n      .createRefundRequest(refundRequest, countryId, licensePlate)\n      .then(async (response: any | EshopError) => {\n        if (response instanceof EshopError) {\n          this.eventBus.publish(refundRequestCreationFailed({ type: response.type }));\n        } else if (response.blob && response.fileName) {\n          return response;\n        }\n      })\n      .catch(() => {\n        this.eventBus.publish(refundRequestCreationFailed({ type: POST_REFUND_REQUEST_CREATION_FAILED }));\n        return undefined;\n      });\n  }\n\n  @action.bound\n  async getProduction(refundRequest: RefundRequestNotice, countryId: string, licensePlate: string) {\n    return await this.repository\n      .getProduction(refundRequest, countryId, licensePlate)\n      .then(response => {\n        this.customerRefundApplicationProduction = response as CustomerRefundApplicationProductionResponse;\n        return response;\n      })\n      .catch(() => this.eventBus.publish(customerRefundApplicationProduction({ customerRefundApplicationProduction: undefined })));\n  }\n\n  @action.bound\n  async uploadDocuments(ISDSSessionId: string, files: PersistedBase64[]) {\n    sessionStorage.setItem(SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY, Notice.REFUND_REQUEST);\n    return await this.repository\n      .uploadDocuments(ISDSSessionId, files)\n      .then(response => {\n        if (response instanceof IsdsResponse) {\n          this.eventBus.publish(refundRequestDocumentsUploadSuccess({ conceptIdent: response.conceptIdent }));\n        } else {\n          this.publishDocumentsUploadFailure(response.type, response, files, ISDSSessionId);\n        }\n      })\n      .catch(error => {\n        this.publishDocumentsUploadFailure(POST_REFUND_REQUEST_DOCUMENTS_UPLOAD_FAILED, error, files, ISDSSessionId);\n      });\n  }\n\n  private publishDocumentsUploadFailure(type: string, error: any, files: PersistedBase64[], sessionId: string) {\n    Sentry.withScope(scope => {\n      scope.setTag(\"RefundRequestService\", \"upload\");\n      scope.setExtras({\n        type,\n        files,\n        sessionId,\n      });\n      Sentry.captureException(error);\n    });\n\n    this.eventBus.publish(refundRequestDocumentsUploadFailed({ type }));\n  }\n\n  @action.bound\n  initialize() {\n    const noticeString = sessionStorage.getItem(Notice.REFUND_REQUEST);\n    this.notice = new RefundRequestNotice();\n\n    if (noticeString) {\n      this.notice = plainToClass(RefundRequestNotice, JSON.parse(noticeString));\n    }\n  }\n\n  @action.bound\n  reset = () => {\n    this.notice = new RefundRequestNotice();\n  };\n}\n","import { Type } from \"class-transformer\";\nimport { observable } from \"mobx\";\nimport { EntityValidationRules } from \"../services/validationService\";\nimport { maxValidSince, minValidSince } from \"../utils/dateUtils\";\n\nexport default class Validity {\n  @Type(() => Date)\n  @observable\n  validSince: Date;\n\n  @Type(() => Date)\n  @observable\n  validUntil: Date;\n\n  @observable\n  authCode?: string;\n\n  @observable\n  emailAddress?: string;\n\n  @observable\n  canBeChanged: boolean;\n}\n\nexport function validityValidationRulesFactory(paidAt?: Date): EntityValidationRules<Validity> {\n  return {\n    validSince: {\n      required: true,\n      dateRange: {\n        min: minValidSince(),\n        max: maxValidSince(paidAt),\n      },\n    },\n  };\n}\n","export default class WSError {\n  statusCode: number;\n  error: { type: string; description: string };\n}\n","export const POST_CHARGE_ORDER_RESULT = \"PostChargeOrderResultV4_1\";\nexport const WS_NOTIFICATION_SERVICE_NOT_CONFIGURED = \"REACT_APP_NOTIFICATION_WS_HUB not configured\";\nexport const SIGNAL_R_CONNECTION_ID_HEADER_NAME = \"SignalR-ConnectionId\";\nexport const GET_CONNECTION_ID_INVOKE = \"GetConnectionId\";\nexport const NOTIFICATION_SERVICE_CHARGE_ORDER_FAILURE = \"notificationServiceChargeOrderFailure\";\nexport const PUT_CHARGE_CONTACT_RESULT = \"PutChargeContactResult\";\nexport const PUT_CHARGE_VALIDITY_RESULT = \"PutChargeValidityResult\";\nexport const PUT_CHARGE_VEHICLE_RESULT = \"PutChargeVehicleResult\";\nexport const PUT_CHARGE_VEHICLE_DURING_VALIDITY_RESULT = \"PutChargeVehicleDuringValidityResult\";\nexport const GET_GOOGLE_PAY_STATUS = \"GetGooglePayStatus\";\n","import { observable } from \"mobx\";\nimport NotificationPreferences from \"../models/notificationPreferences\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\n\nexport default class PutChargeContactResult {\n  @observable\n  authCode?: string;\n\n  @observable\n  emailAddress?: string;\n\n  @observable\n  notificationPreferences?: NotificationPreferences;\n}\n","import { bound } from \"@frui.ts/helpers\";\nimport { HttpTransportType, HubConnection, HubConnectionBuilder } from \"@microsoft/signalr\";\nimport { plainToClass } from \"class-transformer\";\nimport { notificationWsHub } from \"config\";\nimport * as Sentry from \"@sentry/react\";\nimport { action, observable } from \"mobx\";\nimport ChargeOrderResult from \"models/chargeOrderResult\";\nimport AuthorizationService from \"services/authorizationService\";\nimport { ContactEditationTriggerer } from \"../../../models/contact\";\nimport Validity from \"../../../models/validity\";\nimport Vehicle from \"../../../models/vehicle\";\nimport WSError from \"../../../models/WSError\";\nimport EventBus, {\n  emailUpdated,\n  googlePayPayment3DSecureLoaded,\n  googlePayPaymentStatusChanged,\n  putChargeContactFailure,\n  putChargeContactSuccess,\n  putChargeValidityFailure,\n  putChargeValiditySuccess,\n  putChargeVehicleFailure,\n  putChargeVehicleSuccess,\n} from \"../../eventBus\";\nimport {\n  GET_CONNECTION_ID_INVOKE,\n  GET_GOOGLE_PAY_STATUS,\n  NOTIFICATION_SERVICE_CHARGE_ORDER_FAILURE,\n  POST_CHARGE_ORDER_RESULT,\n  PUT_CHARGE_CONTACT_RESULT,\n  PUT_CHARGE_VALIDITY_RESULT,\n  PUT_CHARGE_VEHICLE_DURING_VALIDITY_RESULT,\n  PUT_CHARGE_VEHICLE_RESULT,\n  SIGNAL_R_CONNECTION_ID_HEADER_NAME,\n} from \"./constants\";\nimport GooglePayProcessPaymentResponse from \"models/googlePayProcessPaymentResponse\";\nimport { PayGateCommonPaymentStatus } from \"models/googlePayInitPaymentResponse\";\nimport ChargeOrderResponse from \"entities/chargeOrderResponse\";\nimport PutChargeContactResult from \"entities/putChargeContactResult\";\n\nexport default class SignalRNotificationService {\n  constructor(private authorizationService: AuthorizationService, private eventBus: EventBus) {}\n  notificationHub?: HubConnection;\n\n  @observable connectionId?: string | null;\n\n  @action.bound\n  async initialize() {\n    await this.setupSignalRConnection();\n  }\n\n  setupSignalRConnection = async () => {\n    if (this.notificationHub) {\n      return;\n    }\n    if (!notificationWsHub) {\n      // TODO: fire event\n      return;\n    }\n\n    const token = this.authorizationService.token()?.accessToken;\n\n    if (!token) return;\n\n    this.notificationHub = new HubConnectionBuilder()\n      .withUrl(notificationWsHub, {\n        accessTokenFactory: () => token,\n        transport: HttpTransportType.WebSockets,\n        skipNegotiation: true,\n      })\n      .withAutomaticReconnect()\n      .build();\n  };\n\n  serviceStart = async () => {\n    try {\n      await this.notificationHub?.start();\n\n      await this.getConnectionId();\n    } catch (error) {\n      Sentry.withScope(scope => {\n        scope.setTag(\"websocket\", \"serviceStart\");\n        Sentry.captureException(error);\n      });\n      throw error;\n    }\n  };\n\n  serviceStop = async () => {\n    if (!this.connectionId) return;\n\n    try {\n      await this.notificationHub?.stop();\n      this.connectionId = undefined;\n    } catch (error) {\n      Sentry.withScope(scope => {\n        scope.setTag(\"websocket\", \"serviceStop\");\n        Sentry.captureException(error);\n      });\n      throw error;\n    }\n  };\n\n  subscribeToPostChargeOrderResult = (handle: (chargeOrder?: ChargeOrderResponse, error?: string) => void) => {\n    this.notificationHub?.on(POST_CHARGE_ORDER_RESULT, (response: ChargeOrderResult) => {\n      if (response.result) {\n        handle(response.result, undefined);\n      } else {\n        handle(undefined, response.error?.type || NOTIFICATION_SERVICE_CHARGE_ORDER_FAILURE);\n      }\n    });\n  };\n\n  subscribeToPutChargeContactResult = (triggerer: ContactEditationTriggerer) =>\n    this.notificationHub?.on(PUT_CHARGE_CONTACT_RESULT, (response: any) => {\n      let parsedResponse: PutChargeContactResult | WSError;\n\n      if (response.hasOwnProperty(\"result\")) {\n        parsedResponse = plainToClass(PutChargeContactResult, response.result);\n      } else {\n        parsedResponse = plainToClass(WSError, response);\n      }\n\n      if (parsedResponse instanceof WSError) {\n        this.eventBus.publish(putChargeContactFailure({ type: parsedResponse.error.type, triggerer }));\n      } else {\n        this.eventBus.publish(\n          putChargeContactSuccess({\n            authCode: parsedResponse.authCode,\n            emailAddress: parsedResponse.emailAddress,\n            notificationPreferences: parsedResponse.notificationPreferences,\n            triggerer,\n          })\n        );\n        if (parsedResponse.emailAddress) {\n          this.eventBus.publish(emailUpdated({ emailAddress: parsedResponse.emailAddress }));\n        }\n      }\n    });\n\n  subscribeToPutChargeValidityResult = (emailAddress?: string) =>\n    this.notificationHub?.on(PUT_CHARGE_VALIDITY_RESULT, (response: any) => {\n      let parsedResponse: Validity | WSError;\n\n      if (response.hasOwnProperty(\"result\")) {\n        parsedResponse = plainToClass(Validity, response.result);\n      } else {\n        parsedResponse = plainToClass(WSError, response);\n      }\n\n      if (parsedResponse instanceof WSError) {\n        this.eventBus.publish(putChargeValidityFailure({ type: parsedResponse.error.type }));\n      } else {\n        this.eventBus.publish(putChargeValiditySuccess({ validity: parsedResponse }));\n        if (emailAddress) {\n          this.eventBus.publish(emailUpdated({ emailAddress }));\n        }\n      }\n    });\n\n  @bound\n  subscribeToPutChargeVehicleResult(emailAddress?: string) {\n    return this.notificationHub?.on(PUT_CHARGE_VEHICLE_RESULT, (response: any) => {\n      let parsedResponse: Vehicle | WSError;\n\n      if (response.hasOwnProperty(\"result\")) {\n        parsedResponse = plainToClass(Vehicle, response.result);\n      } else {\n        parsedResponse = plainToClass(WSError, response);\n      }\n\n      if (parsedResponse instanceof WSError) {\n        this.eventBus.publish(putChargeVehicleFailure({ type: parsedResponse.error.type }));\n      } else {\n        this.eventBus.publish(putChargeVehicleSuccess({ vehicle: parsedResponse }));\n        if (emailAddress) {\n          this.eventBus.publish(emailUpdated({ emailAddress }));\n        }\n      }\n    });\n  }\n\n  @bound\n  subscribeToPutChargeVehicleChangesDuringValidityResult(emailAddress?: string) {\n    return this.notificationHub?.on(PUT_CHARGE_VEHICLE_DURING_VALIDITY_RESULT, (response: any) => {\n      let parsedResponse: Vehicle | WSError;\n\n      if (response.hasOwnProperty(\"result\")) {\n        parsedResponse = plainToClass(Vehicle, response.result);\n      } else {\n        parsedResponse = plainToClass(WSError, response);\n      }\n\n      if (parsedResponse instanceof WSError) {\n        this.eventBus.publish(putChargeVehicleFailure({ type: parsedResponse.error.type }));\n      } else {\n        this.eventBus.publish(putChargeVehicleSuccess({ vehicle: parsedResponse }));\n        if (emailAddress) {\n          this.eventBus.publish(emailUpdated({ emailAddress }));\n        }\n      }\n    });\n  }\n\n  subscribeToGetGooglePayStatus = () => {\n    this.notificationHub?.off(GET_GOOGLE_PAY_STATUS);\n    return this.notificationHub?.on(GET_GOOGLE_PAY_STATUS, (response: { result: GooglePayProcessPaymentResponse }) => {\n      this.eventBus.publish(googlePayPaymentStatusChanged({ status: response.result.paymentStatus }));\n\n      // Only open the 3D Secure modal when the payment is still in progress.\n      // For terminal statuses the challengeUrl in the same message must be ignored;\n      // otherwise the modal is re-opened on top of the success/failure screen after\n      // googlePayPaymentSuccess/Failure already set showGooglePay3DSecureModal = false\n      // and navigated away.\n      if (\n        response.result.paymentStatus === PayGateCommonPaymentStatus.IN_PROGRESS &&\n        response.result.action?.browserChallenge?.challengeUrl\n      ) {\n        this.eventBus.publish(googlePayPayment3DSecureLoaded({ url: response.result.action.browserChallenge.challengeUrl }));\n      }\n    });\n  };\n\n  buildHeaders(): { [key: string]: string } {\n    const header = this.connectionIdHeader();\n    const headers: { [key: string]: any } = {};\n    if (header) {\n      headers[SIGNAL_R_CONNECTION_ID_HEADER_NAME] = header;\n    }\n\n    return headers;\n  }\n\n  getConnectionId = async () => {\n    this.connectionId = await this.notificationHub?.invoke(GET_CONNECTION_ID_INVOKE);\n  };\n\n  private connectionIdHeader = () => (this.connectionId ? this.connectionId : undefined);\n}\n","import TradingPlacesResponse from \"entities/tradingPlacesResponse\";\nimport TradingPlaceRepository from \"../repositories/tradingPlaceRepository\";\nimport { action, observable, runInAction } from \"mobx\";\nimport TradingPlaceDetailResponse from \"entities/tradingPlaceDetailResponse\";\n\nexport default class TradingPlaceService {\n  @observable tradingPlaces: TradingPlacesResponse;\n  @observable initialized = false;\n  @observable tradingPlacesDetails: Map<string, TradingPlaceDetailResponse> = new Map();\n\n  constructor(private repository: TradingPlaceRepository) {}\n\n  @action.bound\n  async initialize() {\n    this.tradingPlaces = await this.repository.tradingPlaces();\n    runInAction(() => (this.initialized = true));\n  }\n\n  async itemDetail(id: string) {\n    if (!this.tradingPlacesDetails.has(id)) {\n      const tradingPlace = await this.repository.getDetail(id);\n      this.tradingPlacesDetails.set(id, tradingPlace);\n    }\n\n    return this.tradingPlacesDetails.get(id)!;\n  }\n}\n","import type { IValidatorParams } from \"@edaz/services/baseValidationService\";\nimport padStart from \"lodash/padStart\";\nimport { isBankPrefixNumber } from \"./isBankPrefixNumber\";\n\nexport function validateModulo(variable: string, weights: number[]) {\n  return weights.map((n, i) => n * parseInt(variable[i])).reduce((a, b) => a + b, 0) % 11 === 0;\n}\n\nexport interface IsBankAccountNumberOptions {\n  prefix: boolean;\n  bankCode: boolean;\n  validate?: (entity: any) => boolean;\n}\n\nexport function addDashToAccountNumber(value: string) {\n  // Add dash if account number is longer than 10\n  if (/^[0-9]{11,16}/.test(value)) {\n    let lengthBeforeSlash;\n    if (~value.indexOf(\"/\")) {\n      lengthBeforeSlash = value.indexOf(\"/\");\n    } else {\n      lengthBeforeSlash = value.length;\n    }\n\n    return `${value.slice(0, lengthBeforeSlash - 10)}-${value.slice(lengthBeforeSlash - 10)}`;\n  }\n\n  return value;\n}\n\nexport function isBankAccountNumber(value: string | undefined, options: IsBankAccountNumberOptions, params?: IValidatorParams) {\n  if (options.validate && !options.validate(params?.entity)) {\n    return true;\n  }\n\n  // logic borrowed from http://www.michalhaltuf.cz/blog/2016/04/validace-cisla-bankovniho-uctu-v-php/\n  let regex;\n\n  if (options.bankCode && options.prefix) {\n    regex = /^(([0-9]{0,6})-)?([0-9]{2,10})\\/[0-9]{4}$/;\n  } else if (options.prefix) {\n    regex = /^(([0-9]{0,6})-)?([0-9]{2,10})$/;\n  } else if (options.bankCode) {\n    regex = /^([0-9]{1,10})\\/[0-9]{4}$/;\n  } else {\n    regex = /^([0-9]{1,10})$/;\n  }\n\n  let modifiedValue = value ? value.replace(\" \", \"\") : \"\";\n  modifiedValue = addDashToAccountNumber(modifiedValue);\n\n  let valid = regex.test(modifiedValue);\n\n  if (valid) {\n    const dashSplit = modifiedValue.split(\"-\");\n\n    if (options.prefix) {\n      if (dashSplit.length === 2) {\n        valid = isBankPrefixNumber(dashSplit[0]);\n      } else {\n        valid = true;\n      }\n    }\n\n    const accountNumber = padStart(dashSplit[dashSplit.length - 1].split(\"/\")[0], 10, \"0\");\n    if (valid) {\n      valid = validateModulo(accountNumber, [6, 3, 7, 9, 10, 5, 8, 4, 2, 1]);\n    }\n  }\n\n  return valid;\n}\n","import padStart from \"lodash/padStart\";\nimport { validateModulo } from \"./isBankAccountNumber\";\n\nexport function isBankPrefixNumber(value: string) {\n  let valid = true;\n\n  if (value) {\n    const regex = /^([0-9]{2,6})$/;\n    valid = regex.test(value);\n\n    if (valid) {\n      const accountPrefix = padStart(value, 6, \"0\");\n      valid = validateModulo(accountPrefix, [10, 5, 8, 4, 2, 1]);\n    }\n  }\n\n  return valid;\n}\n","import type { IValidationResult, IValidatorParams } from \"@edaz/services/baseValidationService\";\n\nexport interface IsLengthOptions {\n  min?: number;\n  max?: number;\n  optional?: boolean;\n}\n\nexport default function isLength(\n  // tslint:disable-next-line:max-union-size\n  value: string | number | undefined | null,\n  options: IsLengthOptions,\n  params?: IValidatorParams\n): IValidationResult {\n  if (options.optional && !value) {\n    return {\n      isValid: true,\n    };\n  }\n\n  let isValid = true;\n  const constraints: any = {};\n  const valueLength = `${value}`.length;\n\n  if (options.min && valueLength < options.min) {\n    isValid = false;\n    constraints.min = valueLength;\n  }\n\n  if (options.max && valueLength > options.max) {\n    isValid = false;\n    constraints.max = valueLength;\n  }\n\n  return {\n    isValid,\n    errors: {\n      constraints,\n      params: [(options?.min ?? 0).toString(), (options?.max ?? Infinity).toString()],\n    },\n  };\n}\n","import { IValidationResult } from \"@edaz/services/baseValidationService\";\n\nexport interface prohibitedCharactersOptions<TEntity> {\n  property: keyof TEntity;\n}\n\nexport interface prohibitedCharactersParams<TEntity> {\n  entity: TEntity;\n}\n\nexport function isControlCharacter(char: string): boolean {\n  const code = char.charCodeAt(0);\n  return (code >= 0 && code <= 31) || code === 127;\n}\n\nexport function prohibitedCharacters<TEntity>(\n  value: string,\n  options?: prohibitedCharactersOptions<TEntity>,\n  params?: prohibitedCharactersParams<TEntity>\n): IValidationResult {\n  const prohibitedChars = [\"<\", \">\", \"\\\\\"];\n  const allowedControlChars = [\"\\t\", \"\\n\", \"\\r\"];\n  if (!value) {\n    return {\n      isValid: true,\n    };\n  }\n  const containsInvalidCharacters = Array.from(value).some(\n    char => prohibitedChars.includes(char) || (isControlCharacter(char) && !allowedControlChars.includes(char))\n  );\n\n  if (containsInvalidCharacters) {\n    return {\n      isValid: false,\n      errors: {\n        value: value,\n        constraints: {\n          containsProhibitedCharacters: \"true\",\n        },\n      },\n    };\n  }\n\n  return {\n    isValid: true,\n  };\n}\n","import BaseValidationService, * as baseValidationService from \"@edaz/services/baseValidationService\";\nimport { CSLicensePlate, CSLicensePlateOptions } from \"@edaz/services/validators/CSLicensePlate\";\nimport dateRange, { DateRangeOptions } from \"@edaz/services/validators/dateRange\";\nimport { equalWith, EqualWithOptions } from \"@edaz/services/validators/equalWith\";\nimport hasRequiredLength from \"@edaz/services/validators/hasRequiredLength\";\nimport { isAuthCode } from \"@edaz/services/validators/isAuthCode\";\nimport { isEmail, IsEmailOptions } from \"@edaz/services/validators/isEmail\";\nimport { isLicensePlate, IsLicensePlateOptions } from \"@edaz/services/validators/isLicensePlate\";\nimport { isOrganizationIdentifier } from \"@edaz/services/validators/isOrganizationIdentifier\";\nimport { isPhoneNumber, IsPhoneNumberOptions } from \"@edaz/services/validators/isPhoneNumber\";\nimport range, { RangeOptions } from \"@edaz/services/validators/range\";\nimport required from \"@edaz/services/validators/required\";\nimport { bound } from \"@frui.ts/helpers/dist\";\nimport { ITypedEntityValidationRules } from \"@frui.ts/validation/dist\";\nimport { get } from \"mobx\";\nimport { licensePlateChangeValidator, LicensePlateChangeValidatorOptions } from \"validators/licensePlateChangeValidator\";\nimport LocalizationService from \"./localizationService\";\nimport requiredIf, { RequiredIfOptions } from \"@edaz/services/validators/requiredIf\";\nimport { isBankAccountNumber, IsBankAccountNumberOptions } from \"../validators/isBankAccountNumber\";\nimport isLength, { IsLengthOptions } from \"../validators/isLength\";\nimport { prohibitedCharacters } from \"validators/hasValidCharacters\";\n\nexport type EntityValidationRules<TTarget> = ITypedEntityValidationRules<TTarget, ValidationRules<TTarget>>;\n\nexport interface EntityCondition<TEntity> {\n  condition: (entity: TEntity) => boolean;\n}\n\nexport interface ValidationRules<TEntity = any> {\n  required: boolean | string;\n  requiredIf: RequiredIfOptions;\n  isEmail: boolean | IsEmailOptions;\n  isAuthCode: boolean;\n  equalWith: EqualWithOptions<TEntity>;\n  isTrue: boolean;\n  range: RangeOptions;\n  isOrganizationIdentifier: boolean;\n  isPhoneNumber: boolean | IsPhoneNumberOptions;\n  isLicensePlate: boolean | IsLicensePlateOptions;\n  isBankAccountNumber: IsBankAccountNumberOptions;\n  isLength: IsLengthOptions;\n  prohibitedCharacters: boolean;\n  licensePlateChange: LicensePlateChangeValidatorOptions<TEntity>;\n  dateRange: DateRangeOptions;\n  CSLicensePlate: CSLicensePlateOptions;\n  hasRequiredLength: RangeOptions;\n  manualValidation: any;\n}\n\nexport default class ValidationService extends BaseValidationService<ValidationRules> {\n  private valueRegex = /%value%/g;\n  private propertyNameRegex = /%propertyName%/g;\n  private constraintRegex = /%param\\[(\\d+)\\]%/g;\n\n  constructor(private localizationService: LocalizationService) {\n    super();\n  }\n\n  initializeValidators() {\n    this.registerValidator(\"required\", required);\n    this.registerValidator(\"requiredIf\", requiredIf);\n    this.registerValidator(\"isEmail\", isEmail);\n    this.registerValidator(\"isLength\", isLength);\n    this.registerValidator(\"isAuthCode\", isAuthCode);\n    this.registerValidator(\"equalWith\", equalWith);\n    this.registerValidator(\"range\", range);\n    this.registerValidator(\"isOrganizationIdentifier\", isOrganizationIdentifier);\n    this.registerValidator(\"isPhoneNumber\", isPhoneNumber);\n    this.registerValidator(\"isLicensePlate\", isLicensePlate);\n    this.registerValidator(\"dateRange\", dateRange);\n    this.registerValidator(\"CSLicensePlate\", CSLicensePlate);\n    this.registerValidator(\"hasRequiredLength\", hasRequiredLength);\n    this.registerValidator(\"licensePlateChange\", licensePlateChangeValidator);\n    this.registerValidator(\"isBankAccountNumber\", isBankAccountNumber);\n    this.registerValidator(\"prohibitedCharacters\", prohibitedCharacters);\n    this.registerValidator(\"isTrue\", (value: any) => value === true);\n    this.validators.set(\"manualValidation\", (value, propertyName, entity, params) => get(params.errors, propertyName));\n  }\n\n  @bound\n  localizedMessage(validatorName: string, errors?: baseValidationService.IValidationError, customMessage?: string) {\n    const messages = [];\n\n    if (customMessage) {\n      messages.push(this.localizationService.translate(`validators.customMessages.${customMessage}`));\n    } else if (errors?.constraints) {\n      for (const constraint in errors?.constraints) {\n        messages.push(this.localizationService.translate(`validators.${validatorName}.${constraint}`));\n      }\n    } else {\n      messages.push(this.localizationService.translate(`validators.${validatorName}`));\n    }\n\n    return messages\n      .map((message: string) => {\n        if (errors) {\n          message = message.replace(this.valueRegex, errors.value);\n\n          if (errors.target) {\n            message = message.replace(\n              this.propertyNameRegex,\n              // @TODO Deal better with model name\n              this.localizationService.translateAttribute(\"validators\", errors.propertyName!)\n            );\n          }\n          message = message.replace(this.constraintRegex, (match, number) => {\n            if (errors.params && errors.params.length >= number) {\n              return errors.params[number - 1];\n            }\n            return match;\n          });\n        }\n        return message;\n      })\n      .join(\" \");\n  }\n}\n","import { action, observable } from \"mobx\";\r\nimport EshopError from \"../models/eshopError\";\r\nimport ChargeTypesService from \"./chargeTypesService\";\r\nimport EventBus, { vehicleChargeOrderInstructions, vehicleChargeValidityInstructions } from \"./eventBus\";\r\nimport type { IVehicle } from \"../models/types\";\r\nimport VehicleRepository from \"../repositories/vehicleRepository\";\r\nimport ChargeRegistrationsResponse from \"entities/chargeRegistrationsResponse\";\r\nimport ChargeOrderInstructionRequest from \"entities/chargeOrderInstructionRequest\";\r\nimport ChargeOrderItem from \"models/chargeOrderItem\";\r\nimport ChargesRequest from \"entities/chargesRequest\";\r\nimport TimeService from \"./timeService\";\r\nimport { dateToIsoDate } from \"../utils/dateUtils\";\r\n\r\nexport default class VehicleService {\r\n  @observable chargeRegistrationsResponse: ChargeRegistrationsResponse;\r\n  @observable vehicle?: IVehicle;\r\n\r\n  constructor(\r\n    private vehicleRepository: VehicleRepository,\r\n    private timeService: TimeService,\r\n    private eventBus: EventBus,\r\n    private chargeTypesService: ChargeTypesService\r\n  ) {}\r\n\r\n  @action.bound\r\n  getChargeOrderInstructions(items: ChargeOrderItem[]) {\r\n    const charges = items.map(charge => {\r\n      return {\r\n        licensePlates: [...charge.licensePlates],\r\n        countryId: charge.countryId,\r\n        fuelTypeId: charge.fuelTypeId,\r\n      };\r\n    }) as unknown as ChargeOrderInstructionRequest[];\r\n    return this.vehicleRepository\r\n      .getChargeOrderInstructions(charges)\r\n      .then(response => {\r\n        this.eventBus.publish(\r\n          vehicleChargeOrderInstructions({ chargeOrderInstructionGroups: response instanceof EshopError ? undefined : response })\r\n        );\r\n      })\r\n      .catch(() => this.eventBus.publish(vehicleChargeOrderInstructions({ chargeOrderInstructionGroups: undefined })));\r\n  }\r\n  @action.bound\r\n  getChargeValidityInstructions(items: ChargeOrderItem[]) {\r\n    const charges = items.map(charge => {\r\n      return {\r\n        licensePlates: [...charge.licensePlates],\r\n        countryId: charge.countryId,\r\n        priceListItemId: charge.priceListItemId,\r\n        validity: {\r\n          validSinceDate: charge._hasImmediateValidity\r\n            ? undefined\r\n            : charge.validSince\r\n            ? dateToIsoDate(charge.validSince)\r\n            : charge.validSince,\r\n          hasImmediateValidity: charge._hasImmediateValidity,\r\n        },\r\n      };\r\n    }) as unknown as ChargesRequest[];\r\n    return this.vehicleRepository\r\n      .getChargeValidityInstructions(charges)\r\n      .then(response => {\r\n        this.eventBus.publish(\r\n          vehicleChargeValidityInstructions({\r\n            chargeValidityInstructionGroups: response instanceof EshopError ? undefined : response,\r\n            charges: charges,\r\n          })\r\n        );\r\n      })\r\n      .catch(() => this.eventBus.publish(vehicleChargeValidityInstructions({ chargeValidityInstructionGroups: undefined })));\r\n  }\r\n}\r\n","import { isLicensePlate } from \"@edaz/services/validators/isLicensePlate\";\r\nimport { interfaces } from \"inversify\";\r\nimport { action, computed, observable, reaction, toJS, runInAction } from \"mobx\";\r\nimport LocalizationService from \"services/localizationService\";\r\nimport ChargeTypesService from \"services/chargeTypesService\";\r\nimport ChargeTypeSelectViewModel from \"../common/chargeTypeSelectViewModel\";\r\nimport FuelTypeSelectViewModel from \"../common/fuelTypeSelectViewModel\";\r\nimport VehicleInfoViewModel from \"../common/vehicleInfoViewModel\";\r\nimport { attachAutomaticBlurValidator, setVisitedProperty } from \"utils/validationPatch\";\r\nimport { ORDER_ITEM_MAX_COUNT } from \"../../config\";\r\nimport { ScreenBase } from \"@frui.ts/screens\";\r\nimport ValiditySelectViewModel from \"../eshop/order/components/validitySelectViewModel\";\r\nimport { dateStringWithServerZone, isSameOrBeforePragueDay, maxValidSince, zonedCZTimeToUtc } from \"utils/dateUtils\";\r\nimport EnumService from \"services/enumService\";\r\nimport ChargeValidityRuleResponse from \"entities/chargeValidityRuleResponse\";\r\nimport ChargeOrderItem, { ChargeOrderItemBatchValidationRules } from \"models/chargeOrderItem\";\r\nimport ChargeOrderService from \"services/chargeOrderService\";\r\nimport AppRouter from \"services/appRouter\";\r\nimport { getStatusSteps } from \"./multiEshopStatusSteps\";\r\nimport ChargeValidity, { validityDays } from \"entities/chargeValidity\";\r\nimport { addDays, areIntervalsOverlapping, subDays, startOfDay, endOfDay, format } from \"date-fns\";\r\nimport TimeService from \"services/timeService\";\r\nimport { endOfCzechDay, dateToIsoDate } from \"../../utils/dateUtils\";\r\n\r\nexport default class BatchOrderItemViewModel extends ScreenBase {\r\n  private unsubscribes: Array<() => void> = [];\r\n\r\n  public vehicleInfoViewModel: VehicleInfoViewModel;\r\n  public validitySelectViewModel: ValiditySelectViewModel;\r\n  public chargeTypeSelectViewModel: ChargeTypeSelectViewModel;\r\n  public fuelTypeSelectViewModel: FuelTypeSelectViewModel;\r\n  statusNavigation = getStatusSteps();\r\n  ta = (code: string) => this.localizationService.translateAttribute(\"orderItem\", code);\r\n\r\n  @observable validSinceDaysBefore?: Date;\r\n  @observable isBeforePosibble?: boolean;\r\n  @observable isSingleCharTypeToday?: boolean;\r\n\r\n  constructor(\r\n    public chargeOrderItem: ChargeOrderItem,\r\n    public resetChargeOrder: () => void,\r\n    public enumService: EnumService,\r\n    public localizationService: LocalizationService,\r\n    private chargeOrderService: ChargeOrderService,\r\n    private timeService: TimeService,\r\n    private chargeTypesService: ChargeTypesService,\r\n    private router: AppRouter,\r\n    chargeTypeSelectViewModelFactory: ReturnType<typeof ChargeTypeSelectViewModel.Factory>,\r\n    vehicleInfoModelFactory: ReturnType<typeof VehicleInfoViewModel.Factory>,\r\n    validitySelectViewModelFactory: ReturnType<typeof ValiditySelectViewModel.Factory>,\r\n    fuelTypeSelectViewModelFactory: ReturnType<typeof FuelTypeSelectViewModel.Factory>\r\n  ) {\r\n    super();\r\n    this.validitySelectViewModel = validitySelectViewModelFactory(this.chargeOrderItem);\r\n    this.validitySelectViewModel.getPostponedValidityMaxDays(\r\n      this.serverTime,\r\n      this.enumService.values(\"charge_validity_rules\") as ChargeValidityRuleResponse[]\r\n    );\r\n    this.chargeTypeSelectViewModel = chargeTypeSelectViewModelFactory(this.chargeOrderItem, this.chargeOrderItem.id);\r\n    this.fuelTypeSelectViewModel = fuelTypeSelectViewModelFactory(this.chargeOrderItem);\r\n    this.vehicleInfoViewModel = vehicleInfoModelFactory(this.chargeOrderItem);\r\n    const serverTime = this.serverTime;\r\n    const dateFormat = \"yyyy-MM-dd\";\r\n    attachAutomaticBlurValidator(this.chargeOrderItem, {\r\n      ...ChargeOrderItemBatchValidationRules,\r\n      validSince: {\r\n        required: true,\r\n        dateRange: {\r\n          min: zonedCZTimeToUtc(format(serverTime, dateFormat)) ?? new Date(),\r\n          max: zonedCZTimeToUtc(\r\n            format(\r\n              maxValidSince(serverTime, this.validitySelectViewModel.postponedValidityRule?.postponedValidityMaxDays),\r\n              dateFormat\r\n            )\r\n          ),\r\n        },\r\n      },\r\n    });\r\n  }\r\n\r\n  protected async onInitialize(): Promise<Promise<any> | void> {\r\n    await this.timeService.getCurrentServerTime();\r\n    this.unsubscribes.push(\r\n      reaction(() => this.validitySelectViewModel.chargeOrderChargeItem.validSince, this.onValidSinceChanged)\r\n    );\r\n    this.unsubscribes.push(\r\n      reaction(\r\n        () => [this.vehicleInfoViewModel.item.countryId, this.chargeOrderItem.licensePlates.length],\r\n        this.onVehicleInfoChanged\r\n      )\r\n    );\r\n    this.unsubscribes.push(reaction(() => this.fuelTypeSelectViewModel.chargeOrderFuelItem.fuelTypeId, this.onFuelTypeIdChanged));\r\n    this.unsubscribes.push(\r\n      reaction(() => this.chargeTypeSelectViewModel.chargeOrderChargeItem.chargeTypeId, this.onChargeTypeIdChanged)\r\n    );\r\n    // Force recomputation of overlap detection when any item in the array changes\r\n    this.unsubscribes.push(\r\n      reaction(\r\n        () => [\r\n          this.chargeOrderService.chargeOrderItems.length,\r\n          ...this.chargeOrderService.chargeOrderItems.map(item => [\r\n            item.licensePlates.slice(),\r\n            item.validSince,\r\n            item.chargeTypeId,\r\n            item.countryId,\r\n          ]),\r\n        ],\r\n        () => {\r\n          // Force recomputation by accessing the computed property\r\n          runInAction(() => {\r\n            const hasOverlay = this.licensePlatesHasOverlay;\r\n          });\r\n        }\r\n      )\r\n    );\r\n    return super.onInitialize();\r\n  }\r\n\r\n  protected onActivate() {\r\n    this.singleCharTypeToday();\r\n    document.addEventListener(\"mousedown\", this.clickOutside);\r\n  }\r\n\r\n  protected onDeactivate(isClosing: boolean): Promise<any> | void {\r\n    document.removeEventListener(\"mousedown\", this.clickOutside);\r\n    if (isClosing) {\r\n      this.unsubscribes.forEach(unsubscribe => unsubscribe());\r\n      this.unsubscribes = [];\r\n    }\r\n\r\n    return super.onDeactivate(isClosing);\r\n  }\r\n\r\n  @computed\r\n  get isDifferentTimeZone() {\r\n    return this.timeService.isFetched && !this.timeService.isServerTimeSame;\r\n  }\r\n\r\n  @computed\r\n  get serverTime() {\r\n    return this.timeService.currentServerTime;\r\n  }\r\n\r\n  @computed\r\n  get renderNumberOfLicensePlates() {\r\n    return this.chargeOrderItem.licensePlates.length > 0 ? this.chargeOrderItem.licensePlates.length : null;\r\n  }\r\n\r\n  @computed\r\n  get licensePlates() {\r\n    return this.chargeOrderItem.licensePlates;\r\n  }\r\n\r\n  @computed\r\n  get licensePlatesHasOverlay() {\r\n    const result = this.chargeOrderItem.licensePlates.find(item =>\r\n      this.otherLicensePlatesWithValidityIntersection.includes(item)\r\n    );\r\n    return !!result;\r\n  }\r\n\r\n  @computed\r\n  get showInfoAboutVehicles() {\r\n    const storageItem = this.storedChargeOrderItem();\r\n    const countryId = storageItem?.countryId;\r\n    const isCzech = this.enumService.values(\"countries\").find(country => country.code === \"CZ\" && country.id === countryId);\r\n    return (\r\n      this.enumService.values(\"countries\").length > 0 && !this.chargeOrderItem._fuelTypeLimitation?.limitationReason && !isCzech\r\n    );\r\n  }\r\n\r\n  @computed\r\n  get licensePlatesErrorMessage() {\r\n    const errorMessages = [];\r\n    if (this.licensePlatesHasOverlay) {\r\n      errorMessages.push(this.localizationService.translateGeneral(\"multiEshop.licensePlatesOverlayWarning\"));\r\n    }\r\n\r\n    if (this.chargeOrderItem.licensePlates.some(licensePlate => !isLicensePlate(licensePlate).isValid)) {\r\n      errorMessages.push(this.localizationService.translate(\"validators.isLicensePlate.licensePlateTooLong\"));\r\n    }\r\n\r\n    return errorMessages.length ? errorMessages.join(\" \") : undefined;\r\n  }\r\n\r\n  @computed\r\n  get otherLicensePlatesWithValidityIntersection() {\r\n    const dummy = this.chargeOrderService.chargeOrderItems.map(item => ({\r\n      id: item.id,\r\n      licensePlates: item.licensePlates.slice(),\r\n      validSince: item.validSince,\r\n      validUntil: item.validity._validUntilOverlap,\r\n      countryId: item.countryId,\r\n    }));\r\n\r\n    const thisValidSince = this.chargeOrderItem.validity.hasImmediateValidity ? this.serverTime : this.chargeOrderItem.validSince;\r\n\r\n    const thisValidUntil = this.chargeOrderItem.validity._validUntilOverlap;\r\n    const countryId = this.chargeOrderItem.countryId;\r\n\r\n    if (!countryId || !thisValidSince || !thisValidUntil) return [];\r\n\r\n    const otherChargeOrderItemsWithSameCountry = this.chargeOrderService.chargeOrderItems.filter(\r\n      item => item.id !== this.chargeOrderItem.id && item.countryId == countryId\r\n    );\r\n\r\n    return otherChargeOrderItemsWithSameCountry\r\n      .filter(item => {\r\n        const itemValidSince =\r\n          item.validSince instanceof Date ? item.validSince : item.validSince ? new Date(item.validSince) : null;\r\n\r\n        if (!item.validSince || !item.validity._validUntilOverlap || !itemValidSince) {\r\n          return false;\r\n        }\r\n        const thisValidityInterval = {\r\n          start: new Date(dateToIsoDate(thisValidSince)),\r\n          end: new Date(dateToIsoDate(thisValidUntil)),\r\n        };\r\n        const itemValidityInterval = {\r\n          start: new Date(dateToIsoDate(itemValidSince)),\r\n          end: new Date(dateToIsoDate(item.validity._validUntilOverlap)),\r\n        };\r\n        return areIntervalsOverlapping(thisValidityInterval, itemValidityInterval, { inclusive: true });\r\n      })\r\n      .flatMap(item => toJS(item.licensePlates));\r\n  }\r\n\r\n  @computed\r\n  get canAddOrderItem() {\r\n    const index = this.chargeOrderService.chargeOrderItems.findIndex(item => item.id === this.chargeOrderItem.id);\r\n    return index === this.chargeOrderService.chargeOrderItems.length - 1 && index + 1 < ORDER_ITEM_MAX_COUNT;\r\n  }\r\n\r\n  @action.bound\r\n  storedChargeOrderItem(id?: string) {\r\n    return this.chargeOrderService.chargeOrderItems.find(item => item.id === (id ?? this.chargeOrderItem.id));\r\n  }\r\n\r\n  @action.bound\r\n  singleCharTypeToday() {\r\n    this.isSingleCharTypeToday = this.chargeOrderItem.validSince\r\n      ? isSameOrBeforePragueDay(this.chargeOrderItem.validSince, this.serverTime) &&\r\n        this.chargeTypesService.findChargeType(this.chargeOrderItem.chargeTypeId)?.validFor === ChargeValidity.SingleDay\r\n      : false;\r\n  }\r\n\r\n  @action.bound\r\n  clickOutside() {\r\n    // Inside of the view model, for some reason the onActivate doesn't get triggered.\r\n    this.fuelTypeSelectViewModel.clickOutside();\r\n  }\r\n\r\n  licensePlateHasOverlay = (licensePlate: string) => this.otherLicensePlatesWithValidityIntersection.includes(licensePlate);\r\n\r\n  @action.bound\r\n  licensePlatesFieldVisited() {\r\n    setVisitedProperty(this.chargeOrderItem, \"licensePlates\");\r\n  }\r\n\r\n  @action.bound\r\n  toggleChargeOrderItem = (chargeOrderItem: ChargeOrderItem) => () => (chargeOrderItem._visible = !chargeOrderItem._visible);\r\n\r\n  @action.bound\r\n  private updateChargeOrderItem() {\r\n    const storageItem = this.storedChargeOrderItem();\r\n    // We must set validUntil, so the multiEshop can process overlap conflicts.\r\n    this.chargeOrderItem.validity._validUntilOverlap = this.chargeOrderItem._validUntilOverlap = this.setTemporaryValidUntil(\r\n      this.chargeOrderItem\r\n    );\r\n    if (!storageItem) return;\r\n    if (this.chargeOrderItem.chargeTypeId && this.chargeOrderItem.fuelTypeId) {\r\n      const priceListId = this.chargeTypesService.chargePriceList?.items?.find(\r\n        item => item.chargeTypeId === this.chargeOrderItem.chargeTypeId && item.fuelTypeId === this.chargeOrderItem.fuelTypeId\r\n      )?.id;\r\n      if (priceListId) {\r\n        this.chargeOrderItem.priceListItemId = priceListId;\r\n        storageItem.priceListItemId = priceListId;\r\n      }\r\n    }\r\n    if (this.chargeOrderItem.fuelTypeId) {\r\n      storageItem._fuelTypeId = storageItem.fuelTypeId = this.fuelTypeSelectViewModel.chargeOrderFuelItem.fuelTypeId;\r\n    }\r\n    if (this.chargeOrderItem.licensePlates.length > 0) {\r\n      storageItem.licensePlates = this.chargeOrderItem.licensePlates;\r\n    }\r\n    if (this.chargeOrderItem.validSince && isSameOrBeforePragueDay(this.chargeOrderItem.validSince, this.serverTime)) {\r\n      storageItem._hasImmediateValidity = this.chargeOrderItem._hasImmediateValidity = true;\r\n    } else {\r\n      storageItem._hasImmediateValidity = this.chargeOrderItem._hasImmediateValidity = false;\r\n    }\r\n\r\n    storageItem.validity.validSinceDate = storageItem.validSince = this.chargeOrderItem.validSince;\r\n    storageItem.chargeTypeId = this.chargeOrderItem.chargeTypeId;\r\n    storageItem._singleChargeType =\r\n      this.chargeTypesService.findChargeType(this.chargeOrderItem.chargeTypeId)?.validFor === ChargeValidity.SingleDay;\r\n    this.chargeOrderService.persistChargeOrder();\r\n  }\r\n\r\n  @action.bound\r\n  setTemporaryValidUntil(chargeOrderItem: ChargeOrderItem) {\r\n    if (!chargeOrderItem.validSince || !chargeOrderItem._chargeTypeId) {\r\n      return undefined;\r\n    }\r\n    const chargeType = this.chargeTypesService.validChargeTypes.find(x => x.id === chargeOrderItem.chargeTypeId);\r\n    if (!chargeType) {\r\n      return undefined;\r\n    }\r\n    if (chargeType?.validFor === ChargeValidity.SingleDay) {\r\n      if (isSameOrBeforePragueDay(chargeOrderItem.validSince, this.serverTime)) {\r\n        return endOfDay(this.serverTime);\r\n      }\r\n      return endOfDay(chargeOrderItem.validSince);\r\n    }\r\n    return endOfDay(addDays(chargeOrderItem.validSince, validityDays(chargeType?.validFor) - 1));\r\n  }\r\n\r\n  @action.bound\r\n  addItem(newLicensePlate: string) {\r\n    if (this.chargeOrderItem.licensePlates.some(licensePlate => licensePlate === newLicensePlate)) {\r\n      this.chargeOrderItem._duplicities++;\r\n      return;\r\n    }\r\n\r\n    this.chargeOrderItem.licensePlates.push(newLicensePlate);\r\n    this.chargeOrderService.persistChargeOrder();\r\n  }\r\n\r\n  @action.bound\r\n  removeItem(item: string) {\r\n    this.chargeOrderItem.licensePlates = this.chargeOrderItem.licensePlates.filter(licensePlate => licensePlate !== item);\r\n    this.chargeOrderService.persistChargeOrder();\r\n  }\r\n\r\n  @action.bound\r\n  private onValidSinceChanged() {\r\n    this.chargeOrderItem.validity.validSinceDate = this.chargeOrderItem.validSince =\r\n      this.validitySelectViewModel.chargeOrderChargeItem.validSince;\r\n    this.chargeOrderItem._isModified = true;\r\n    this.singleCharTypeToday();\r\n    this.updateChargeOrderItem();\r\n    this.chargeOrderService.updatePaymentMethod();\r\n  }\r\n\r\n  @action.bound\r\n  private onChargeTypeIdChanged() {\r\n    this.chargeOrderItem.chargeTypeId = this.chargeOrderItem._chargeTypeId =\r\n      this.chargeTypeSelectViewModel.chargeOrderChargeItem.chargeTypeId;\r\n    this.chargeOrderItem._isModified = true;\r\n    this.singleCharTypeToday();\r\n    this.updateChargeOrderItem();\r\n  }\r\n\r\n  @action.bound\r\n  private onVehicleInfoChanged() {\r\n    this.chargeOrderItem._isModified = true;\r\n    this.updateChargeOrderItem();\r\n  }\r\n\r\n  @action.bound\r\n  private onFuelTypeIdChanged() {\r\n    const storageItem = this.storedChargeOrderItem(this.chargeOrderItem.id);\r\n    if (storageItem) {\r\n      storageItem._fuelTypeId = this.chargeOrderItem._fuelTypeId = this.fuelTypeSelectViewModel.chargeOrderFuelItem.fuelTypeId;\r\n      storageItem._priceListItems = this.chargeTypesService.chargePriceList?.items.filter(\r\n        item => item.fuelTypeId === this.fuelTypeSelectViewModel.chargeOrderFuelItem.fuelTypeId\r\n      );\r\n    }\r\n    this.chargeOrderItem.fuelTypeId = this.chargeOrderItem._fuelTypeId =\r\n      this.fuelTypeSelectViewModel.chargeOrderFuelItem.fuelTypeId;\r\n    this.chargeOrderItem._isModified = true;\r\n    this.updateChargeOrderItem();\r\n  }\r\n\r\n  @action.bound\r\n  translateInfoAboutVehicle(code: string) {\r\n    return this.translate(`infoAboutVehicle.${code}`);\r\n  }\r\n\r\n  @action.bound\r\n  translate = (code: string) =>\r\n    this.localizationService.translateGeneral(\r\n      `multiEshop.batchPage.${code}`,\r\n      undefined,\r\n      true // Important for markdown links to function correctly\r\n    );\r\n\r\n  static Factory({ container }: interfaces.Context) {\r\n    return (chargeOrderItem: ChargeOrderItem, resetChargeOrder: () => void) => {\r\n      return new BatchOrderItemViewModel(\r\n        chargeOrderItem,\r\n        resetChargeOrder,\r\n        container.get(EnumService),\r\n        container.get(LocalizationService),\r\n        container.get(ChargeOrderService),\r\n        container.get(TimeService),\r\n        container.get(ChargeTypesService),\r\n        container.get(AppRouter),\r\n        container.get(ChargeTypeSelectViewModel.Factory),\r\n        container.get(VehicleInfoViewModel.Factory),\r\n        container.get(ValiditySelectViewModel.Factory),\r\n        container.get(FuelTypeSelectViewModel.Factory)\r\n      );\r\n    };\r\n  }\r\n}\r\n","import { Container } from \"inversify\";\nimport \"./di.decorators\";\nimport registerServices from \"./di.registry\";\n\nexport default function createContainer() {\n  const container = new Container({ skipBaseClassChecks: true });\n\n  registerServices(container);\n\n  return container;\n}\n","// WARNING: This file has been generated. Do not edit it manually, your changes might get lost.\nimport { Container, interfaces } from \"inversify\";\nimport dataDeserializingRequestBuilder from \"./data/deserializingRequestBuilder\";\nimport dataEshopRequestBuilder from \"./data/eshopRequestBuilder\";\nimport repositoriesChargeOrderRepository from \"./repositories/chargeOrderRepository\";\nimport repositoriesChargeOrderStorageRepositoryChargeOrderStorageRepository from \"./repositories/chargeOrderStorageRepository/chargeOrderStorageRepository\";\nimport repositoriesChargePriceListStorageRepositoryChargePriceListStorageRepository from \"./repositories/chargePriceListStorageRepository/chargePriceListStorageRepository\";\nimport repositoriesChargeRegistrationRepository from \"./repositories/chargeRegistrationRepository\";\nimport repositoriesChargeRepository from \"./repositories/chargeRepository\";\nimport repositoriesChargeTypesStorageRepositoryChargeTypesStorageRepository from \"./repositories/chargeTypesStorageRepository/chargeTypesStorageRepository\";\nimport repositoriesCustomerReviewStorageRepositoryCustomerReviewStorageRepository from \"./repositories/customerReviewStorageRepository/customerReviewStorageRepository\";\nimport repositoriesEnumRepository from \"./repositories/enumRepository\";\nimport repositoriesExemptionRepository from \"./repositories/exemptionRepository\";\nimport repositoriesIsdsRepository from \"./repositories/isdsRepository\";\nimport repositoriesLicensePlateChangeRepository from \"./repositories/licensePlateChangeRepository\";\nimport repositoriesLocalizationRepository from \"./repositories/localizationRepository\";\nimport repositoriesNiaRepository from \"./repositories/niaRepository\";\nimport repositoriesOmissionRepository from \"./repositories/omissionRepository\";\nimport repositoriesOrderOrderRepository from \"./repositories/order/orderRepository\";\nimport repositoriesOutageRepository from \"./repositories/outageRepository\";\nimport repositoriesPaymentRepository from \"./repositories/paymentRepository\";\nimport repositoriesRefundRequestRepository from \"./repositories/refundRequestRepository\";\nimport repositoriesSystemRepository from \"./repositories/systemRepository\";\nimport repositoriesTradingPlaceRepository from \"./repositories/tradingPlaceRepository\";\nimport repositoriesVehicleRepository from \"./repositories/vehicleRepository\";\nimport servicesAppRouter from \"./services/appRouter\";\nimport servicesAuthorizationService from \"./services/authorizationService\";\nimport servicesChargeManagementService from \"./services/chargeManagementService\";\nimport servicesChargeOrderService from \"./services/chargeOrderService\";\nimport servicesChargeRegistrationService from \"./services/chargeRegistrationService\";\nimport servicesChargeTypesService from \"./services/chargeTypesService\";\nimport servicesEnumService from \"./services/enumService\";\nimport servicesEventBus from \"./services/eventBus\";\nimport servicesExemptionService from \"./services/exemptionService\";\nimport servicesGaService from \"./services/gaService\";\nimport servicesInitializationBasicInitializationService from \"./services/initialization/basicInitializationService\";\nimport servicesInitializationInitializationWithOutagesService from \"./services/initialization/initializationWithOutagesService\";\nimport servicesInitializationLazyInitializationService from \"./services/initialization/lazyInitializationService\";\nimport servicesIsdsIsdsService from \"./services/ISDS/isdsService\";\nimport servicesLicensePlateChangeService from \"./services/licensePlateChangeService\";\nimport servicesLocaleProvider from \"./services/localeProvider\";\nimport servicesLocalizationService from \"./services/localizationService\";\nimport servicesNiaNiaService from \"./services/NIA/niaService\";\nimport servicesNotificationService from \"./services/notificationService\";\nimport servicesOmissionService from \"./services/omissionService\";\nimport servicesOutageService from \"./services/outageService\";\nimport servicesPaymentPaymentService from \"./services/payment/paymentService\";\nimport servicesPriceService from \"./services/priceService\";\nimport servicesRefundRequestService from \"./services/refundRequestService\";\nimport servicesSignalRNotificationSignalRNotificationService from \"./services/signalR/notification/signalRNotificationService\";\nimport servicesTimeService from \"./services/timeService\";\nimport servicesTradingPlaceService from \"./services/tradingPlaceService\";\nimport servicesTurnstileServise from \"./services/turnstileServise\";\nimport servicesValidationService from \"./services/validationService\";\nimport servicesVehicleService from \"./services/vehicleService\";\nimport viewModelsAlertViewModel from \"./viewModels/alertViewModel\";\nimport viewModelsChargeManagementChargeManagementEditChargeManagementActiveChargeLicensePlateChangeViewModel from \"./viewModels/chargeManagement/chargeManagementEdit/chargeManagementActiveChargeLicensePlateChangeViewModel\";\nimport viewModelsChargeManagementChargeManagementEditChargeManagementBeforeValidChargeLicensePlateChangeViewModel from \"./viewModels/chargeManagement/chargeManagementEdit/chargeManagementBeforeValidChargeLicensePlateChangeViewModel\";\nimport viewModelsChargeManagementChargeManagementEditChargeManagementContactViewModel from \"./viewModels/chargeManagement/chargeManagementEdit/chargeManagementContactViewModel\";\nimport viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel from \"./viewModels/chargeManagement/chargeManagementEdit/chargeManagementEditViewModel\";\nimport viewModelsChargeManagementChargeManagementEditChargeManagementReceiptViewModel from \"./viewModels/chargeManagement/chargeManagementEdit/chargeManagementReceiptViewModel\";\nimport viewModelsChargeManagementChargeManagementEditChargeManagementValidityViewModel from \"./viewModels/chargeManagement/chargeManagementEdit/chargeManagementValidityViewModel\";\nimport viewModelsChargeManagementChargeManagementEditCodeChangedAlertViewModel from \"./viewModels/chargeManagement/chargeManagementEdit/codeChangedAlertViewModel\";\nimport viewModelsChargeManagementChargeManagementEditCommonEmailInputViewModel from \"./viewModels/chargeManagement/chargeManagementEdit/common/emailInputViewModel\";\nimport viewModelsChargeManagementChargeManagementEditReceiptEmailModalViewModel from \"./viewModels/chargeManagement/chargeManagementEdit/receiptEmailModalViewModel\";\nimport viewModelsChargeManagementChargeManagementViewModel from \"./viewModels/chargeManagement/chargeManagementViewModel\";\nimport viewModelsChargeTypesChargeTypesViewModel from \"./viewModels/chargeTypes/chargeTypesViewModel\";\nimport viewModelsCommonChargeTypeSelectViewModel from \"./viewModels/common/chargeTypeSelectViewModel\";\nimport viewModelsCommonContactViewModel from \"./viewModels/common/contactViewModel\";\nimport viewModelsCommonFuelTypeSelectViewModel from \"./viewModels/common/fuelTypeSelectViewModel\";\nimport viewModelsCommonGdprGdprViewModel from \"./viewModels/common/gdpr/GDPRViewModel\";\nimport viewModelsCommonOrderOutageOrderOutageViewModel from \"./viewModels/common/orderOutage/orderOutageViewModel\";\nimport viewModelsCommonOutagesViewModel from \"./viewModels/common/outagesViewModel\";\nimport viewModelsCommonPaymentBankTransferViewModel from \"./viewModels/common/payment/bankTransferViewModel\";\nimport viewModelsCommonPaymentMultiPaymentRetryViewModel from \"./viewModels/common/payment/multiPaymentRetryViewModel\";\nimport viewModelsCommonPaymentOrderSummaryViewModel from \"./viewModels/common/payment/orderSummaryViewModel\";\nimport viewModelsCommonPaymentPaymentRetryViewModel from \"./viewModels/common/payment/paymentRetryViewModel\";\nimport viewModelsCommonPaymentSelectPaymentMethodViewModel from \"./viewModels/common/payment/selectPaymentMethodViewModel\";\nimport viewModelsCommonPaymentSingleBankTransferViewModel from \"./viewModels/common/payment/singleBankTransferViewModel\";\nimport viewModelsCommonPaymentSinglePaymentRetryViewModel from \"./viewModels/common/payment/singlePaymentRetryViewModel\";\nimport viewModelsCommonPaymentSingleStatusViewModel from \"./viewModels/common/payment/singleStatusViewModel\";\nimport viewModelsCommonPaymentStatusViewModel from \"./viewModels/common/payment/statusViewModel\";\nimport viewModelsCommonPriceListViewModel from \"./viewModels/common/priceListViewModel\";\nimport viewModelsCommonTurnstileViewModel from \"./viewModels/common/turnstileViewModel\";\nimport viewModelsCommonVehicleInfoViewModel from \"./viewModels/common/vehicleInfoViewModel\";\nimport viewModelsCustomerReviewCustomerReviewViewModel from \"./viewModels/customerReview/customerReviewViewModel\";\nimport viewModelsEshopEshopViewModel from \"./viewModels/eshop/eshopViewModel\";\nimport viewModelsEshopOrderComponentsChargeViewModel from \"./viewModels/eshop/order/components/chargeViewModel\";\nimport viewModelsEshopOrderComponentsFuelViewModel from \"./viewModels/eshop/order/components/fuelViewModel\";\nimport viewModelsEshopOrderComponentsGdprInfoViewModel from \"./viewModels/eshop/order/components/gdprInfoViewModel\";\nimport viewModelsEshopOrderComponentsNotificationPreferencesRecapViewModel from \"./viewModels/eshop/order/components/notificationPreferencesRecapViewModel\";\nimport viewModelsEshopOrderComponentsOrderRecapitulationViewModel from \"./viewModels/eshop/order/components/orderRecapitulationViewModel\";\nimport viewModelsEshopOrderComponentsPaymentViewModel from \"./viewModels/eshop/order/components/paymentViewModel\";\nimport viewModelsEshopOrderComponentsTermAgreementViewModel from \"./viewModels/eshop/order/components/termAgreementViewModel\";\nimport viewModelsEshopOrderComponentsValiditySelectViewModel from \"./viewModels/eshop/order/components/validitySelectViewModel\";\nimport viewModelsEshopOrderOrderWizardModel from \"./viewModels/eshop/order/orderWizardModel\";\nimport viewModelsEshopOrderStepsChargeTypeViewModel from \"./viewModels/eshop/order/steps/chargeTypeViewModel\";\nimport viewModelsEshopOrderStepsContactViewModel from \"./viewModels/eshop/order/steps/contactViewModel\";\nimport viewModelsEshopOrderStepsFuelTypeViewModel from \"./viewModels/eshop/order/steps/fuelTypeViewModel\";\nimport viewModelsEshopOrderStepsLicenseViewModel from \"./viewModels/eshop/order/steps/licenseViewModel\";\nimport viewModelsEshopOrderStepsRecapViewModel from \"./viewModels/eshop/order/steps/recapViewModel\";\nimport viewModelsMultiEshopBatchOrderItemViewModel from \"./viewModels/multiEshop/batchOrderItemViewModel\";\nimport viewModelsMultiEshopBatchOrderViewModel from \"./viewModels/multiEshop/batchOrderViewModel\";\nimport viewModelsMultiEshopContactMultiEshopViewModel from \"./viewModels/multiEshop/contactMultiEshopViewModel\";\nimport viewModelsMultiEshopMultiEshopViewModel from \"./viewModels/multiEshop/multiEshopViewModel\";\nimport viewModelsMultiEshopOrderRecapViewModel from \"./viewModels/multiEshop/orderRecapViewModel\";\nimport viewModelsMultiEshopPaymentMultiEshopViewModel from \"./viewModels/multiEshop/paymentMultiEshopViewModel\";\nimport viewModelsMultiEshopSummaryMultiEshopViewModel from \"./viewModels/multiEshop/summaryMultiEshopViewModel\";\nimport viewModelsNoticeComponentsApplicantPersonViewModel from \"./viewModels/notice/components/applicantPersonViewModel\";\nimport viewModelsNoticeComponentsDocumentsUploadedViewModel from \"./viewModels/notice/components/documentsUploadedViewModel\";\nimport viewModelsNoticeComponentsNiaViewModel from \"./viewModels/notice/components/niaViewModel\";\nimport viewModelsNoticeComponentsOperatorLegalPersonViewModel from \"./viewModels/notice/components/operator/legalPersonViewModel\";\nimport viewModelsNoticeComponentsOperatorNaturalPersonViewModel from \"./viewModels/notice/components/operator/naturalPersonViewModel\";\nimport viewModelsNoticeComponentsOperatorOperatorViewModel from \"./viewModels/notice/components/operator/operatorViewModel\";\nimport viewModelsNoticeExemptionExemptionDocumentsUploadedViewModel from \"./viewModels/notice/exemption/exemptionDocumentsUploadedViewModel\";\nimport viewModelsNoticeExemptionExemptionNoticeViewModel from \"./viewModels/notice/exemption/exemptionNoticeViewModel\";\nimport viewModelsNoticeExemptionExemptionViewModel from \"./viewModels/notice/exemption/exemptionViewModel\";\nimport viewModelsNoticeLicensePlateChangeLicensePlateChangeDocumentsUploadedViewModel from \"./viewModels/notice/licensePlateChange/licensePlateChangeDocumentsUploadedViewModel\";\nimport viewModelsNoticeLicensePlateChangeLicensePlateChangeNoticeViewModel from \"./viewModels/notice/licensePlateChange/licensePlateChangeNoticeViewModel\";\nimport viewModelsNoticeLicensePlateChangeLicensePlateChangeViewModel from \"./viewModels/notice/licensePlateChange/licensePlateChangeViewModel\";\nimport viewModelsNoticeOmissionOmissionDocumentsUploadedViewModel from \"./viewModels/notice/omission/omissionDocumentsUploadedViewModel\";\nimport viewModelsNoticeOmissionOmissionNoticeViewModel from \"./viewModels/notice/omission/omissionNoticeViewModel\";\nimport viewModelsNoticeOmissionOmissionViewModel from \"./viewModels/notice/omission/omissionViewModel\";\nimport viewModelsNoticeRefundRequestRefundRequestDocumentsUploadedViewModel from \"./viewModels/notice/refundRequest/refundRequestDocumentsUploadedViewModel\";\nimport viewModelsNoticeRefundRequestRefundRequestNoticeViewModel from \"./viewModels/notice/refundRequest/refundRequestNoticeViewModel\";\nimport viewModelsNoticeRefundRequestRefundRequestViewModel from \"./viewModels/notice/refundRequest/refundRequestViewModel\";\nimport viewModelsOutagesOutagesWidgetViewModel from \"./viewModels/outages/outagesWidgetViewModel\";\nimport viewModelsPaymentValidationPaymentValidationViewModel from \"./viewModels/paymentValidation/paymentValidationViewModel\";\nimport viewModelsPaymentValidationValidationSummaryViewModel from \"./viewModels/paymentValidation/validationSummaryViewModel\";\nimport viewModelsRootViewModel from \"./viewModels/rootViewModel\";\nimport viewModelsTradingPlacesKioskViewModel from \"./viewModels/tradingPlaces/kioskViewModel\";\nimport viewModelsTradingPlacesRoadMapViewModel from \"./viewModels/tradingPlaces/roadMapViewModel\";\nimport viewModelsTradingPlacesTradingPlacesViewModel from \"./viewModels/tradingPlaces/tradingPlacesViewModel\";\n\nexport default function registerServices(container: Container) {\n  container\n    .bind<interfaces.Factory<dataDeserializingRequestBuilder>>(dataDeserializingRequestBuilder.Factory)\n    .toFactory(dataDeserializingRequestBuilder.Factory);\n  container\n    .bind<interfaces.Factory<dataEshopRequestBuilder>>(dataEshopRequestBuilder.Factory)\n    .toFactory(dataEshopRequestBuilder.Factory);\n  container.bind<repositoriesChargeOrderRepository>(repositoriesChargeOrderRepository).toSelf();\n  container.bind<repositoriesChargeRegistrationRepository>(repositoriesChargeRegistrationRepository).toSelf();\n  container.bind<repositoriesChargeRepository>(repositoriesChargeRepository).toSelf();\n  container.bind<repositoriesEnumRepository>(repositoriesEnumRepository).toSelf();\n  container.bind<repositoriesExemptionRepository>(repositoriesExemptionRepository).toSelf();\n  container.bind<repositoriesIsdsRepository>(repositoriesIsdsRepository).toSelf();\n  container.bind<repositoriesLicensePlateChangeRepository>(repositoriesLicensePlateChangeRepository).toSelf();\n  container.bind<repositoriesLocalizationRepository>(repositoriesLocalizationRepository).toSelf();\n  container.bind<repositoriesNiaRepository>(repositoriesNiaRepository).toSelf();\n  container.bind<repositoriesOmissionRepository>(repositoriesOmissionRepository).toSelf();\n  container.bind<repositoriesOutageRepository>(repositoriesOutageRepository).toSelf();\n  container.bind<repositoriesPaymentRepository>(repositoriesPaymentRepository).toSelf();\n  container.bind<repositoriesRefundRequestRepository>(repositoriesRefundRequestRepository).toSelf();\n  container.bind<repositoriesSystemRepository>(repositoriesSystemRepository).toSelf();\n  container.bind<repositoriesTradingPlaceRepository>(repositoriesTradingPlaceRepository).toSelf();\n  container.bind<repositoriesVehicleRepository>(repositoriesVehicleRepository).toSelf();\n  container.bind<servicesAppRouter>(servicesAppRouter).toSelf().inSingletonScope();\n  container.bind<servicesAuthorizationService>(servicesAuthorizationService).toSelf().inSingletonScope();\n  container.bind<servicesChargeManagementService>(servicesChargeManagementService).toSelf().inSingletonScope();\n  container.bind<servicesChargeOrderService>(servicesChargeOrderService).toSelf().inSingletonScope();\n  container.bind<servicesChargeRegistrationService>(servicesChargeRegistrationService).toSelf().inSingletonScope();\n  container.bind<servicesChargeTypesService>(servicesChargeTypesService).toSelf().inSingletonScope();\n  container.bind<servicesEnumService>(servicesEnumService).toSelf().inSingletonScope();\n  container.bind<servicesEventBus>(servicesEventBus).toSelf().inSingletonScope();\n  container.bind<servicesExemptionService>(servicesExemptionService).toSelf().inSingletonScope();\n  container.bind<servicesGaService>(servicesGaService).toSelf().inSingletonScope();\n  container.bind<servicesLicensePlateChangeService>(servicesLicensePlateChangeService).toSelf().inSingletonScope();\n  container.bind<servicesLocaleProvider>(servicesLocaleProvider).toSelf().inSingletonScope();\n  container.bind<servicesLocalizationService>(servicesLocalizationService).toSelf().inSingletonScope();\n  container.bind<servicesNotificationService>(servicesNotificationService).toSelf().inSingletonScope();\n  container.bind<servicesOmissionService>(servicesOmissionService).toSelf().inSingletonScope();\n  container.bind<servicesOutageService>(servicesOutageService).toSelf().inSingletonScope();\n  container.bind<servicesPriceService>(servicesPriceService).toSelf().inSingletonScope();\n  container.bind<servicesRefundRequestService>(servicesRefundRequestService).toSelf().inSingletonScope();\n  container.bind<servicesTimeService>(servicesTimeService).toSelf().inSingletonScope();\n  container.bind<servicesTradingPlaceService>(servicesTradingPlaceService).toSelf().inSingletonScope();\n  container.bind<servicesTurnstileServise>(servicesTurnstileServise).toSelf();\n  container.bind<servicesValidationService>(servicesValidationService).toSelf().inSingletonScope();\n  container.bind<servicesVehicleService>(servicesVehicleService).toSelf().inSingletonScope();\n  container.bind<viewModelsAlertViewModel>(viewModelsAlertViewModel).toSelf();\n  container.bind(\"Factory<AlertViewModel>\").toAutoFactory(viewModelsAlertViewModel);\n  container\n    .bind<interfaces.Factory<viewModelsRootViewModel>>(viewModelsRootViewModel.Factory)\n    .toFactory(viewModelsRootViewModel.Factory);\n  container.bind<repositoriesChargeOrderStorageRepositoryChargeOrderStorageRepository>(repositoriesChargeOrderStorageRepositoryChargeOrderStorageRepository).toSelf();\n  container.bind<repositoriesChargePriceListStorageRepositoryChargePriceListStorageRepository>(repositoriesChargePriceListStorageRepositoryChargePriceListStorageRepository).toSelf();\n  container.bind<repositoriesChargeTypesStorageRepositoryChargeTypesStorageRepository>(repositoriesChargeTypesStorageRepositoryChargeTypesStorageRepository).toSelf();\n  container.bind<repositoriesCustomerReviewStorageRepositoryCustomerReviewStorageRepository>(repositoriesCustomerReviewStorageRepositoryCustomerReviewStorageRepository).toSelf();\n  container.bind<repositoriesOrderOrderRepository>(repositoriesOrderOrderRepository).toSelf();\n  container.bind<servicesInitializationBasicInitializationService>(servicesInitializationBasicInitializationService).toSelf().inSingletonScope();\n  container.bind<servicesInitializationInitializationWithOutagesService>(servicesInitializationInitializationWithOutagesService).toSelf().inSingletonScope();\n  container.bind<servicesInitializationLazyInitializationService>(servicesInitializationLazyInitializationService).toSelf().inSingletonScope();\n  container.bind<servicesIsdsIsdsService>(servicesIsdsIsdsService).toSelf().inSingletonScope();\n  container.bind<servicesNiaNiaService>(servicesNiaNiaService).toSelf().inSingletonScope();\n  container.bind<servicesPaymentPaymentService>(servicesPaymentPaymentService).toSelf().inSingletonScope();\n  container.bind<viewModelsChargeManagementChargeManagementViewModel>(viewModelsChargeManagementChargeManagementViewModel).toSelf();\n  container.bind(\"Factory<ChargeManagementViewModel>\").toAutoFactory(viewModelsChargeManagementChargeManagementViewModel);\n  container.bind<viewModelsChargeTypesChargeTypesViewModel>(viewModelsChargeTypesChargeTypesViewModel).toSelf();\n  container.bind(\"Factory<ChargeTypesViewModel>\").toAutoFactory(viewModelsChargeTypesChargeTypesViewModel);\n  container\n    .bind<interfaces.Factory<viewModelsCommonChargeTypeSelectViewModel>>(viewModelsCommonChargeTypeSelectViewModel.Factory)\n    .toFactory(viewModelsCommonChargeTypeSelectViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsCommonContactViewModel>>(viewModelsCommonContactViewModel.Factory)\n    .toFactory(viewModelsCommonContactViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsCommonFuelTypeSelectViewModel>>(viewModelsCommonFuelTypeSelectViewModel.Factory)\n    .toFactory(viewModelsCommonFuelTypeSelectViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsCommonOutagesViewModel>>(viewModelsCommonOutagesViewModel.Factory)\n    .toFactory(viewModelsCommonOutagesViewModel.Factory);\n  container.bind<viewModelsCommonPriceListViewModel>(viewModelsCommonPriceListViewModel).toSelf();\n  container.bind(\"Factory<PriceListViewModel>\").toAutoFactory(viewModelsCommonPriceListViewModel);\n  container\n    .bind<interfaces.Factory<viewModelsCommonTurnstileViewModel>>(viewModelsCommonTurnstileViewModel.Factory)\n    .toFactory(viewModelsCommonTurnstileViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsCommonVehicleInfoViewModel>>(viewModelsCommonVehicleInfoViewModel.Factory)\n    .toFactory(viewModelsCommonVehicleInfoViewModel.Factory);\n  container.bind<viewModelsCustomerReviewCustomerReviewViewModel>(viewModelsCustomerReviewCustomerReviewViewModel).toSelf();\n  container.bind(\"Factory<CustomerReviewViewModel>\").toAutoFactory(viewModelsCustomerReviewCustomerReviewViewModel);\n  container.bind<viewModelsEshopEshopViewModel>(viewModelsEshopEshopViewModel).toSelf();\n  container.bind(\"Factory<EshopViewModel>\").toAutoFactory(viewModelsEshopEshopViewModel);\n  container\n    .bind<interfaces.Factory<viewModelsMultiEshopBatchOrderItemViewModel>>(viewModelsMultiEshopBatchOrderItemViewModel.Factory)\n    .toFactory(viewModelsMultiEshopBatchOrderItemViewModel.Factory);\n  container.bind<viewModelsMultiEshopBatchOrderViewModel>(viewModelsMultiEshopBatchOrderViewModel).toSelf();\n  container.bind(\"Factory<BatchOrderViewModel>\").toAutoFactory(viewModelsMultiEshopBatchOrderViewModel);\n  container\n    .bind<interfaces.Factory<viewModelsMultiEshopContactMultiEshopViewModel>>(viewModelsMultiEshopContactMultiEshopViewModel.Factory)\n    .toFactory(viewModelsMultiEshopContactMultiEshopViewModel.Factory);\n  container.bind<viewModelsMultiEshopMultiEshopViewModel>(viewModelsMultiEshopMultiEshopViewModel).toSelf();\n  container.bind(\"Factory<MultiEshopViewModel>\").toAutoFactory(viewModelsMultiEshopMultiEshopViewModel);\n  container.bind<viewModelsMultiEshopOrderRecapViewModel>(viewModelsMultiEshopOrderRecapViewModel).toSelf();\n  container.bind(\"Factory<OrderRecapViewModel>\").toAutoFactory(viewModelsMultiEshopOrderRecapViewModel);\n  container\n    .bind<interfaces.Factory<viewModelsMultiEshopPaymentMultiEshopViewModel>>(viewModelsMultiEshopPaymentMultiEshopViewModel.Factory)\n    .toFactory(viewModelsMultiEshopPaymentMultiEshopViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsMultiEshopSummaryMultiEshopViewModel>>(viewModelsMultiEshopSummaryMultiEshopViewModel.Factory)\n    .toFactory(viewModelsMultiEshopSummaryMultiEshopViewModel.Factory);\n  container.bind<viewModelsOutagesOutagesWidgetViewModel>(viewModelsOutagesOutagesWidgetViewModel).toSelf();\n  container.bind(\"Factory<OutagesWidgetViewModel>\").toAutoFactory(viewModelsOutagesOutagesWidgetViewModel);\n  container.bind<viewModelsPaymentValidationPaymentValidationViewModel>(viewModelsPaymentValidationPaymentValidationViewModel).toSelf();\n  container.bind(\"Factory<PaymentValidationViewModel>\").toAutoFactory(viewModelsPaymentValidationPaymentValidationViewModel);\n  container\n    .bind<interfaces.Factory<viewModelsPaymentValidationValidationSummaryViewModel>>(viewModelsPaymentValidationValidationSummaryViewModel.Factory)\n    .toFactory(viewModelsPaymentValidationValidationSummaryViewModel.Factory);\n  container.bind<viewModelsTradingPlacesKioskViewModel>(viewModelsTradingPlacesKioskViewModel).toSelf();\n  container.bind(\"Factory<KioskViewModel>\").toAutoFactory(viewModelsTradingPlacesKioskViewModel);\n  container.bind<viewModelsTradingPlacesRoadMapViewModel>(viewModelsTradingPlacesRoadMapViewModel).toSelf();\n  container.bind(\"Factory<RoadMapViewModel>\").toAutoFactory(viewModelsTradingPlacesRoadMapViewModel);\n  container.bind<viewModelsTradingPlacesTradingPlacesViewModel>(viewModelsTradingPlacesTradingPlacesViewModel).toSelf();\n  container.bind(\"Factory<TradingPlacesViewModel>\").toAutoFactory(viewModelsTradingPlacesTradingPlacesViewModel);\n  container.bind<servicesSignalRNotificationSignalRNotificationService>(servicesSignalRNotificationSignalRNotificationService).toSelf().inSingletonScope();\n  container.bind<viewModelsChargeManagementChargeManagementEditChargeManagementActiveChargeLicensePlateChangeViewModel>(viewModelsChargeManagementChargeManagementEditChargeManagementActiveChargeLicensePlateChangeViewModel).toSelf();\n  container.bind(\"Factory<ChargeManagementActiveChargeLicensePlateChangeViewModel>\").toAutoFactory(viewModelsChargeManagementChargeManagementEditChargeManagementActiveChargeLicensePlateChangeViewModel);\n  container.bind<viewModelsChargeManagementChargeManagementEditChargeManagementBeforeValidChargeLicensePlateChangeViewModel>(viewModelsChargeManagementChargeManagementEditChargeManagementBeforeValidChargeLicensePlateChangeViewModel).toSelf();\n  container.bind(\"Factory<ChargeManagementBeforeValidChargeLicensePlateChangeViewModel>\").toAutoFactory(viewModelsChargeManagementChargeManagementEditChargeManagementBeforeValidChargeLicensePlateChangeViewModel);\n  container.bind<viewModelsChargeManagementChargeManagementEditChargeManagementContactViewModel>(viewModelsChargeManagementChargeManagementEditChargeManagementContactViewModel).toSelf();\n  container.bind(\"Factory<ChargeManagementContactViewModel>\").toAutoFactory(viewModelsChargeManagementChargeManagementEditChargeManagementContactViewModel);\n  container.bind<viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel>(viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel).toSelf();\n  container.bind(\"Factory<ChargeManagementEditViewModel>\").toAutoFactory(viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel);\n  container.bind<viewModelsChargeManagementChargeManagementEditChargeManagementReceiptViewModel>(viewModelsChargeManagementChargeManagementEditChargeManagementReceiptViewModel).toSelf();\n  container.bind(\"Factory<ChargeManagementReceiptViewModel>\").toAutoFactory(viewModelsChargeManagementChargeManagementEditChargeManagementReceiptViewModel);\n  container.bind<viewModelsChargeManagementChargeManagementEditChargeManagementValidityViewModel>(viewModelsChargeManagementChargeManagementEditChargeManagementValidityViewModel).toSelf();\n  container.bind(\"Factory<ChargeManagementValidityViewModel>\").toAutoFactory(viewModelsChargeManagementChargeManagementEditChargeManagementValidityViewModel);\n  container\n    .bind<interfaces.Factory<viewModelsChargeManagementChargeManagementEditCodeChangedAlertViewModel>>(viewModelsChargeManagementChargeManagementEditCodeChangedAlertViewModel.Factory)\n    .toFactory(viewModelsChargeManagementChargeManagementEditCodeChangedAlertViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsChargeManagementChargeManagementEditReceiptEmailModalViewModel>>(viewModelsChargeManagementChargeManagementEditReceiptEmailModalViewModel.Factory)\n    .toFactory(viewModelsChargeManagementChargeManagementEditReceiptEmailModalViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsCommonGdprGdprViewModel>>(viewModelsCommonGdprGdprViewModel.Factory)\n    .toFactory(viewModelsCommonGdprGdprViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsCommonOrderOutageOrderOutageViewModel>>(viewModelsCommonOrderOutageOrderOutageViewModel.Factory)\n    .toFactory(viewModelsCommonOrderOutageOrderOutageViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsCommonPaymentBankTransferViewModel>>(viewModelsCommonPaymentBankTransferViewModel.Factory)\n    .toFactory(viewModelsCommonPaymentBankTransferViewModel.Factory);\n  container.bind<viewModelsCommonPaymentMultiPaymentRetryViewModel>(viewModelsCommonPaymentMultiPaymentRetryViewModel).toSelf();\n  container.bind(\"Factory<MultiPaymentRetryViewModel>\").toAutoFactory(viewModelsCommonPaymentMultiPaymentRetryViewModel);\n  container\n    .bind<interfaces.Factory<viewModelsCommonPaymentOrderSummaryViewModel>>(viewModelsCommonPaymentOrderSummaryViewModel.Factory)\n    .toFactory(viewModelsCommonPaymentOrderSummaryViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsCommonPaymentPaymentRetryViewModel>>(viewModelsCommonPaymentPaymentRetryViewModel.Factory)\n    .toFactory(viewModelsCommonPaymentPaymentRetryViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsCommonPaymentSelectPaymentMethodViewModel>>(viewModelsCommonPaymentSelectPaymentMethodViewModel.Factory)\n    .toFactory(viewModelsCommonPaymentSelectPaymentMethodViewModel.Factory);\n  container.bind<viewModelsCommonPaymentSingleBankTransferViewModel>(viewModelsCommonPaymentSingleBankTransferViewModel).toSelf();\n  container.bind(\"Factory<SingleBankTransferViewModel>\").toAutoFactory(viewModelsCommonPaymentSingleBankTransferViewModel);\n  container.bind<viewModelsCommonPaymentSinglePaymentRetryViewModel>(viewModelsCommonPaymentSinglePaymentRetryViewModel).toSelf();\n  container.bind(\"Factory<SinglePaymentRetryViewModel>\").toAutoFactory(viewModelsCommonPaymentSinglePaymentRetryViewModel);\n  container.bind<viewModelsCommonPaymentSingleStatusViewModel>(viewModelsCommonPaymentSingleStatusViewModel).toSelf();\n  container.bind(\"Factory<SingleStatusViewModel>\").toAutoFactory(viewModelsCommonPaymentSingleStatusViewModel);\n  container\n    .bind<interfaces.Factory<viewModelsCommonPaymentStatusViewModel>>(viewModelsCommonPaymentStatusViewModel.Factory)\n    .toFactory(viewModelsCommonPaymentStatusViewModel.Factory);\n  container.bind<viewModelsEshopOrderOrderWizardModel>(viewModelsEshopOrderOrderWizardModel).toSelf();\n  container.bind(\"Factory<OrderWizardViewModel>\").toAutoFactory(viewModelsEshopOrderOrderWizardModel);\n  container\n    .bind<interfaces.Factory<viewModelsNoticeComponentsApplicantPersonViewModel>>(viewModelsNoticeComponentsApplicantPersonViewModel.Factory)\n    .toFactory(viewModelsNoticeComponentsApplicantPersonViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsNoticeComponentsDocumentsUploadedViewModel>>(viewModelsNoticeComponentsDocumentsUploadedViewModel.Factory)\n    .toFactory(viewModelsNoticeComponentsDocumentsUploadedViewModel.Factory);\n  container.bind<viewModelsNoticeComponentsNiaViewModel>(viewModelsNoticeComponentsNiaViewModel).toSelf();\n  container.bind(\"Factory<NiaViewModel>\").toAutoFactory(viewModelsNoticeComponentsNiaViewModel);\n  container.bind<viewModelsNoticeExemptionExemptionDocumentsUploadedViewModel>(viewModelsNoticeExemptionExemptionDocumentsUploadedViewModel).toSelf();\n  container.bind(\"Factory<ExemptionDocumentsUploadedViewModel>\").toAutoFactory(viewModelsNoticeExemptionExemptionDocumentsUploadedViewModel);\n  container.bind<viewModelsNoticeExemptionExemptionNoticeViewModel>(viewModelsNoticeExemptionExemptionNoticeViewModel).toSelf();\n  container.bind(\"Factory<ExemptionNoticeViewModel>\").toAutoFactory(viewModelsNoticeExemptionExemptionNoticeViewModel);\n  container.bind<viewModelsNoticeExemptionExemptionViewModel>(viewModelsNoticeExemptionExemptionViewModel).toSelf();\n  container.bind(\"Factory<ExemptionViewModel>\").toAutoFactory(viewModelsNoticeExemptionExemptionViewModel);\n  container.bind<viewModelsNoticeLicensePlateChangeLicensePlateChangeDocumentsUploadedViewModel>(viewModelsNoticeLicensePlateChangeLicensePlateChangeDocumentsUploadedViewModel).toSelf();\n  container.bind(\"Factory<LicensePlateChangeDocumentsUploadedViewModel>\").toAutoFactory(viewModelsNoticeLicensePlateChangeLicensePlateChangeDocumentsUploadedViewModel);\n  container.bind<viewModelsNoticeLicensePlateChangeLicensePlateChangeNoticeViewModel>(viewModelsNoticeLicensePlateChangeLicensePlateChangeNoticeViewModel).toSelf();\n  container.bind(\"Factory<LicensePlateChangeNoticeViewModel>\").toAutoFactory(viewModelsNoticeLicensePlateChangeLicensePlateChangeNoticeViewModel);\n  container.bind<viewModelsNoticeLicensePlateChangeLicensePlateChangeViewModel>(viewModelsNoticeLicensePlateChangeLicensePlateChangeViewModel).toSelf();\n  container.bind(\"Factory<LicensePlateChangeViewModel>\").toAutoFactory(viewModelsNoticeLicensePlateChangeLicensePlateChangeViewModel);\n  container.bind<viewModelsNoticeOmissionOmissionDocumentsUploadedViewModel>(viewModelsNoticeOmissionOmissionDocumentsUploadedViewModel).toSelf();\n  container.bind(\"Factory<OmissionDocumentsUploadedViewModel>\").toAutoFactory(viewModelsNoticeOmissionOmissionDocumentsUploadedViewModel);\n  container.bind<viewModelsNoticeOmissionOmissionNoticeViewModel>(viewModelsNoticeOmissionOmissionNoticeViewModel).toSelf();\n  container.bind(\"Factory<OmissionNoticeViewModel>\").toAutoFactory(viewModelsNoticeOmissionOmissionNoticeViewModel);\n  container.bind<viewModelsNoticeOmissionOmissionViewModel>(viewModelsNoticeOmissionOmissionViewModel).toSelf();\n  container.bind(\"Factory<OmissionViewModel>\").toAutoFactory(viewModelsNoticeOmissionOmissionViewModel);\n  container.bind<viewModelsNoticeRefundRequestRefundRequestDocumentsUploadedViewModel>(viewModelsNoticeRefundRequestRefundRequestDocumentsUploadedViewModel).toSelf();\n  container.bind(\"Factory<RefundRequestDocumentsUploadedViewModel>\").toAutoFactory(viewModelsNoticeRefundRequestRefundRequestDocumentsUploadedViewModel);\n  container.bind<viewModelsNoticeRefundRequestRefundRequestNoticeViewModel>(viewModelsNoticeRefundRequestRefundRequestNoticeViewModel).toSelf();\n  container.bind(\"Factory<RefundRequestNoticeViewModel>\").toAutoFactory(viewModelsNoticeRefundRequestRefundRequestNoticeViewModel);\n  container.bind<viewModelsNoticeRefundRequestRefundRequestViewModel>(viewModelsNoticeRefundRequestRefundRequestViewModel).toSelf();\n  container.bind(\"Factory<RefundRequestViewModel>\").toAutoFactory(viewModelsNoticeRefundRequestRefundRequestViewModel);\n  container\n    .bind<interfaces.Factory<viewModelsChargeManagementChargeManagementEditCommonEmailInputViewModel>>(viewModelsChargeManagementChargeManagementEditCommonEmailInputViewModel.Factory)\n    .toFactory(viewModelsChargeManagementChargeManagementEditCommonEmailInputViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsEshopOrderComponentsChargeViewModel>>(viewModelsEshopOrderComponentsChargeViewModel.Factory)\n    .toFactory(viewModelsEshopOrderComponentsChargeViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsEshopOrderComponentsFuelViewModel>>(viewModelsEshopOrderComponentsFuelViewModel.Factory)\n    .toFactory(viewModelsEshopOrderComponentsFuelViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsEshopOrderComponentsGdprInfoViewModel>>(viewModelsEshopOrderComponentsGdprInfoViewModel.Factory)\n    .toFactory(viewModelsEshopOrderComponentsGdprInfoViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsEshopOrderComponentsNotificationPreferencesRecapViewModel>>(viewModelsEshopOrderComponentsNotificationPreferencesRecapViewModel.Factory)\n    .toFactory(viewModelsEshopOrderComponentsNotificationPreferencesRecapViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsEshopOrderComponentsOrderRecapitulationViewModel>>(viewModelsEshopOrderComponentsOrderRecapitulationViewModel.Factory)\n    .toFactory(viewModelsEshopOrderComponentsOrderRecapitulationViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsEshopOrderComponentsPaymentViewModel>>(viewModelsEshopOrderComponentsPaymentViewModel.Factory)\n    .toFactory(viewModelsEshopOrderComponentsPaymentViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsEshopOrderComponentsTermAgreementViewModel>>(viewModelsEshopOrderComponentsTermAgreementViewModel.Factory)\n    .toFactory(viewModelsEshopOrderComponentsTermAgreementViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsEshopOrderComponentsValiditySelectViewModel>>(viewModelsEshopOrderComponentsValiditySelectViewModel.Factory)\n    .toFactory(viewModelsEshopOrderComponentsValiditySelectViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsEshopOrderStepsChargeTypeViewModel>>(viewModelsEshopOrderStepsChargeTypeViewModel.Factory)\n    .toFactory(viewModelsEshopOrderStepsChargeTypeViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsEshopOrderStepsContactViewModel>>(viewModelsEshopOrderStepsContactViewModel.Factory)\n    .toFactory(viewModelsEshopOrderStepsContactViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsEshopOrderStepsFuelTypeViewModel>>(viewModelsEshopOrderStepsFuelTypeViewModel.Factory)\n    .toFactory(viewModelsEshopOrderStepsFuelTypeViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsEshopOrderStepsLicenseViewModel>>(viewModelsEshopOrderStepsLicenseViewModel.Factory)\n    .toFactory(viewModelsEshopOrderStepsLicenseViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsEshopOrderStepsRecapViewModel>>(viewModelsEshopOrderStepsRecapViewModel.Factory)\n    .toFactory(viewModelsEshopOrderStepsRecapViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsNoticeComponentsOperatorLegalPersonViewModel>>(viewModelsNoticeComponentsOperatorLegalPersonViewModel.Factory)\n    .toFactory(viewModelsNoticeComponentsOperatorLegalPersonViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsNoticeComponentsOperatorNaturalPersonViewModel>>(viewModelsNoticeComponentsOperatorNaturalPersonViewModel.Factory)\n    .toFactory(viewModelsNoticeComponentsOperatorNaturalPersonViewModel.Factory);\n  container\n    .bind<interfaces.Factory<viewModelsNoticeComponentsOperatorOperatorViewModel>>(viewModelsNoticeComponentsOperatorOperatorViewModel.Factory)\n    .toFactory(viewModelsNoticeComponentsOperatorOperatorViewModel.Factory);\n}\n","// WARNING: This file has been generated. Do not edit it manually, your changes might get lost.\nimport { decorate, inject, injectable } from \"inversify\";\nimport dataDeserializingRequestBuilder from \"./data/deserializingRequestBuilder\";\nimport dataEshopRequestBuilder from \"./data/eshopRequestBuilder\";\nimport modelsChargeOrder from \"./models/chargeOrder\";\nimport repositoriesChargeOrderRepository from \"./repositories/chargeOrderRepository\";\nimport repositoriesChargeOrderStorageRepositoryChargeOrderStorageRepository from \"./repositories/chargeOrderStorageRepository/chargeOrderStorageRepository\";\nimport repositoriesChargePriceListStorageRepositoryChargePriceListStorageRepository from \"./repositories/chargePriceListStorageRepository/chargePriceListStorageRepository\";\nimport repositoriesChargeRegistrationRepository from \"./repositories/chargeRegistrationRepository\";\nimport repositoriesChargeRepository from \"./repositories/chargeRepository\";\nimport repositoriesChargeTypesStorageRepositoryChargeTypesStorageRepository from \"./repositories/chargeTypesStorageRepository/chargeTypesStorageRepository\";\nimport repositoriesCustomerReviewStorageRepositoryCustomerReviewStorageRepository from \"./repositories/customerReviewStorageRepository/customerReviewStorageRepository\";\nimport repositoriesEnumRepository from \"./repositories/enumRepository\";\nimport repositoriesExemptionRepository from \"./repositories/exemptionRepository\";\nimport repositoriesIsdsRepository from \"./repositories/isdsRepository\";\nimport repositoriesLicensePlateChangeRepository from \"./repositories/licensePlateChangeRepository\";\nimport repositoriesLocalizationRepository from \"./repositories/localizationRepository\";\nimport repositoriesNiaRepository from \"./repositories/niaRepository\";\nimport repositoriesOmissionRepository from \"./repositories/omissionRepository\";\nimport repositoriesOrderOrderRepository from \"./repositories/order/orderRepository\";\nimport repositoriesOutageRepository from \"./repositories/outageRepository\";\nimport repositoriesPaymentRepository from \"./repositories/paymentRepository\";\nimport repositoriesRefundRequestRepository from \"./repositories/refundRequestRepository\";\nimport repositoriesSystemRepository from \"./repositories/systemRepository\";\nimport repositoriesTradingPlaceRepository from \"./repositories/tradingPlaceRepository\";\nimport repositoriesVehicleRepository from \"./repositories/vehicleRepository\";\nimport servicesAppRouter from \"./services/appRouter\";\nimport servicesAuthorizationService from \"./services/authorizationService\";\nimport servicesChargeManagementService from \"./services/chargeManagementService\";\nimport servicesChargeOrderService from \"./services/chargeOrderService\";\nimport servicesChargeRegistrationService from \"./services/chargeRegistrationService\";\nimport servicesChargeTypesService from \"./services/chargeTypesService\";\nimport servicesEnumService from \"./services/enumService\";\nimport servicesEventBus from \"./services/eventBus\";\nimport servicesExemptionService from \"./services/exemptionService\";\nimport servicesGaService from \"./services/gaService\";\nimport servicesInitializationBasicInitializationService from \"./services/initialization/basicInitializationService\";\nimport servicesInitializationInitializationWithOutagesService from \"./services/initialization/initializationWithOutagesService\";\nimport servicesInitializationLazyInitializationService from \"./services/initialization/lazyInitializationService\";\nimport servicesIsdsIsdsService from \"./services/ISDS/isdsService\";\nimport servicesLicensePlateChangeService from \"./services/licensePlateChangeService\";\nimport servicesLocaleProvider from \"./services/localeProvider\";\nimport servicesLocalizationService from \"./services/localizationService\";\nimport servicesNiaNiaService from \"./services/NIA/niaService\";\nimport servicesNotificationService from \"./services/notificationService\";\nimport servicesOmissionService from \"./services/omissionService\";\nimport servicesOutageService from \"./services/outageService\";\nimport servicesPaymentPaymentService from \"./services/payment/paymentService\";\nimport servicesPriceService from \"./services/priceService\";\nimport servicesRefundRequestService from \"./services/refundRequestService\";\nimport servicesSignalRNotificationSignalRNotificationService from \"./services/signalR/notification/signalRNotificationService\";\nimport servicesTimeService from \"./services/timeService\";\nimport servicesTradingPlaceService from \"./services/tradingPlaceService\";\nimport servicesTurnstileServise from \"./services/turnstileServise\";\nimport servicesValidationService from \"./services/validationService\";\nimport servicesVehicleService from \"./services/vehicleService\";\nimport viewModelsAlertViewModel from \"./viewModels/alertViewModel\";\nimport viewModelsChargeManagementChargeManagementEditChargeManagementActiveChargeLicensePlateChangeViewModel from \"./viewModels/chargeManagement/chargeManagementEdit/chargeManagementActiveChargeLicensePlateChangeViewModel\";\nimport viewModelsChargeManagementChargeManagementEditChargeManagementBeforeValidChargeLicensePlateChangeViewModel from \"./viewModels/chargeManagement/chargeManagementEdit/chargeManagementBeforeValidChargeLicensePlateChangeViewModel\";\nimport viewModelsChargeManagementChargeManagementEditChargeManagementContactViewModel from \"./viewModels/chargeManagement/chargeManagementEdit/chargeManagementContactViewModel\";\nimport viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel from \"./viewModels/chargeManagement/chargeManagementEdit/chargeManagementEditViewModel\";\nimport viewModelsChargeManagementChargeManagementEditChargeManagementReceiptViewModel from \"./viewModels/chargeManagement/chargeManagementEdit/chargeManagementReceiptViewModel\";\nimport viewModelsChargeManagementChargeManagementEditChargeManagementValidityViewModel from \"./viewModels/chargeManagement/chargeManagementEdit/chargeManagementValidityViewModel\";\nimport viewModelsChargeManagementChargeManagementEditCodeChangedAlertViewModel from \"./viewModels/chargeManagement/chargeManagementEdit/codeChangedAlertViewModel\";\nimport viewModelsChargeManagementChargeManagementEditCommonEmailInputViewModel from \"./viewModels/chargeManagement/chargeManagementEdit/common/emailInputViewModel\";\nimport viewModelsChargeManagementChargeManagementEditReceiptEmailModalViewModel from \"./viewModels/chargeManagement/chargeManagementEdit/receiptEmailModalViewModel\";\nimport viewModelsChargeManagementChargeManagementViewModel from \"./viewModels/chargeManagement/chargeManagementViewModel\";\nimport viewModelsChargeTypesChargeTypesViewModel from \"./viewModels/chargeTypes/chargeTypesViewModel\";\nimport viewModelsCommonChargeTypeSelectViewModel from \"./viewModels/common/chargeTypeSelectViewModel\";\nimport viewModelsCommonContactViewModel from \"./viewModels/common/contactViewModel\";\nimport viewModelsCommonFuelTypeSelectViewModel from \"./viewModels/common/fuelTypeSelectViewModel\";\nimport viewModelsCommonGdprGdprViewModel from \"./viewModels/common/gdpr/GDPRViewModel\";\nimport viewModelsCommonOrderOutageOrderOutageViewModel from \"./viewModels/common/orderOutage/orderOutageViewModel\";\nimport viewModelsCommonOutagesViewModel from \"./viewModels/common/outagesViewModel\";\nimport viewModelsCommonPaymentBankTransferViewModel from \"./viewModels/common/payment/bankTransferViewModel\";\nimport viewModelsCommonPaymentMultiPaymentRetryViewModel from \"./viewModels/common/payment/multiPaymentRetryViewModel\";\nimport viewModelsCommonPaymentOrderSummaryViewModel from \"./viewModels/common/payment/orderSummaryViewModel\";\nimport viewModelsCommonPaymentPaymentRetryViewModel from \"./viewModels/common/payment/paymentRetryViewModel\";\nimport viewModelsCommonPaymentSelectPaymentMethodViewModel from \"./viewModels/common/payment/selectPaymentMethodViewModel\";\nimport viewModelsCommonPaymentSingleBankTransferViewModel from \"./viewModels/common/payment/singleBankTransferViewModel\";\nimport viewModelsCommonPaymentSinglePaymentRetryViewModel from \"./viewModels/common/payment/singlePaymentRetryViewModel\";\nimport viewModelsCommonPaymentSingleStatusViewModel from \"./viewModels/common/payment/singleStatusViewModel\";\nimport viewModelsCommonPaymentStatusViewModel from \"./viewModels/common/payment/statusViewModel\";\nimport viewModelsCommonPriceListViewModel from \"./viewModels/common/priceListViewModel\";\nimport viewModelsCommonTurnstileViewModel from \"./viewModels/common/turnstileViewModel\";\nimport viewModelsCommonVehicleInfoViewModel from \"./viewModels/common/vehicleInfoViewModel\";\nimport viewModelsCustomerReviewCustomerReviewViewModel from \"./viewModels/customerReview/customerReviewViewModel\";\nimport viewModelsEshopEshopViewModel from \"./viewModels/eshop/eshopViewModel\";\nimport viewModelsEshopOrderComponentsChargeViewModel from \"./viewModels/eshop/order/components/chargeViewModel\";\nimport viewModelsEshopOrderComponentsFuelViewModel from \"./viewModels/eshop/order/components/fuelViewModel\";\nimport viewModelsEshopOrderComponentsGdprInfoViewModel from \"./viewModels/eshop/order/components/gdprInfoViewModel\";\nimport viewModelsEshopOrderComponentsNotificationPreferencesRecapViewModel from \"./viewModels/eshop/order/components/notificationPreferencesRecapViewModel\";\nimport viewModelsEshopOrderComponentsOrderRecapitulationViewModel from \"./viewModels/eshop/order/components/orderRecapitulationViewModel\";\nimport viewModelsEshopOrderComponentsPaymentViewModel from \"./viewModels/eshop/order/components/paymentViewModel\";\nimport viewModelsEshopOrderComponentsTermAgreementViewModel from \"./viewModels/eshop/order/components/termAgreementViewModel\";\nimport viewModelsEshopOrderComponentsValiditySelectViewModel from \"./viewModels/eshop/order/components/validitySelectViewModel\";\nimport viewModelsEshopOrderOrderWizardModel from \"./viewModels/eshop/order/orderWizardModel\";\nimport viewModelsEshopOrderStepsChargeTypeViewModel from \"./viewModels/eshop/order/steps/chargeTypeViewModel\";\nimport viewModelsEshopOrderStepsContactViewModel from \"./viewModels/eshop/order/steps/contactViewModel\";\nimport viewModelsEshopOrderStepsFuelTypeViewModel from \"./viewModels/eshop/order/steps/fuelTypeViewModel\";\nimport viewModelsEshopOrderStepsLicenseViewModel from \"./viewModels/eshop/order/steps/licenseViewModel\";\nimport viewModelsEshopOrderStepsRecapViewModel from \"./viewModels/eshop/order/steps/recapViewModel\";\nimport viewModelsMultiEshopBatchOrderItemViewModel from \"./viewModels/multiEshop/batchOrderItemViewModel\";\nimport viewModelsMultiEshopBatchOrderViewModel from \"./viewModels/multiEshop/batchOrderViewModel\";\nimport viewModelsMultiEshopContactMultiEshopViewModel from \"./viewModels/multiEshop/contactMultiEshopViewModel\";\nimport viewModelsMultiEshopMultiEshopViewModel from \"./viewModels/multiEshop/multiEshopViewModel\";\nimport viewModelsMultiEshopOrderRecapViewModel from \"./viewModels/multiEshop/orderRecapViewModel\";\nimport viewModelsMultiEshopPaymentMultiEshopViewModel from \"./viewModels/multiEshop/paymentMultiEshopViewModel\";\nimport viewModelsMultiEshopSummaryMultiEshopViewModel from \"./viewModels/multiEshop/summaryMultiEshopViewModel\";\nimport viewModelsNoticeComponentsApplicantPersonViewModel from \"./viewModels/notice/components/applicantPersonViewModel\";\nimport viewModelsNoticeComponentsDocumentsUploadedViewModel from \"./viewModels/notice/components/documentsUploadedViewModel\";\nimport viewModelsNoticeComponentsNiaViewModel from \"./viewModels/notice/components/niaViewModel\";\nimport viewModelsNoticeComponentsOperatorLegalPersonViewModel from \"./viewModels/notice/components/operator/legalPersonViewModel\";\nimport viewModelsNoticeComponentsOperatorNaturalPersonViewModel from \"./viewModels/notice/components/operator/naturalPersonViewModel\";\nimport viewModelsNoticeComponentsOperatorOperatorViewModel from \"./viewModels/notice/components/operator/operatorViewModel\";\nimport viewModelsNoticeExemptionExemptionDocumentsUploadedViewModel from \"./viewModels/notice/exemption/exemptionDocumentsUploadedViewModel\";\nimport viewModelsNoticeExemptionExemptionNoticeViewModel from \"./viewModels/notice/exemption/exemptionNoticeViewModel\";\nimport viewModelsNoticeExemptionExemptionViewModel from \"./viewModels/notice/exemption/exemptionViewModel\";\nimport viewModelsNoticeLicensePlateChangeLicensePlateChangeDocumentsUploadedViewModel from \"./viewModels/notice/licensePlateChange/licensePlateChangeDocumentsUploadedViewModel\";\nimport viewModelsNoticeLicensePlateChangeLicensePlateChangeNoticeViewModel from \"./viewModels/notice/licensePlateChange/licensePlateChangeNoticeViewModel\";\nimport viewModelsNoticeLicensePlateChangeLicensePlateChangeViewModel from \"./viewModels/notice/licensePlateChange/licensePlateChangeViewModel\";\nimport viewModelsNoticeOmissionOmissionDocumentsUploadedViewModel from \"./viewModels/notice/omission/omissionDocumentsUploadedViewModel\";\nimport viewModelsNoticeOmissionOmissionNoticeViewModel from \"./viewModels/notice/omission/omissionNoticeViewModel\";\nimport viewModelsNoticeOmissionOmissionViewModel from \"./viewModels/notice/omission/omissionViewModel\";\nimport viewModelsNoticeRefundRequestRefundRequestDocumentsUploadedViewModel from \"./viewModels/notice/refundRequest/refundRequestDocumentsUploadedViewModel\";\nimport viewModelsNoticeRefundRequestRefundRequestNoticeViewModel from \"./viewModels/notice/refundRequest/refundRequestNoticeViewModel\";\nimport viewModelsNoticeRefundRequestRefundRequestViewModel from \"./viewModels/notice/refundRequest/refundRequestViewModel\";\nimport viewModelsOutagesOutagesWidgetViewModel from \"./viewModels/outages/outagesWidgetViewModel\";\nimport viewModelsPaymentValidationPaymentValidationViewModel from \"./viewModels/paymentValidation/paymentValidationViewModel\";\nimport viewModelsPaymentValidationValidationSummaryViewModel from \"./viewModels/paymentValidation/validationSummaryViewModel\";\nimport viewModelsRootViewModel from \"./viewModels/rootViewModel\";\nimport viewModelsTradingPlacesKioskViewModel from \"./viewModels/tradingPlaces/kioskViewModel\";\nimport viewModelsTradingPlacesRoadMapViewModel from \"./viewModels/tradingPlaces/roadMapViewModel\";\nimport viewModelsTradingPlacesTradingPlacesViewModel from \"./viewModels/tradingPlaces/tradingPlacesViewModel\";\ndecorate(injectable(), dataDeserializingRequestBuilder);\ndecorate(injectable(), dataEshopRequestBuilder);\ndecorate(injectable(), repositoriesChargeOrderRepository);\ndecorate(inject(dataEshopRequestBuilder.Factory) as any, repositoriesChargeOrderRepository, 0);\ndecorate(inject(servicesAuthorizationService) as any, repositoriesChargeOrderRepository, 1);\ndecorate(inject(servicesEventBus) as any, repositoriesChargeOrderRepository, 2);\ndecorate(injectable(), repositoriesChargeRegistrationRepository);\ndecorate(inject(dataEshopRequestBuilder.Factory) as any, repositoriesChargeRegistrationRepository, 0);\ndecorate(inject(servicesAuthorizationService) as any, repositoriesChargeRegistrationRepository, 1);\ndecorate(inject(servicesEventBus) as any, repositoriesChargeRegistrationRepository, 2);\ndecorate(injectable(), repositoriesChargeRepository);\ndecorate(inject(dataEshopRequestBuilder.Factory) as any, repositoriesChargeRepository, 0);\ndecorate(inject(servicesAuthorizationService) as any, repositoriesChargeRepository, 1);\ndecorate(inject(servicesEventBus) as any, repositoriesChargeRepository, 2);\ndecorate(injectable(), repositoriesEnumRepository);\ndecorate(inject(dataEshopRequestBuilder.Factory) as any, repositoriesEnumRepository, 0);\ndecorate(inject(servicesAuthorizationService) as any, repositoriesEnumRepository, 1);\ndecorate(inject(servicesEventBus) as any, repositoriesEnumRepository, 2);\ndecorate(injectable(), repositoriesExemptionRepository);\ndecorate(inject(dataEshopRequestBuilder.Factory) as any, repositoriesExemptionRepository, 0);\ndecorate(inject(servicesAuthorizationService) as any, repositoriesExemptionRepository, 1);\ndecorate(inject(servicesEventBus) as any, repositoriesExemptionRepository, 2);\ndecorate(injectable(), repositoriesIsdsRepository);\ndecorate(inject(dataEshopRequestBuilder.Factory) as any, repositoriesIsdsRepository, 0);\ndecorate(inject(servicesAuthorizationService) as any, repositoriesIsdsRepository, 1);\ndecorate(inject(servicesEventBus) as any, repositoriesIsdsRepository, 2);\ndecorate(injectable(), repositoriesLicensePlateChangeRepository);\ndecorate(inject(dataEshopRequestBuilder.Factory) as any, repositoriesLicensePlateChangeRepository, 0);\ndecorate(inject(servicesAuthorizationService) as any, repositoriesLicensePlateChangeRepository, 1);\ndecorate(inject(servicesEventBus) as any, repositoriesLicensePlateChangeRepository, 2);\ndecorate(injectable(), repositoriesLocalizationRepository);\ndecorate(injectable(), repositoriesNiaRepository);\ndecorate(inject(dataEshopRequestBuilder.Factory) as any, repositoriesNiaRepository, 0);\ndecorate(inject(servicesAuthorizationService) as any, repositoriesNiaRepository, 1);\ndecorate(inject(servicesEventBus) as any, repositoriesNiaRepository, 2);\ndecorate(injectable(), repositoriesOmissionRepository);\ndecorate(inject(dataEshopRequestBuilder.Factory) as any, repositoriesOmissionRepository, 0);\ndecorate(inject(servicesAuthorizationService) as any, repositoriesOmissionRepository, 1);\ndecorate(inject(servicesEventBus) as any, repositoriesOmissionRepository, 2);\ndecorate(injectable(), repositoriesOutageRepository);\ndecorate(inject(dataEshopRequestBuilder.Factory) as any, repositoriesOutageRepository, 0);\ndecorate(inject(servicesAuthorizationService) as any, repositoriesOutageRepository, 1);\ndecorate(inject(servicesEventBus) as any, repositoriesOutageRepository, 2);\ndecorate(injectable(), repositoriesPaymentRepository);\ndecorate(inject(dataEshopRequestBuilder.Factory) as any, repositoriesPaymentRepository, 0);\ndecorate(inject(servicesAuthorizationService) as any, repositoriesPaymentRepository, 1);\ndecorate(inject(servicesEventBus) as any, repositoriesPaymentRepository, 2);\ndecorate(injectable(), repositoriesRefundRequestRepository);\ndecorate(inject(dataEshopRequestBuilder.Factory) as any, repositoriesRefundRequestRepository, 0);\ndecorate(inject(servicesAuthorizationService) as any, repositoriesRefundRequestRepository, 1);\ndecorate(inject(servicesEventBus) as any, repositoriesRefundRequestRepository, 2);\ndecorate(injectable(), repositoriesSystemRepository);\ndecorate(inject(dataEshopRequestBuilder.Factory) as any, repositoriesSystemRepository, 0);\ndecorate(inject(servicesAuthorizationService) as any, repositoriesSystemRepository, 1);\ndecorate(inject(servicesEventBus) as any, repositoriesSystemRepository, 2);\ndecorate(injectable(), repositoriesTradingPlaceRepository);\ndecorate(inject(dataEshopRequestBuilder.Factory) as any, repositoriesTradingPlaceRepository, 0);\ndecorate(inject(servicesAuthorizationService) as any, repositoriesTradingPlaceRepository, 1);\ndecorate(inject(servicesEventBus) as any, repositoriesTradingPlaceRepository, 2);\ndecorate(injectable(), repositoriesVehicleRepository);\ndecorate(inject(dataEshopRequestBuilder.Factory) as any, repositoriesVehicleRepository, 0);\ndecorate(inject(servicesAuthorizationService) as any, repositoriesVehicleRepository, 1);\ndecorate(inject(servicesEventBus) as any, repositoriesVehicleRepository, 2);\ndecorate(injectable(), servicesAppRouter);\ndecorate(injectable(), servicesAuthorizationService);\ndecorate(inject(servicesNotificationService) as any, servicesAuthorizationService, 0);\ndecorate(inject(servicesLocalizationService) as any, servicesAuthorizationService, 1);\ndecorate(injectable(), servicesChargeManagementService);\ndecorate(inject(repositoriesChargeRepository) as any, servicesChargeManagementService, 0);\ndecorate(inject(servicesChargeTypesService) as any, servicesChargeManagementService, 1);\ndecorate(inject(servicesTimeService) as any, servicesChargeManagementService, 2);\ndecorate(inject(repositoriesChargeRepository) as any, servicesChargeManagementService, 3);\ndecorate(inject(repositoriesVehicleRepository) as any, servicesChargeManagementService, 4);\ndecorate(inject(servicesEventBus) as any, servicesChargeManagementService, 5);\ndecorate(inject(servicesSignalRNotificationSignalRNotificationService) as any, servicesChargeManagementService, 6);\ndecorate(injectable(), servicesChargeOrderService);\ndecorate(inject(repositoriesChargeOrderStorageRepositoryChargeOrderStorageRepository) as any, servicesChargeOrderService, 0);\ndecorate(inject(servicesChargeTypesService) as any, servicesChargeOrderService, 1);\ndecorate(inject(servicesEnumService) as any, servicesChargeOrderService, 2);\ndecorate(inject(servicesTimeService) as any, servicesChargeOrderService, 3);\ndecorate(inject(servicesLocalizationService) as any, servicesChargeOrderService, 4);\ndecorate(inject(servicesSignalRNotificationSignalRNotificationService) as any, servicesChargeOrderService, 5);\ndecorate(inject(servicesOutageService) as any, servicesChargeOrderService, 6);\ndecorate(inject(servicesPriceService) as any, servicesChargeOrderService, 7);\ndecorate(inject(repositoriesChargeOrderRepository) as any, servicesChargeOrderService, 8);\ndecorate(inject(servicesEventBus) as any, servicesChargeOrderService, 9);\ndecorate(inject(repositoriesVehicleRepository) as any, servicesChargeOrderService, 10);\ndecorate(injectable(), servicesChargeRegistrationService);\ndecorate(inject(repositoriesChargeRegistrationRepository) as any, servicesChargeRegistrationService, 0);\ndecorate(inject(repositoriesVehicleRepository) as any, servicesChargeRegistrationService, 1);\ndecorate(inject(servicesEventBus) as any, servicesChargeRegistrationService, 2);\ndecorate(inject(servicesChargeTypesService) as any, servicesChargeRegistrationService, 3);\ndecorate(injectable(), servicesChargeTypesService);\ndecorate(inject(repositoriesChargeRepository) as any, servicesChargeTypesService, 0);\ndecorate(inject(servicesEnumService) as any, servicesChargeTypesService, 1);\ndecorate(inject(repositoriesChargePriceListStorageRepositoryChargePriceListStorageRepository) as any, servicesChargeTypesService, 2);\ndecorate(inject(repositoriesChargeTypesStorageRepositoryChargeTypesStorageRepository) as any, servicesChargeTypesService, 3);\ndecorate(injectable(), servicesEnumService);\ndecorate(inject(repositoriesEnumRepository) as any, servicesEnumService, 0);\ndecorate(injectable(), servicesEventBus);\ndecorate(injectable(), servicesExemptionService);\ndecorate(inject(repositoriesExemptionRepository) as any, servicesExemptionService, 0);\ndecorate(inject(servicesChargeRegistrationService) as any, servicesExemptionService, 1);\ndecorate(inject(servicesEventBus) as any, servicesExemptionService, 2);\ndecorate(injectable(), servicesGaService);\ndecorate(inject(servicesPriceService) as any, servicesGaService, 0);\ndecorate(inject(servicesChargeTypesService) as any, servicesGaService, 1);\ndecorate(inject(servicesEnumService) as any, servicesGaService, 2);\ndecorate(injectable(), servicesLicensePlateChangeService);\ndecorate(inject(repositoriesLicensePlateChangeRepository) as any, servicesLicensePlateChangeService, 0);\ndecorate(inject(servicesChargeRegistrationService) as any, servicesLicensePlateChangeService, 1);\ndecorate(inject(servicesEventBus) as any, servicesLicensePlateChangeService, 2);\ndecorate(injectable(), servicesLocaleProvider);\ndecorate(inject(servicesEventBus) as any, servicesLocaleProvider, 0);\ndecorate(injectable(), servicesLocalizationService);\ndecorate(inject(servicesLocaleProvider) as any, servicesLocalizationService, 0);\ndecorate(inject(repositoriesLocalizationRepository) as any, servicesLocalizationService, 1);\ndecorate(inject(servicesEventBus) as any, servicesLocalizationService, 2);\ndecorate(injectable(), servicesNotificationService);\ndecorate(inject(servicesEventBus) as any, servicesNotificationService, 0);\ndecorate(inject(servicesLocalizationService) as any, servicesNotificationService, 1);\ndecorate(injectable(), servicesOmissionService);\ndecorate(inject(repositoriesOmissionRepository) as any, servicesOmissionService, 0);\ndecorate(inject(servicesChargeRegistrationService) as any, servicesOmissionService, 1);\ndecorate(inject(servicesEventBus) as any, servicesOmissionService, 2);\ndecorate(injectable(), servicesOutageService);\ndecorate(inject(repositoriesOutageRepository) as any, servicesOutageService, 0);\ndecorate(inject(servicesNotificationService) as any, servicesOutageService, 1);\ndecorate(inject(servicesLocalizationService) as any, servicesOutageService, 2);\ndecorate(injectable(), servicesPriceService);\ndecorate(inject(servicesChargeTypesService) as any, servicesPriceService, 0);\ndecorate(injectable(), servicesRefundRequestService);\ndecorate(inject(repositoriesRefundRequestRepository) as any, servicesRefundRequestService, 0);\ndecorate(inject(servicesEventBus) as any, servicesRefundRequestService, 1);\ndecorate(injectable(), servicesTimeService);\ndecorate(inject(repositoriesSystemRepository) as any, servicesTimeService, 0);\ndecorate(injectable(), servicesTradingPlaceService);\ndecorate(inject(repositoriesTradingPlaceRepository) as any, servicesTradingPlaceService, 0);\ndecorate(injectable(), servicesTurnstileServise);\ndecorate(inject(servicesLocalizationService) as any, servicesTurnstileServise, 0);\ndecorate(injectable(), servicesValidationService);\ndecorate(inject(servicesLocalizationService) as any, servicesValidationService, 0);\ndecorate(injectable(), servicesVehicleService);\ndecorate(inject(repositoriesVehicleRepository) as any, servicesVehicleService, 0);\ndecorate(inject(servicesTimeService) as any, servicesVehicleService, 1);\ndecorate(inject(servicesEventBus) as any, servicesVehicleService, 2);\ndecorate(inject(servicesChargeTypesService) as any, servicesVehicleService, 3);\ndecorate(injectable(), viewModelsAlertViewModel);\ndecorate(inject(\"Notification\") as any, viewModelsAlertViewModel, 0);\ndecorate(injectable(), viewModelsRootViewModel);\ndecorate(injectable(), repositoriesChargeOrderStorageRepositoryChargeOrderStorageRepository);\ndecorate(injectable(), repositoriesChargePriceListStorageRepositoryChargePriceListStorageRepository);\ndecorate(injectable(), repositoriesChargeTypesStorageRepositoryChargeTypesStorageRepository);\ndecorate(injectable(), repositoriesCustomerReviewStorageRepositoryCustomerReviewStorageRepository);\ndecorate(injectable(), repositoriesOrderOrderRepository);\ndecorate(injectable(), servicesInitializationBasicInitializationService);\ndecorate(inject(servicesLocaleProvider) as any, servicesInitializationBasicInitializationService, 0);\ndecorate(inject(servicesLocalizationService) as any, servicesInitializationBasicInitializationService, 1);\ndecorate(inject(servicesValidationService) as any, servicesInitializationBasicInitializationService, 2);\ndecorate(inject(servicesAuthorizationService) as any, servicesInitializationBasicInitializationService, 3);\ndecorate(injectable(), servicesInitializationInitializationWithOutagesService);\ndecorate(inject(servicesLocaleProvider) as any, servicesInitializationInitializationWithOutagesService, 0);\ndecorate(inject(servicesLocalizationService) as any, servicesInitializationInitializationWithOutagesService, 1);\ndecorate(inject(servicesValidationService) as any, servicesInitializationInitializationWithOutagesService, 2);\ndecorate(inject(servicesAuthorizationService) as any, servicesInitializationInitializationWithOutagesService, 3);\ndecorate(inject(servicesOutageService) as any, servicesInitializationInitializationWithOutagesService, 4);\ndecorate(injectable(), servicesInitializationLazyInitializationService);\ndecorate(inject(servicesLocaleProvider) as any, servicesInitializationLazyInitializationService, 0);\ndecorate(inject(servicesLocalizationService) as any, servicesInitializationLazyInitializationService, 1);\ndecorate(inject(servicesValidationService) as any, servicesInitializationLazyInitializationService, 2);\ndecorate(inject(servicesAuthorizationService) as any, servicesInitializationLazyInitializationService, 3);\ndecorate(inject(servicesOutageService) as any, servicesInitializationLazyInitializationService, 4);\ndecorate(injectable(), servicesIsdsIsdsService);\ndecorate(inject(repositoriesIsdsRepository) as any, servicesIsdsIsdsService, 0);\ndecorate(inject(servicesEventBus) as any, servicesIsdsIsdsService, 1);\ndecorate(injectable(), servicesNiaNiaService);\ndecorate(inject(repositoriesNiaRepository) as any, servicesNiaNiaService, 0);\ndecorate(inject(servicesEventBus) as any, servicesNiaNiaService, 1);\ndecorate(injectable(), servicesPaymentPaymentService);\ndecorate(inject(repositoriesPaymentRepository) as any, servicesPaymentPaymentService, 0);\ndecorate(inject(servicesSignalRNotificationSignalRNotificationService) as any, servicesPaymentPaymentService, 1);\ndecorate(inject(servicesLocalizationService) as any, servicesPaymentPaymentService, 2);\ndecorate(inject(servicesEventBus) as any, servicesPaymentPaymentService, 3);\ndecorate(inject(repositoriesChargeOrderRepository) as any, servicesPaymentPaymentService, 4);\ndecorate(injectable(), viewModelsChargeManagementChargeManagementViewModel);\ndecorate(inject(servicesLocalizationService) as any, viewModelsChargeManagementChargeManagementViewModel, 0);\ndecorate(inject(servicesChargeManagementService) as any, viewModelsChargeManagementChargeManagementViewModel, 1);\ndecorate(inject(\"Factory<ChargeManagementEditViewModel>\") as any, viewModelsChargeManagementChargeManagementViewModel, 2);\ndecorate(inject(viewModelsCommonVehicleInfoViewModel.Factory) as any, viewModelsChargeManagementChargeManagementViewModel, 3);\ndecorate(inject(viewModelsCommonTurnstileViewModel.Factory) as any, viewModelsChargeManagementChargeManagementViewModel, 4);\ndecorate(inject(servicesEnumService) as any, viewModelsChargeManagementChargeManagementViewModel, 5);\ndecorate(inject(servicesEventBus) as any, viewModelsChargeManagementChargeManagementViewModel, 6);\ndecorate(inject(servicesAppRouter) as any, viewModelsChargeManagementChargeManagementViewModel, 7);\ndecorate(injectable(), viewModelsChargeTypesChargeTypesViewModel);\ndecorate(inject(servicesChargeTypesService) as any, viewModelsChargeTypesChargeTypesViewModel, 0);\ndecorate(inject(servicesLocalizationService) as any, viewModelsChargeTypesChargeTypesViewModel, 1);\ndecorate(injectable(), viewModelsCommonChargeTypeSelectViewModel);\ndecorate(injectable(), viewModelsCommonContactViewModel);\ndecorate(injectable(), viewModelsCommonFuelTypeSelectViewModel);\ndecorate(injectable(), viewModelsCommonOutagesViewModel);\ndecorate(injectable(), viewModelsCommonPriceListViewModel);\ndecorate(inject(servicesChargeTypesService) as any, viewModelsCommonPriceListViewModel, 0);\ndecorate(inject(servicesLocalizationService) as any, viewModelsCommonPriceListViewModel, 1);\ndecorate(injectable(), viewModelsCommonTurnstileViewModel);\ndecorate(injectable(), viewModelsCommonVehicleInfoViewModel);\ndecorate(injectable(), viewModelsCustomerReviewCustomerReviewViewModel);\ndecorate(inject(servicesEventBus) as any, viewModelsCustomerReviewCustomerReviewViewModel, 0);\ndecorate(inject(repositoriesChargeOrderRepository) as any, viewModelsCustomerReviewCustomerReviewViewModel, 1);\ndecorate(inject(repositoriesCustomerReviewStorageRepositoryCustomerReviewStorageRepository) as any, viewModelsCustomerReviewCustomerReviewViewModel, 2);\ndecorate(inject(servicesLocalizationService) as any, viewModelsCustomerReviewCustomerReviewViewModel, 3);\ndecorate(injectable(), viewModelsEshopEshopViewModel);\ndecorate(inject(servicesLocalizationService) as any, viewModelsEshopEshopViewModel, 0);\ndecorate(inject(viewModelsEshopOrderOrderWizardModel) as any, viewModelsEshopEshopViewModel, 1);\ndecorate(inject(servicesTimeService) as any, viewModelsEshopEshopViewModel, 2);\ndecorate(inject(servicesEventBus) as any, viewModelsEshopEshopViewModel, 3);\ndecorate(inject(servicesOutageService) as any, viewModelsEshopEshopViewModel, 4);\ndecorate(inject(repositoriesChargeOrderRepository) as any, viewModelsEshopEshopViewModel, 5);\ndecorate(inject(viewModelsCommonPaymentBankTransferViewModel.Factory) as any, viewModelsEshopEshopViewModel, 6);\ndecorate(inject(viewModelsCommonPaymentStatusViewModel.Factory) as any, viewModelsEshopEshopViewModel, 7);\ndecorate(inject(viewModelsCommonOrderOutageOrderOutageViewModel.Factory) as any, viewModelsEshopEshopViewModel, 8);\ndecorate(inject(servicesNotificationService) as any, viewModelsEshopEshopViewModel, 9);\ndecorate(inject(viewModelsCommonPaymentPaymentRetryViewModel.Factory) as any, viewModelsEshopEshopViewModel, 10);\ndecorate(inject(servicesPaymentPaymentService) as any, viewModelsEshopEshopViewModel, 11);\ndecorate(injectable(), viewModelsMultiEshopBatchOrderItemViewModel);\ndecorate(injectable(), viewModelsMultiEshopBatchOrderViewModel);\ndecorate(inject(servicesLocalizationService) as any, viewModelsMultiEshopBatchOrderViewModel, 0);\ndecorate(inject(servicesEnumService) as any, viewModelsMultiEshopBatchOrderViewModel, 1);\ndecorate(inject(servicesChargeOrderService) as any, viewModelsMultiEshopBatchOrderViewModel, 2);\ndecorate(inject(servicesOutageService) as any, viewModelsMultiEshopBatchOrderViewModel, 3);\ndecorate(inject(viewModelsMultiEshopBatchOrderItemViewModel.Factory) as any, viewModelsMultiEshopBatchOrderViewModel, 4);\ndecorate(inject(viewModelsMultiEshopSummaryMultiEshopViewModel.Factory) as any, viewModelsMultiEshopBatchOrderViewModel, 5);\ndecorate(inject(servicesAppRouter) as any, viewModelsMultiEshopBatchOrderViewModel, 6);\ndecorate(inject(servicesEventBus) as any, viewModelsMultiEshopBatchOrderViewModel, 7);\ndecorate(injectable(), viewModelsMultiEshopContactMultiEshopViewModel);\ndecorate(injectable(), viewModelsMultiEshopMultiEshopViewModel);\ndecorate(inject(servicesEnumService) as any, viewModelsMultiEshopMultiEshopViewModel, 0);\ndecorate(inject(servicesChargeOrderService) as any, viewModelsMultiEshopMultiEshopViewModel, 1);\ndecorate(inject(servicesTimeService) as any, viewModelsMultiEshopMultiEshopViewModel, 2);\ndecorate(inject(servicesEventBus) as any, viewModelsMultiEshopMultiEshopViewModel, 3);\ndecorate(inject(viewModelsMultiEshopBatchOrderViewModel) as any, viewModelsMultiEshopMultiEshopViewModel, 4);\ndecorate(inject(viewModelsMultiEshopOrderRecapViewModel) as any, viewModelsMultiEshopMultiEshopViewModel, 5);\ndecorate(inject(servicesChargeTypesService) as any, viewModelsMultiEshopMultiEshopViewModel, 6);\ndecorate(inject(viewModelsMultiEshopPaymentMultiEshopViewModel.Factory) as any, viewModelsMultiEshopMultiEshopViewModel, 7);\ndecorate(inject(servicesOutageService) as any, viewModelsMultiEshopMultiEshopViewModel, 8);\ndecorate(inject(viewModelsCommonPaymentBankTransferViewModel.Factory) as any, viewModelsMultiEshopMultiEshopViewModel, 9);\ndecorate(inject(viewModelsCommonPaymentStatusViewModel.Factory) as any, viewModelsMultiEshopMultiEshopViewModel, 10);\ndecorate(inject(viewModelsCommonOrderOutageOrderOutageViewModel.Factory) as any, viewModelsMultiEshopMultiEshopViewModel, 11);\ndecorate(inject(viewModelsMultiEshopContactMultiEshopViewModel.Factory) as any, viewModelsMultiEshopMultiEshopViewModel, 12);\ndecorate(inject(viewModelsCommonOutagesViewModel.Factory) as any, viewModelsMultiEshopMultiEshopViewModel, 13);\ndecorate(inject(viewModelsCommonPaymentPaymentRetryViewModel.Factory) as any, viewModelsMultiEshopMultiEshopViewModel, 14);\ndecorate(inject(servicesPaymentPaymentService) as any, viewModelsMultiEshopMultiEshopViewModel, 15);\ndecorate(inject(repositoriesChargeOrderRepository) as any, viewModelsMultiEshopMultiEshopViewModel, 16);\ndecorate(injectable(), viewModelsMultiEshopOrderRecapViewModel);\ndecorate(inject(servicesLocalizationService) as any, viewModelsMultiEshopOrderRecapViewModel, 0);\ndecorate(inject(servicesChargeRegistrationService) as any, viewModelsMultiEshopOrderRecapViewModel, 1);\ndecorate(inject(servicesTimeService) as any, viewModelsMultiEshopOrderRecapViewModel, 2);\ndecorate(inject(servicesVehicleService) as any, viewModelsMultiEshopOrderRecapViewModel, 3);\ndecorate(inject(servicesChargeOrderService) as any, viewModelsMultiEshopOrderRecapViewModel, 4);\ndecorate(inject(servicesChargeTypesService) as any, viewModelsMultiEshopOrderRecapViewModel, 5);\ndecorate(inject(viewModelsMultiEshopSummaryMultiEshopViewModel.Factory) as any, viewModelsMultiEshopOrderRecapViewModel, 6);\ndecorate(inject(servicesEnumService) as any, viewModelsMultiEshopOrderRecapViewModel, 7);\ndecorate(inject(servicesAppRouter) as any, viewModelsMultiEshopOrderRecapViewModel, 8);\ndecorate(inject(servicesEventBus) as any, viewModelsMultiEshopOrderRecapViewModel, 9);\ndecorate(injectable(), viewModelsMultiEshopPaymentMultiEshopViewModel);\ndecorate(injectable(), viewModelsMultiEshopSummaryMultiEshopViewModel);\ndecorate(injectable(), viewModelsOutagesOutagesWidgetViewModel);\ndecorate(inject(viewModelsCommonOutagesViewModel.Factory) as any, viewModelsOutagesOutagesWidgetViewModel, 0);\ndecorate(injectable(), viewModelsPaymentValidationPaymentValidationViewModel);\ndecorate(inject(servicesLocalizationService) as any, viewModelsPaymentValidationPaymentValidationViewModel, 0);\ndecorate(inject(viewModelsPaymentValidationValidationSummaryViewModel.Factory) as any, viewModelsPaymentValidationPaymentValidationViewModel, 1);\ndecorate(inject(viewModelsCommonVehicleInfoViewModel.Factory) as any, viewModelsPaymentValidationPaymentValidationViewModel, 2);\ndecorate(inject(servicesChargeRegistrationService) as any, viewModelsPaymentValidationPaymentValidationViewModel, 3);\ndecorate(inject(servicesChargeTypesService) as any, viewModelsPaymentValidationPaymentValidationViewModel, 4);\ndecorate(inject(servicesEnumService) as any, viewModelsPaymentValidationPaymentValidationViewModel, 5);\ndecorate(inject(servicesAppRouter) as any, viewModelsPaymentValidationPaymentValidationViewModel, 6);\ndecorate(injectable(), viewModelsPaymentValidationValidationSummaryViewModel);\ndecorate(injectable(), viewModelsTradingPlacesKioskViewModel);\ndecorate(inject(servicesLocalizationService) as any, viewModelsTradingPlacesKioskViewModel, 0);\ndecorate(inject(servicesTradingPlaceService) as any, viewModelsTradingPlacesKioskViewModel, 1);\ndecorate(injectable(), viewModelsTradingPlacesRoadMapViewModel);\ndecorate(inject(servicesLocalizationService) as any, viewModelsTradingPlacesRoadMapViewModel, 0);\ndecorate(inject(servicesTradingPlaceService) as any, viewModelsTradingPlacesRoadMapViewModel, 1);\ndecorate(injectable(), viewModelsTradingPlacesTradingPlacesViewModel);\ndecorate(inject(servicesLocalizationService) as any, viewModelsTradingPlacesTradingPlacesViewModel, 0);\ndecorate(inject(servicesTradingPlaceService) as any, viewModelsTradingPlacesTradingPlacesViewModel, 1);\ndecorate(injectable(), servicesSignalRNotificationSignalRNotificationService);\ndecorate(inject(servicesAuthorizationService) as any, servicesSignalRNotificationSignalRNotificationService, 0);\ndecorate(inject(servicesEventBus) as any, servicesSignalRNotificationSignalRNotificationService, 1);\ndecorate(injectable(), viewModelsChargeManagementChargeManagementEditChargeManagementActiveChargeLicensePlateChangeViewModel);\ndecorate(inject(servicesLocalizationService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementActiveChargeLicensePlateChangeViewModel, 0);\ndecorate(inject(servicesChargeManagementService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementActiveChargeLicensePlateChangeViewModel, 1);\ndecorate(inject(servicesTimeService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementActiveChargeLicensePlateChangeViewModel, 2);\ndecorate(inject(servicesChargeTypesService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementActiveChargeLicensePlateChangeViewModel, 3);\ndecorate(inject(servicesEventBus) as any, viewModelsChargeManagementChargeManagementEditChargeManagementActiveChargeLicensePlateChangeViewModel, 4);\ndecorate(inject(servicesEnumService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementActiveChargeLicensePlateChangeViewModel, 5);\ndecorate(inject(servicesSignalRNotificationSignalRNotificationService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementActiveChargeLicensePlateChangeViewModel, 6);\ndecorate(inject(viewModelsChargeManagementChargeManagementEditCommonEmailInputViewModel.Factory) as any, viewModelsChargeManagementChargeManagementEditChargeManagementActiveChargeLicensePlateChangeViewModel, 7);\ndecorate(inject(viewModelsCommonVehicleInfoViewModel.Factory) as any, viewModelsChargeManagementChargeManagementEditChargeManagementActiveChargeLicensePlateChangeViewModel, 8);\ndecorate(inject(servicesChargeRegistrationService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementActiveChargeLicensePlateChangeViewModel, 9);\ndecorate(inject(servicesAppRouter) as any, viewModelsChargeManagementChargeManagementEditChargeManagementActiveChargeLicensePlateChangeViewModel, 10);\ndecorate(inject(viewModelsCommonTurnstileViewModel.Factory) as any, viewModelsChargeManagementChargeManagementEditChargeManagementActiveChargeLicensePlateChangeViewModel, 11);\ndecorate(injectable(), viewModelsChargeManagementChargeManagementEditChargeManagementBeforeValidChargeLicensePlateChangeViewModel);\ndecorate(inject(servicesLocalizationService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementBeforeValidChargeLicensePlateChangeViewModel, 0);\ndecorate(inject(servicesChargeManagementService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementBeforeValidChargeLicensePlateChangeViewModel, 1);\ndecorate(inject(servicesTimeService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementBeforeValidChargeLicensePlateChangeViewModel, 2);\ndecorate(inject(servicesChargeTypesService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementBeforeValidChargeLicensePlateChangeViewModel, 3);\ndecorate(inject(servicesEventBus) as any, viewModelsChargeManagementChargeManagementEditChargeManagementBeforeValidChargeLicensePlateChangeViewModel, 4);\ndecorate(inject(servicesEnumService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementBeforeValidChargeLicensePlateChangeViewModel, 5);\ndecorate(inject(servicesSignalRNotificationSignalRNotificationService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementBeforeValidChargeLicensePlateChangeViewModel, 6);\ndecorate(inject(viewModelsChargeManagementChargeManagementEditCommonEmailInputViewModel.Factory) as any, viewModelsChargeManagementChargeManagementEditChargeManagementBeforeValidChargeLicensePlateChangeViewModel, 7);\ndecorate(inject(viewModelsCommonVehicleInfoViewModel.Factory) as any, viewModelsChargeManagementChargeManagementEditChargeManagementBeforeValidChargeLicensePlateChangeViewModel, 8);\ndecorate(inject(servicesChargeRegistrationService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementBeforeValidChargeLicensePlateChangeViewModel, 9);\ndecorate(inject(servicesAppRouter) as any, viewModelsChargeManagementChargeManagementEditChargeManagementBeforeValidChargeLicensePlateChangeViewModel, 10);\ndecorate(inject(viewModelsCommonTurnstileViewModel.Factory) as any, viewModelsChargeManagementChargeManagementEditChargeManagementBeforeValidChargeLicensePlateChangeViewModel, 11);\ndecorate(injectable(), viewModelsChargeManagementChargeManagementEditChargeManagementContactViewModel);\ndecorate(inject(servicesLocalizationService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementContactViewModel, 0);\ndecorate(inject(servicesChargeManagementService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementContactViewModel, 1);\ndecorate(inject(servicesChargeOrderService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementContactViewModel, 2);\ndecorate(inject(servicesEventBus) as any, viewModelsChargeManagementChargeManagementEditChargeManagementContactViewModel, 3);\ndecorate(inject(servicesEnumService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementContactViewModel, 4);\ndecorate(inject(servicesSignalRNotificationSignalRNotificationService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementContactViewModel, 5);\ndecorate(inject(servicesChargeTypesService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementContactViewModel, 6);\ndecorate(inject(servicesAppRouter) as any, viewModelsChargeManagementChargeManagementEditChargeManagementContactViewModel, 7);\ndecorate(inject(viewModelsCommonTurnstileViewModel.Factory) as any, viewModelsChargeManagementChargeManagementEditChargeManagementContactViewModel, 8);\ndecorate(injectable(), viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel);\ndecorate(inject(servicesLocalizationService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel, 0);\ndecorate(inject(servicesEnumService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel, 1);\ndecorate(inject(servicesTimeService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel, 2);\ndecorate(inject(servicesChargeTypesService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel, 3);\ndecorate(inject(servicesEventBus) as any, viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel, 4);\ndecorate(inject(servicesChargeManagementService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel, 5);\ndecorate(inject(servicesChargeRegistrationService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel, 6);\ndecorate(inject(viewModelsChargeManagementChargeManagementEditChargeManagementBeforeValidChargeLicensePlateChangeViewModel) as any, viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel, 7);\ndecorate(inject(viewModelsChargeManagementChargeManagementEditChargeManagementActiveChargeLicensePlateChangeViewModel) as any, viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel, 8);\ndecorate(inject(viewModelsChargeManagementChargeManagementEditChargeManagementValidityViewModel) as any, viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel, 9);\ndecorate(inject(viewModelsChargeManagementChargeManagementEditChargeManagementContactViewModel) as any, viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel, 10);\ndecorate(inject(viewModelsChargeManagementChargeManagementEditChargeManagementReceiptViewModel) as any, viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel, 11);\ndecorate(inject(viewModelsCommonTurnstileViewModel.Factory) as any, viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel, 12);\ndecorate(inject(viewModelsChargeManagementChargeManagementEditCodeChangedAlertViewModel.Factory) as any, viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel, 13);\ndecorate(inject(viewModelsChargeManagementChargeManagementEditCodeChangedAlertViewModel.Factory) as any, viewModelsChargeManagementChargeManagementEditChargeManagementEditViewModel, 14);\ndecorate(injectable(), viewModelsChargeManagementChargeManagementEditChargeManagementReceiptViewModel);\ndecorate(inject(servicesLocalizationService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementReceiptViewModel, 0);\ndecorate(inject(servicesChargeManagementService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementReceiptViewModel, 1);\ndecorate(inject(servicesChargeTypesService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementReceiptViewModel, 2);\ndecorate(inject(servicesEventBus) as any, viewModelsChargeManagementChargeManagementEditChargeManagementReceiptViewModel, 3);\ndecorate(inject(servicesEnumService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementReceiptViewModel, 4);\ndecorate(inject(servicesSignalRNotificationSignalRNotificationService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementReceiptViewModel, 5);\ndecorate(inject(viewModelsChargeManagementChargeManagementEditReceiptEmailModalViewModel.Factory) as any, viewModelsChargeManagementChargeManagementEditChargeManagementReceiptViewModel, 6);\ndecorate(inject(viewModelsCommonTurnstileViewModel.Factory) as any, viewModelsChargeManagementChargeManagementEditChargeManagementReceiptViewModel, 7);\ndecorate(injectable(), viewModelsChargeManagementChargeManagementEditChargeManagementValidityViewModel);\ndecorate(inject(servicesLocalizationService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementValidityViewModel, 0);\ndecorate(inject(servicesChargeManagementService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementValidityViewModel, 1);\ndecorate(inject(servicesTimeService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementValidityViewModel, 2);\ndecorate(inject(servicesChargeRegistrationService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementValidityViewModel, 3);\ndecorate(inject(servicesChargeTypesService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementValidityViewModel, 4);\ndecorate(inject(servicesEnumService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementValidityViewModel, 5);\ndecorate(inject(servicesEventBus) as any, viewModelsChargeManagementChargeManagementEditChargeManagementValidityViewModel, 6);\ndecorate(inject(servicesSignalRNotificationSignalRNotificationService) as any, viewModelsChargeManagementChargeManagementEditChargeManagementValidityViewModel, 7);\ndecorate(inject(viewModelsChargeManagementChargeManagementEditCommonEmailInputViewModel.Factory) as any, viewModelsChargeManagementChargeManagementEditChargeManagementValidityViewModel, 8);\ndecorate(inject(servicesAppRouter) as any, viewModelsChargeManagementChargeManagementEditChargeManagementValidityViewModel, 9);\ndecorate(inject(viewModelsCommonTurnstileViewModel.Factory) as any, viewModelsChargeManagementChargeManagementEditChargeManagementValidityViewModel, 10);\ndecorate(injectable(), viewModelsChargeManagementChargeManagementEditCodeChangedAlertViewModel);\ndecorate(injectable(), viewModelsChargeManagementChargeManagementEditReceiptEmailModalViewModel);\ndecorate(injectable(), viewModelsCommonGdprGdprViewModel);\ndecorate(injectable(), viewModelsCommonOrderOutageOrderOutageViewModel);\ndecorate(injectable(), viewModelsCommonPaymentBankTransferViewModel);\ndecorate(injectable(), viewModelsCommonPaymentMultiPaymentRetryViewModel);\ndecorate(inject(modelsChargeOrder) as any, viewModelsCommonPaymentMultiPaymentRetryViewModel, 0);\ndecorate(inject(servicesLocalizationService) as any, viewModelsCommonPaymentMultiPaymentRetryViewModel, 1);\ndecorate(inject(servicesTimeService) as any, viewModelsCommonPaymentMultiPaymentRetryViewModel, 2);\ndecorate(inject(repositoriesChargeOrderRepository) as any, viewModelsCommonPaymentMultiPaymentRetryViewModel, 3);\ndecorate(inject(servicesChargeTypesService) as any, viewModelsCommonPaymentMultiPaymentRetryViewModel, 4);\ndecorate(inject(servicesEnumService) as any, viewModelsCommonPaymentMultiPaymentRetryViewModel, 5);\ndecorate(inject(servicesPriceService) as any, viewModelsCommonPaymentMultiPaymentRetryViewModel, 6);\ndecorate(inject(servicesPaymentPaymentService) as any, viewModelsCommonPaymentMultiPaymentRetryViewModel, 7);\ndecorate(inject(servicesEventBus) as any, viewModelsCommonPaymentMultiPaymentRetryViewModel, 8);\ndecorate(injectable(), viewModelsCommonPaymentOrderSummaryViewModel);\ndecorate(injectable(), viewModelsCommonPaymentPaymentRetryViewModel);\ndecorate(injectable(), viewModelsCommonPaymentSelectPaymentMethodViewModel);\ndecorate(injectable(), viewModelsCommonPaymentSingleBankTransferViewModel);\ndecorate(inject(modelsChargeOrder) as any, viewModelsCommonPaymentSingleBankTransferViewModel, 0);\ndecorate(inject(servicesLocalizationService) as any, viewModelsCommonPaymentSingleBankTransferViewModel, 1);\ndecorate(inject(servicesNotificationService) as any, viewModelsCommonPaymentSingleBankTransferViewModel, 2);\ndecorate(inject(servicesGaService) as any, viewModelsCommonPaymentSingleBankTransferViewModel, 3);\ndecorate(inject(viewModelsCommonPaymentOrderSummaryViewModel.Factory) as any, viewModelsCommonPaymentSingleBankTransferViewModel, 4);\ndecorate(inject(viewModelsMultiEshopSummaryMultiEshopViewModel.Factory) as any, viewModelsCommonPaymentSingleBankTransferViewModel, 5);\ndecorate(inject(viewModelsCustomerReviewCustomerReviewViewModel) as any, viewModelsCommonPaymentSingleBankTransferViewModel, 6);\ndecorate(inject(servicesEventBus) as any, viewModelsCommonPaymentSingleBankTransferViewModel, 7);\ndecorate(injectable(), viewModelsCommonPaymentSinglePaymentRetryViewModel);\ndecorate(inject(modelsChargeOrder) as any, viewModelsCommonPaymentSinglePaymentRetryViewModel, 0);\ndecorate(inject(servicesLocalizationService) as any, viewModelsCommonPaymentSinglePaymentRetryViewModel, 1);\ndecorate(inject(servicesTimeService) as any, viewModelsCommonPaymentSinglePaymentRetryViewModel, 2);\ndecorate(inject(repositoriesChargeOrderRepository) as any, viewModelsCommonPaymentSinglePaymentRetryViewModel, 3);\ndecorate(inject(servicesChargeTypesService) as any, viewModelsCommonPaymentSinglePaymentRetryViewModel, 4);\ndecorate(inject(servicesEnumService) as any, viewModelsCommonPaymentSinglePaymentRetryViewModel, 5);\ndecorate(inject(servicesPriceService) as any, viewModelsCommonPaymentSinglePaymentRetryViewModel, 6);\ndecorate(inject(servicesPaymentPaymentService) as any, viewModelsCommonPaymentSinglePaymentRetryViewModel, 7);\ndecorate(inject(servicesEventBus) as any, viewModelsCommonPaymentSinglePaymentRetryViewModel, 8);\ndecorate(injectable(), viewModelsCommonPaymentSingleStatusViewModel);\ndecorate(inject(modelsChargeOrder) as any, viewModelsCommonPaymentSingleStatusViewModel, 0);\ndecorate(inject(servicesLocalizationService) as any, viewModelsCommonPaymentSingleStatusViewModel, 1);\ndecorate(inject(servicesTimeService) as any, viewModelsCommonPaymentSingleStatusViewModel, 2);\ndecorate(inject(viewModelsCustomerReviewCustomerReviewViewModel) as any, viewModelsCommonPaymentSingleStatusViewModel, 3);\ndecorate(inject(viewModelsCommonPaymentOrderSummaryViewModel.Factory) as any, viewModelsCommonPaymentSingleStatusViewModel, 4);\ndecorate(inject(servicesChargeOrderService) as any, viewModelsCommonPaymentSingleStatusViewModel, 5);\ndecorate(inject(servicesGaService) as any, viewModelsCommonPaymentSingleStatusViewModel, 6);\ndecorate(inject(servicesEventBus) as any, viewModelsCommonPaymentSingleStatusViewModel, 7);\ndecorate(inject(servicesNotificationService) as any, viewModelsCommonPaymentSingleStatusViewModel, 8);\ndecorate(injectable(), viewModelsCommonPaymentStatusViewModel);\ndecorate(injectable(), viewModelsEshopOrderOrderWizardModel);\ndecorate(inject(servicesLocalizationService) as any, viewModelsEshopOrderOrderWizardModel, 0);\ndecorate(inject(servicesChargeOrderService) as any, viewModelsEshopOrderOrderWizardModel, 1);\ndecorate(inject(servicesChargeTypesService) as any, viewModelsEshopOrderOrderWizardModel, 2);\ndecorate(inject(servicesEnumService) as any, viewModelsEshopOrderOrderWizardModel, 3);\ndecorate(inject(servicesPaymentPaymentService) as any, viewModelsEshopOrderOrderWizardModel, 4);\ndecorate(inject(viewModelsEshopOrderStepsLicenseViewModel.Factory) as any, viewModelsEshopOrderOrderWizardModel, 5);\ndecorate(inject(viewModelsEshopOrderStepsChargeTypeViewModel.Factory) as any, viewModelsEshopOrderOrderWizardModel, 6);\ndecorate(inject(viewModelsEshopOrderStepsContactViewModel.Factory) as any, viewModelsEshopOrderOrderWizardModel, 7);\ndecorate(inject(viewModelsEshopOrderStepsFuelTypeViewModel.Factory) as any, viewModelsEshopOrderOrderWizardModel, 8);\ndecorate(inject(viewModelsEshopOrderStepsRecapViewModel.Factory) as any, viewModelsEshopOrderOrderWizardModel, 9);\ndecorate(inject(viewModelsCommonOutagesViewModel.Factory) as any, viewModelsEshopOrderOrderWizardModel, 10);\ndecorate(inject(servicesEventBus) as any, viewModelsEshopOrderOrderWizardModel, 11);\ndecorate(inject(servicesAppRouter) as any, viewModelsEshopOrderOrderWizardModel, 12);\ndecorate(inject(repositoriesChargeOrderRepository) as any, viewModelsEshopOrderOrderWizardModel, 13);\ndecorate(injectable(), viewModelsNoticeComponentsApplicantPersonViewModel);\ndecorate(injectable(), viewModelsNoticeComponentsDocumentsUploadedViewModel);\ndecorate(injectable(), viewModelsNoticeComponentsNiaViewModel);\ndecorate(inject(servicesLocalizationService) as any, viewModelsNoticeComponentsNiaViewModel, 0);\ndecorate(inject(servicesNiaNiaService) as any, viewModelsNoticeComponentsNiaViewModel, 1);\ndecorate(inject(servicesAppRouter) as any, viewModelsNoticeComponentsNiaViewModel, 2);\ndecorate(injectable(), viewModelsNoticeExemptionExemptionDocumentsUploadedViewModel);\ndecorate(inject(\"PersistedBase64\") as any, viewModelsNoticeExemptionExemptionDocumentsUploadedViewModel, 0);\ndecorate(inject(servicesLocalizationService) as any, viewModelsNoticeExemptionExemptionDocumentsUploadedViewModel, 2);\ndecorate(injectable(), viewModelsNoticeExemptionExemptionNoticeViewModel);\ndecorate(inject(viewModelsNoticeComponentsDocumentsUploadedViewModel.Factory) as any, viewModelsNoticeExemptionExemptionNoticeViewModel, 0);\ndecorate(inject(servicesLocalizationService) as any, viewModelsNoticeExemptionExemptionNoticeViewModel, 1);\ndecorate(inject(servicesEnumService) as any, viewModelsNoticeExemptionExemptionNoticeViewModel, 2);\ndecorate(inject(viewModelsNoticeExemptionExemptionViewModel) as any, viewModelsNoticeExemptionExemptionNoticeViewModel, 3);\ndecorate(injectable(), viewModelsNoticeExemptionExemptionViewModel);\ndecorate(inject(servicesLocalizationService) as any, viewModelsNoticeExemptionExemptionViewModel, 0);\ndecorate(inject(servicesEnumService) as any, viewModelsNoticeExemptionExemptionViewModel, 1);\ndecorate(inject(servicesNiaNiaService) as any, viewModelsNoticeExemptionExemptionViewModel, 2);\ndecorate(inject(servicesIsdsIsdsService) as any, viewModelsNoticeExemptionExemptionViewModel, 3);\ndecorate(inject(servicesOutageService) as any, viewModelsNoticeExemptionExemptionViewModel, 4);\ndecorate(inject(servicesEventBus) as any, viewModelsNoticeExemptionExemptionViewModel, 5);\ndecorate(inject(servicesExemptionService) as any, viewModelsNoticeExemptionExemptionViewModel, 6);\ndecorate(inject(servicesAppRouter) as any, viewModelsNoticeExemptionExemptionViewModel, 7);\ndecorate(inject(viewModelsCommonOutagesViewModel.Factory) as any, viewModelsNoticeExemptionExemptionViewModel, 8);\ndecorate(inject(servicesChargeRegistrationService) as any, viewModelsNoticeExemptionExemptionViewModel, 9);\ndecorate(inject(viewModelsCommonVehicleInfoViewModel.Factory) as any, viewModelsNoticeExemptionExemptionViewModel, 10);\ndecorate(inject(viewModelsNoticeComponentsApplicantPersonViewModel.Factory) as any, viewModelsNoticeExemptionExemptionViewModel, 11);\ndecorate(inject(viewModelsNoticeComponentsOperatorOperatorViewModel.Factory) as any, viewModelsNoticeExemptionExemptionViewModel, 12);\ndecorate(injectable(), viewModelsNoticeLicensePlateChangeLicensePlateChangeDocumentsUploadedViewModel);\ndecorate(inject(\"PersistedBase64\") as any, viewModelsNoticeLicensePlateChangeLicensePlateChangeDocumentsUploadedViewModel, 0);\ndecorate(inject(servicesLocalizationService) as any, viewModelsNoticeLicensePlateChangeLicensePlateChangeDocumentsUploadedViewModel, 2);\ndecorate(injectable(), viewModelsNoticeLicensePlateChangeLicensePlateChangeNoticeViewModel);\ndecorate(inject(viewModelsNoticeComponentsDocumentsUploadedViewModel.Factory) as any, viewModelsNoticeLicensePlateChangeLicensePlateChangeNoticeViewModel, 0);\ndecorate(inject(servicesLocalizationService) as any, viewModelsNoticeLicensePlateChangeLicensePlateChangeNoticeViewModel, 1);\ndecorate(inject(viewModelsNoticeLicensePlateChangeLicensePlateChangeViewModel) as any, viewModelsNoticeLicensePlateChangeLicensePlateChangeNoticeViewModel, 2);\ndecorate(injectable(), viewModelsNoticeLicensePlateChangeLicensePlateChangeViewModel);\ndecorate(inject(servicesLocalizationService) as any, viewModelsNoticeLicensePlateChangeLicensePlateChangeViewModel, 0);\ndecorate(inject(servicesEnumService) as any, viewModelsNoticeLicensePlateChangeLicensePlateChangeViewModel, 1);\ndecorate(inject(servicesNiaNiaService) as any, viewModelsNoticeLicensePlateChangeLicensePlateChangeViewModel, 2);\ndecorate(inject(servicesIsdsIsdsService) as any, viewModelsNoticeLicensePlateChangeLicensePlateChangeViewModel, 3);\ndecorate(inject(servicesOutageService) as any, viewModelsNoticeLicensePlateChangeLicensePlateChangeViewModel, 4);\ndecorate(inject(servicesEventBus) as any, viewModelsNoticeLicensePlateChangeLicensePlateChangeViewModel, 5);\ndecorate(inject(servicesLicensePlateChangeService) as any, viewModelsNoticeLicensePlateChangeLicensePlateChangeViewModel, 6);\ndecorate(inject(servicesAppRouter) as any, viewModelsNoticeLicensePlateChangeLicensePlateChangeViewModel, 7);\ndecorate(inject(viewModelsCommonOutagesViewModel.Factory) as any, viewModelsNoticeLicensePlateChangeLicensePlateChangeViewModel, 8);\ndecorate(inject(servicesChargeRegistrationService) as any, viewModelsNoticeLicensePlateChangeLicensePlateChangeViewModel, 9);\ndecorate(inject(viewModelsCommonVehicleInfoViewModel.Factory) as any, viewModelsNoticeLicensePlateChangeLicensePlateChangeViewModel, 10);\ndecorate(inject(viewModelsNoticeComponentsApplicantPersonViewModel.Factory) as any, viewModelsNoticeLicensePlateChangeLicensePlateChangeViewModel, 11);\ndecorate(injectable(), viewModelsNoticeOmissionOmissionDocumentsUploadedViewModel);\ndecorate(inject(\"PersistedBase64\") as any, viewModelsNoticeOmissionOmissionDocumentsUploadedViewModel, 0);\ndecorate(inject(servicesLocalizationService) as any, viewModelsNoticeOmissionOmissionDocumentsUploadedViewModel, 2);\ndecorate(injectable(), viewModelsNoticeOmissionOmissionNoticeViewModel);\ndecorate(inject(viewModelsNoticeComponentsDocumentsUploadedViewModel.Factory) as any, viewModelsNoticeOmissionOmissionNoticeViewModel, 0);\ndecorate(inject(servicesLocalizationService) as any, viewModelsNoticeOmissionOmissionNoticeViewModel, 1);\ndecorate(inject(viewModelsNoticeOmissionOmissionViewModel) as any, viewModelsNoticeOmissionOmissionNoticeViewModel, 2);\ndecorate(injectable(), viewModelsNoticeOmissionOmissionViewModel);\ndecorate(inject(servicesLocalizationService) as any, viewModelsNoticeOmissionOmissionViewModel, 0);\ndecorate(inject(servicesEnumService) as any, viewModelsNoticeOmissionOmissionViewModel, 1);\ndecorate(inject(servicesNiaNiaService) as any, viewModelsNoticeOmissionOmissionViewModel, 2);\ndecorate(inject(servicesIsdsIsdsService) as any, viewModelsNoticeOmissionOmissionViewModel, 3);\ndecorate(inject(servicesOutageService) as any, viewModelsNoticeOmissionOmissionViewModel, 4);\ndecorate(inject(servicesEventBus) as any, viewModelsNoticeOmissionOmissionViewModel, 5);\ndecorate(inject(servicesOmissionService) as any, viewModelsNoticeOmissionOmissionViewModel, 6);\ndecorate(inject(servicesAppRouter) as any, viewModelsNoticeOmissionOmissionViewModel, 7);\ndecorate(inject(viewModelsCommonOutagesViewModel.Factory) as any, viewModelsNoticeOmissionOmissionViewModel, 8);\ndecorate(inject(servicesChargeRegistrationService) as any, viewModelsNoticeOmissionOmissionViewModel, 9);\ndecorate(inject(viewModelsCommonVehicleInfoViewModel.Factory) as any, viewModelsNoticeOmissionOmissionViewModel, 10);\ndecorate(inject(viewModelsNoticeComponentsApplicantPersonViewModel.Factory) as any, viewModelsNoticeOmissionOmissionViewModel, 11);\ndecorate(inject(viewModelsNoticeComponentsOperatorOperatorViewModel.Factory) as any, viewModelsNoticeOmissionOmissionViewModel, 12);\ndecorate(injectable(), viewModelsNoticeRefundRequestRefundRequestDocumentsUploadedViewModel);\ndecorate(inject(\"PersistedBase64\") as any, viewModelsNoticeRefundRequestRefundRequestDocumentsUploadedViewModel, 0);\ndecorate(inject(servicesLocalizationService) as any, viewModelsNoticeRefundRequestRefundRequestDocumentsUploadedViewModel, 2);\ndecorate(injectable(), viewModelsNoticeRefundRequestRefundRequestNoticeViewModel);\ndecorate(inject(viewModelsNoticeComponentsDocumentsUploadedViewModel.Factory) as any, viewModelsNoticeRefundRequestRefundRequestNoticeViewModel, 0);\ndecorate(inject(servicesLocalizationService) as any, viewModelsNoticeRefundRequestRefundRequestNoticeViewModel, 1);\ndecorate(inject(viewModelsNoticeRefundRequestRefundRequestViewModel) as any, viewModelsNoticeRefundRequestRefundRequestNoticeViewModel, 2);\ndecorate(injectable(), viewModelsNoticeRefundRequestRefundRequestViewModel);\ndecorate(inject(servicesLocalizationService) as any, viewModelsNoticeRefundRequestRefundRequestViewModel, 0);\ndecorate(inject(servicesEnumService) as any, viewModelsNoticeRefundRequestRefundRequestViewModel, 1);\ndecorate(inject(servicesChargeTypesService) as any, viewModelsNoticeRefundRequestRefundRequestViewModel, 2);\ndecorate(inject(servicesNiaNiaService) as any, viewModelsNoticeRefundRequestRefundRequestViewModel, 3);\ndecorate(inject(servicesIsdsIsdsService) as any, viewModelsNoticeRefundRequestRefundRequestViewModel, 4);\ndecorate(inject(servicesOutageService) as any, viewModelsNoticeRefundRequestRefundRequestViewModel, 5);\ndecorate(inject(servicesEventBus) as any, viewModelsNoticeRefundRequestRefundRequestViewModel, 6);\ndecorate(inject(servicesRefundRequestService) as any, viewModelsNoticeRefundRequestRefundRequestViewModel, 7);\ndecorate(inject(servicesAppRouter) as any, viewModelsNoticeRefundRequestRefundRequestViewModel, 8);\ndecorate(inject(viewModelsCommonOutagesViewModel.Factory) as any, viewModelsNoticeRefundRequestRefundRequestViewModel, 9);\ndecorate(inject(servicesChargeRegistrationService) as any, viewModelsNoticeRefundRequestRefundRequestViewModel, 10);\ndecorate(inject(viewModelsCommonVehicleInfoViewModel.Factory) as any, viewModelsNoticeRefundRequestRefundRequestViewModel, 11);\ndecorate(inject(viewModelsNoticeComponentsApplicantPersonViewModel.Factory) as any, viewModelsNoticeRefundRequestRefundRequestViewModel, 12);\ndecorate(injectable(), viewModelsChargeManagementChargeManagementEditCommonEmailInputViewModel);\ndecorate(injectable(), viewModelsEshopOrderComponentsChargeViewModel);\ndecorate(injectable(), viewModelsEshopOrderComponentsFuelViewModel);\ndecorate(injectable(), viewModelsEshopOrderComponentsGdprInfoViewModel);\ndecorate(injectable(), viewModelsEshopOrderComponentsNotificationPreferencesRecapViewModel);\ndecorate(injectable(), viewModelsEshopOrderComponentsOrderRecapitulationViewModel);\ndecorate(injectable(), viewModelsEshopOrderComponentsPaymentViewModel);\ndecorate(injectable(), viewModelsEshopOrderComponentsTermAgreementViewModel);\ndecorate(injectable(), viewModelsEshopOrderComponentsValiditySelectViewModel);\ndecorate(injectable(), viewModelsEshopOrderStepsChargeTypeViewModel);\ndecorate(injectable(), viewModelsEshopOrderStepsContactViewModel);\ndecorate(injectable(), viewModelsEshopOrderStepsFuelTypeViewModel);\ndecorate(injectable(), viewModelsEshopOrderStepsLicenseViewModel);\ndecorate(injectable(), viewModelsEshopOrderStepsRecapViewModel);\ndecorate(injectable(), viewModelsNoticeComponentsOperatorLegalPersonViewModel);\ndecorate(injectable(), viewModelsNoticeComponentsOperatorNaturalPersonViewModel);\ndecorate(injectable(), viewModelsNoticeComponentsOperatorOperatorViewModel);\n","import React from \"react\";\nimport { IInitializationService } from \"../services/initialization/types\";\nimport BoxWidgetView from \"./boxWidgetView\";\nimport { Container, interfaces } from \"inversify\";\nimport createContainer from \"../di.config\";\n\nimport \"reflect-metadata\";\nimport \".\";\nimport RootViewModel from \"../viewModels/rootViewModel\";\n\nexport type ContainerWidgetInitializer = (container: Container) => Promise<RootViewModel>;\n\nasync function initContainer(\n  init: ContainerWidgetInitializer,\n  initService: interfaces.ServiceIdentifier<IInitializationService>\n) {\n  const container = createContainer();\n\n  const initializationService = container.get<IInitializationService>(initService);\n  if (!initializationService.isInitialized) {\n    const defaultLanguage = (document.documentElement.lang || \"cs\").split(\"-\")[0];\n    await initializationService.initialize(defaultLanguage === \"en\" ? \"en-GB\" : defaultLanguage);\n  }\n\n  return await init(container);\n}\n\nexport default function makeWidget(\n  identifier: string,\n  init: ContainerWidgetInitializer,\n  initializationService: interfaces.ServiceIdentifier<IInitializationService>\n) {\n  const fullInit = async () => initContainer(init, initializationService);\n  return () => <BoxWidgetView init={fullInit} identifier={identifier} />;\n}\n","import { ScreenBase } from \"@frui.ts/screens\";\r\nimport { Container, interfaces } from \"inversify\";\r\nimport { IInitializationService } from \"../services/initialization/types\";\r\nimport makeWidget from \"../views/makeWidget\";\r\nimport RootViewModel from \"./rootViewModel\";\r\n\r\nfunction initView(types: interfaces.ServiceIdentifier<ScreenBase>[]) {\r\n  return async (container: Container) => {\r\n    const displayViewModel = container.get<ReturnType<typeof RootViewModel.Factory>>(RootViewModel.Factory)(types);\r\n\r\n    return displayViewModel;\r\n  };\r\n}\r\n\r\nexport default function makeWidgetFor(\r\n  identifier: string,\r\n  types: interfaces.ServiceIdentifier<ScreenBase>[],\r\n  initializationService: interfaces.ServiceIdentifier<IInitializationService>\r\n) {\r\n  return makeWidget(identifier, initView(types), initializationService);\r\n}\r\n","// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nenum PossibleExemptionRegistrationMethod {\n  Notification = \"NOTIFICATION\",\n  AutomaticallyByLicensePlateFormat = \"AUTOMATICALLY_BY_LICENSE_PLATE_FORMAT\",\n  VehicleRegisterSynchronization = \"VEHICLE_REGISTER_SYNCHRONIZATION\",\n}\nexport default PossibleExemptionRegistrationMethod;\n","import \"reflect-metadata\";\nimport { bound } from \"@frui.ts/helpers\";\nimport { Router } from \"@frui.ts/screens/dist\";\nimport { plainToClass } from \"class-transformer\";\nimport { action, computed, observable, reaction } from \"mobx\";\nimport debounce from \"debounce-promise\";\nimport { onlyResolvesLast } from \"awesome-only-resolves-last-promise/dist\";\nimport {\n  defaultExemptionReason,\n  foreignExemptionReasons,\n  NoticePowerOfAttorneyRules,\n  NoticeTechnicalLicenseRules as NoticeTechnicalLicenseRulesWithId,\n} from \"models/exemption\";\nimport NiaResponse from \"models/niaResponse\";\nimport ExemptionReasonResponse from \"entities/exemptionReasonResponse\";\nimport PossibleExemptionRegistrationMethod from \"entities/possibleExemptionRegistrationMethod\";\nimport EnumService from \"services/enumService\";\nimport EventBus, {\n  exemptionCreationFailed,\n  exemptionDocumentsUploadFailed,\n  exemptionDocumentsUploadSuccess,\n  exemptionISDSConceptStatusCheckFailure,\n  exemptionISDSConceptStatusCheckSuccess,\n  exemptionISDSSessionIdHandled,\n  exemptionNIAResponseHandled,\n} from \"services/eventBus\";\nimport { SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY } from \"services/omissionService\";\nimport ExemptionService from \"services/exemptionService\";\nimport LocalizationService from \"services/localizationService\";\nimport NiaService, { Notice } from \"services/NIA/niaService\";\nimport AppRouter from \"services/appRouter\";\nimport ISDSService from \"services/ISDS/isdsService\";\nimport OutageService from \"services/outageService\";\nimport VehicleInfoViewModel from \"viewModels/common/vehicleInfoViewModel\";\nimport OutagesViewModel from \"viewModels/common/outagesViewModel\";\nimport serializeNotice from \"utils/serializeNotice\";\nimport { attachAutomaticBlurValidator } from \"utils/validationPatch\";\nimport NoticeViewModel from \"../noticeViewModel\";\nimport OperatorViewModel from \"../components/operator/operatorViewModel\";\nimport ApplicantPersonViewModel from \"../components/applicantPersonViewModel\";\nimport { repeatIfFailed } from \"services/requestRecoveryService\";\nimport VehicleChargingInstructionsResponse from \"entities/vehicleChargingInstructionsResponse\";\nimport ExemptionApplicationProductionResponse from \"entities/exemptionApplicationProductionResponse\";\nimport ChargeRegistrationService from \"services/chargeRegistrationService\";\nimport { PersistedBase64 } from \"models/notice\";\nimport EshopError from \"models/eshopError\";\n\nexport const ExemptionNoticeNavigationName = \"exemption_notice\";\n\n@Router.registerRoute({ route: ExemptionNoticeNavigationName, name: Router.Self })\nexport default class ExemptionViewModel extends NoticeViewModel {\n  @observable showTooltip = false;\n  @observable vehicleInfoViewModel: VehicleInfoViewModel;\n  @observable applicantPersonViewModel: ApplicantPersonViewModel;\n  @observable operatorInputViewModel: OperatorViewModel;\n  @observable allowCreateExemption = false;\n  @observable loadingInstruction = false;\n\n  private debouncedLookForChargingInstructions = debounce(this.lookForChargingInstructions, 400);\n  private lastResolveFindChargingInstructions = onlyResolvesLast(this.findChargingInstructions);\n\n  constructor(\n    public localizationService: LocalizationService,\n    protected enumService: EnumService,\n    protected niaService: NiaService,\n    protected isdsService: ISDSService,\n    protected outageService: OutageService,\n    protected eventBus: EventBus,\n    protected service: ExemptionService,\n    protected router: AppRouter,\n    protected outagesViewModelFactory: ReturnType<typeof OutagesViewModel.Factory>,\n    private chargeRegistrationService: ChargeRegistrationService,\n    private vehicleInfoVMFactory: ReturnType<typeof VehicleInfoViewModel.Factory>,\n    private applicantPersonInputVMFactory: ReturnType<typeof ApplicantPersonViewModel.Factory>,\n    private operatorInputVmFactory: ReturnType<typeof OperatorViewModel.Factory>\n  ) {\n    super(\n      localizationService,\n      enumService,\n      niaService,\n      isdsService,\n      outageService,\n      eventBus,\n      service,\n      router,\n      outagesViewModelFactory\n    );\n    this.navigationName = ExemptionNoticeNavigationName;\n    this.createChildren();\n    this.unsubscriptions.push(\n      this.eventBus.subscribe(exemptionCreationFailed, this.generalOperationFailed),\n      this.eventBus.subscribe(exemptionDocumentsUploadFailed, this.isdsOperationFailed),\n      this.eventBus.subscribe(exemptionDocumentsUploadSuccess, this.isdsUploadOperationSuccess),\n      this.eventBus.subscribe(exemptionISDSConceptStatusCheckSuccess, this.isdsConceptStatusCheck),\n      this.eventBus.subscribe(exemptionISDSConceptStatusCheckFailure, this.isdsConceptFailure),\n      this.eventBus.subscribe(exemptionNIAResponseHandled, this.NiaResponseHandler),\n      this.eventBus.subscribe(exemptionISDSSessionIdHandled, this.ISDSSessionIdHandler)\n    );\n    this.setDefaultCountryId();\n    this.attachValidators();\n  }\n\n  protected onInitialize(): Promise<any> {\n    this.chargeRegistrationService.vehicleChargingInstructions = undefined;\n    this.service.exemptionApplicationProduction = undefined;\n    this.enumService.values(\"exemption_reasons\") as ExemptionReasonResponse[];\n    this.unsubscriptions.push(\n      reaction(\n        () => [\n          this.vehicleInfoViewModel.item.countryId,\n          this.vehicleInfoViewModel.item.licensePlate,\n          this.notice.exemptionReasonId,\n        ],\n        () => {\n          this.chargingInstructionsReaction();\n        },\n        {\n          fireImmediately: true,\n        }\n      )\n    );\n    return super.onInitialize();\n  }\n\n  protected onActivate() {\n    this.unsubscriptions.push(\n      reaction(() => this.notice.exemptionReasonId, this.persistNotice),\n      reaction(() => this.notice.vehicle?.countryId, this.onCountryChange)\n    );\n    return super.onActivate();\n  }\n\n  protected createChildren() {\n    this.children.clear();\n    this.children.push(\n      (this.vehicleInfoViewModel = this.vehicleInfoVMFactory(this.notice.vehicle!, {\n        attachValidator: true,\n        fixedLicensePlateSize: false,\n        initByLocalization: true,\n      })),\n      (this.operatorInputViewModel = this.operatorInputVmFactory(\n        this.notice,\n        \"exemption\",\n        this.persistNotice,\n        this.showBirthdate()\n      )),\n      (this.applicantPersonViewModel = this.applicantPersonInputVMFactory(this.notice.applicant, this.GDPR, this.showBirthdate()))\n    );\n  }\n\n  protected attachValidators() {\n    attachAutomaticBlurValidator(this.notice, {\n      ...this.notice.rules,\n      ...NoticePowerOfAttorneyRules,\n      ...NoticeTechnicalLicenseRulesWithId,\n    });\n  }\n\n  async navigate(subPath: string | undefined, params: any) {\n    if (!params) this.eventBus.publish(exemptionISDSSessionIdHandled({ sessionId: \"\" }));\n\n    if (params.sessionId) {\n      if (sessionStorage.getItem(SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY)) {\n        sessionStorage.removeItem(SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY);\n        await this.isdsService.conceptStatus(params.sessionId, Notice.EXEMPTION);\n        return;\n      }\n      this.eventBus.publish(exemptionISDSSessionIdHandled({ sessionId: params.sessionId }));\n    } else if (params.response) {\n      const response = params.response;\n\n      if (response && this.notice && this.notice.applicant) {\n        const urlDecoded = decodeURI(response);\n        const base64Decoded = atob(urlDecoded);\n        const niaResponse = plainToClass(NiaResponse, JSON.parse(base64Decoded));\n\n        if (!niaResponse) return;\n\n        this.eventBus.publish(exemptionNIAResponseHandled({ niaResponse }));\n      }\n    }\n  }\n\n  @computed\n  get notice() {\n    return this.service.notice;\n  }\n\n  @computed\n  get loadingData() {\n    return this.loadingInstruction;\n  }\n\n  @computed\n  get czechCountryId() {\n    return this.enumService.values(\"countries\").find(item => item.code === \"CZ\")?.id;\n  }\n\n  @computed\n  get reasonsEnum(): ExemptionReasonResponse[] {\n    return this.enumService.values(\"exemption_reasons\") as ExemptionReasonResponse[];\n  }\n\n  @computed\n  get vehicleChargingInstructions(): VehicleChargingInstructionsResponse | undefined {\n    return this.chargeRegistrationService.vehicleChargingInstructions;\n  }\n\n  @computed\n  get exemptionApplicationProduction(): ExemptionApplicationProductionResponse | undefined {\n    return this.service.exemptionApplicationProduction;\n  }\n\n  @computed\n  get reasons() {\n    return this.reasonsEnum\n      .filter(reason => {\n        return (\n          reason.description !== undefined &&\n          reason.exemptionReason !== undefined &&\n          reason.possibleRegistrationMethods.includes(PossibleExemptionRegistrationMethod.Notification)\n        );\n      })\n      .filter(reason => {\n        if (this.czechCountryId === this.notice.vehicle?.countryId) {\n          return true;\n        } else {\n          return foreignExemptionReasons.includes(`${reason.exemptionReason}`);\n        }\n      })\n      .map(reason => ({\n        id: reason.id!,\n        label: reason.description!,\n      }));\n  }\n\n  @bound\n  translateGeneral(code: string, disableUnbreakableRules = false) {\n    return this.localizationService.translateGeneral(`exemption.${code}`, undefined, disableUnbreakableRules);\n  }\n\n  @bound\n  translateAttribute(code: string) {\n    return this.localizationService.translateAttribute(\"exemption\", code);\n  }\n\n  @bound\n  protected async persistNotice() {\n    sessionStorage.setItem(Notice.EXEMPTION, serializeNotice(this.notice));\n\n    await super.persistNotice();\n  }\n\n  @bound\n  private onCountryChange() {\n    const reason = this.reasonsEnum.find(reason => reason.exemptionReason === this.notice.exemptionReasonId)?.exemptionReason;\n    if (\n      (this.notice.vehicle?.countryId !== this.czechCountryId &&\n        this.notice.exemptionReasonId &&\n        reason &&\n        !foreignExemptionReasons.includes(reason)) ||\n      !reason\n    ) {\n      this.notice.exemptionReasonId = defaultExemptionReason;\n      this.showTooltip = true;\n      setTimeout(() => {\n        this.showTooltip = false;\n      }, 6000);\n    }\n  }\n\n  @bound\n  private async chargingInstructionsReaction() {\n    this.allowCreateExemption = false;\n    this.service.exemptionApplicationProduction = undefined;\n    this.chargeRegistrationService.vehicleChargingInstructions = undefined;\n    if (this.notice.vehicle?.countryId && this.notice.vehicle?.licensePlate) {\n      this.notice.vehicle.countryId = this.vehicleInfoViewModel.item.countryId;\n      this.notice.vehicle.licensePlate = this.vehicleInfoViewModel.item.licensePlate;\n      try {\n        this.loadingInstruction = true;\n        await this.debouncedLookForChargingInstructions();\n        this.loadingInstruction = false;\n      } catch (e) {\n        this.loadingInstruction = false;\n        // Silent catch - background task with auto recovery mechanism\n      }\n    }\n  }\n\n  @bound\n  private findChargingInstructions(countryId: string, licensePlate: string) {\n    return this.chargeRegistrationService.getChargingInstructions(countryId, licensePlate);\n  }\n\n  @bound\n  translateWarningReason(code: string, possibleExemptionReasonIds?: string[]): string {\n    if (code === \"IDENTIFIED_POSSIBLE_EXEMPTION\") {\n      if (!possibleExemptionReasonIds || possibleExemptionReasonIds.length < 1) {\n        return this.localizationService.translateGeneral(\"errors.generic\");\n      }\n      const possibleExemptionReasonId = possibleExemptionReasonIds[0];\n      const exemptionReasons = this.enumService.values(\"exemption_reasons\") as ExemptionReasonResponse[];\n      const matchingReason = exemptionReasons.find(x => x.id === possibleExemptionReasonId);\n      switch (matchingReason?.exemptionReason) {\n        case \"C\":\n          return this.translateWarningReason(\"IDENTIFIED_POSSIBLE_EXEMPTION_C\", possibleExemptionReasonIds);\n        case \"P\":\n          return this.translateWarningReason(\"IDENTIFIED_POSSIBLE_EXEMPTION_P\", possibleExemptionReasonIds);\n        case \"O\":\n        case \"O1\":\n        case \"O2\":\n          return this.translateWarningReason(\"IDENTIFIED_POSSIBLE_EXEMPTION_O\", possibleExemptionReasonIds);\n        default:\n          return this.localizationService.translateGeneral(\"errors.generic\");\n      }\n    }\n    return this.localizationService.translateGeneral(`eshop.order.license.exemptionReasonWarnings.${code}`, undefined, false);\n  }\n\n  @action.bound\n  @repeatIfFailed\n  private async lookForChargingInstructions() {\n    const countryId = this.notice.vehicle?.countryId;\n    const licensePlate = this.notice.vehicle?.licensePlate;\n\n    if (!countryId || !licensePlate) return;\n\n    try {\n      await this.lastResolveFindChargingInstructions(countryId, licensePlate);\n    } catch (e) {\n      throw new Error(\"Vehicle instructions check failed\");\n    }\n  }\n\n  @action.bound\n  protected isdsConceptStatusCheck(data: { type: string; payload: { success: boolean; notice: Notice } }) {\n    if (data.payload.success && data.payload.notice) {\n      this.router.navigate(\"exemption_documents\", undefined, { notice: data.payload.notice });\n    }\n  }\n\n  @action.bound\n  protected isdsUploadOperationSuccess(data: { type: string; payload: { conceptIdent: string } }) {\n    super.isdsUploadOperationSuccess(data);\n    this.isdsService.redirectToISDSConcept(Notice.EXEMPTION, data.payload.conceptIdent);\n  }\n\n  @action.bound\n  public async createNotice(): Promise<string | undefined> {\n    this.errorMessage = undefined;\n    const response = (await this.service.getProduction(this.notice)) as any;\n\n    if (response.errors) {\n      this.creationLoadingModalToggle(false);\n      this.errorMessage = this.localizationService.translateGeneral(\"errors.invalidData\");\n      return;\n    }\n\n    if (this.service.exemptionApplicationProduction?.warningReasons.length && !this.allowCreateExemption) {\n      this.allowCreateExemption = true;\n\n      return Promise.resolve(undefined);\n    }\n    return this.service.createExemption(this.notice);\n  }\n\n  @action.bound\n  public uploadDocuments(ISDSSessionId: string, files: PersistedBase64[]): Promise<void> | undefined {\n    this.errorMessage = undefined;\n    return this.service.uploadDocuments(ISDSSessionId, files);\n  }\n\n  @action.bound\n  public redirectToISDS(): void {\n    this.errorMessage = undefined;\n    this.creationLoadingModalToggle(false);\n    this.isdsService.redirectToISDS(Notice.EXEMPTION);\n  }\n\n  @action.bound\n  public redirectToNia() {\n    this.errorMessage = undefined;\n    this.creationLoadingModalToggle(false);\n    this.niaService.redirectToNia(Notice.EXEMPTION);\n  }\n}\n","export const NOTIFICATION_SERVICE_INIT_FAILURE = \"notificationServiceInitFailure\";\nexport const NOTIFICATION_SERVICE_START_FAILURE = \"notificationServiceStartFailure\";\nexport const NOTIFICATION_SERVICE_STOP_FAILURE = \"notificationServiceStopFailure\";\nexport const VALID_SINCE_INVALID = \"VALID_SINCE_INVALID\";\nexport const FUEL_TYPE_NOT_ALLOWED = \"FUEL_TYPE_NOT_ALLOWED\";\nexport const OUTAGE_ACTIVATED = \"outageActivated\";\nexport const POST_CHARGE_ORDER_FAILURE = \"postChargeOrderFailure\";\nexport const NOTIFICATION_SERVICE_CONNECTION_ID_UNDEFINED = \"connectionIdUndefined\";\nexport const PERSISTENCE_ORDER_UPDATE_FAILURE = \"persistenceOrderUpdateFailure\";\nexport const CHARGE_ORDER_REQUEST_PROCESSING_FAILED = \"CHARGE_ORDER_REQUEST_PROCESSING_FAILED\";\n","import NiaResponse from \"models/niaResponse\";\nimport { createEventDefinition, EventBus as TsEventBus } from \"ts-bus\";\nimport { ContactEditationTriggerer } from \"models/contact\";\nimport ValidChargesResponse from \"models/validChargesResponse\";\nimport Vehicle from \"models/vehicle\";\nimport { Notice } from \"./NIA/niaService\";\nimport { RequestSource } from \"./chargeRegistrationService\";\nimport Validity from \"models/validity\";\nimport ChargeRegistrationReport from \"models/chargeRegistrationReport\";\nimport { KnownErrorCodes } from \"config\";\nimport GooglePayMetadata from \"models/googlePayMetadata\";\nimport { PayGateCommonPaymentStatus } from \"models/googlePayInitPaymentResponse\";\nimport VehicleRegistrationsResponse from \"models/vehicleRegistrationsResponse\";\nimport ChargeValidityInstructionsResponse from \"entities/chargeValidityInstructionsResponse\";\nimport ChargeRegistrationsResponse from \"entities/chargeRegistrationsResponse\";\nimport ChargeValidityInstructionGroupsResponse from \"entities/chargeValidityInstructionGroupsResponse\";\nimport ChargeOrderInstructionGroupsResponse from \"entities/chargeOrderInstructionGroupsResponse\";\nimport NotificationPreferencesResponse from \"entities/notificationPreferencesResponse\";\nimport VehicleChargingInstructionsResponse from \"entities/vehicleChargingInstructionsResponse\";\nimport ExemptionApplicationProductionResponse from \"entities/exemptionApplicationProductionResponse\";\nimport VehicleChangeApplicationProductionResponse from \"entities/vehicleChangeApplicationProductionResponse\";\nimport ExemptionCancellationApplicationProductionResponse from \"entities/exemptionCancellationApplicationProductionResponse\";\nimport CustomerRefundApplicationProductionResponse from \"entities/customerRefundApplicationProductionResponse\";\nimport ChargesRequest from \"entities/chargesRequest\";\nimport ChargeTypeResponse from \"entities/chargeTypeResponse\";\nimport ChargeProposedPurchaseResponse from \"entities/chargeProposedPurchaseResponse\";\nimport { PaymentType } from \"models/payment\";\n\nexport const localeChanged = createEventDefinition<{ locale: string }>()(\"locale.changed\");\nexport const paymentFailed = createEventDefinition<{ message: string }>()(\"payment.failed\");\nexport const paymentCompleteAlert = createEventDefinition<{ orderId: string }>()(\"payment.complete.alert\");\nexport const paymentValidSinceInvalid = createEventDefinition<{ message: string }>()(\"payment.validSince.invalid\");\nexport const paymentFuelTypeNotAllowed = createEventDefinition<{ message: string }>()(\"payment.fuelType.notAllowed\");\nexport const paymentMultiFuelTypeNotAllowed = createEventDefinition<{ message: string }>()(\n  \"payment.multiEshop.fuelType.notAllowed\"\n);\nexport const paymentEmailAddressInvalid = createEventDefinition<{ message: string }>()(\"payment.emailAddress.invalid\");\nexport const paymentMultiEmailAddressInvalid = createEventDefinition<{ message: string }>()(\n  \"payment.multiEshop.emailAddress.invalid\"\n);\nexport const multiEshopPaymentUpdate = createEventDefinition<{ paymentType: PaymentType | undefined; termsAgreement: boolean }>()(\n  \"payment.multiEshop.paymentData.update\"\n);\nexport const userLogout = createEventDefinition<void>()(\"user.logout\");\n\nexport const omissionCreationFailed = createEventDefinition<{ type: string }>()(\"omission.failed\");\nexport const omissionDocumentsUploadFailed = createEventDefinition<{ type: string }>()(\"omission.documents.upload.failed\");\nexport const omissionDocumentsUploadSuccess = createEventDefinition<{ conceptIdent: string }>()(\n  \"omission.documents.upload.success\"\n);\nexport const exemptionCreationFailed = createEventDefinition<{ type: string }>()(\"exemption.failed\");\nexport const exemptionDocumentsUploadFailed = createEventDefinition<{ type: string }>()(\"exemption.documents.upload.failed\");\nexport const exemptionDocumentsUploadSuccess = createEventDefinition<{ conceptIdent: string }>()(\n  \"exemption.documents.upload.success\"\n);\nexport const licensePlateChangeCreationFailed = createEventDefinition<{ type: string }>()(\"license.plate.change.failed\");\nexport const licensePlateChangeDocumentsUploadFailed = createEventDefinition<{ type: string }>()(\n  \"license.plate.change.documents.upload.failed\"\n);\nexport const licensePlateChangeDocumentsUploadSuccess = createEventDefinition<{ conceptIdent: string }>()(\n  \"license.plate.change.documents.upload.success\"\n);\n\nexport const refundRequestCreationFailed = createEventDefinition<{ type: string }>()(\"refund.request.failed\");\nexport const refundRequestDocumentsUploadFailed = createEventDefinition<{ type: string }>()(\n  \"refund.request.documents.upload.failed\"\n);\nexport const currentServerTime = createEventDefinition<{ date: Date }>()(\"current.server.time\");\nexport const refundRequestDocumentsUploadSuccess = createEventDefinition<{ conceptIdent: string }>()(\n  \"refund.request.documents.upload.success\"\n);\n\nexport const chargeValidationFailed = createEventDefinition<{ type: string }>()(\"charge.validation.failed\");\nexport const serverError = createEventDefinition<{ message?: string; type?: KnownErrorCodes }>()(\"general.serverError\");\n\nexport const chargeRegistrationReport = createEventDefinition<{ report?: ChargeRegistrationReport }>()(\n  \"charge.registration.report\"\n);\n\nexport const vehicleRegistration = createEventDefinition<{\n  vehicleRegistration: VehicleRegistrationsResponse;\n  source?: RequestSource;\n}>()(\"vehicle.registration\");\n\nexport const vehicleChargeOrderInstructions = createEventDefinition<{\n  chargeOrderInstructionGroups?: ChargeOrderInstructionGroupsResponse;\n  source?: RequestSource;\n}>()(\"vehicle.charge.order.instructions\");\n\nexport const vehicleChargingInstructions = createEventDefinition<{\n  vehicleChargingInstructions?: VehicleChargingInstructionsResponse;\n  source?: RequestSource;\n}>()(\"vehicle.charging.instructions\");\n\nexport const exemptionApplicationProduction = createEventDefinition<{\n  exemptionApplicationProduction?: ExemptionApplicationProductionResponse;\n  source?: RequestSource;\n}>()(\"exemption.application.preview\");\n\nexport const cancellationApplicationProduction = createEventDefinition<{\n  cancellationApplicationProduction?: ExemptionCancellationApplicationProductionResponse;\n  source?: RequestSource;\n}>()(\"exemption.cancellation.application.preview\");\n\nexport const customerRefundApplicationProduction = createEventDefinition<{\n  customerRefundApplicationProduction?: CustomerRefundApplicationProductionResponse;\n  source?: RequestSource;\n}>()(\"exemption.cancellation.application.preview\");\n\nexport const vehicleChangeApplicationProduction = createEventDefinition<{\n  vehicleChangeApplicationProduction?: VehicleChangeApplicationProductionResponse;\n  source?: RequestSource;\n}>()(\"vehicle.change.application.preview\");\n\nexport const vehicleChargeValidityInstructions = createEventDefinition<{\n  chargeValidityInstructionGroups?: ChargeValidityInstructionGroupsResponse;\n  charges?: ChargesRequest[];\n  source?: RequestSource;\n}>()(\"vehicle.vehicle.charge.validity.instructions\");\n\nexport const chargeRegistration = createEventDefinition<{\n  chargeRegistrationsResponse: ChargeRegistrationsResponse;\n  source?: RequestSource;\n}>()(\"charge.registration\");\n\nexport const paymentConfirmationAvailable = createEventDefinition<{ url: string }>()(\"payment.confirmation.available\");\nexport const paymentConfirmationError = createEventDefinition<void>()(\"payment.confirmation.error\");\nexport const customerRatingOrderData = createEventDefinition<{\n  orderId?: string;\n}>()(\"customerRating.orderData.updated\");\n\nexport const putChargeContactSuccess = createEventDefinition<{\n  emailAddress?: string;\n  notificationPreferences?: NotificationPreferencesResponse;\n  triggerer: ContactEditationTriggerer;\n  authCode?: string;\n}>()(\"put.charge.contact.success\");\nexport const putChargeContactFailure = createEventDefinition<{ type: string; triggerer: ContactEditationTriggerer }>()(\n  \"put.charge.contact.failure\"\n);\n\nexport const getGooglePayMetadataSuccess = createEventDefinition<{ googlePayMetadata: GooglePayMetadata }>()(\n  \"get.google.pay.metadata.success\"\n);\nexport const getGooglePayMetadataFailure = createEventDefinition<void>()(\"get.google.pay.metadata.failure\");\n\nexport const submitGooglePayPaymentSuccess = createEventDefinition<void>()(\"submit.google.pay.payment.success\");\nexport const submitGooglePayPaymentDeferred = createEventDefinition<void>()(\"submit.google.pay.payment.deferred\");\nexport const submitGooglePayPaymentFailure = createEventDefinition<void>()(\"submit.google.pay.payment.failure\");\nexport const submitGooglePayPaymentBrowserFingerprint = createEventDefinition<{ url: string }>()(\n  \"submit.google.pay.payment.fingerprint\"\n);\nexport const googlePayPaymentBrowserFingerprintLoaded = createEventDefinition<void>()(\"google.pay.payment.fingerprint.loaded\");\nexport const googlePayPayment3DSecureLoaded = createEventDefinition<{ url: string }>()(\"google.pay.payment.3dsecure.loaded\");\nexport const googlePayPaymentStatusChanged = createEventDefinition<{ status: PayGateCommonPaymentStatus }>()(\n  \"google.pay.payment.status.changed\"\n);\n\nexport const putChargeValiditySuccess = createEventDefinition<{ validity: Validity }>()(\"put.charge.validity.success\");\nexport const putChargeValidityFailure = createEventDefinition<{ type: string }>()(\"put.charge.validity.failure\");\n\nexport const putChargeVehicleSuccess = createEventDefinition<{ vehicle: Vehicle }>()(\"put.charge.vehicle.success\");\nexport const putChargeVehicleFailure = createEventDefinition<{ type: string }>()(\"put.charge.vehicle.failure\");\n\nexport const sendChargePaymentConfirmationEmailModalClosed = createEventDefinition()(\n  \"send.charge.payment.confirmation.email.modal.closed\"\n);\nexport const sendChargePaymentConfirmationEmailSuccess = createEventDefinition<{}>()(\n  \"send.charge.payment.confirmation.email.success\"\n);\nexport const sendChargePaymentConfirmationEmailFailure = createEventDefinition<{ type: string }>()(\n  \"send.charge.payment.confirmation.email.failure\"\n);\nexport const downloadPaymentConfirmationSuccess = createEventDefinition<{}>()(\"download.payment.confirmation.success\");\nexport const downloadPaymentConfirmationFailure = createEventDefinition<{ type: string }>()(\n  \"download.payment.confirmation.failure\"\n);\nexport const emailUpdated = createEventDefinition<{ emailAddress: string }>()(\"email.updated\");\n\nexport const exemptionISDSConceptStatusCheckSuccess = createEventDefinition<{ success: boolean; notice: Notice }>()(\n  \"exemption.ISDS.concept.status.check.success\"\n);\nexport const exemptionISDSConceptStatusCheckFailure = createEventDefinition<{ type: string; code: string | undefined }>()(\n  \"exemption.ISDS.concept.status.check.failure\"\n);\n\nexport const omissionISDSConceptStatusCheckSuccess = createEventDefinition<{ success: boolean; notice: Notice }>()(\n  \"omission.ISDS.concept.status.check.success\"\n);\nexport const omissionISDSConceptStatusCheckFailure = createEventDefinition<{ type: string; code: string | undefined }>()(\n  \"omission.ISDS.concept.status.check.failure\"\n);\n\nexport const licensePlateChangeISDSConceptStatusCheckSuccess = createEventDefinition<{ success: boolean; notice: Notice }>()(\n  \"license.plate.change.ISDS.concept.status.check.success\"\n);\nexport const licensePlateChangeISDSConceptStatusCheckFailure = createEventDefinition<{\n  type: string;\n  code: string | undefined;\n}>()(\"license.plate.change.ISDS.concept.status.check.failure\");\n\nexport const refundRequestISDSConceptStatusCheckSuccess = createEventDefinition<{ success: boolean; notice: Notice }>()(\n  \"refund.request.ISDS.concept.status.check.success\"\n);\nexport const refundRequestISDSConceptStatusCheckFailure = createEventDefinition<{\n  type: string;\n  code: string | undefined;\n}>()(\"refund.request.ISDS.concept.status.check.failure\");\n\nexport const NIARedirectFailure = createEventDefinition<{ type: string }>()(\"nia.redirect.failure\");\n\nexport const getExemptionFailure = createEventDefinition<{ type: string }>()(\"get.exemption.failure\");\nexport const postExemptionFailure = createEventDefinition<{ type: string }>()(\"post.exemption.failure\");\nexport const lookForExemptionSuccess = createEventDefinition<{ hasExemption: boolean }>()(\"look.for.exemption.success\");\n\nexport const exemptionISDSSessionIdHandled = createEventDefinition<{ sessionId: string }>()(\"exemption.isds.session.id.handled\");\nexport const exemptionNIAResponseHandled = createEventDefinition<{ niaResponse: NiaResponse }>()(\n  \"exemption.nia.response.handled\"\n);\n\nexport const omissionISDSSessionIdHandled = createEventDefinition<{ sessionId: string }>()(\"omission.isds.session.id.handled\");\nexport const omissionNIAResponseHandled = createEventDefinition<{ niaResponse: NiaResponse }>()(\"omission.nia.response.handled\");\n\nexport const licensePlateChangeISDSSessionIdHandled = createEventDefinition<{ sessionId: string }>()(\n  \"license.plate.change.isds.session.id.handled\"\n);\nexport const licensePlateChangeNIAResponseHandled = createEventDefinition<{ niaResponse: NiaResponse }>()(\n  \"license.plate.change.nia.response.handled\"\n);\n\nexport const refundRequestISDSSessionIdHandled = createEventDefinition<{ sessionId: string }>()(\n  \"refund.request.isds.session.id.handled\"\n);\nexport const refundRequestNIAResponseHandled = createEventDefinition<{ niaResponse: NiaResponse }>()(\n  \"refund.request.nia.response.handled\"\n);\n\nexport const vehicleHasValidCharges = createEventDefinition<{\n  validCharges: ValidChargesResponse;\n  source?: RequestSource;\n}>()(\"vehicle.has.validCharges\");\nexport const vehicleValidityInstruction = createEventDefinition<{\n  validityInstruction: ChargeValidityInstructionsResponse;\n  source?: RequestSource;\n}>()(\"vehicle.vehicleValidityInstruction\");\nexport const preselectChargeType = createEventDefinition<{\n  chargeType: ChargeTypeResponse;\n}>()(\"vehicle.preselectChargeType\");\nexport const proposedPurchageCharge = createEventDefinition<{\n  proposedPurchase: ChargeProposedPurchaseResponse;\n}>()(\"vehicle.proposedPurchageCharge\");\n\nexport const orderIsPaid = createEventDefinition()(\"order.paid\");\nexport const orderIsInvalid = createEventDefinition()(\"order.invalid\");\nexport const multiOrderIsInvalid = createEventDefinition()(\"order.multi.invalid\");\n\n// Turnstile events\nexport const turnstileTokenReceived = createEventDefinition<{ context: string; token: string }>()(\"turnstile.token.received\");\nexport const turnstileErrorReceived = createEventDefinition<{ context: string; error: string }>()(\"turnstile.error.received\");\nexport const turnstileReset = createEventDefinition<{ context: string }>()(\"turnstile.reset\");\n\nexport default class EventBus extends TsEventBus {}\n","import { canNavigate, ConductorOneChildActive, Router, ScreenBase, splitUrlSegments } from \"@frui.ts/screens\";\r\nimport LocalizationService from \"services/localizationService\";\r\nimport SingleBankTransferViewModel, { SingleBankTransferNavigationName } from \"../common/payment/singleBankTransferViewModel\";\r\nimport SingleStatusViewModel, { SingleStatusViewNavigationName } from \"../common/payment/singleStatusViewModel\";\r\nimport StatusViewModel, { StatusViewNavigationName } from \"../common/payment/statusViewModel\";\r\nimport NotificationService, { NotificationType } from \"services/notificationService\";\r\nimport { IconType } from \"@edaz/edazkit/Icon\";\r\nimport { action, computed, reaction, when } from \"mobx\";\r\nimport { clearSearchParameters } from \"utils/browserHistory\";\r\nimport { isSafari } from \"react-device-detect\";\r\nimport OutageService from \"services/outageService\";\r\nimport OrderOutageViewModel from \"../common/orderOutage/orderOutageViewModel\";\r\nimport OrderWizardViewModel, { OrderNewViewNavigationName } from \"./order/orderWizardModel\";\r\nimport ChargeOrder, { ChargeOrderStatus } from \"models/chargeOrder\";\r\nimport LicenseViewModel, { LicenseViewNavigationName } from \"./order/steps/licenseViewModel\";\r\nimport { BankTransferNavigationName } from \"viewModels/common/payment/bankTransferViewModel\";\r\nimport TimeService from \"services/timeService\";\r\nimport ChargeOrderRepository from \"repositories/chargeOrderRepository\";\r\nimport EventBus, { currentServerTime } from \"services/eventBus\";\r\nimport PaymentResult from \"models/paymentResult\";\r\nimport PaymentRetryViewModel, {\r\n  clearRetryConsumed,\r\n  isRetryBlocked,\r\n  markRetryConsumed,\r\n  PaymentRetryNavigationName,\r\n} from \"../common/payment/paymentRetryViewModel\";\r\nimport SinglePaymentRetryViewModel from \"../common/payment/singlePaymentRetryViewModel\";\r\nimport PaymentService from \"services/payment/paymentService\";\r\nimport { PayGatePaymentStatus } from \"models/payGatePaymentResponse\";\r\n\r\nexport const EshopModuleNavigationName = \"eshop\";\r\n\r\n@Router.registerRoute({\r\n  route: EshopModuleNavigationName,\r\n  name: Router.Self,\r\n  children: [\r\n    OrderWizardViewModel,\r\n    SingleBankTransferViewModel,\r\n    SingleStatusViewModel,\r\n    OrderOutageViewModel,\r\n    SinglePaymentRetryViewModel,\r\n  ],\r\n})\r\nexport default class EshopViewModel extends ConductorOneChildActive<ScreenBase> {\r\n  private unsubsriptions: Array<() => void> = [];\r\n  OFFLINE_NOTIFICATION_KEY = \"OFFLINE\";\r\n\r\n  @computed\r\n  get outage() {\r\n    return this.outageService.eshopActiveOutage;\r\n  }\r\n\r\n  constructor(\r\n    public localizationService: LocalizationService,\r\n    private orderWizardModel: OrderWizardViewModel,\r\n    public timeService: TimeService,\r\n    private eventBus: EventBus,\r\n    private outageService: OutageService,\r\n    public repository: ChargeOrderRepository,\r\n    private bankTransferVMFactory: ReturnType<typeof SingleBankTransferViewModel.Factory>,\r\n    private statusVMFactory: ReturnType<typeof SingleStatusViewModel.Factory>,\r\n    private orderOutageViewModelFactory: ReturnType<typeof OrderOutageViewModel.Factory>,\r\n    private notificationService: NotificationService,\r\n    private paymentRetryVMFactory: ReturnType<typeof PaymentRetryViewModel.Factory>,\r\n    private paymentService: PaymentService\r\n  ) {\r\n    super();\r\n    this.navigationName = EshopModuleNavigationName;\r\n    this.nameValue = \"eshop.title\";\r\n    this.children.push(this.orderWizardModel);\r\n    if (history.scrollRestoration) {\r\n      history.scrollRestoration = \"manual\";\r\n    }\r\n\r\n    if (isSafari) {\r\n      window.onpageshow = function (event: { persisted: boolean }) {\r\n        if (event.persisted) {\r\n          window.location.reload();\r\n        }\r\n      };\r\n    }\r\n  }\r\n\r\n  async onActivate() {\r\n    window.addEventListener(\"online\", this.hideOfflineNotification);\r\n    window.addEventListener(\"offline\", this.showOfflineNotification);\r\n    const serverTime = await this.timeService.getCurrentServerTime(true);\r\n    this.eventBus.publish(currentServerTime({ date: serverTime }));\r\n    this.unsubsriptions.push(reaction(() => this.outage, this.onEshopOutageChanged));\r\n    this.lazyCheckEshopOutage();\r\n\r\n    if (!this.activeChild) {\r\n      if (!window.location.hash.includes(`/${PaymentRetryNavigationName}/`)) {\r\n        await this.tryActivateChild(this.orderWizardModel);\r\n      } else {\r\n      }\r\n    }\r\n\r\n    await super.onActivate();\r\n  }\r\n\r\n  protected async lazyCheckEshopOutage() {\r\n    await when(() => this.outageService.isInitialized === true);\r\n    if (this.outage && this.activeChild === this.orderWizardModel) {\r\n      this.tryActivateChild(this.orderOutageViewModelFactory(this.outage));\r\n    }\r\n  }\r\n\r\n  protected onDeactivate(isClosing: boolean): Promise<void> {\r\n    window.removeEventListener(\"online\", this.hideOfflineNotification);\r\n    window.removeEventListener(\"offline\", this.showOfflineNotification);\r\n    return super.onDeactivate(isClosing);\r\n  }\r\n\r\n  @action.bound\r\n  private onEshopOutageChanged() {\r\n    if (this.outage === undefined) {\r\n      this.tryActivateChild(this.orderWizardModel);\r\n    }\r\n  }\r\n\r\n  @action.bound\r\n  protected async changeActiveChild(newChild: ScreenBase | undefined, closePrevious: boolean): Promise<any> {\r\n    const leavingStatus = this.activeChild instanceof StatusViewModel || this.activeChild instanceof SingleStatusViewModel;\r\n    if (leavingStatus && newChild instanceof OrderWizardViewModel) {\r\n      this.orderWizardModel.resetOrder();\r\n    }\r\n    super.changeActiveChild(newChild, closePrevious);\r\n  }\r\n\r\n  @action.bound\r\n  private hideOfflineNotification() {\r\n    this.notificationService.remove(this.OFFLINE_NOTIFICATION_KEY);\r\n  }\r\n\r\n  @action.bound\r\n  private showOfflineNotification() {\r\n    this.notificationService.add(\r\n      {\r\n        title: this.localizationService.translateGeneral(\"notifications.offline\"),\r\n        type: NotificationType.ERROR,\r\n        icon: IconType.Offline,\r\n        permanent: true,\r\n      },\r\n      this.OFFLINE_NOTIFICATION_KEY\r\n    );\r\n  }\r\n\r\n  async navigate(subPath: string | undefined, params: any) {\r\n    const segments = splitUrlSegments(subPath);\r\n\r\n    if (segments.length > 1 && segments[0] === PaymentRetryNavigationName && segments[1]) {\r\n      clearRetryConsumed(segments[1]);\r\n    }\r\n    if (segments.length > 1 && segments[0] === PaymentRetryNavigationName && segments[1] && isRetryBlocked(segments[1])) {\r\n      await this.tryActivateChild(this.orderWizardModel);\r\n      return;\r\n    }\r\n\r\n    let childToActivate;\r\n    if (segments.length > 0 && (segments[0] === SingleBankTransferNavigationName || segments[0] === BankTransferNavigationName)) {\r\n      childToActivate = await this.findNavigationChild(subPath || \"\");\r\n    } else if (segments.length > 1 && segments[0] === PaymentRetryNavigationName) {\r\n      childToActivate = await this.findNavigationChild(subPath || \"\");\r\n    } else if (segments.length > 1 && segments[0] === SingleStatusViewNavigationName) {\r\n      childToActivate = await this.findNavigationChild(subPath || \"\");\r\n    } else if (segments.length > 1 && segments[0] === StatusViewNavigationName && segments[1]) {\r\n      const storedOrder = await this.orderWizardModel.chargeOrderService.getStoredChargeOrder(segments[1]);\r\n      if (storedOrder) {\r\n        storedOrder._origin = \"single\";\r\n        this.orderWizardModel.chargeOrderService.chargeOrder = storedOrder;\r\n      }\r\n      const order = storedOrder ?? this.orderWizardModel.chargeOrder;\r\n\r\n      const result = params.result;\r\n      const failureType = params[\"failure_type\"];\r\n      const failureOrigin = params[\"failure_origin\"];\r\n\r\n      if (order) {\r\n        clearSearchParameters();\r\n        await this.orderWizardModel.chargeOrderService.updateChargeOrderStatus(result, order, segments[1]);\r\n      }\r\n\r\n      if (order?.id) {\r\n        const retryChild = await this.tryCreatePaymentRetryChild(order);\r\n        if (retryChild) {\r\n          childToActivate = retryChild;\r\n        } else {\r\n          this.orderWizardModel.paymentResultFailureType = failureType;\r\n          this.orderWizardModel.paymentResultFailureOrigin = failureOrigin;\r\n          childToActivate = await this.findNavigationChild(subPath || \"\");\r\n        }\r\n      } else {\r\n        this.orderWizardModel.paymentResultFailureType = failureType;\r\n        this.orderWizardModel.paymentResultFailureOrigin = failureOrigin;\r\n        childToActivate = await this.findNavigationChild(subPath || \"\");\r\n      }\r\n    } else {\r\n      childToActivate = await this.findNavigationChild(segments[0] || \"\");\r\n    }\r\n    if (\r\n      segments[1] &&\r\n      segments[1] !== LicenseViewNavigationName &&\r\n      this.orderWizardModel.activeChild instanceof LicenseViewModel\r\n    ) {\r\n      const isValid = this.orderWizardModel.activeChild.validateAll();\r\n\r\n      if (!isValid) return;\r\n    }\r\n\r\n    if (childToActivate) {\r\n      await this.tryActivateChild(childToActivate);\r\n\r\n      if (canNavigate(childToActivate)) {\r\n        await childToActivate.navigate(segments[1], params);\r\n      }\r\n    }\r\n    await this.onChildNavigated(childToActivate);\r\n  }\r\n\r\n  @action.bound\r\n  async getOrderStatus(id: string) {\r\n    return (await this.repository.get(id))?.status;\r\n  }\r\n\r\n  @action.bound\r\n  private async tryCreatePaymentRetryChild(chargeOrder: ChargeOrder): Promise<ScreenBase | undefined> {\r\n    if (chargeOrder._status !== ChargeOrderStatus.Failed) return undefined;\r\n    try {\r\n      const payGatePayment = await this.repository.getPayGatePayment(chargeOrder.id);\r\n\r\n      if (payGatePayment?.permittedActions?.paymentRetry?.isAllowed) {\r\n        return this.buildPaymentRetryChild(chargeOrder, payGatePayment);\r\n      }\r\n\r\n      // If payment is still in progress, show existing deferred screen\r\n      if (payGatePayment?.status === PayGatePaymentStatus.IN_PROGRESS) {\r\n        chargeOrder._status = ChargeOrderStatus.Deferred;\r\n        this.orderWizardModel.chargeOrderService.persistStoredChargeOrder(chargeOrder);\r\n        return this.statusVMFactory(chargeOrder);\r\n      }\r\n    } catch {\r\n      // If endpoint fails, fall back to existing behavior\r\n    }\r\n    return undefined;\r\n  }\r\n\r\n  private buildPaymentRetryChild(chargeOrder: ChargeOrder, payGatePayment?: any) {\r\n    clearRetryConsumed(chargeOrder.id);\r\n    const retryVM = this.paymentRetryVMFactory(\r\n      chargeOrder,\r\n      () => this.handleRetryPayment(chargeOrder),\r\n      () => this.handleBackToPurchaseWithPrefill(),\r\n      () => this.handlePaymentSucceeded(chargeOrder),\r\n      () => this.handlePaymentInProgress(chargeOrder),\r\n      paymentData => this.handleRetryGooglePayPayment(chargeOrder, paymentData),\r\n      () => this.handleRetryIdleTimeout(chargeOrder)\r\n    );\r\n    if (payGatePayment) retryVM.payGatePaymentResponse = payGatePayment;\r\n    return retryVM;\r\n  }\r\n\r\n  @action.bound\r\n  private handleRetryIdleTimeout(chargeOrder: ChargeOrder) {\r\n    markRetryConsumed(chargeOrder.id);\r\n    this.orderWizardModel.chargeOrderService.reset();\r\n    window.location.href = this.localizationService.translateGeneral(\"eshop.idle.timeoutRedirect\", undefined, true);\r\n  }\r\n\r\n  @action.bound\r\n  private async handleRetryGooglePayPayment(chargeOrder: ChargeOrder, paymentData: google.payments.api.PaymentData) {\r\n    try {\r\n      await this.paymentService.submitGooglePayment(chargeOrder.id, paymentData);\r\n    } catch {\r\n      // submit failure events are handled by retry VM's own subscribers.\r\n    }\r\n  }\r\n\r\n  @action.bound\r\n  private async handleRetryPayment(chargeOrder: ChargeOrder) {\r\n    await this.paymentService.payGateRedirect(chargeOrder.id, EshopModuleNavigationName);\r\n  }\r\n\r\n  @action.bound\r\n  private async handlePaymentSucceeded(chargeOrder: ChargeOrder) {\r\n    markRetryConsumed(chargeOrder.id);\r\n    await this.orderWizardModel.chargeOrderService.updateChargeOrderStatus(PaymentResult.SUCCESS, chargeOrder, chargeOrder.id);\r\n    await this.tryActivateChild(this.statusVMFactory(chargeOrder));\r\n  }\r\n\r\n  @action.bound\r\n  private async handlePaymentInProgress(chargeOrder: ChargeOrder) {\r\n    markRetryConsumed(chargeOrder.id);\r\n    chargeOrder._status = ChargeOrderStatus.Deferred;\r\n    this.orderWizardModel.chargeOrderService.persistStoredChargeOrder(chargeOrder);\r\n    await this.tryActivateChild(this.statusVMFactory(chargeOrder));\r\n  }\r\n\r\n  @action.bound\r\n  private handleBackToPurchaseWithPrefill() {\r\n    // Reopen the order (preserves data, sets status to Open)\r\n    this.orderWizardModel.chargeOrderService.reopenOrder();\r\n    this.orderWizardModel.initChildrenFromExistingOrder();\r\n    this.tryActivateChild(this.orderWizardModel);\r\n  }\r\n\r\n  async findNavigationChild(navigationName: string) {\r\n    const retrySegments = splitUrlSegments(navigationName);\r\n    if (retrySegments[0] === PaymentRetryNavigationName && retrySegments.length > 1 && retrySegments[1]) {\r\n      const orderId = retrySegments[1];\r\n      if (isRetryBlocked(orderId)) {\r\n        return super.findNavigationChild(OrderNewViewNavigationName);\r\n      }\r\n      let chargeOrder = this.orderWizardModel.chargeOrder;\r\n      if (!chargeOrder || chargeOrder.id !== orderId) {\r\n        const stored = await this.orderWizardModel.chargeOrderService.getStoredChargeOrder(orderId);\r\n        if (stored) {\r\n          stored._origin = \"single\";\r\n          this.orderWizardModel.chargeOrderService.chargeOrder = stored;\r\n          chargeOrder = stored;\r\n        }\r\n      }\r\n      if (chargeOrder?.id) {\r\n        return this.buildPaymentRetryChild(chargeOrder);\r\n      }\r\n    }\r\n    if (navigationName.includes(SingleBankTransferNavigationName) || navigationName.includes(BankTransferNavigationName)) {\r\n      const segments = splitUrlSegments(navigationName);\r\n      if (segments.length > 1 && segments[1]) {\r\n        const chargeOrder = this.orderWizardModel.chargeOrder;\r\n        if (chargeOrder && chargeOrder._status === ChargeOrderStatus.PaidBankTransfer) {\r\n          this.orderWizardModel.chargeOrderService.persistStoredChargeOrder(chargeOrder);\r\n          return this.bankTransferVMFactory(chargeOrder);\r\n        }\r\n      }\r\n    } else if (navigationName.includes(StatusViewNavigationName) || navigationName.includes(SingleStatusViewNavigationName)) {\r\n      const segments = splitUrlSegments(navigationName);\r\n      if (segments.length > 1 && segments[1]) {\r\n        const orderId = segments[1];\r\n        let chargeOrder = this.orderWizardModel.chargeOrder;\r\n\r\n        if (!chargeOrder || chargeOrder.id !== orderId) {\r\n          const storedOrder = await this.orderWizardModel.chargeOrderService.getStoredChargeOrder(orderId);\r\n          if (storedOrder) {\r\n            storedOrder._origin = \"single\";\r\n            this.orderWizardModel.chargeOrderService.chargeOrder = storedOrder;\r\n            chargeOrder = storedOrder;\r\n          }\r\n        }\r\n\r\n        let beStatus: ChargeOrderStatus | undefined;\r\n        try {\r\n          const remoteOrder = await this.repository.get(orderId);\r\n          beStatus = remoteOrder?.status;\r\n          if (remoteOrder && (!chargeOrder || chargeOrder.id !== orderId)) {\r\n            await this.orderWizardModel.chargeOrderService.updateOrder(remoteOrder);\r\n            chargeOrder = this.orderWizardModel.chargeOrderService.chargeOrder;\r\n          }\r\n        } catch {\r\n          beStatus = undefined;\r\n        }\r\n\r\n        // Local status was just set by navigate() based on the URL `result` query param\r\n        // (e.g. result=success → Paid). Trust it as a fallback when BE hasn't caught up\r\n        // yet (race after second-tab payment_confirmation roundtrip).\r\n        const localStatus = chargeOrder?._status;\r\n        const isFinalStatus = (s?: ChargeOrderStatus) => s === ChargeOrderStatus.Paid || s === ChargeOrderStatus.Deferred;\r\n\r\n        if (chargeOrder && (isFinalStatus(beStatus) || isFinalStatus(localStatus))) {\r\n          const finalStatus = isFinalStatus(beStatus) ? beStatus! : localStatus!;\r\n          chargeOrder._status = finalStatus;\r\n          this.orderWizardModel.chargeOrderService.persistStoredChargeOrder(chargeOrder);\r\n          return this.statusVMFactory(chargeOrder);\r\n        } else {\r\n          return super.findNavigationChild(OrderNewViewNavigationName);\r\n        }\r\n      }\r\n    } else if (navigationName === OrderNewViewNavigationName && this.outage) {\r\n      return this.orderOutageViewModelFactory(this.outage);\r\n    }\r\n    return super.findNavigationChild(navigationName);\r\n  }\r\n}\r\n","import { action, computed, observable } from \"mobx\";\nimport { SystemComponent } from \"../models/outage\";\nimport NotificationService from \"./notificationService\";\nimport LocalizationService from \"./localizationService\";\nimport OutageRepository from \"../repositories/outageRepository\";\nimport differenceInMilliseconds from \"date-fns/differenceInMilliseconds\";\nimport isSameDay from \"date-fns/isSameDay\";\nimport { deserializeArray } from \"class-transformer\";\nimport LanguageCode from \"../models/languageCode\";\nimport SystemComponentOutageResponse from \"entities/systemComponentOutageResponse\";\nimport SystemComponentOutagesResponse from \"entities/systemComponentOutagesResponse\";\n\nexport enum OutageStatus {\n  PLANNED = \"planned\",\n  VISIBLE = \"visible\",\n  ACTIVE = \"active\",\n  PASSED = \"passed\",\n}\n\nexport default class OutageService {\n  static validSinceRegex = /%validSince%/g;\n  static validUntilRegex = /%validUntil%/g;\n  static cacheStoreKey = \"outagesCache\";\n  static closedItemsStoreKey = \"closedOutages\";\n\n  @observable _isInitialized = false;\n  @observable outages: SystemComponentOutageResponse[];\n  @observable private closedOutages: SystemComponentOutageResponse[] = [];\n  // Clock is updated when some action happens\n  @observable time = new Date();\n\n  @observable activeOutagesPerComponent: Map<SystemComponent, SystemComponentOutageResponse> = new Map<\n    SystemComponent,\n    SystemComponentOutageResponse\n  >();\n\n  @computed\n  get isInitialized() {\n    return this._isInitialized;\n  }\n\n  @computed\n  get visibleOutages() {\n    if (!this.outages?.length) {\n      return [];\n    }\n    return this.outages?.filter(\n      outage => this.time >= outage.visibleSince && (!outage.validUntil || (outage.validUntil && this.time <= outage.validUntil))\n    );\n  }\n\n  @computed\n  get otherVisibleOutages() {\n    return this.visibleOutages.filter(outage => {\n      const component = this.recognizeComponent(outage);\n\n      return (\n        (component === SystemComponent.OTHER || component === SystemComponent.ESHOP) &&\n        !this.closedOutages.find(item => item.id === outage.id)\n      );\n    });\n  }\n\n  @computed\n  get payGateVisibleOutages() {\n    return this.visibleOutages.filter(outage => {\n      const component = this.recognizeComponent(outage);\n\n      return component === SystemComponent.PAY_GATE;\n    });\n  }\n\n  @computed\n  get isdsVisibleOutages() {\n    return this.visibleOutages.filter(outage => {\n      const component = this.recognizeComponent(outage);\n\n      return component === SystemComponent.ISDS;\n    });\n  }\n\n  @computed\n  get payGateActiveOutage() {\n    return this.activeOutagesPerComponent.get(SystemComponent.PAY_GATE);\n  }\n\n  @computed\n  get isdsActiveOutage() {\n    return this.activeOutagesPerComponent.get(SystemComponent.ISDS);\n  }\n\n  @computed\n  get eshopActiveOutage() {\n    return this.activeOutagesPerComponent.get(SystemComponent.ESHOP);\n  }\n\n  constructor(\n    private repository: OutageRepository,\n    public notificationService: NotificationService,\n    public localizationService: LocalizationService\n  ) {\n    const cachedOutages = sessionStorage.getItem(OutageService.cacheStoreKey);\n    this.closedOutages = deserializeArray(\n      SystemComponentOutageResponse,\n      sessionStorage.getItem(OutageService.closedItemsStoreKey) ?? \"[]\"\n    );\n\n    if (cachedOutages) {\n      this.outages = deserializeArray(SystemComponentOutageResponse, cachedOutages);\n    }\n  }\n\n  async initialize() {\n    const response = await this.repository.getSystemComponentOutages();\n    if (response instanceof SystemComponentOutagesResponse && response?.items?.length > 0) {\n      this.outages = response.items;\n    }\n    sessionStorage.setItem(OutageService.cacheStoreKey, JSON.stringify(response));\n    this.planClockTicks();\n    this._isInitialized = true;\n  }\n\n  getMessage(outage: SystemComponentOutageResponse) {\n    const status = this.getOutageStatus(outage);\n\n    // Do we have translated messages from API?\n    if (outage.localizations) {\n      let localizedMessage;\n      // Try to get message in current language\n      localizedMessage = outage.localizations.find(outage => outage.languageCode === this.localizationService.languageCode);\n      // Otherwise try to get English message\n      if (!localizedMessage) {\n        localizedMessage = outage.localizations.find(outage => outage.languageCode === LanguageCode.En);\n      }\n      if (localizedMessage && localizedMessage.description?.length > 0) {\n        return localizedMessage.description;\n      }\n    }\n\n    // Build default message for appropriate component\n    let message = this.localizationService.translateGeneral(\n      `outages.${outage.systemComponentCode}.${status}.${outage.validUntil ? \"validUntil\" : \"validInfinity\"}`,\n      undefined,\n      true\n    );\n    let sameDay = false;\n\n    if (outage.validUntil) {\n      sameDay = isSameDay(outage.validUntil, outage.validSince);\n      message = message.replace(\n        OutageService.validUntilRegex,\n        sameDay && status === OutageStatus.VISIBLE\n          ? this.localizationService.formatTime(outage.validUntil)\n          : this.localizationService.formatDateTime(outage.validUntil)\n      );\n    }\n\n    message = message.replace(OutageService.validSinceRegex, this.localizationService.formatDateTime(outage.validSince));\n\n    if (outage.description && this.localizationService.locale === \"cs\") {\n      message += `  \\r\\n${outage.description}`;\n    }\n\n    return message;\n  }\n\n  getOutageStatus(outage: SystemComponentOutageResponse) {\n    if (outage.visibleSince > this.time) {\n      return OutageStatus.PLANNED;\n    } else if (outage.visibleSince <= this.time && outage.validSince > this.time) {\n      return OutageStatus.VISIBLE;\n    } else if (\n      outage.validSince <= this.time &&\n      ((outage.validUntil && outage.validUntil >= this.time) || outage.validUntil === undefined)\n    ) {\n      return OutageStatus.ACTIVE;\n    } else {\n      return OutageStatus.PASSED;\n    }\n  }\n\n  isActive(outage?: SystemComponentOutageResponse) {\n    if (!outage) {\n      return false;\n    }\n\n    return outage.validSince <= this.time && (!outage.validUntil || (outage.validUntil && this.time <= outage.validUntil));\n  }\n\n  recognizeComponent(outage: SystemComponentOutageResponse) {\n    if (\n      ([SystemComponent.PAY_GATE, SystemComponent.ISDS, SystemComponent.ESHOP] as string[]).includes(outage.systemComponentCode)\n    ) {\n      return outage.systemComponentCode as SystemComponent;\n    } else {\n      return SystemComponent.OTHER;\n    }\n  }\n\n  @action.bound\n  closeOutage(outage: SystemComponentOutageResponse) {\n    this.closedOutages.push(outage);\n    sessionStorage.setItem(OutageService.closedItemsStoreKey, JSON.stringify(this.closedOutages));\n  }\n\n  private planClockTicks() {\n    this.visibleOutages.forEach(visibleOutage => {\n      this.activateAndDeactivateOutage(visibleOutage);\n\n      if (visibleOutage.validSince > this.time) {\n        setTimeout(this.updateClocks, differenceInMilliseconds(visibleOutage.validSince, this.time));\n      }\n\n      if (visibleOutage.validUntil) {\n        setTimeout(this.updateClocks, differenceInMilliseconds(visibleOutage.validUntil, new Date()));\n      }\n    });\n  }\n\n  @action\n  private activateAndDeactivateOutage(visibleOutage: SystemComponentOutageResponse) {\n    const systemComponent = this.recognizeComponent(visibleOutage);\n    if (systemComponent !== SystemComponent.OTHER) {\n      if (this.time >= visibleOutage.validSince) {\n        this.activeOutagesPerComponent.set(systemComponent, visibleOutage);\n      } else {\n        setTimeout(() => {\n          this.activeOutagesPerComponent.set(systemComponent, visibleOutage);\n        }, differenceInMilliseconds(visibleOutage.validSince, this.time));\n      }\n\n      if (visibleOutage.validUntil) {\n        setTimeout(() => {\n          this.activeOutagesPerComponent.delete(systemComponent);\n        }, differenceInMilliseconds(visibleOutage.validUntil, new Date()));\n      }\n    }\n  }\n\n  @action.bound\n  private updateClocks() {\n    this.time = new Date();\n  }\n}\n","import { ConductorOneChildActive, Router, ScreenBase } from \"@frui.ts/screens\";\nimport LicenseViewModel from \"./steps/licenseViewModel\";\nimport * as Sentry from \"@sentry/react\";\nimport OutagesViewModel from \"viewModels/common/outagesViewModel\";\nimport { SystemComponent } from \"models/outage\";\nimport { action, computed, observable, reaction } from \"mobx\";\nimport type { ErrorMessage } from \"viewModels/common/types\";\nimport LocalizationService from \"services/localizationService\";\nimport { getStatusSteps } from \"./components/orderStatusSteps\";\nimport ChargeTypeViewModel from \"./steps/chargeTypeViewModel\";\nimport ContactViewModel from \"./steps/contactViewModel\";\nimport RecapViewModel from \"./steps/recapViewModel\";\nimport EnumService from \"services/enumService\";\nimport ChargeOrderLicenseItem from \"models/chargeOrderLicenseItem\";\nimport ChargeOrderService from \"services/chargeOrderService\";\nimport chargeOrderFuelItem from \"models/chargeOrderFuelItem\";\nimport ChargeTypesService from \"services/chargeTypesService\";\nimport ChargeOrderChargeItem from \"models/chargeOrderChargeItem\";\nimport AppRouter from \"services/appRouter\";\nimport ChargeOrderContactItem from \"models/chargeOrderContactItem\";\nimport FuelTypeViewModel from \"./steps/fuelTypeViewModel\";\nimport { scrollToFirstError, scrollToTop, scrollToElement } from \"utils/scrollTo\";\nimport { EshopModuleNavigationName } from \"../eshopViewModel\";\nimport { PaymentType } from \"models/payment\";\nimport { PayGateCommonPaymentStatus } from \"models/googlePayInitPaymentResponse\";\nimport ChargeOrder, { ChargeOrderStatus } from \"models/chargeOrder\";\nimport PaymentService from \"services/payment/paymentService\";\nimport SingleStatusViewModel from \"viewModels/common/payment/singleStatusViewModel\";\nimport SingleBankTransferViewModel from \"viewModels/common/payment/singleBankTransferViewModel\";\nimport PaymentResult, { PaymentResultFailureOrigin, PaymentResultFailureType } from \"models/paymentResult\";\nimport SinglePaymentRetryViewModel from \"viewModels/common/payment/singlePaymentRetryViewModel\";\nimport ChargeOrderRepository from \"repositories/chargeOrderRepository\";\nimport { PayGatePaymentStatus } from \"models/payGatePaymentResponse\";\nimport EventBus, {\n  googlePayPayment3DSecureLoaded,\n  googlePayPaymentBrowserFingerprintLoaded,\n  googlePayPaymentStatusChanged,\n  orderIsInvalid,\n  paymentCompleteAlert,\n  paymentEmailAddressInvalid,\n  paymentFailed,\n  paymentFuelTypeNotAllowed,\n  submitGooglePayPaymentDeferred,\n  submitGooglePayPaymentFailure,\n  submitGooglePayPaymentSuccess,\n} from \"services/eventBus\";\nimport {\n  NOTIFICATION_SERVICE_CONNECTION_ID_UNDEFINED,\n  NOTIFICATION_SERVICE_INIT_FAILURE,\n  NOTIFICATION_SERVICE_START_FAILURE,\n  NOTIFICATION_SERVICE_STOP_FAILURE,\n  OUTAGE_ACTIVATED,\n} from \"repositories/order/constants\";\nimport { clearSearchParameters } from \"utils/browserHistory\";\nimport ChargeOrderResponse from \"entities/chargeOrderResponse\";\nimport ChargeTypeResponse from \"entities/chargeTypeResponse\";\n\nexport const OrderNewViewNavigationName = \"order\";\n\n@Router.registerRoute({\n  name: Router.Self,\n  route: OrderNewViewNavigationName,\n  children: [LicenseViewModel, FuelTypeViewModel, ChargeTypeViewModel, ContactViewModel, RecapViewModel],\n})\nexport default class OrderWizardViewModel extends ConductorOneChildActive<ScreenBase> {\n  public payGateOutagesViewModel: OutagesViewModel;\n  public eshopOutagesViewModel: OutagesViewModel;\n  public licenseViewModel: LicenseViewModel;\n  public fuelTypeViewModel: FuelTypeViewModel;\n  public chargeTypeViewModel: ChargeTypeViewModel;\n  public contactViewModel: ContactViewModel;\n  public recapViewModel: RecapViewModel;\n  private unsubscriptions: Array<() => void> = [];\n  private intervalId?: any;\n\n  readonly IDLE_TIMER_DELAY = 1000 * 150; // Time before countdown tooltip is shown (150 seconds)\n  readonly IDLE_TIMER_TIMEOUT = 1000 * 270; // Time when idle modal is shown (270 seconds)\n  readonly IDLE_PROMPT_TIMEOUT = 1000 * 30; // Time in modal before form deletion (30 seconds) - Total: 300s\n  readonly IDLE_TIMER_DEBOUNCE = 250;\n\n  @observable days?: number;\n  @observable chargeId?: string;\n  @observable formElement?: HTMLFormElement;\n  @observable errorMessage?: ErrorMessage;\n  @observable resetChargeOrder?: boolean = false;\n  @observable showIdleModal = false;\n  @observable counter: number;\n  @observable showPaymentLoadingModal = false;\n  @observable showGooglePay3DSecureModal = false;\n  @observable googlePay3DSecureUrl?: string;\n  @observable paymentResultFailureType?: PaymentResultFailureType;\n  @observable paymentResultFailureOrigin?: PaymentResultFailureOrigin;\n  @observable paymentIsComplete = false;\n  @observable proposedPurchaseRequestID?: string;\n  statusNavigation = getStatusSteps();\n\n  constructor(\n    public localizationService: LocalizationService,\n    public chargeOrderService: ChargeOrderService,\n    private chargeTypesService: ChargeTypesService,\n    private enumService: EnumService,\n    private paymentService: PaymentService,\n    private licenseViewModelFactory: ReturnType<typeof LicenseViewModel.Factory>,\n    private chargeTypeViewModelFactory: ReturnType<typeof ChargeTypeViewModel.Factory>,\n    private contactViewModelFactory: ReturnType<typeof ContactViewModel.Factory>,\n    private fuelTypeViewModelFactory: ReturnType<typeof FuelTypeViewModel.Factory>,\n    private recapViewModelFactory: ReturnType<typeof RecapViewModel.Factory>,\n    private outagesViewModelFactory: ReturnType<typeof OutagesViewModel.Factory>,\n    private eventBus: EventBus,\n    private router: AppRouter,\n    private chargeOrderRepository: ChargeOrderRepository\n  ) {\n    super();\n    this.navigationName = OrderNewViewNavigationName;\n    this.nameValue = \"eshop.title\";\n    this.payGateOutagesViewModel = this.outagesViewModelFactory(SystemComponent.PAY_GATE);\n    this.eshopOutagesViewModel = this.outagesViewModelFactory(SystemComponent.ESHOP);\n    this.counter = this.IDLE_PROMPT_TIMEOUT;\n    this.initChildren();\n  }\n\n  private initChildren() {\n    this.children.clear(); // Note, calling this does not remove the underlying view models.\n    this.children.push(\n      (this.licenseViewModel = this.licenseViewModelFactory(\n        new ChargeOrderLicenseItem(\n          this.chargeOrderItem?.licensePlate,\n          this.chargeOrderItem?._licensePlateConfirmation,\n          this.chargeOrderItem?.countryId,\n          true\n        )\n      )),\n      (this.fuelTypeViewModel = this.fuelTypeViewModelFactory(new chargeOrderFuelItem(this.chargeOrderItem._fuelTypeLimitation))),\n      (this.chargeTypeViewModel = this.chargeTypeViewModelFactory(\n        new ChargeOrderChargeItem(this.chargeOrderItem.validity.validSinceDate, this.chargeOrderItem.chargeTypeId)\n      )),\n      (this.contactViewModel = this.contactViewModelFactory(\n        new ChargeOrderContactItem(this.chargeOrder.notificationPreferences)\n      )),\n      (this.recapViewModel = this.recapViewModelFactory(this.chargeOrder, this.payOrder))\n    );\n  }\n\n  private updatePrefilledValues() {\n    this.licenseViewModel.vehicleInfoViewModel.item.countryId = this.chargeOrderItem.countryId;\n    this.licenseViewModel.vehicleInfoViewModel.item.licensePlate = this.chargeOrderItem.licensePlate;\n    if (this.licenseViewModel.vehicleInfoViewModel.item instanceof ChargeOrderLicenseItem) {\n      this.licenseViewModel.vehicleInfoViewModel.item._licensePlateConfirmation = this.chargeOrderItem.licensePlate;\n    }\n  }\n\n  protected async onInitialize(): Promise<Promise<any> | void> {\n    await this.enumService.startInitialization();\n    await this.chargeTypesService.startInitialization();\n\n    return super.onInitialize();\n  }\n\n  protected async onActivate() {\n    if (\n      this.chargeOrderService.chargeOrder.charges.length > 1 ||\n      this.chargeOrderService.chargeOrder._origin === \"multiple\" ||\n      this.chargeOrderService.chargeOrder.charges[0].licensePlates.length >= 1\n    ) {\n      this.resetOrder();\n    }\n    if (!this.activeChild || !this.chargeOrderService.chargeOrder.charges[0].licensePlate) {\n      await this.tryActivateChild(this.licenseViewModel);\n    }\n\n    switch (this.chargeOrder._status) {\n      case ChargeOrderStatus.Paid:\n      case ChargeOrderStatus.PaidBankTransfer:\n      case ChargeOrderStatus.Deferred:\n        this.resetOrder();\n        // UC - User goes come with back button -> disable user to navigate forward\n        window.history.pushState({}, window.document.title, window.location.href);\n        break;\n      case ChargeOrderStatus.Failed:\n        this.initChildren();\n        this.chargeOrderService.reopenOrder();\n        this.router.navigate(LicenseViewModel);\n        break;\n    }\n\n    if (this.chargeId) {\n      await this.chargeOrderService.prefillPremadeOrder({ chargeId: this.chargeId });\n      this.updatePrefilledValues();\n      this.chargeId = undefined;\n\n      if (this.chargeOrderService.smartRedirectRequiresReset) {\n        this.router.navigate(LicenseViewModel);\n      } else {\n        this.router.navigate(RecapViewModel);\n      }\n    } else if (this.proposedPurchaseRequestID) {\n      await this.chargeOrderService.prefillPremadeOrder({ proposedPurchaseRequestID: this.proposedPurchaseRequestID });\n      this.updatePrefilledValues();\n      this.proposedPurchaseRequestID = undefined;\n\n      if (this.chargeOrderService.smartRedirectRequiresReset) {\n        this.router.navigate(LicenseViewModel);\n      } else {\n        this.router.navigate(RecapViewModel);\n      }\n    } else if (this.days) {\n      const chargeTypes = (await this.enumService.lazyValues(\"charge_types\")) as ChargeTypeResponse[];\n      this.resetOrder();\n      this.chargeOrderService.preselectChargeType(this.days, chargeTypes);\n      this.days = undefined;\n    }\n\n    this.unsubscriptions.push(\n      this.eventBus.subscribe(submitGooglePayPaymentFailure, this.googlePayPaymentFailure),\n      this.eventBus.subscribe(submitGooglePayPaymentSuccess, this.googlePayPaymentSuccess),\n      this.eventBus.subscribe(submitGooglePayPaymentDeferred, this.googlePayPaymentDeferred),\n      this.eventBus.subscribe(googlePayPaymentBrowserFingerprintLoaded, this.googlePayPaymentBrowserFingerprintLoaded),\n      this.eventBus.subscribe(googlePayPayment3DSecureLoaded, this.googlePayPayment3DSecureLoaded),\n      this.eventBus.subscribe(googlePayPaymentStatusChanged, this.googlePayPaymentStatusChanged),\n      this.eventBus.subscribe(paymentFailed, this.paymentFailed),\n      this.eventBus.subscribe(orderIsInvalid, this.onOrderValidationFailed),\n      this.eventBus.subscribe(paymentCompleteAlert, this.onPaymentCompleteAlert),\n      this.eventBus.subscribe(paymentFuelTypeNotAllowed, this.onPaymentFuelTypeNotAllowed),\n      this.eventBus.subscribe(paymentEmailAddressInvalid, this.onPaymentEmailAddressInvalid),\n      reaction(\n        () => this.chargeOrderService.isWholeOrderValid,\n        isWholeOrderValid => {\n          if (isWholeOrderValid && this.errorMessage === \"invalidData\") {\n            this.errorMessage = undefined;\n          }\n        }\n      ),\n      reaction(() => this.recapViewModel.chargeOrder._termsAgreement, this.checkTermsAgreementError),\n      reaction(\n        () => this.activeChild,\n        () => {\n          if (this.errorMessage === \"requestProcessingFailed\" && !(this.activeChild instanceof RecapViewModel)) {\n            this.errorMessage = undefined;\n          }\n        }\n      )\n    );\n    this.chargeOrderService.chargeOrder._origin = \"single\";\n    return super.onActivate();\n  }\n\n  protected onDeactivate(isClosing: boolean): Promise<void> {\n    this.days = undefined;\n    this.chargeId = undefined;\n    clearSearchParameters();\n    this.clearTimeoutInterval();\n    if (isClosing) {\n      this.unsubscriptions.forEach(unsubscribe => unsubscribe());\n      this.unsubscriptions = [];\n    }\n    return super.onDeactivate(isClosing);\n  }\n\n  @computed\n  get chargeOrder() {\n    return this.chargeOrderService.chargeOrder;\n  }\n\n  @computed\n  get chargeOrderItem() {\n    return this.chargeOrder.charges[0];\n  }\n\n  @computed\n  get onBackIsDisabled() {\n    return this.activeChild?.navigationName === this.licenseViewModel.navigationName;\n  }\n\n  @computed\n  get navigationStep() {\n    return this.statusNavigation.find(status => status.label === this.activeChild?.navigationName)?.number;\n  }\n\n  @computed\n  get translateCountryWarning() {\n    return this.localizationService.translateAttribute(\"orderItem\", \"countryWarning\");\n  }\n\n  @computed\n  get showInlineErrorMessage() {\n    return this.errorMessage;\n  }\n\n  @computed\n  get showPaymentErrorMessage() {\n    return !!(this.paymentResultFailureType && this.paymentResultFailureOrigin);\n  }\n\n  @computed\n  get showPaymentIsComplete() {\n    return this.paymentIsComplete;\n  }\n\n  @computed\n  get paymentErrorTitle(): string {\n    return this.localizationService.translateGeneral(\n      `eshop.payment.status.failure.messages.${this.paymentResultFailureOrigin}.${this.paymentResultFailureType}.title`\n    );\n  }\n\n  @computed\n  get paymentErrorDescription(): string {\n    return this.localizationService.translateGeneral(\n      `eshop.payment.status.failure.messages.${this.paymentResultFailureOrigin}.${this.paymentResultFailureType}.description`\n    );\n  }\n\n  @computed\n  get showPaymentErrorLink(): boolean {\n    return (\n      this.paymentResultFailureOrigin == PaymentResultFailureOrigin.Init &&\n      this.paymentResultFailureType == PaymentResultFailureType.AlreadyConfirmed\n    );\n  }\n\n  @action.bound\n  navigate(subpath: any, params: any) {\n    if (params && params.proposed_purchase_request_id) {\n      this.proposedPurchaseRequestID = params.proposed_purchase_request_id;\n    }\n    const days = params && Number(params.days);\n    if (!isNaN(days) && days > 0) {\n      this.days = days;\n    }\n\n    this.chargeId = params && params.charge_id;\n\n    // There was `return Promise.resolve()` for some reason, which created double history entry by removing\n    // the querystring from URL\n    return super.navigate(subpath, params);\n  }\n\n  @computed\n  get navigationParams() {\n    return this.days\n      ? {\n          days: this.days,\n          charge_id: this.chargeId,\n        }\n      : undefined;\n  }\n\n  @action.bound\n  closeIdleModal() {\n    this.showIdleModal = false;\n    this.clearTimeoutInterval();\n  }\n\n  @action.bound\n  onIdleTimout() {\n    this.showIdleModal = false;\n    this.chargeOrderService.reset();\n    window.location.href = this.localizationService.translateGeneral(\"eshop.idle.timeoutRedirect\", undefined, true);\n  }\n\n  @action.bound\n  closePaymentFailureModal() {\n    this.paymentResultFailureType = undefined;\n    this.paymentResultFailureOrigin = undefined;\n\n    // Prefill from existing order and navigate to recap if all data is valid\n    this.chargeOrderService.reopenOrder();\n    this.initChildren();\n    this.updatePrefilledValues();\n\n    const orderItem = this.chargeOrderItem;\n    const hasAllData =\n      orderItem?.licensePlate &&\n      orderItem?.countryId &&\n      orderItem?._fuelTypeId &&\n      orderItem?._chargeTypeId &&\n      orderItem?.priceListItemId &&\n      this.chargeOrder.emailAddress;\n\n    if (hasAllData && this.chargeOrderService.validateOrder(true)) {\n      this.router.navigate(RecapViewModel);\n    } else {\n      this.router.navigate(LicenseViewModel);\n    }\n  }\n\n  @action.bound\n  closePaymentComplete() {\n    this.chargeOrderService.reset();\n    localStorage.setItem(\"orderReloaded\", \"true\");\n    this.paymentIsComplete = false;\n    window.location.reload();\n  }\n\n  @action.bound\n  private clearTimeoutInterval() {\n    if (this.intervalId) {\n      clearInterval(this.intervalId);\n      this.intervalId = undefined;\n    }\n  }\n\n  @action.bound\n  async handleOnIdle() {\n    if (this.showIdleModal || this.showPaymentErrorMessage) return;\n\n    this.counter = this.IDLE_PROMPT_TIMEOUT;\n    this.showIdleModal = true;\n    this.intervalId = setInterval(async () => {\n      this.counter = this.counter - 1000;\n      if (this.counter === 0) {\n        this.onIdleTimout();\n      }\n    }, 1000);\n  }\n\n  @action.bound\n  protected paymentFailed(paymentError: { type: string; payload: { message: string } }) {\n    switch (paymentError.payload.message) {\n      case NOTIFICATION_SERVICE_INIT_FAILURE:\n      case NOTIFICATION_SERVICE_CONNECTION_ID_UNDEFINED:\n      case NOTIFICATION_SERVICE_START_FAILURE:\n      case NOTIFICATION_SERVICE_STOP_FAILURE:\n        this.errorMessage = \"websocket\";\n        Sentry.withScope(scope => {\n          scope.setTag(\"websocket\", \"paymentFailed\");\n          const error = new Error(`Notification Service Error: ${paymentError.payload.message}`);\n          error.name = \"NotificationServiceError\";\n          Sentry.captureException(error);\n        });\n        break;\n\n      case OUTAGE_ACTIVATED:\n        scrollToTop();\n        break;\n    }\n\n    this.paymentLoadingModalToggle(false);\n  }\n\n  @action.bound\n  paymentLoadingModalToggle = (open: boolean) => {\n    this.showPaymentLoadingModal = open;\n  };\n\n  @action.bound\n  protected async googlePayPaymentFailure() {\n    this.paymentLoadingModalToggle(false);\n    this.chargeOrder._status = ChargeOrderStatus.Failed;\n    this.chargeOrderService.persistChargeOrder();\n    this.showGooglePay3DSecureModal = false;\n    this.googlePay3DSecureUrl = undefined;\n\n    // Check if payment retry is possible\n    if (this.chargeOrder.id) {\n      try {\n        const payGatePayment = await this.chargeOrderRepository.getPayGatePayment(this.chargeOrder.id);\n        if (payGatePayment?.permittedActions?.paymentRetry?.isAllowed) {\n          await this.router.navigate(SinglePaymentRetryViewModel, { orderId: this.chargeOrder.id });\n          scrollToTop();\n          return;\n        }\n        if (payGatePayment?.status === PayGatePaymentStatus.IN_PROGRESS) {\n          this.chargeOrder._status = ChargeOrderStatus.Deferred;\n          this.chargeOrderService.persistChargeOrder();\n          this.router.navigate(SingleStatusViewModel, { orderId: this.chargeOrder.id }, { result: PaymentResult.DEFERRED });\n          scrollToTop();\n          return;\n        }\n      } catch {\n        // Fall through to existing behavior\n      }\n    }\n\n    this.errorMessage = \"paymentFailure\";\n    this.initChildren();\n    scrollToTop();\n  }\n\n  @action.bound\n  protected async googlePayPaymentSuccess() {\n    this.paymentLoadingModalToggle(false);\n    this.chargeOrder._status = ChargeOrderStatus.Paid;\n    this.showGooglePay3DSecureModal = false;\n    this.router.navigate(SingleStatusViewModel, { orderId: this.chargeOrder.id }, { result: PaymentResult.SUCCESS });\n    scrollToTop();\n\n    try {\n      await this.chargeOrderService.updateChargeOrderStatus(PaymentResult.SUCCESS, this.chargeOrder);\n      this.chargeOrderService.persistChargeOrder();\n    } catch {\n      // the user is already on the success screen.\n    }\n  }\n\n  @action.bound\n  protected googlePayPaymentDeferred() {\n    this.paymentLoadingModalToggle(false);\n    this.chargeOrder._status = ChargeOrderStatus.Deferred;\n    this.chargeOrderService.persistChargeOrder();\n    this.showGooglePay3DSecureModal = false;\n    this.router.navigate(SingleStatusViewModel, { orderId: this.chargeOrder.id }, { result: PaymentResult.DEFERRED });\n    scrollToTop();\n  }\n\n  @action.bound\n  protected googlePayPaymentBrowserFingerprintLoaded() {\n    return this.paymentService.confirmGooglePayPayment(this.chargeOrder.id);\n  }\n\n  @action.bound\n  protected googlePayPayment3DSecureLoaded(result: { payload: { url: string } }) {\n    this.paymentLoadingModalToggle(false);\n    this.showGooglePay3DSecureModal = true;\n    this.googlePay3DSecureUrl = result.payload.url;\n  }\n\n  @action.bound\n  googlePayPaymentStatusChanged(result: { payload: { status: PayGateCommonPaymentStatus } }) {\n    if (result.payload.status != PayGateCommonPaymentStatus.IN_PROGRESS) {\n      this.paymentService.finalizeGooglePayPayment(result.payload.status);\n    }\n  }\n\n  @action.bound\n  private async payOrder(\n    errorMessage: ErrorMessage,\n    paymentData?: google.payments.api.PaymentData,\n    turnstileToken?: string | null\n  ) {\n    this.errorMessage = errorMessage;\n    if (this.errorMessage) {\n      this.paymentLoadingModalToggle(false);\n      return;\n    }\n    this.paymentLoadingModalToggle(true);\n\n    await this.chargeOrderService.payOrder(turnstileToken, true, async (chargeOrder: ChargeOrderResponse) => {\n      await this.chargeOrderService.updateOrder(chargeOrder);\n      this.chargeOrder.id = chargeOrder.id;\n      const order = await this.chargeOrderService.chargeOrder;\n      switch (order.paymentType) {\n        case PaymentType.PayGate:\n          await this.paymentService.payGateRedirect(chargeOrder.id, EshopModuleNavigationName).then(() => {\n            this.paymentLoadingModalToggle(false);\n          });\n          break;\n        case PaymentType.Transfer:\n          this.paymentLoadingModalToggle(false);\n          scrollToTop();\n          const orderId = this.chargeOrderService.orderPaidByBankTransfer();\n          this.router.navigate(SingleBankTransferViewModel, { orderId });\n          break;\n        case PaymentType.GooglePay:\n          try {\n            if (paymentData === undefined) {\n              throw Error(\"payment data not defined\");\n            }\n            await this.paymentService.submitGooglePayment(chargeOrder.id, paymentData);\n          } catch (error) {\n            Sentry.captureException(error);\n            this.googlePayPaymentFailure();\n          }\n          break;\n        default:\n          this.paymentLoadingModalToggle(false);\n          break;\n      }\n    });\n  }\n\n  @action.bound\n  onOrderValidationFailed() {\n    if (this.payGateOutagesViewModel.hasAnyActiveOutage && this.chargeOrder.paymentType === undefined) {\n      // Scroll to outage message when paygate outage is active\n      scrollToTop();\n    } else {\n      scrollToFirstError(this.formElement);\n    }\n  }\n\n  @action.bound\n  onPaymentCompleteAlert(data: ReturnType<typeof paymentCompleteAlert>) {\n    if (data.payload.orderId) {\n      this.paymentIsComplete = true;\n      scrollToElement(this.formElement);\n    }\n  }\n  @action.bound\n  checkTermsAgreementError() {\n    if (\n      this.recapViewModel.chargeOrder._termsAgreement &&\n      this.errorMessage === \"invalidData\" &&\n      this.chargeOrderService.validateOrder(true)\n    ) {\n      this.errorMessage = undefined;\n    }\n  }\n\n  @action.bound\n  async onPaymentFuelTypeNotAllowed() {\n    await this.licenseViewModel.vehicleRegistrationsReaction(false);\n    this.licenseViewModel.updateChargeOrderItem();\n    this.router.navigate(FuelTypeViewModel);\n    this.paymentLoadingModalToggle(false);\n  }\n\n  @action.bound\n  onPaymentEmailAddressInvalid() {\n    this.errorMessage = \"requestProcessingFailed\";\n    this.paymentLoadingModalToggle(false);\n    scrollToTop();\n  }\n\n  @action.bound\n  resetOrder() {\n    this.errorMessage = undefined;\n    this.chargeOrderService.reset();\n    this.initChildren();\n    this.router.navigate(LicenseViewModel);\n  }\n\n  @action.bound\n  initChildrenFromExistingOrder() {\n    this.errorMessage = undefined;\n    this.paymentResultFailureType = undefined;\n    this.paymentResultFailureOrigin = undefined;\n    this.initChildren();\n    this.updatePrefilledValues();\n\n    // Check if all required data is available and valid for direct navigation to recap\n    const orderItem = this.chargeOrderItem;\n    const hasAllData =\n      orderItem?.licensePlate &&\n      orderItem?.countryId &&\n      orderItem?._fuelTypeId &&\n      orderItem?._chargeTypeId &&\n      orderItem?.priceListItemId &&\n      this.chargeOrder.emailAddress;\n\n    if (hasAllData && this.chargeOrderService.validateOrder(true)) {\n      this.router.navigate(RecapViewModel);\n    } else {\n      this.router.navigate(LicenseViewModel);\n    }\n  }\n}\n","import { StepperItem } from \"views/eshop/order/components/stepper\";\n\nexport function getStatusSteps(): StepperItem[] {\n  return [\n    {\n      number: 1,\n      label: \"license\",\n    },\n    {\n      number: 2,\n      label: \"fuel\",\n    },\n    {\n      number: 3,\n      label: \"charge\",\n    },\n    {\n      number: 4,\n      label: \"contact\",\n    },\n    {\n      number: 5,\n      label: \"recap\",\n    },\n  ];\n}\n","import makeWidgetFor from \"../../viewModels/makeWidgetFor\";\nimport EshopViewModel from \"../../viewModels/eshop/eshopViewModel\";\nimport { registerWidget } from \"../widget\";\nimport InitializationWithOutagesService from \"services/initialization/initializationWithOutagesService\";\nimport BasicInitializationService from \"services/initialization/basicInitializationService\";\n\nconst EshopWidgetIdentifier = \"edaz-eshop\";\n\nexport default registerWidget({\n  component: makeWidgetFor(EshopWidgetIdentifier, [EshopViewModel], InitializationWithOutagesService),\n  configuration: {\n    tagname: EshopWidgetIdentifier,\n  },\n});\n","import BasicInitializationService from \"services/initialization/basicInitializationService\";\nimport makeWidgetFor from \"../../viewModels/makeWidgetFor\";\nimport MultiEshopViewModel from \"../../viewModels/multiEshop/multiEshopViewModel\";\nimport { registerWidget } from \"../widget\";\nimport InitializationWithOutagesService from \"services/initialization/initializationWithOutagesService\";\n\nconst MultiEshopWidgetIdentifier = \"edaz-multi-eshop\";\n\nregisterWidget({\n  component: makeWidgetFor(MultiEshopWidgetIdentifier, [MultiEshopViewModel], InitializationWithOutagesService),\n  configuration: {\n    tagname: MultiEshopWidgetIdentifier,\n  },\n});\n","import ExemptionNoticeViewModel from \"viewModels/notice/exemption/exemptionNoticeViewModel\";\nimport makeWidgetFor from \"../../viewModels/makeWidgetFor\";\nimport { registerWidget } from \"../widget\";\nimport InitializationWithOutagesService from \"services/initialization/initializationWithOutagesService\";\n\nconst ExemptionWidgetIdentifier = \"edaz-exemption\";\n\nregisterWidget({\n  component: makeWidgetFor(ExemptionWidgetIdentifier, [ExemptionNoticeViewModel], InitializationWithOutagesService),\n  configuration: {\n    tagname: ExemptionWidgetIdentifier,\n  },\n});\n","import BasicInitializationService from \"../../services/initialization/basicInitializationService\";\nimport makeWidgetFor from \"../../viewModels/makeWidgetFor\";\nimport ChargeManagementViewModel from \"../../viewModels/chargeManagement/chargeManagementViewModel\";\nimport { registerWidget } from \"../widget\";\n\nconst ChargeManagementWidgetIdentifier = \"edaz-charge-management\";\n\nregisterWidget({\n  component: makeWidgetFor(ChargeManagementWidgetIdentifier, [ChargeManagementViewModel], BasicInitializationService),\n  configuration: {\n    tagname: ChargeManagementWidgetIdentifier,\n  },\n});\n","import BasicInitializationService from \"../../services/initialization/basicInitializationService\";\nimport makeWidgetFor from \"../../viewModels/makeWidgetFor\";\nimport ChargeTypesViewModel from \"../../viewModels/chargeTypes/chargeTypesViewModel\";\nimport { registerWidget } from \"../widget\";\n\nconst ChargeTypesWidgetIdentifier = \"edaz-charge-types\";\n\nregisterWidget({\n  component: makeWidgetFor(ChargeTypesWidgetIdentifier, [ChargeTypesViewModel], BasicInitializationService),\n  configuration: {\n    tagname: ChargeTypesWidgetIdentifier,\n  },\n});\n","import BasicInitializationService from \"../../services/initialization/basicInitializationService\";\nimport makeWidgetFor from \"../../viewModels/makeWidgetFor\";\nimport { registerWidget } from \"../widget\";\nimport PriceListViewModel from \"viewModels/common/priceListViewModel\";\n\nconst PriceListWidgetIdentifier = \"edaz-price-list\";\n\nregisterWidget({\n  component: makeWidgetFor(PriceListWidgetIdentifier, [PriceListViewModel], BasicInitializationService),\n  configuration: {\n    tagname: PriceListWidgetIdentifier,\n  },\n});\n","import CustomerReviewViewModel from \"viewModels/customerReview/customerReviewViewModel\";\nimport makeWidgetFor from \"../../viewModels/makeWidgetFor\";\nimport { registerWidget } from \"../widget\";\nimport InitializationWithOutagesService from \"services/initialization/initializationWithOutagesService\";\n\nconst CustomerReviewWidgetIdentifier = \"edaz-customer-review\";\n\nregisterWidget({\n  component: makeWidgetFor(CustomerReviewWidgetIdentifier, [CustomerReviewViewModel], InitializationWithOutagesService),\n  configuration: {\n    tagname: CustomerReviewWidgetIdentifier,\n  },\n});\n","import LicensePlateChangeNoticeViewModel from \"viewModels/notice/licensePlateChange/licensePlateChangeNoticeViewModel\";\nimport makeWidgetFor from \"../../viewModels/makeWidgetFor\";\nimport { registerWidget } from \"../widget\";\nimport InitializationWithOutagesService from \"services/initialization/initializationWithOutagesService\";\n\nconst LicensePlateChangeNoticeWidgetIdentifier = \"edaz-notice\";\n\nregisterWidget({\n  component: makeWidgetFor(\n    LicensePlateChangeNoticeWidgetIdentifier,\n    [LicensePlateChangeNoticeViewModel],\n    InitializationWithOutagesService\n  ),\n  configuration: {\n    tagname: LicensePlateChangeNoticeWidgetIdentifier,\n  },\n});\n","import OmissionNoticeViewModel from \"viewModels/notice/omission/omissionNoticeViewModel\";\nimport makeWidgetFor from \"../../viewModels/makeWidgetFor\";\nimport { registerWidget } from \"../widget\";\nimport InitializationWithOutagesService from \"services/initialization/initializationWithOutagesService\";\n\nconst OmissionNoticeWidgetIdentifier = \"edaz-omission\";\n\nregisterWidget({\n  component: makeWidgetFor(OmissionNoticeWidgetIdentifier, [OmissionNoticeViewModel], InitializationWithOutagesService),\n  configuration: {\n    tagname: OmissionNoticeWidgetIdentifier,\n  },\n});\n","import BasicInitializationService from \"../../services/initialization/basicInitializationService\";\nimport makeWidgetFor from \"../../viewModels/makeWidgetFor\";\nimport PaymentValidationViewModel from \"../../viewModels/paymentValidation/paymentValidationViewModel\";\nimport { registerWidget } from \"../widget\";\n\nconst PaymentValidationWidgetIdentifier = \"edaz-payment-validation\";\n\nregisterWidget({\n  component: makeWidgetFor(PaymentValidationWidgetIdentifier, [PaymentValidationViewModel], BasicInitializationService),\n  configuration: {\n    tagname: PaymentValidationWidgetIdentifier,\n  },\n});\n","import BasicInitializationService from \"../../services/initialization/basicInitializationService\";\nimport makeWidgetFor from \"../../viewModels/makeWidgetFor\";\nimport TradingPlacesViewModel from \"../../viewModels/tradingPlaces/tradingPlacesViewModel\";\nimport { registerWidget } from \"../widget\";\n\nconst TradingPlacesWidgetIdentifier = \"edaz-trading-places\";\n\nregisterWidget({\n  component: makeWidgetFor(TradingPlacesWidgetIdentifier, [TradingPlacesViewModel], BasicInitializationService),\n  configuration: {\n    tagname: TradingPlacesWidgetIdentifier,\n  },\n});\n","enum ClassifiedFuelType {\n  Electricity = \"ELECTRICITY\",\n  Hydrogen = \"HYDROGEN\",\n}\nexport default ClassifiedFuelType;\n","import { BusyWatcher, Router, ScreenBase } from \"@frui.ts/screens\";\nimport { validate, isValid } from \"@frui.ts/validation\";\nimport { action, computed, observable, reaction } from \"mobx\";\nimport LocalizationService from \"services/localizationService\";\nimport AppRouter from \"services/appRouter\";\nimport VehicleInfoViewModel from \"viewModels/common/vehicleInfoViewModel\";\nimport { interfaces } from \"inversify\";\nimport { attachAutomaticBlurValidator } from \"utils/validationPatch\";\nimport ChargeOrderLicenseItem, {\n  CountryIdValidationRules,\n  LicensePlateConfirmationValidationRules,\n  LicensePlateValidationRules,\n  ChargeOrderLicenseItemValidationRules,\n} from \"models/chargeOrderLicenseItem\";\nimport { scrollToElement, scrollToFirstError } from \"utils/scrollTo\";\nimport type { ErrorMessage } from \"viewModels/common/types\";\nimport VehicleRepository from \"repositories/vehicleRepository\";\nimport ChargeOrderInstructionsResponse from \"entities/chargeOrderInstructionsResponse\";\nimport ChargeOrderService from \"services/chargeOrderService\";\nimport EnumService from \"services/enumService\";\nimport ExemptionReasonResponse from \"entities/exemptionReasonResponse\";\nimport ChargeVehicleWarningReason from \"entities/chargeVehicleWarningReason\";\nimport ClassifiedFuelType from \"entities/classifiedFuelType\";\nimport ExemptionReason from \"entities/exemptionReason\";\nimport ChargeVehicleWarningReasonOrder from \"entities/chargeVehicleWarningReasonOrder\";\nimport FuelTypeViewModel from \"./fuelTypeViewModel\";\nimport OrderWizardViewModel from \"../orderWizardModel\";\n\nexport const LicenseViewNavigationName = \"license\";\n\n@Router.registerRoute({\n  name: Router.Self,\n  route: LicenseViewNavigationName,\n})\nexport default class LicenseViewModel extends ScreenBase {\n  public vehicleInfoViewModel: VehicleInfoViewModel;\n  private unsubscriptions: Array<() => void> = [];\n\n  @observable errorMessage?: ErrorMessage;\n  @observable step?: number;\n  @observable loading?: boolean = false;\n  @observable formElement?: HTMLFormElement;\n  @observable instructions?: ChargeOrderInstructionsResponse;\n  busyWatcher = new BusyWatcher();\n\n  constructor(\n    public chargeOrderLicenseItem: ChargeOrderLicenseItem,\n    public localizationService: LocalizationService,\n    private router: AppRouter,\n    private vehicleRepository: VehicleRepository,\n    private chargeOrderService: ChargeOrderService,\n    private enumService: EnumService,\n    private vehicleInfoModelFactory: ReturnType<typeof VehicleInfoViewModel.Factory>\n  ) {\n    super();\n    this.navigationName = LicenseViewNavigationName;\n    this.nameValue = \"eshop.title\";\n    this.vehicleInfoViewModel = this.vehicleInfoModelFactory(this.chargeOrderLicenseItem, {\n      attachValidator: true,\n      licensePlateConfirmation: true,\n      loadCountriesOnInit: true,\n      maxLicensePlateSize: ChargeOrderLicenseItemValidationRules.licensePlate?.hasRequiredLength.max,\n    });\n    attachAutomaticBlurValidator(this.chargeOrderLicenseItem, {\n      ...LicensePlateValidationRules,\n      ...LicensePlateConfirmationValidationRules,\n      ...CountryIdValidationRules,\n    });\n  }\n  protected onInitialize(): Promise<any> | void {\n    this.enumService.values(\"exemption_reasons\") as ExemptionReasonResponse[];\n    this.step = 1;\n    this.loading = false;\n    this.unsubscriptions.push(\n      reaction(() => [this.chargeOrderLicenseItem.countryId, this.chargeOrderLicenseItem.licensePlate], this.onChangeLicenseItem)\n    );\n    return super.onInitialize();\n  }\n\n  protected async onActivate() {\n    if (this.stepper) {\n      scrollToElement(this.stepper);\n    }\n    this.errorMessage = undefined;\n\n    // Only re-validate if user already passed validation before (e.g., after language switch)\n    // Do not auto-navigate when coming from validation page with prefilled data or on refresh\n    if (\n      this.chargeOrderLicenseItem.licensePlate &&\n      this.chargeOrderLicenseItem._licensePlateConfirmation &&\n      this.chargeOrderLicenseItem.countryId &&\n      this.step === 1 &&\n      this.chargeOrderService.chargeOrderItem._licenseValidated\n    ) {\n      await this.vehicleRegistrationsReaction(false);\n    }\n\n    return super.onActivate();\n  }\n\n  protected onDeactivate(isClosing: boolean) {\n    if (isClosing) {\n      this.unsubscriptions.forEach(unsubscribe => unsubscribe());\n      this.unsubscriptions = [];\n    }\n    return super.onDeactivate(isClosing);\n  }\n\n  @computed\n  get isDisabled() {\n    return isValid(this.chargeOrderLicenseItem);\n  }\n\n  @computed\n  get exemptionReasonWarnings() {\n    if (this.instructions instanceof ChargeOrderInstructionsResponse) {\n      // Filter out VEHICLE_REGISTER_FUEL_TYPE_BASED_EXEMPTION - it has its own UI component\n      return this.instructions._possibleExemptionReason?.filter(\n        reason => reason !== ChargeVehicleWarningReason.VehicleRegisterFuelTypeBasedExemption\n      );\n    }\n    return [];\n  }\n\n  @computed\n  get hasElectricVehicleExemption() {\n    if (this.instructions instanceof ChargeOrderInstructionsResponse) {\n      return this.instructions.warningReasons?.includes(ChargeVehicleWarningReason.VehicleRegisterFuelTypeBasedExemption);\n    }\n    return false;\n  }\n\n  @computed\n  get classifiedFuelType(): ClassifiedFuelType | undefined {\n    if (this.instructions instanceof ChargeOrderInstructionsResponse) {\n      return this.instructions.classifiedFuelType;\n    }\n    return undefined;\n  }\n\n  @computed\n  get electricVehicleExemptionTitle(): string {\n    return this.localizationService.translateGeneral(\"eshop.order.license.electricVehicleExemption.title\");\n  }\n\n  @computed\n  get electricVehicleExemptionDescription(): string {\n    const fuelType = this.classifiedFuelType || ClassifiedFuelType.Electricity;\n    const fuelTypeLabel = this.localizationService.translateGeneral(\n      `eshop.order.license.electricVehicleExemption.fuelType.${fuelType}`\n    );\n    const description = this.localizationService.translateGeneral(\"eshop.order.license.electricVehicleExemption.description\");\n    return description.replace(\"%FUEL_TYPE%\", fuelTypeLabel);\n  }\n\n  @computed\n  get allowResetOrderByLicensePlate() {\n    return (\n      this.chargeOrderService.chargeOrderItem.licensePlate &&\n      this.chargeOrderService.chargeOrderItem._licensePlateConfirmation &&\n      this.chargeOrderLicenseItem.licensePlate !== this.chargeOrderService.chargeOrderItem.licensePlate &&\n      this.chargeOrderLicenseItem._licensePlateConfirmation !== this.chargeOrderService.chargeOrderItem._licensePlateConfirmation\n    );\n  }\n\n  @computed\n  get stepper() {\n    return window.document.getElementById(\"stepper\");\n  }\n\n  @action.bound\n  translateExemptionReasonWarnings(code: string): string {\n    if (code === \"IDENTIFIED_POSSIBLE_EXEMPTION\") {\n      if (\n        !this.instructions ||\n        !this.instructions.possibleExemptionReasonIds ||\n        this.instructions.possibleExemptionReasonIds.length < 1\n      ) {\n        return this.localizationService.translateGeneral(\"errors.generic\");\n      }\n      const possibleExemptionReasonId = this.instructions.possibleExemptionReasonIds[0];\n      const exemptionReasons = this.enumService.values(\"exemption_reasons\") as ExemptionReasonResponse[];\n      const matchingReason = exemptionReasons.find(x => x.id === possibleExemptionReasonId);\n      switch (matchingReason?.exemptionReason) {\n        case ExemptionReason.C:\n          return this.translateExemptionReasonWarnings(\"IDENTIFIED_POSSIBLE_EXEMPTION_C\");\n        case ExemptionReason.P:\n          return this.translateExemptionReasonWarnings(\"IDENTIFIED_POSSIBLE_EXEMPTION_P\");\n        case ExemptionReason.O:\n        case ExemptionReason.O1:\n        case ExemptionReason.O2:\n          return this.translateExemptionReasonWarnings(\"IDENTIFIED_POSSIBLE_EXEMPTION_O\");\n        default:\n          return this.localizationService.translateGeneral(\"errors.generic\");\n      }\n    }\n    return this.localizationService.translateGeneral(`eshop.order.license.exemptionReasonWarnings.${code}`);\n  }\n\n  @action.bound\n  private resolveRegistrationWarning(response: ChargeOrderInstructionsResponse) {\n    const exemptionReasons = this.enumService.values(\"exemption_reasons\") as ExemptionReasonResponse[];\n    const filteredExemptionReason = response.possibleExemptionReasonIds\n      ?.map(id => exemptionReasons.find(reason => reason.id === id)?.exemptionReason)\n      .map(reason => {\n        if (reason?.includes(ExemptionReason.O)) {\n          return ExemptionReason.O;\n        }\n        return reason;\n      })\n      .filter((value, index, self) => {\n        return self.indexOf(value) === index;\n      });\n    if (response.warningReasons?.includes(ChargeVehicleWarningReason.IdentifiedPossibleExemption)) {\n      const warningReasons = response.warningReasons.filter(\n        reason => reason !== ChargeVehicleWarningReason.IdentifiedPossibleExemption\n      );\n      const possibleExemptionReason = filteredExemptionReason?.map(reason => {\n        return `${ChargeVehicleWarningReason.IdentifiedPossibleExemption}_${reason}`;\n      });\n      if (possibleExemptionReason?.length) {\n        response._possibleExemptionReason = [...warningReasons, ...possibleExemptionReason];\n      }\n    } else {\n      response._possibleExemptionReason = response.warningReasons;\n    }\n    response._possibleExemptionReason = response._possibleExemptionReason?.sort((a, b) => {\n      return (\n        ChargeVehicleWarningReasonOrder[a as keyof ChargeVehicleWarningReasonOrder] -\n        ChargeVehicleWarningReasonOrder[b as keyof ChargeVehicleWarningReasonOrder]\n      );\n    });\n    return response;\n  }\n\n  @action.bound\n  public async onContinue() {\n    if (this.step === 1) {\n      this.vehicleRegistrationsReaction();\n      return;\n    }\n    if (this.step === 2 && !this.validateAll()) {\n      return;\n    }\n    await this.updateChargeOrderItem();\n    this.router.navigate(FuelTypeViewModel);\n  }\n\n  @action.bound\n  private onChangeLicenseItem() {\n    this.step = 1;\n    this.instructions = undefined;\n  }\n\n  @action.bound\n  public async vehicleRegistrationsReaction(autoNavigate = true) {\n    const { countryId, licensePlate } = this.chargeOrderLicenseItem;\n    const isValid = validate(this.chargeOrderLicenseItem);\n\n    if (countryId && licensePlate && isValid) {\n      try {\n        this.loading = true;\n        const response = await this.vehicleRepository.getChargeOrderInstruction(countryId, licensePlate);\n        if (response instanceof ChargeOrderInstructionsResponse) {\n          this.instructions = this.resolveRegistrationWarning(response);\n        }\n        this.step = 2;\n\n        // Save data to storage immediately after validation to preserve them on language switch\n        await this.updateChargeOrderItem();\n\n        if (\n          autoNavigate &&\n          !this.instructions?.warningReasons?.length &&\n          !this.instructions?.possibleExemptionReasonIds?.length\n        ) {\n          this.onContinue();\n        }\n      } catch (e) {\n        // Silence catch of background process\n      } finally {\n        this.loading = false;\n      }\n    }\n  }\n\n  @action.bound\n  public async updateChargeOrderItem() {\n    const chargeOrderItem = this.chargeOrderService.chargeOrderItem;\n\n    chargeOrderItem.licensePlate = this.chargeOrderLicenseItem.licensePlate;\n    chargeOrderItem._licensePlateConfirmation = this.chargeOrderLicenseItem._licensePlateConfirmation;\n    chargeOrderItem.countryId = this.chargeOrderLicenseItem.countryId;\n    chargeOrderItem._licenseValidated = true;\n\n    if (this.instructions instanceof ChargeOrderInstructionsResponse && this.instructions.fuelTypeLimitation) {\n      chargeOrderItem._fuelTypeLimitation = this.instructions?.fuelTypeLimitation;\n    } else {\n      chargeOrderItem._fuelTypeLimitation = undefined;\n    }\n\n    this.chargeOrderService.persistChargeOrder();\n  }\n\n  @action.bound\n  public validateAll() {\n    this.errorMessage = undefined;\n\n    const isValid = validate(this.chargeOrderLicenseItem);\n\n    if (!isValid) {\n      this.errorMessage = \"invalidData\";\n      scrollToFirstError(this.formElement);\n    }\n\n    return isValid;\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (chargeOrderLicenseItem: ChargeOrderLicenseItem) =>\n      new LicenseViewModel(\n        chargeOrderLicenseItem,\n        container.get(LocalizationService),\n        container.get(AppRouter),\n        container.get(VehicleRepository),\n        container.get(ChargeOrderService),\n        container.get(EnumService),\n        container.get(VehicleInfoViewModel.Factory)\n      );\n  }\n}\n","import BasicInitializationService from \"../../services/initialization/basicInitializationService\";\nimport makeWidgetFor from \"../../viewModels/makeWidgetFor\";\nimport KioskViewModel from \"../../viewModels/tradingPlaces/kioskViewModel\";\nimport { registerWidget } from \"../widget\";\n\nconst KioskWidgetIdentifier = \"edaz-kiosk\";\n\nregisterWidget({\n  component: makeWidgetFor(KioskWidgetIdentifier, [KioskViewModel], BasicInitializationService),\n  configuration: {\n    tagname: KioskWidgetIdentifier,\n  },\n});\n","import BasicInitializationService from \"../../services/initialization/basicInitializationService\";\nimport makeWidgetFor from \"../../viewModels/makeWidgetFor\";\nimport { registerWidget } from \"../widget\";\nimport RoadMapViewModel from \"../../viewModels/tradingPlaces/roadMapViewModel\";\n\nconst TollRoadsWidgetIdentifier = \"edaz-toll-roads\";\n\nregisterWidget({\n  component: makeWidgetFor(TollRoadsWidgetIdentifier, [RoadMapViewModel], BasicInitializationService),\n  configuration: {\n    tagname: TollRoadsWidgetIdentifier,\n  },\n});\n","import { registerWidget } from \"../widget\";\nimport makeWidgetFor from \"../../viewModels/makeWidgetFor\";\nimport OutagesWidgetViewModel from \"../../viewModels/outages/outagesWidgetViewModel\";\nimport LazyInitializationService from \"../../services/initialization/lazyInitializationService\";\n\nconst OutagesWidgetIdentifier = \"edaz-outages\";\n\nregisterWidget({\n  component: makeWidgetFor(OutagesWidgetIdentifier, [OutagesWidgetViewModel], LazyInitializationService),\n  configuration: {\n    tagname: OutagesWidgetIdentifier,\n  },\n});\n","import makeWidgetFor from \"../../viewModels/makeWidgetFor\";\nimport { registerWidget } from \"../widget\";\nimport InitializationWithOutagesService from \"services/initialization/initializationWithOutagesService\";\nimport RefundRequestNoticeViewModel from \"../../viewModels/notice/refundRequest/refundRequestNoticeViewModel\";\n\nconst RefundRequestWidgetIdentifier = \"edaz-refund-request\";\n\nregisterWidget({\n  component: makeWidgetFor(RefundRequestWidgetIdentifier, [RefundRequestNoticeViewModel], InitializationWithOutagesService),\n  configuration: {\n    tagname: RefundRequestWidgetIdentifier,\n  },\n});\n","import { attachAutomaticDirtyWatcher } from \"@frui.ts/dirtycheck\";\r\nimport { bound } from \"@frui.ts/helpers\";\r\nimport { action, observable } from \"mobx\";\r\nimport subMinutes from \"date-fns/subMinutes\";\r\nimport VehicleChangeDuringValidityRequest from \"models/vehicleChangeDuringValidityRequest\";\r\nimport ChargeRepository from \"repositories/chargeRepository\";\r\nimport EshopError from \"../models/eshopError\";\r\nimport EventBus, {\r\n  chargeValidationFailed,\r\n  downloadPaymentConfirmationFailure,\r\n  downloadPaymentConfirmationSuccess,\r\n  emailUpdated,\r\n  putChargeContactFailure,\r\n  putChargeValidityFailure,\r\n  putChargeValiditySuccess,\r\n  putChargeVehicleFailure,\r\n  sendChargePaymentConfirmationEmailFailure,\r\n  sendChargePaymentConfirmationEmailSuccess,\r\n} from \"./eventBus\";\r\nimport SignalRNotificationService from \"./signalR/notification/signalRNotificationService\";\r\nimport ChargeDetailResponse from \"entities/chargeDetailResponse\";\r\nimport type { ContactEditationTriggerer } from \"models/notificationPreferences\";\r\nimport ChargeValidityRequest from \"entities/chargeValidityRequest\";\r\nimport { isSameDay } from \"date-fns\";\r\nimport ChargeTypesService from \"./chargeTypesService\";\r\nimport VehicleRepository from \"repositories/vehicleRepository\";\r\nimport NotificationPreferences from \"models/notificationPreferences\";\r\nimport ContactInfoChangeRequest from \"entities/contactInfoChangeRequest\";\r\nimport TimeService from \"./timeService\";\r\nimport { isSameOrBeforePragueDay, utcToCZZonedTime } from \"utils/dateUtils\";\r\nimport { dateToIsoDate } from \"../utils/dateUtils\";\r\nimport ChargeChangeRejectionReason from \"entities/chargeChangeRejectionReason\";\r\nimport ChargeEmailAddressChangeRejectionReason from \"entities/chargeEmailAddressChangeRejectionReason\";\r\nimport ChargeNotificationPreferencesChangeRejectionReason from \"entities/chargeNotificationPreferencesChangeRejectionReason\";\r\n\r\nexport const DOWNLOAD_PAYMENT_CONFIRMATION_REQUEST_FAILURE = \"DOWNLOAD_PAYMENT_CONFIRMATION_REQUEST_FAILURE\";\r\nexport const SEND_CHARGE_PAYMENT_CONFIRMATION_EMAIL_REQUEST_FAILURE = \"SEND_CHARGE_PAYMENT_CONFIRMATION_EMAIL_REQUEST_FAILURE\";\r\nexport const PUT_CHARGE_CONTACT_REQUEST_FAILURE = \"PUT_CHARGE_CONTACT_REQUEST_FAILURE\";\r\nexport const PUT_CHARGE_VALIDITY_REQUEST_FAILURE = \"PUT_CHARGE_VALIDITY_REQUEST_FAILURE\";\r\nexport const PUT_CHARGE_VEHICLE_REQUEST_FAILURE = \"PUT_CHARGE_VEHICLE_REQUEST_FAILURE\";\r\nexport const WEBSOCKET_CONNECTION_FAILURE = \"WEBSOCKET_CONNECTION_FAILURE\";\r\nexport const CHANGE_NOT_ALLOWED_ANOTHER_CHARGE_FOR_VEHICLE_WITH_VALIDITY_OVERLAP_EXISTS =\r\n  \"CHANGE_NOT_ALLOWED_ANOTHER_CHARGE_FOR_VEHICLE_WITH_VALIDITY_OVERLAP_EXISTS\";\r\nconst SESSION_STORAGE_CHARGE_MANAGEMENT_KEY = \"charge_management\";\r\nconst SESSION_STORAGE_CHARGE_MANAGEMENT_TIME_KEY = \"charge_management_time\";\r\nexport default class ChargeManagementService {\r\n  @observable charge?: ChargeDetailResponse;\r\n  @observable turnstileToken?: string;\r\n\r\n  constructor(\r\n    private repository: ChargeRepository,\r\n    private chargeTypesService: ChargeTypesService,\r\n    private timeService: TimeService,\r\n    private chargeRepository: ChargeRepository,\r\n    private vehicleRepository: VehicleRepository,\r\n    private eventBus: EventBus,\r\n    private signalRNotificationService: SignalRNotificationService\r\n  ) {\r\n    this.eventBus.subscribe(putChargeValiditySuccess, this.onChargeValidityUpdateSuccess);\r\n  }\r\n\r\n  @bound\r\n  protected onChargeValidityUpdateSuccess(data: ReturnType<typeof putChargeValiditySuccess>) {\r\n    const validSince = data.payload.validity.validSince;\r\n    this.charge!.permittedActions.validityChange.isAllowed = false;\r\n\r\n    // Reset flag when charge become valid - subMinute is needed to deal with server vs. client clock inaccuracy\r\n    if (validSince && subMinutes(validSince, 1) <= new Date() && this.charge) {\r\n      /*   this.charge.vehicle.canBeChangedBeforeValidity = true;\r\n      this.charge.vehicle.canBeChangedDuringValidity = false; */\r\n    }\r\n  }\r\n\r\n  @action.bound\r\n  getUntilValidity(chargeTypeId: string, validSince: Date) {\r\n    return this.chargeRepository.chargeValidity(chargeTypeId, validSince);\r\n  }\r\n\r\n  @action.bound\r\n  getPriceListItem(priceListId: string) {\r\n    return this.chargeTypesService.chargePriceList.items.find(item => item.id === priceListId);\r\n  }\r\n\r\n  @action.bound\r\n  getCharge(countryId: string, licensePlate: string, authCode: string, turnstileToken: string) {\r\n    return this.chargeRepository.getCharge(countryId, licensePlate, authCode, turnstileToken).then(response => {\r\n      if (response instanceof EshopError) {\r\n        this.eventBus.publish(chargeValidationFailed({ type: response.type }));\r\n        return response;\r\n      } else {\r\n        Object.assign(response.notificationPreferences, response.notificationPreferences);\r\n        attachAutomaticDirtyWatcher(response.notificationPreferences, true);\r\n        response.authCode = authCode;\r\n\r\n        this.charge = response;\r\n        return this.charge;\r\n      }\r\n    });\r\n  }\r\n\r\n  @action.bound\r\n  editChargeValidity = async (validSince: Date, emailAddress: string | undefined, turnstileToken: string) => {\r\n    const countryId = this.charge?.vehicle.countryId;\r\n    const licensePlate = this.charge?.vehicle.licensePlate;\r\n    const authCode = this.charge?.authCode;\r\n    let connectionId;\r\n\r\n    try {\r\n      if (!countryId || !licensePlate || !authCode || !validSince) {\r\n        throw new Error(\"Missing some arguments\");\r\n      }\r\n      await this.signalRNotificationService.initialize();\r\n      this.signalRNotificationService.subscribeToPutChargeValidityResult(emailAddress);\r\n      await this.signalRNotificationService.serviceStart();\r\n      connectionId = this.signalRNotificationService.connectionId;\r\n\r\n      if (!connectionId) {\r\n        throw new Error(\"Connection id is not set\");\r\n      }\r\n      if (!turnstileToken) {\r\n        throw new Error(\"Missing turnstile token\");\r\n      }\r\n    } catch (e) {\r\n      this.eventBus.publish(putChargeValidityFailure({ type: WEBSOCKET_CONNECTION_FAILURE }));\r\n      return;\r\n    }\r\n\r\n    const hasImmediateValidity = isSameOrBeforePragueDay(validSince, this.timeService.currentServerTime ?? new Date());\r\n    const request = {\r\n      hasImmediateValidity,\r\n      validSinceDate: hasImmediateValidity ? undefined : validSince,\r\n    } as ChargeValidityRequest;\r\n\r\n    return this.chargeRepository\r\n      .editChargeValidity(countryId, licensePlate, emailAddress, authCode, connectionId, request, turnstileToken)\r\n      .then(response => {\r\n        if (response) {\r\n          this.eventBus.publish(putChargeValidityFailure({ type: response.type }));\r\n        }\r\n      })\r\n      .catch(() => {\r\n        this.eventBus.publish(putChargeValidityFailure({ type: PUT_CHARGE_VALIDITY_REQUEST_FAILURE }));\r\n      });\r\n  };\r\n\r\n  @action.bound\r\n  async getChargeOrderInstructions(newCountryId: string, newLicensePlate: string) {\r\n    return this.vehicleRepository.getChargeOrderInstruction(newCountryId, newLicensePlate);\r\n  }\r\n\r\n  @action.bound\r\n  async getChargeValidityInstructions(countryId: string, licensePlate: string, newValidSince?: Date, chargeId?: string) {\r\n    const hasImmediateValidity = newValidSince\r\n      ? isSameOrBeforePragueDay(newValidSince, this.timeService.currentServerTime ?? new Date())\r\n      : false;\r\n\r\n    return this.vehicleRepository.proposedValidity(\r\n      countryId,\r\n      licensePlate,\r\n      this.charge!.priceListItemId,\r\n      hasImmediateValidity,\r\n      undefined,\r\n      newValidSince ? dateToIsoDate(newValidSince) : \"\",\r\n      chargeId\r\n    );\r\n  }\r\n\r\n  @action.bound\r\n  async editVehicle(newCountryId: string, newLicensePlate: string, emailAddress: string | undefined, turnstileToken: string) {\r\n    const countryId = this.charge?.vehicle.countryId;\r\n    const licensePlate = this.charge?.vehicle.licensePlate;\r\n    const authCode = this.charge?.authCode;\r\n    let connectionId;\r\n\r\n    try {\r\n      if (!countryId || !licensePlate || !authCode || !newCountryId || !newLicensePlate) {\r\n        throw new Error(\"Missing some arguments\");\r\n      }\r\n      await this.signalRNotificationService.initialize();\r\n      this.signalRNotificationService.subscribeToPutChargeVehicleResult(emailAddress);\r\n      await this.signalRNotificationService.serviceStart();\r\n      connectionId = this.signalRNotificationService.connectionId;\r\n\r\n      if (!connectionId) {\r\n        throw new Error(\"Connection id is not set\");\r\n      }\r\n\r\n      if (!turnstileToken) {\r\n        throw new Error(\"Missing turnstile token\");\r\n      }\r\n    } catch (e) {\r\n      this.eventBus.publish(putChargeVehicleFailure({ type: WEBSOCKET_CONNECTION_FAILURE }));\r\n      return;\r\n    }\r\n\r\n    return this.chargeRepository\r\n      .editVehicle(countryId, licensePlate, emailAddress, authCode, connectionId, newCountryId, newLicensePlate, turnstileToken)\r\n      .then(response => {\r\n        if (response) {\r\n          this.eventBus.publish(putChargeVehicleFailure({ type: response.type }));\r\n        }\r\n      })\r\n      .catch(() => {\r\n        this.eventBus.publish(putChargeVehicleFailure({ type: PUT_CHARGE_VEHICLE_REQUEST_FAILURE }));\r\n      });\r\n  }\r\n\r\n  @action.bound\r\n  async editActiveCharge(request: VehicleChangeDuringValidityRequest, turnstileToken: string) {\r\n    const countryId = this.charge?.vehicle.countryId;\r\n    const licensePlate = this.charge?.vehicle.licensePlate;\r\n    const authCode = this.charge?.authCode;\r\n    let connectionId;\r\n\r\n    try {\r\n      if (!countryId || !licensePlate || !authCode) {\r\n        throw new Error(\"Missing some arguments\");\r\n      }\r\n      await this.signalRNotificationService.initialize();\r\n      this.signalRNotificationService.subscribeToPutChargeVehicleChangesDuringValidityResult(request.emailAddress);\r\n      await this.signalRNotificationService.serviceStart();\r\n      connectionId = this.signalRNotificationService.connectionId;\r\n\r\n      if (!connectionId) {\r\n        throw new Error(\"Connection id is not set\");\r\n      }\r\n\r\n      if (!turnstileToken) {\r\n        throw new Error(\"Missing turnstile token\");\r\n      }\r\n    } catch (e) {\r\n      this.eventBus.publish(putChargeVehicleFailure({ type: WEBSOCKET_CONNECTION_FAILURE }));\r\n      return;\r\n    }\r\n\r\n    return this.chargeRepository\r\n      .editActiveChargeVehicle(countryId, licensePlate, authCode, connectionId, request, turnstileToken)\r\n      .then(response => {\r\n        if (response) {\r\n          this.eventBus.publish(putChargeVehicleFailure({ type: response.type }));\r\n        }\r\n      })\r\n      .catch(() => {\r\n        this.eventBus.publish(putChargeVehicleFailure({ type: PUT_CHARGE_VEHICLE_REQUEST_FAILURE }));\r\n      });\r\n  }\r\n\r\n  @action.bound\r\n  async editContact(\r\n    notificationPreferences: NotificationPreferences,\r\n    triggerer: ContactEditationTriggerer,\r\n    turnstileToken: string\r\n  ) {\r\n    const countryId = this.charge?.vehicle.countryId;\r\n    const licensePlate = this.charge?.vehicle.licensePlate;\r\n    const authCode = this.charge?.authCode;\r\n    let connectionId;\r\n\r\n    try {\r\n      if (!countryId || !licensePlate || !authCode) {\r\n        throw new Error(\"Missing some arguments\");\r\n      }\r\n      await this.signalRNotificationService.initialize();\r\n      this.signalRNotificationService.subscribeToPutChargeContactResult(triggerer);\r\n      await this.signalRNotificationService.serviceStart();\r\n      connectionId = this.signalRNotificationService.connectionId;\r\n\r\n      if (!connectionId) {\r\n        throw new Error(\"Connection id is not set\");\r\n      }\r\n    } catch (e) {\r\n      this.eventBus.publish(putChargeContactFailure({ type: WEBSOCKET_CONNECTION_FAILURE, triggerer }));\r\n      return;\r\n    }\r\n\r\n    const request: ContactInfoChangeRequest = {\r\n      notificationPreferences: {\r\n        emailNotificationEnabled: notificationPreferences.emailNotificationEnabled,\r\n        emailAddress: notificationPreferences._emailAddressNotification,\r\n        smsNotificationEnabled: notificationPreferences.smsNotificationEnabled,\r\n        phoneNumber: notificationPreferences.phoneNumber,\r\n      },\r\n    };\r\n    if (notificationPreferences.emailAddress && notificationPreferences.emailAddress.length > 0) {\r\n      request.emailAddress = notificationPreferences.emailAddress;\r\n    }\r\n    if (!notificationPreferences._notificationEnabled) {\r\n      request.notificationPreferences = new NotificationPreferences();\r\n    }\r\n    if (request.notificationPreferences?.emailAddress?.length === 0) {\r\n      request.notificationPreferences.emailAddress = undefined;\r\n      request.notificationPreferences.emailNotificationEnabled = false;\r\n    }\r\n    return this.chargeRepository\r\n      .editContact(request, countryId, licensePlate, authCode, connectionId, triggerer, turnstileToken)\r\n      .then(response => {\r\n        if (response) {\r\n          this.eventBus.publish(putChargeContactFailure({ type: response.type, triggerer }));\r\n        }\r\n      })\r\n      .catch(() => {\r\n        this.eventBus.publish(putChargeContactFailure({ type: PUT_CHARGE_CONTACT_REQUEST_FAILURE, triggerer }));\r\n      });\r\n  }\r\n\r\n  @action.bound\r\n  sendChargePaymentConfirmationEmail(emailAddress: string | undefined, turnstileToken: string) {\r\n    const countryId = this.charge?.vehicle.countryId;\r\n    const licensePlate = this.charge?.vehicle.licensePlate;\r\n    const authCode = this.charge?.authCode;\r\n\r\n    if (!countryId || !licensePlate || !authCode) {\r\n      this.eventBus.publish(\r\n        sendChargePaymentConfirmationEmailFailure({ type: SEND_CHARGE_PAYMENT_CONFIRMATION_EMAIL_REQUEST_FAILURE })\r\n      );\r\n      return;\r\n    }\r\n\r\n    return this.chargeRepository\r\n      .sendChargePaymentConfirmationEmail(countryId, licensePlate, emailAddress, authCode, turnstileToken)\r\n      .then(response => {\r\n        if (response && response.type) {\r\n          this.eventBus.publish(sendChargePaymentConfirmationEmailFailure({ type: response.type }));\r\n        } else {\r\n          this.eventBus.publish(sendChargePaymentConfirmationEmailSuccess({}));\r\n          if (emailAddress) {\r\n            this.eventBus.publish(emailUpdated({ emailAddress }));\r\n          }\r\n        }\r\n      })\r\n      .catch(() => {\r\n        this.eventBus.publish(\r\n          sendChargePaymentConfirmationEmailFailure({ type: SEND_CHARGE_PAYMENT_CONFIRMATION_EMAIL_REQUEST_FAILURE })\r\n        );\r\n      });\r\n  }\r\n\r\n  @action.bound\r\n  downloadPaymentConfirmation = (turnstileToken: string): Promise<string | undefined> => {\r\n    const countryId = this.charge?.vehicle.countryId;\r\n    const licensePlate = this.charge?.vehicle.licensePlate;\r\n    const authCode = this.charge?.authCode;\r\n\r\n    if (!countryId || !licensePlate || !authCode) {\r\n      this.eventBus.publish(downloadPaymentConfirmationFailure({ type: DOWNLOAD_PAYMENT_CONFIRMATION_REQUEST_FAILURE }));\r\n      return Promise.resolve(undefined);\r\n    }\r\n\r\n    return this.chargeRepository\r\n      .downloadPaymentConfirmation(countryId, licensePlate, authCode, turnstileToken)\r\n      .then(response => {\r\n        if (response instanceof EshopError) {\r\n          this.eventBus.publish(downloadPaymentConfirmationFailure({ type: response.type }));\r\n        } else {\r\n          if (response) {\r\n            this.eventBus.publish(downloadPaymentConfirmationSuccess({}));\r\n            return response;\r\n          }\r\n        }\r\n      })\r\n      .catch(() => {\r\n        this.eventBus.publish(downloadPaymentConfirmationFailure({ type: DOWNLOAD_PAYMENT_CONFIRMATION_REQUEST_FAILURE }));\r\n        return undefined;\r\n      });\r\n  };\r\n\r\n  setLoginChargeManagement() {\r\n    sessionStorage.setItem(SESSION_STORAGE_CHARGE_MANAGEMENT_KEY, JSON.stringify(this.turnstileToken));\r\n  }\r\n\r\n  getLoginChargeManagement() {\r\n    return sessionStorage.getItem(SESSION_STORAGE_CHARGE_MANAGEMENT_KEY);\r\n  }\r\n\r\n  removeLoginChargeManagement() {\r\n    this.clearLoginChargeManagement();\r\n  }\r\n\r\n  async clearLoginChargeManagement() {\r\n    sessionStorage.removeItem(SESSION_STORAGE_CHARGE_MANAGEMENT_KEY);\r\n  }\r\n\r\n  @action.bound\r\n  reset() {\r\n    this.charge = undefined;\r\n  }\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.areAnalyticsCookiesEnabled = exports.arePreferenceCookiesEnabled = exports.areCookiesAccepted = exports.acceptCookies = exports.registerOnDisableCookieCallback = exports.registerOnAllowCookieCallback = exports.LS_KEY_COOKIES = void 0;\nexports.LS_KEY_COOKIES = \"edaz-cookies-preferences\";\nvar PREFERENCE_COOKIES_KEY = \"preferenceCookies\";\nvar ANALYTICS_COOKIES_KEY = \"analyticsCookies\";\nfunction registerOnAllowCookieCallback(type, callBack) {\n    window.addEventListener(\"storage\", function (e) {\n        if (e.key === exports.LS_KEY_COOKIES) {\n            if ((type === \"preference\" && arePreferenceCookiesEnabled()) || (type === \"analytics\" && areAnalyticsCookiesEnabled())) {\n                callBack();\n            }\n        }\n    });\n}\nexports.registerOnAllowCookieCallback = registerOnAllowCookieCallback;\nfunction registerOnDisableCookieCallback(type, callBack) {\n    window.addEventListener(\"storage\", function (e) {\n        if (e.key === exports.LS_KEY_COOKIES) {\n            if ((type === \"preference\" && !arePreferenceCookiesEnabled()) || (type === \"analytics\" && !areAnalyticsCookiesEnabled())) {\n                callBack();\n            }\n        }\n    });\n}\nexports.registerOnDisableCookieCallback = registerOnDisableCookieCallback;\nfunction acceptCookies(preference, analytics) {\n    var _a;\n    if (preference === void 0) { preference = true; }\n    if (analytics === void 0) { analytics = true; }\n    var value = JSON.stringify((_a = {},\n        _a[PREFERENCE_COOKIES_KEY] = preference,\n        _a[ANALYTICS_COOKIES_KEY] = analytics,\n        _a));\n    localStorage[exports.LS_KEY_COOKIES] = value;\n    window.dispatchEvent(new StorageEvent(\"storage\", { key: exports.LS_KEY_COOKIES, newValue: value }));\n}\nexports.acceptCookies = acceptCookies;\nfunction areCookiesAccepted() {\n    return !!(localStorage[exports.LS_KEY_COOKIES]);\n}\nexports.areCookiesAccepted = areCookiesAccepted;\nfunction arePreferenceCookiesEnabled() {\n    if (localStorage[exports.LS_KEY_COOKIES]) {\n        var cookieSettings = JSON.parse(localStorage[exports.LS_KEY_COOKIES]);\n        return cookieSettings[PREFERENCE_COOKIES_KEY];\n    }\n    return false;\n}\nexports.arePreferenceCookiesEnabled = arePreferenceCookiesEnabled;\nfunction areAnalyticsCookiesEnabled() {\n    if (localStorage[exports.LS_KEY_COOKIES]) {\n        var cookieSettings = JSON.parse(localStorage[exports.LS_KEY_COOKIES]);\n        return cookieSettings[ANALYTICS_COOKIES_KEY];\n    }\n    return false;\n}\nexports.areAnalyticsCookiesEnabled = areAnalyticsCookiesEnabled;\n","import { action, observable } from \"mobx\";\nimport ChargeRegistrationRepository from \"repositories/chargeRegistrationRepository\";\nimport EshopError from \"../models/eshopError\";\nimport ChargeTypesService from \"./chargeTypesService\";\nimport EventBus, {\n  chargeRegistration,\n  chargeRegistrationReport,\n  vehicleChargingInstructions,\n  vehicleRegistration,\n  vehicleValidityInstruction,\n} from \"./eventBus\";\nimport type { IVehicle } from \"../models/types\";\nimport ChargeValidityInstructionsResponse from \"entities/chargeValidityInstructionsResponse\";\nimport VehicleRepository from \"../repositories/vehicleRepository\";\nimport ChargeRegistrationsResponse from \"entities/chargeRegistrationsResponse\";\nimport VehicleChargingInstructionsResponse from \"entities/vehicleChargingInstructionsResponse\";\n\nexport enum RequestSource {\n  NewValidity = \"NEW_VALIDITY\",\n  NewLicensePlate = \"NEW_LICENSE_PLATE\",\n}\n\nexport default class ChargeRegistrationService {\n  @observable chargeRegistrationsResponse: ChargeRegistrationsResponse;\n  @observable vehicleChargingInstructions: VehicleChargingInstructionsResponse | undefined;\n  @observable vehicle?: IVehicle;\n\n  constructor(\n    private chargeRegistrationRepository: ChargeRegistrationRepository,\n    private vehicleRepository: VehicleRepository,\n    private eventBus: EventBus,\n    private chargeTypesService: ChargeTypesService\n  ) {}\n\n  @action.bound\n  getRegistrationReport(countryId: string, licensePlates: string[], validSince?: Date) {\n    return this.chargeRegistrationRepository\n      .vehicleRegistrationsReport(countryId, licensePlates, validSince)\n      .then(response => {\n        this.eventBus.publish(chargeRegistrationReport({ report: response instanceof EshopError ? undefined : response }));\n      })\n      .catch(() => this.eventBus.publish(chargeRegistrationReport({ report: undefined })));\n  }\n\n  @action.bound\n  async getVehicleRegistration(countryId: string, licensePlate: string, validSince?: Date, source?: RequestSource) {\n    const response = await this.chargeRegistrationRepository.vehicleRegistration(countryId, licensePlate, validSince);\n\n    if (response instanceof EshopError) {\n      throw response;\n    }\n    this.eventBus.publish(vehicleRegistration({ vehicleRegistration: response, source }));\n  }\n\n  @action.bound\n  async getChargingInstructions(countryId: string, licensePlate: string) {\n    return await this.vehicleRepository\n      .getChargingInstruction(countryId, licensePlate)\n      .then(response => {\n        this.vehicleChargingInstructions =\n          response instanceof EshopError ? undefined : (response as VehicleChargingInstructionsResponse);\n      })\n      .catch(() => this.eventBus.publish(vehicleChargingInstructions({ vehicleChargingInstructions: undefined })));\n  }\n\n  @action.bound\n  getChargeRegistration(countryId: string, licensePlate: string, source?: RequestSource) {\n    return this.chargeRegistrationRepository.getWithCharge(countryId, licensePlate).then(response => {\n      if (response instanceof EshopError) {\n        // Throw error in case of unexpected server errors (non 404)\n        throw response;\n      } else {\n        this.chargeRegistrationsResponse = response;\n        this.vehicle = {\n          countryId,\n          licensePlate,\n        };\n\n        this.eventBus.publish(chargeRegistration({ chargeRegistrationsResponse: response, source }));\n      }\n    });\n  }\n\n  @action.bound\n  async getProposedValidity(\n    countryId: string,\n    licensePlate: string,\n    priceListItemId: string,\n    hasImmediateValidity?: boolean,\n    validSinceDate?: Date,\n    source?: RequestSource\n  ) {\n    const response = await this.vehicleRepository.proposedValidity(\n      countryId,\n      licensePlate,\n      priceListItemId,\n      hasImmediateValidity,\n      validSinceDate\n    );\n\n    if (response instanceof ChargeValidityInstructionsResponse) {\n      this.eventBus.publish(vehicleValidityInstruction({ validityInstruction: response, source }));\n    } else {\n      throw response;\n    }\n  }\n\n  @action.bound\n  reset() {\n    this.chargeRegistrationsResponse = new ChargeRegistrationsResponse();\n    this.vehicle = undefined;\n  }\n}\n","import { computed, observable } from \"mobx\";\nimport type { EntityValidationRules } from \"services/validationService\";\n\nexport const EmailValidationRules: EntityValidationRules<NotificationPreferences> = {\n  emailAddress: {\n    isEmail: true,\n  },\n};\n\nexport const EmailConfirmationValidationRules: EntityValidationRules<NotificationPreferences> = {\n  _emailConfirmation: {\n    equalWith: { property: \"emailAddress\" as const },\n    isEmail: true,\n  },\n};\n\nexport const EmailNotificationValidationRules: EntityValidationRules<NotificationPreferences> = {\n  _emailAddressNotification: {\n    equalWith: { property: \"emailAddress\" as const },\n    isEmail: true,\n  },\n};\n\nexport default class NotificationPreferences {\n  @observable\n  _notificationEnabled = false;\n\n  @observable\n  phoneNumber?: string;\n\n  @observable\n  smsNotificationEnabled = false;\n\n  @observable\n  emailAddress?: string;\n\n  @observable\n  emailNotificationEnabled = false;\n\n  @observable\n  _emailAddressNotification?: string;\n\n  @observable\n  _isNotificationEmailSame = false;\n\n  @observable\n  _emailConfirmation?: string;\n\n  @computed\n  get rules(): EntityValidationRules<NotificationPreferences> {\n    return {\n      ...EmailValidationRules,\n      ...EmailConfirmationValidationRules,\n    };\n  }\n\n  @computed\n  get editRules(): EntityValidationRules<NotificationPreferences> {\n    return {\n      ...EmailValidationRules,\n      ...EmailConfirmationValidationRules,\n      ...(this._isNotificationEmailSame ? EmailNotificationValidationRules : {}),\n      ...(this._notificationEnabled ? NotificationValidationRules : {}),\n    };\n  }\n}\n\nexport const NotificationValidationRules: EntityValidationRules<NotificationPreferences> = {\n  emailAddress: {\n    isEmail: true,\n  },\n  _emailConfirmation: {\n    equalWith: { property: \"emailAddress\" as const },\n    isEmail: true,\n  },\n  _emailAddressNotification: {\n    requiredIf: {\n      condition: (entity: NotificationPreferences) => !entity.phoneNumber && entity._notificationEnabled,\n      customMessage: \"requiredContact\",\n    },\n    isEmail: {\n      required: false,\n    },\n  },\n  phoneNumber: {\n    requiredIf: {\n      condition: (entity: NotificationPreferences) => !entity._emailAddressNotification && entity._notificationEnabled,\n      customMessage: \"requiredContact\",\n    },\n    isPhoneNumber: {\n      required: false,\n    },\n  },\n};\n\nexport const NotificationSalespointKiosValidationRules: EntityValidationRules<NotificationPreferences> = {\n  emailAddress: {\n    requiredIf: {\n      condition: (entity: NotificationPreferences) => !!entity._emailConfirmation,\n      customMessage: \"requiredContact\",\n    },\n    isEmail: {\n      required: false,\n    },\n  },\n  _emailConfirmation: {\n    requiredIf: {\n      condition: (entity: NotificationPreferences) => !!entity.emailAddress,\n      customMessage: \"requiredContact\",\n    },\n    equalWith: { property: \"emailAddress\" as const },\n    isEmail: {\n      required: false,\n    },\n  },\n  phoneNumber: {\n    requiredIf: {\n      condition: (entity: NotificationPreferences) => !entity._emailAddressNotification && entity._notificationEnabled,\n      customMessage: \"requiredContact\",\n    },\n    isPhoneNumber: {\n      required: false,\n    },\n  },\n  _emailAddressNotification: {\n    requiredIf: {\n      condition: (entity: NotificationPreferences) => !entity.phoneNumber && entity._notificationEnabled,\n      customMessage: \"requiredContact\",\n    },\n    isEmail: {\n      required: false,\n    },\n  },\n};\n\nexport type ContactEditationTriggerer = \"licensePlateChange\" | \"validityChange\" | \"contactChange\" | \"receiptChange\";\n","import { action, observable } from \"mobx\";\nimport IsdsResponse from \"models/isdsResponse\";\nimport Omission from \"models/omission\";\nimport OmissionRepository from \"repositories/omissionRepository\";\nimport EshopError from \"../models/eshopError\";\nimport EventBus, {\n  cancellationApplicationProduction,\n  omissionCreationFailed,\n  omissionDocumentsUploadFailed,\n  omissionDocumentsUploadSuccess,\n} from \"./eventBus\";\nimport { Notice } from \"./NIA/niaService\";\nimport { PersistedBase64 } from \"../models/notice\";\nimport { plainToClass } from \"class-transformer\";\nimport * as Sentry from \"@sentry/react\";\nimport ExemptionCancellationApplicationProductionResponse from \"entities/exemptionCancellationApplicationProductionResponse\";\nimport ChargeRegistrationService from \"./chargeRegistrationService\";\n\nexport const SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY = \"SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY\";\nexport const POST_OMISSION_CREATION_FAILED = \"POST_OMISSION_CREATION_FAILED\";\nexport const POST_OMISSION_DOCUMENTS_UPLOAD_FAILED = \"POST_OMISSION_DOCUMENTS_UPLOAD_FAILED\";\n\nexport default class OmissionService {\n  @observable notice: Omission = new Omission();\n  @observable cancellationApplicationProduction: ExemptionCancellationApplicationProductionResponse | undefined;\n\n  constructor(\n    private repository: OmissionRepository,\n    private chargeRegistrationService: ChargeRegistrationService,\n    private eventBus: EventBus\n  ) {\n    this.initialize();\n  }\n\n  @action.bound\n  async createOmission(omission: Omission) {\n    return await this.repository\n      .createOmission(omission)\n      .then(async (response: any | EshopError) => {\n        if (response instanceof EshopError) {\n          this.eventBus.publish(omissionCreationFailed({ type: response.type }));\n        } else if (response.blob && response.fileName) {\n          return response;\n        }\n      })\n      .catch(() => {\n        this.eventBus.publish(omissionCreationFailed({ type: POST_OMISSION_CREATION_FAILED }));\n        return undefined;\n      });\n  }\n\n  @action.bound\n  async getProduction(omission: Omission) {\n    return await this.repository\n      .getProduction(omission)\n      .then(response => {\n        this.cancellationApplicationProduction = response as ExemptionCancellationApplicationProductionResponse;\n        return response;\n      })\n      .catch(() => this.eventBus.publish(cancellationApplicationProduction({ cancellationApplicationProduction: undefined })));\n  }\n\n  @action.bound\n  async uploadDocuments(ISDSSessionId: string, files: PersistedBase64[]) {\n    sessionStorage.setItem(SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY, Notice.OMISSION);\n    return await this.repository\n      .uploadDocuments(ISDSSessionId, files)\n      .then(response => {\n        if (response instanceof IsdsResponse) {\n          this.eventBus.publish(omissionDocumentsUploadSuccess({ conceptIdent: response.conceptIdent }));\n        } else {\n          this.publishDocumentsUploadFailure(response.type, response, files, ISDSSessionId);\n        }\n      })\n      .catch(error => {\n        this.publishDocumentsUploadFailure(POST_OMISSION_DOCUMENTS_UPLOAD_FAILED, error, files, ISDSSessionId);\n      });\n  }\n\n  private publishDocumentsUploadFailure(type: string, error: any, files: PersistedBase64[], sessionId: string) {\n    Sentry.withScope(scope => {\n      scope.setTag(\"OmissionService\", \"upload\");\n      scope.setExtras({\n        type,\n        files,\n        sessionId,\n      });\n      Sentry.captureException(error);\n    });\n\n    this.eventBus.publish(omissionDocumentsUploadFailed({ type }));\n  }\n\n  @action.bound\n  initialize() {\n    const noticeString = sessionStorage.getItem(\"omission\");\n    this.notice = new Omission();\n\n    if (noticeString) {\n      this.notice = plainToClass(Omission, JSON.parse(noticeString));\n    }\n  }\n\n  @action.bound\n  reset = () => {\n    this.notice = new Omission();\n    this.chargeRegistrationService.vehicleChargingInstructions = undefined;\n    this.cancellationApplicationProduction = undefined;\n  };\n}\n","// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nenum FuelType {\n  Other = \"OTHER\",\n  NaturalGas = \"NATURAL_GAS\",\n  Biomethane = \"BIOMETHANE\",\n  PhevWithLimitedCo2 = \"PHEV_WITH_LIMITED_CO2\",\n  Electromobile = \"ELECTROMOBILE\",\n}\nexport default FuelType;\n","import { ConductorAllChildrenActive, Router } from \"@frui.ts/screens/dist\";\r\nimport { computed, observable } from \"mobx\";\r\nimport LocalizationService from \"services/localizationService\";\r\nimport OrderSummaryViewModel from \"./orderSummaryViewModel\";\r\nimport deburr from \"lodash/deburr\";\r\nimport { interfaces } from \"inversify\";\r\nimport SummaryViewModel from \"../../multiEshop/summaryMultiEshopViewModel\";\r\nimport NotificationService from \"../../../services/notificationService\";\r\nimport GaService from \"../../../services/gaService\";\r\nimport { utcToCZZonedTime } from \"utils/dateUtils\";\r\nimport ChargeOrder from \"models/chargeOrder\";\r\nimport ChargeOrderItem from \"models/chargeOrderItem\";\r\nimport CustomerReviewViewModel from \"viewModels/customerReview/customerReviewViewModel\";\r\nimport EventBus, {\r\n  customerRatingOrderData,\r\n  paymentConfirmationAvailable,\r\n  paymentConfirmationError,\r\n} from \"../../../services/eventBus\";\r\n\r\nexport const BankTransferNavigationName = \"bank_transfer\";\r\n\r\nexport enum PaymentInstructionType {\r\n  Domestic = \"domestic\",\r\n  Sepa = \"sepa\",\r\n}\r\n\r\n@Router.registerRoute({ route: `${BankTransferNavigationName}/:orderId`, name: Router.Self })\r\nexport default class BankTransferViewModel extends ConductorAllChildrenActive<\r\n  SummaryViewModel | OrderSummaryViewModel | CustomerReviewViewModel\r\n> {\r\n  private dateRegex = /%DATE%/g;\r\n  @observable selected: ChargeOrder;\r\n  @observable selectedPaymentType: PaymentInstructionType;\r\n\r\n  constructor(\r\n    public chargeOrder: ChargeOrder,\r\n    public localizationService: LocalizationService,\r\n    protected notificationService: NotificationService,\r\n    protected gaService: GaService,\r\n    orderSummaryViewModelFactory: ReturnType<typeof OrderSummaryViewModel.Factory>,\r\n    summaryVMFactory: ReturnType<typeof SummaryViewModel.Factory>,\r\n    public customerReviewViewModel: CustomerReviewViewModel,\r\n    private eventBus: EventBus\r\n  ) {\r\n    super();\r\n    this.navigationName = `${BankTransferNavigationName}/${this.chargeOrder.id}`;\r\n    this.notificationService.notifications.clear();\r\n    this.eventBus.publish(customerRatingOrderData({ orderId: this.chargeOrder.id }));\r\n    this.selectedPaymentType = this.domesticPayment ? PaymentInstructionType.Domestic : PaymentInstructionType.Sepa;\r\n\r\n    if (this.moreThanOneLicensePlateOrder) {\r\n      this.children.push(summaryVMFactory(false, false, undefined, undefined, this.chargeOrder));\r\n    } else {\r\n      this.children.push(orderSummaryViewModelFactory(this.chargeOrder));\r\n    }\r\n    this.children.push(customerReviewViewModel);\r\n  }\r\n\r\n  @computed\r\n  get isMultiEshopOrder() {\r\n    return this.chargeOrder._origin === \"multiple\";\r\n  }\r\n\r\n  /* DomesticPayment */\r\n  @computed\r\n  get accountNumber() {\r\n    return this.domesticPayment?.bankAccount?.accountNumber;\r\n  }\r\n\r\n  @computed\r\n  get messageForRecipient() {\r\n    return this.domesticPayment?.messageForRecipient;\r\n  }\r\n\r\n  @computed\r\n  get bankCode() {\r\n    return this.domesticPayment?.bankAccount?.bankCode;\r\n  }\r\n\r\n  /* SepaPayment */\r\n\r\n  @computed\r\n  get iban() {\r\n    return this.sepaPayment?.iban;\r\n  }\r\n\r\n  @computed\r\n  get counterpartyName() {\r\n    return this.sepaPayment?.counterpartyName;\r\n  }\r\n\r\n  @computed\r\n  get additionalInformation() {\r\n    return this.sepaPayment?.additionalInformation;\r\n  }\r\n\r\n  @computed\r\n  get swiftCode() {\r\n    return this.sepaPayment?.swiftCode;\r\n  }\r\n\r\n  /* Shared */\r\n  @computed\r\n  get currencyCodeDomestic() {\r\n    return this.domesticPayment?.currencyCode;\r\n  }\r\n  @computed\r\n  get currencyCodeSepa() {\r\n    return this.sepaPayment?.currencyCode;\r\n  }\r\n\r\n  // Computed properties pro aktivní instrukce podle vybraného typu\r\n  @computed\r\n  get activePaymentInstructions() {\r\n    return this.selectedPaymentType === PaymentInstructionType.Domestic ? this.domesticPayment : this.sepaPayment;\r\n  }\r\n\r\n  @computed\r\n  get activeCurrencyCode() {\r\n    return this.selectedPaymentType === PaymentInstructionType.Domestic ? this.currencyCodeDomestic : this.currencyCodeSepa;\r\n  }\r\n\r\n  @computed\r\n  get activePrice() {\r\n    return this.selectedPaymentType === PaymentInstructionType.Domestic ? this.priceDomestic : this.priceSepa;\r\n  }\r\n\r\n  @computed\r\n  get paymentTypeOptions() {\r\n    const options = [];\r\n    if (this.domesticPayment) {\r\n      options.push({\r\n        id: PaymentInstructionType.Domestic,\r\n        name: \"general.payment.domestic\",\r\n        type: PaymentInstructionType.Domestic,\r\n      });\r\n    }\r\n    if (this.sepaPayment) {\r\n      options.push({\r\n        id: PaymentInstructionType.Sepa,\r\n        name: \"general.payment.sepa\",\r\n        type: PaymentInstructionType.Sepa,\r\n      });\r\n    }\r\n    return options;\r\n  }\r\n\r\n  @computed\r\n  get variableSymbol() {\r\n    return this.chargeOrder?.transferPaymentInstructions?.variableSymbol;\r\n  }\r\n\r\n  @computed\r\n  get qrcode() {\r\n    // Načítáme QR kód podle vybraného typu platby\r\n    const activePayment = this.selectedPaymentType === PaymentInstructionType.Domestic ? this.domesticPayment : this.sepaPayment;\r\n    return activePayment?.qrCode;\r\n  }\r\n\r\n  @computed\r\n  get priceDomestic() {\r\n    if (!this.domesticPayment?.amount) return undefined;\r\n\r\n    return this.localizationService.formatPrice(this.domesticPayment.amount, this.currencyCodeDomestic);\r\n  }\r\n\r\n  @computed\r\n  get priceSepa() {\r\n    if (!this.sepaPayment?.amount) return undefined;\r\n\r\n    return this.localizationService.formatPrice(this.sepaPayment?.amount, this.currencyCodeSepa);\r\n  }\r\n\r\n  @computed\r\n  get isSepaPayment() {\r\n    return (\r\n      this.chargeOrder?.transferPaymentInstructions?.sepaPayment &&\r\n      !this.chargeOrder?.transferPaymentInstructions?.domesticPayment\r\n    );\r\n  }\r\n  @computed\r\n  get sepaPayment() {\r\n    return this.chargeOrder?.transferPaymentInstructions?.sepaPayment;\r\n  }\r\n\r\n  @computed\r\n  get domesticPayment() {\r\n    return this.chargeOrder?.transferPaymentInstructions?.domesticPayment;\r\n  }\r\n\r\n  @computed\r\n  get transferPaymentInstruction() {\r\n    return this.isSepaPayment ? this.sepaPayment : this.domesticPayment;\r\n  }\r\n\r\n  @computed\r\n  get moreThanOneLicensePlateOrder() {\r\n    return (\r\n      this.chargeOrder.charges.reduce(\r\n        (summary: number, item: ChargeOrderItem) =>\r\n          summary + (item.licensePlate ? 1 : 0) + (item.licensePlates ? item.licensePlates.length : 0),\r\n        0\r\n      ) > 1\r\n    );\r\n  }\r\n\r\n  @computed\r\n  get bankTransferInfo() {\r\n    if (!this.chargeOrder || !this.chargeOrder?.transferPaymentInstructions?.dueDate) return undefined;\r\n\r\n    const czechDueDate = utcToCZZonedTime(new Date(this.chargeOrder?.transferPaymentInstructions?.dueDate));\r\n\r\n    return this.localizationService\r\n      .translateGeneral(\"eshop.transfer.warning\")\r\n      .replace(this.dateRegex, this.localizationService.formatDate(czechDueDate));\r\n  }\r\n\r\n  navigate(subPath: string | undefined, params: any): Promise<void> {\r\n    this.gaService.sendOrderInfo(this.chargeOrder);\r\n    return super.navigate(subPath, params);\r\n  }\r\n\r\n  translate(code: string) {\r\n    return this.localizationService.translateGeneral(`eshop.transfer.${code}`);\r\n  }\r\n\r\n  static Factory({ container }: interfaces.Context) {\r\n    return (chargeOrder: ChargeOrder) => {\r\n      return new BankTransferViewModel(\r\n        chargeOrder,\r\n        container.get(LocalizationService),\r\n        container.get(NotificationService),\r\n        container.get(GaService),\r\n        container.get(OrderSummaryViewModel.Factory),\r\n        container.get(SummaryViewModel.Factory),\r\n        container.get(CustomerReviewViewModel),\r\n        container.get(EventBus)\r\n      );\r\n    };\r\n  }\r\n}\r\n","import BaseNotificationService, { INotification } from \"@edaz/services/baseNotificationService\";\nimport { bound } from \"@frui.ts/helpers/dist\";\nimport { observable } from \"mobx\";\nimport EventBus, { serverError, userLogout } from \"./eventBus\";\nimport { scrollToTop } from \"utils/scrollTo\";\nimport { IconType } from \"@edaz/edazkit/Icon\";\nimport LocalizationService from \"./localizationService\";\n\nexport enum NotificationType {\n  INFO = \"info\",\n  WARNING = \"warning\",\n  SUCCESS = \"success\",\n  ERROR = \"error\",\n}\n\nexport interface NotificationAction {\n  func: () => void;\n  link?: string;\n  title?: string;\n}\n\nexport interface Notification extends INotification {\n  type: NotificationType;\n  permanent?: boolean;\n  action?: NotificationAction;\n  timeToLive?: number;\n  icon?: IconType;\n  iconHeight?: number;\n  iconWidth?: number;\n  contentCenter?: boolean;\n}\n\nexport default class NotificationService extends BaseNotificationService<Notification> {\n  @observable notifications: Map<string, Notification>;\n\n  constructor(private eventBus: EventBus, private localizationService: LocalizationService) {\n    super();\n    this.eventBus.subscribe(serverError, this.addServerError);\n    this.eventBus.subscribe(userLogout, this.clearNotifications);\n  }\n\n  @bound\n  add(notification: Notification, scope?: string): string {\n    scrollToTop();\n    const key = super.add(notification, scope);\n    if (!notification.permanent) {\n      setTimeout(() => this.remove(key), (notification.timeToLive || 30) * 1000);\n    }\n\n    return key;\n  }\n\n  @bound\n  protected addServerError(event: ReturnType<typeof serverError>) {\n    const payload = event.payload;\n    let errorMessage: string;\n    if (payload.type) {\n      errorMessage = this.localizationService.translateError(payload.type);\n    } else if (payload.message) {\n      errorMessage = payload.message;\n    } else {\n      errorMessage = this.localizationService.translateError(\"generic\");\n    }\n\n    const notification = {\n      title: errorMessage,\n      type: NotificationType.ERROR,\n      icon: IconType.Offline,\n    };\n\n    if (Array.from(this.notifications.values()).find(value => value.type === notification.type)) return;\n\n    this.add(notification);\n  }\n\n  @bound\n  protected clearNotifications() {\n    this.notifications.clear();\n  }\n}\n","import { bound } from \"@frui.ts/helpers\";\nimport { Router } from \"@frui.ts/screens/dist\";\nimport { attachManualValidator, getValidationMessage } from \"@frui.ts/validation\";\nimport { attachAutomaticBlurValidator } from \"utils/validationPatch\";\nimport { plainToClass } from \"class-transformer\";\nimport { action, computed, observable, reaction } from \"mobx\";\nimport NiaResponse from \"models/niaResponse\";\nimport ChargeRegistrationService from \"services/chargeRegistrationService\";\nimport EnumService from \"services/enumService\";\nimport EventBus, {\n  refundRequestCreationFailed,\n  refundRequestDocumentsUploadFailed,\n  refundRequestDocumentsUploadSuccess,\n  refundRequestISDSConceptStatusCheckFailure,\n  refundRequestISDSConceptStatusCheckSuccess,\n  refundRequestISDSSessionIdHandled,\n  refundRequestNIAResponseHandled,\n} from \"services/eventBus\";\nimport LocalizationService from \"services/localizationService\";\nimport NiaService, { Notice } from \"services/NIA/niaService\";\nimport { SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY } from \"services/omissionService\";\nimport AppRouter from \"services/appRouter\";\nimport VehicleInfoViewModel from \"viewModels/common/vehicleInfoViewModel\";\nimport { getTooltipPosition } from \"viewModels/utils\";\nimport ISDSService from \"../../../services/ISDS/isdsService\";\nimport serializeNotice from \"../../../utils/serializeNotice\";\nimport NoticeViewModel from \"../noticeViewModel\";\nimport { PersistedBase64, SignatureType } from \"../../../models/notice\";\nimport ApplicantPersonViewModel from \"../components/applicantPersonViewModel\";\nimport { CSTermsAgreementDocumentPath, DETermsAgreementDocumentPath, ENTermsAgreementDocumentPath } from \"../../../config\";\nimport OutageService from \"../../../services/outageService\";\nimport OutagesViewModel from \"../../common/outagesViewModel\";\nimport RefundRequestService from \"../../../services/refundRequestService\";\nimport CustomerRefundApplicationReason from \"../../../entities/customerRefundApplicationReason\";\nimport CustomerRefundApplicationOrderSourceType from \"../../../entities/customerRefundApplicationOrderSourceType\";\nimport ChargeTypesService from \"services/chargeTypesService\";\nimport CustomerRefundApplicationProductionResponse from \"entities/customerRefundApplicationProductionResponse\";\nimport { NoticeTechnicalLicenseRules } from \"models/refundRequestNotice\";\n\nexport const RefundRequestNavigationName = \"refund_request_notice\";\n\n@Router.registerRoute({ route: RefundRequestNavigationName, name: Router.Self })\nexport default class RefundRequestViewModel extends NoticeViewModel {\n  @observable tooltipPosition: \"right-start\" | \"bottom\";\n  @observable applicantPersonViewModel: ApplicantPersonViewModel;\n  @observable vehicleInfoViewModel: VehicleInfoViewModel;\n  @observable allowCreateExemption = false;\n\n  constructor(\n    public localizationService: LocalizationService,\n    protected enumService: EnumService,\n    protected chargeTypesService: ChargeTypesService,\n    protected niaService: NiaService,\n    protected isdsService: ISDSService,\n    protected outageService: OutageService,\n    protected eventBus: EventBus,\n    protected service: RefundRequestService,\n    protected router: AppRouter,\n    protected outagesViewModelFactory: ReturnType<typeof OutagesViewModel.Factory>,\n    private chargeRegistrationService: ChargeRegistrationService,\n    private vehicleInfoVMFactory: ReturnType<typeof VehicleInfoViewModel.Factory>,\n    private applicantPersonInputVMFactory: ReturnType<typeof ApplicantPersonViewModel.Factory>\n  ) {\n    super(\n      localizationService,\n      enumService,\n      niaService,\n      isdsService,\n      outageService,\n      eventBus,\n      service,\n      router,\n      outagesViewModelFactory\n    );\n    this.navigationName = RefundRequestNavigationName;\n    this.createChildren();\n    window.addEventListener(\"resize\", this.handleResize);\n    this.setDefaultCountryId();\n    attachManualValidator(this, true);\n    this.attachValidators();\n\n    this.unsubscriptions.push(\n      this.eventBus.subscribe(refundRequestCreationFailed, this.generalOperationFailed),\n      this.eventBus.subscribe(refundRequestDocumentsUploadFailed, this.isdsOperationFailed),\n      this.eventBus.subscribe(refundRequestDocumentsUploadSuccess, this.isdsUploadOperationSuccess),\n      this.eventBus.subscribe(refundRequestISDSConceptStatusCheckSuccess, this.isdsConceptStatusCheck),\n      this.eventBus.subscribe(refundRequestISDSConceptStatusCheckFailure, this.isdsConceptFailure),\n      this.eventBus.subscribe(refundRequestNIAResponseHandled, this.NiaResponseHandler),\n      this.eventBus.subscribe(refundRequestISDSSessionIdHandled, this.ISDSSessionIdHandler),\n      reaction(() => this.notice.reason, this.reasonChangeReaction),\n      reaction(() => this.notice.chargeOrderSourceType, this.orderSourceTypeChangeReaction)\n    );\n  }\n\n  @computed\n  get newVehicleErrorMessage() {\n    return getValidationMessage(this, \"notice\");\n  }\n\n  @computed\n  get customerRefundApplicationProduction(): CustomerRefundApplicationProductionResponse | undefined {\n    return this.service.customerRefundApplicationProduction;\n  }\n\n  @computed\n  get hasToUploadPowerOfAttorney() {\n    return false;\n  }\n\n  @computed\n  get hasToUploadTechnicalLicense() {\n    return this.notice._signatureType === SignatureType.DataBox;\n  }\n\n  @computed get notice() {\n    return this.service.notice;\n  }\n\n  @bound\n  showBirthdate() {\n    return false;\n  }\n\n  @computed\n  get isContinueDisabled(): boolean {\n    return this.service.customerRefundApplicationProduction?.canBeAppliedFor === false;\n  }\n\n  /**\n   * Reasons for requesting the refund for SelectBox\n   */\n  @computed get reasons() {\n    return Object.values(CustomerRefundApplicationReason).map(value => ({\n      id: value,\n      label: this.translateAttribute(`reasons.${value}`),\n    }));\n  }\n\n  @bound\n  translateGeneral(code: string, disableUnbreakableRules = false) {\n    return this.localizationService.translateGeneral(`refundRequest.${code}`, undefined, disableUnbreakableRules);\n  }\n\n  @bound\n  translateAttribute(code: string) {\n    return this.localizationService.translateAttribute(\"refundRequest\", code);\n  }\n\n  @computed get termsAgreementDocumentPath() {\n    switch (this.localizationService.locale) {\n      case \"cs\":\n        return CSTermsAgreementDocumentPath;\n      case \"de\":\n        return DETermsAgreementDocumentPath;\n      default:\n        return ENTermsAgreementDocumentPath;\n    }\n  }\n\n  @action orderSourceTypeChangeReaction = () => {\n    // Reset bank account number when it's not required\n    if (\n      (this.notice.chargeOrderSourceType === CustomerRefundApplicationOrderSourceType.Eshop ||\n        this.notice.chargeOrderSourceType === CustomerRefundApplicationOrderSourceType.Kiosk) &&\n      this.notice.bankAccount\n    ) {\n      this.notice.bankAccount = undefined;\n    }\n  };\n\n  @action reasonChangeReaction = () => {\n    // Reset Other reason text when it's not required\n    if (this.notice.reason !== CustomerRefundApplicationReason.Other && this.notice.otherReasonText) {\n      this.notice.otherReasonText = undefined;\n    }\n  };\n\n  protected onInitialize(): Promise<any> {\n    this.chargeRegistrationService.vehicleChargingInstructions = undefined;\n    this.service.customerRefundApplicationProduction = undefined;\n\n    this.unsubscriptions.push(\n      reaction(\n        () => [this.notice.vehicle.licensePlate, this.notice.vehicle.countryId, this.notice.reason],\n        () => {\n          this.handleVehicleInfoChange();\n        },\n        {\n          fireImmediately: true,\n        }\n      ),\n      reaction(\n        () => [this.notice.vehicle.countryId, this.notice.vehicle.licensePlate],\n        () => {\n          if (this.notice.vehicle.countryId) {\n            this.notice.countryId = this.notice.vehicle.countryId;\n          }\n          if (this.notice.vehicle.licensePlate) {\n            this.notice.licensePlate = this.notice.vehicle.licensePlate;\n          }\n        }\n      ),\n      reaction(() => [this.notice.licensePlate, this.notice.countryId], this.persistNotice)\n    );\n    return super.onInitialize();\n  }\n\n  protected onDeactivate(isClosing: boolean) {\n    if (isClosing) {\n      this.unsubscriptions.forEach(unsubscribe => unsubscribe());\n    }\n    window.removeEventListener(\"resize\", this.handleResize);\n    return super.onDeactivate(isClosing);\n  }\n\n  protected attachValidators() {\n    attachAutomaticBlurValidator(this.notice, {\n      ...NoticeTechnicalLicenseRules,\n      ...this.notice.rules,\n    });\n  }\n\n  handleResize = () => {\n    this.tooltipPosition = getTooltipPosition(window);\n  };\n\n  private translateOrderItem(code: string) {\n    return this.localizationService.translateAttribute(\"orderItem\", code);\n  }\n\n  async navigate(subPath: string | undefined, params: any) {\n    if (!params) return;\n\n    if (params.sessionId) {\n      if (sessionStorage.getItem(SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY)) {\n        sessionStorage.removeItem(SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY);\n        await this.isdsService.conceptStatus(params.sessionId, Notice.REFUND_REQUEST);\n        return;\n      }\n      this.eventBus.publish(refundRequestISDSSessionIdHandled({ sessionId: params.sessionId }));\n    } else if (params.response) {\n      const response = params.response;\n\n      if (response && this.notice && this.notice.applicant) {\n        const urlDecoded = decodeURI(response);\n        const base64Decoded = atob(urlDecoded);\n        const niaResponse = plainToClass(NiaResponse, JSON.parse(base64Decoded));\n\n        if (!niaResponse) return;\n\n        this.eventBus.publish(refundRequestNIAResponseHandled({ niaResponse }));\n      }\n    }\n  }\n\n  @action.bound\n  protected isdsConceptStatusCheck(data: { type: string; payload: { success: boolean; notice: Notice } }) {\n    if (data.payload.success && data.payload.notice) {\n      this.router.navigate(\"refund_request_documents\", undefined, {\n        notice: data.payload.notice,\n      });\n    }\n  }\n\n  @action.bound\n  protected isdsUploadOperationSuccess(data: { type: string; payload: { conceptIdent: string } }) {\n    super.isdsUploadOperationSuccess(data);\n    this.isdsService.redirectToISDSConcept(Notice.REFUND_REQUEST, data.payload.conceptIdent);\n  }\n\n  @bound\n  private async handleVehicleInfoChange() {\n    this.allowCreateExemption = false;\n    this.service.customerRefundApplicationProduction = undefined;\n    this.chargeRegistrationService.vehicleChargingInstructions = undefined;\n  }\n\n  @bound\n  translateWarningReason(code: string): string {\n    if (this.service.customerRefundApplicationProduction?.chargeManagementUrl) {\n      return this.localizationService\n        .translateGeneral(`eshop.order.license.exemptionReasonWarnings.${code}`, undefined, false)\n        .replace(\"%link%\", this.service.customerRefundApplicationProduction?.chargeManagementUrl);\n    }\n    return this.localizationService.translateGeneral(`eshop.order.license.exemptionReasonWarnings.${code}`, undefined, false);\n  }\n\n  @bound\n  protected async persistNotice() {\n    sessionStorage.setItem(Notice.REFUND_REQUEST, serializeNotice(this.notice));\n\n    await super.persistNotice();\n  }\n\n  @action.bound\n  public async createNotice(): Promise<string | undefined> {\n    this.errorMessage = undefined;\n    const countryId = this.notice.vehicle.countryId;\n    const licensePlate = this.notice.vehicle.licensePlate;\n\n    if (!countryId || !licensePlate) return Promise.resolve(undefined);\n\n    const response = (await this.service.getProduction(this.notice, countryId, licensePlate)) as any;\n\n    if (response.errors) {\n      this.creationLoadingModalToggle(false);\n      this.errorMessage = this.localizationService.translateGeneral(\"errors.invalidData\");\n      return;\n    }\n    if (\n      (this.customerRefundApplicationProduction?.warningReasons?.length ||\n        this.customerRefundApplicationProduction?.rejectionReason ||\n        this.customerRefundApplicationProduction?.canBeAppliedFor === false) &&\n      !this.allowCreateExemption\n    ) {\n      this.allowCreateExemption = true;\n\n      return Promise.resolve(undefined);\n    }\n\n    return this.service.createRefundRequest(this.notice, countryId, licensePlate);\n  }\n\n  @action.bound\n  public uploadDocuments(ISDSSessionId: string, files: PersistedBase64[]): Promise<void> | undefined {\n    this.errorMessage = undefined;\n\n    return this.service.uploadDocuments(ISDSSessionId, files);\n  }\n\n  @action.bound\n  public redirectToISDS(): void {\n    this.errorMessage = undefined;\n    this.creationLoadingModalToggle(false);\n    this.isdsService.redirectToISDS(Notice.REFUND_REQUEST);\n  }\n\n  @action.bound\n  public redirectToNia() {\n    this.errorMessage = undefined;\n    this.creationLoadingModalToggle(false);\n    this.niaService.redirectToNia(Notice.REFUND_REQUEST);\n  }\n\n  protected createChildren() {\n    this.children.clear();\n    this.children.push(\n      (this.vehicleInfoViewModel = this.vehicleInfoVMFactory(this.notice.vehicle!, {\n        attachValidator: true,\n        fixedLicensePlateSize: false,\n        initByLocalization: true,\n      })),\n      (this.applicantPersonViewModel = this.applicantPersonInputVMFactory(this.notice.applicant, this.GDPR, this.showBirthdate()))\n    );\n  }\n}\n","import { Router, ScreenBase } from \"@frui.ts/screens/dist\";\nimport { interfaces } from \"inversify\";\nimport { action, computed, observable, reaction, toJS } from \"mobx\";\n\nimport PaymentResult from \"models/paymentResult\";\nimport LocalizationService from \"services/localizationService\";\nimport ChargeOrderService from \"services/chargeOrderService\";\nimport EventBus, {\n  customerRatingOrderData,\n  paymentConfirmationAvailable,\n  paymentConfirmationError,\n} from \"../../../services/eventBus\";\nimport GaService from \"../../../services/gaService\";\nimport PriceService from \"../../../services/priceService\";\nimport OrderSummaryViewModel from \"./orderSummaryViewModel\";\nimport { saveFileFromURL } from \"../../../utils/fileUtils\";\nimport NotificationService, { NotificationType } from \"../../../services/notificationService\";\nimport { IconType } from \"@edaz/edazkit/Icon\";\nimport ChargeOrder, { ChargeOrderStatus } from \"models/chargeOrder\";\nimport CustomerReviewViewModel from \"viewModels/customerReview/customerReviewViewModel\";\nimport TimeService from \"services/timeService\";\n\nexport const StatusViewNavigationName = \"status\";\n\n@Router.registerRoute({ route: `${StatusViewNavigationName}/:orderId`, name: Router.Self })\nexport default class StatusViewModel extends ScreenBase {\n  @observable showLoadingModal = false;\n  result?: PaymentResult;\n  orderSummaryViewModel: OrderSummaryViewModel;\n  ratingViewModel: CustomerReviewViewModel;\n  private unsubscriptions: (() => void)[] = [];\n\n  @computed\n  get isSuccess() {\n    return this.chargeOrder._status === ChargeOrderStatus.Paid;\n  }\n\n  constructor(\n    public chargeOrder: ChargeOrder,\n    public localizationService: LocalizationService,\n    public timeService: TimeService,\n    private customerReviewViewModel: CustomerReviewViewModel,\n    private orderSummaryViewModelFactory: ReturnType<typeof OrderSummaryViewModel.Factory>,\n    public chargeOrderService: ChargeOrderService,\n    private gaService: GaService,\n    private eventBus: EventBus,\n    private notificationService: NotificationService\n  ) {\n    super();\n    this.navigationName = `${StatusViewNavigationName}/${this.chargeOrder.id}`;\n    this.orderSummaryViewModel = this.orderSummaryViewModelFactory(this.chargeOrder);\n    this.ratingViewModel = this.customerReviewViewModel;\n    this.eventBus.subscribe(paymentConfirmationAvailable, this.onPaymentConfirmationIsAvailable);\n    this.eventBus.subscribe(paymentConfirmationError, this.onPaymentConfirmationError);\n    this.eventBus.publish(customerRatingOrderData({ orderId: this.chargeOrder.id }));\n  }\n\n  protected async onActivate(): Promise<Promise<any> | void> {\n    await this.timeService.getCurrentServerTime();\n  }\n  navigate(subPath: string | undefined, params: any): Promise<any> | void | undefined {\n    this.gaService.sendOrderInfo(this.chargeOrder);\n    return super.navigate(subPath, params);\n  }\n\n  @action.bound\n  private onPaymentConfirmationIsAvailable(data: ReturnType<typeof paymentConfirmationAvailable>) {\n    this.showLoadingModal = false;\n  }\n\n  @action.bound\n  private onPaymentConfirmationError(data: ReturnType<typeof paymentConfirmationError>) {\n    this.showLoadingModal = false;\n    this.notificationService.add({\n      title: this.localizationService.translateError(\"generic\"),\n      type: NotificationType.ERROR,\n      icon: IconType.Error,\n    });\n  }\n\n  @computed get isMultiple() {\n    return toJS(this.chargeOrder.charges).flatMap(item => item.licensePlates).length > 1;\n  }\n\n  @action.bound\n  async getPaymentConfirmation() {\n    if (this.showLoadingModal) {\n      return;\n    }\n\n    this.showLoadingModal = true;\n\n    try {\n      await saveFileFromURL(this.chargeOrderService.getPaymentConfirmation, \"Order status\", { order: this.chargeOrder });\n    } finally {\n      this.showLoadingModal = false;\n    }\n  }\n\n  get navigationParams() {\n    const result = this.result;\n\n    return { result };\n  }\n\n  static Factory({ container }: interfaces.Context) {\n    return (chargeOrder: ChargeOrder) => {\n      return new StatusViewModel(\n        chargeOrder,\n        container.get(LocalizationService),\n        container.get(TimeService),\n        container.get(CustomerReviewViewModel),\n        container.get(OrderSummaryViewModel.Factory),\n        container.get(ChargeOrderService),\n        container.get(GaService),\n        container.get(EventBus),\n        container.get(NotificationService)\n      );\n    };\n  }\n}\n","import { Router, ScreenBase } from \"@frui.ts/screens\";\r\nimport { czechID } from \"config\";\r\nimport differenceInDays from \"date-fns/differenceInDays\";\r\nimport { interfaces } from \"inversify\";\r\nimport { action, computed, observable } from \"mobx\";\r\nimport FuelType from \"entities/fuelType\";\r\nimport EnumService from \"services/enumService\";\r\nimport LocalizationService from \"services/localizationService\";\r\nimport Vehicle from \"../../models/vehicle\";\r\nimport { startOfCzechDay } from \"../../utils/dateUtils\";\r\nimport CountryResponse from \"entities/countryResponse\";\r\nimport ChargeRegistrationsResponse from \"entities/chargeRegistrationsResponse\";\r\nimport RegisteredChargeResponse from \"entities/registeredChargeResponse\";\r\nimport ChargeTypesService from \"services/chargeTypesService\";\r\nimport FuelTypeResponse from \"entities/fuelTypeResponse\";\r\nimport ExemptionReasonResponse from \"entities/exemptionReasonResponse\";\r\nimport ExemptionReason from \"entities/exemptionReason\";\r\nimport ChargeOrderService from \"services/chargeOrderService\";\r\nimport TimeService from \"services/timeService\";\r\n\r\nexport enum ChargeRegistrationStatus {\r\n  valid = \"valid\",\r\n  invalid = \"invalid\",\r\n  exempted = \"exempted\",\r\n  possibleExempted = \"possibleExempted\",\r\n}\r\n\r\nexport const ValidationSummaryNavigationName = \"summary\";\r\n\r\n@Router.registerRoute({ route: ValidationSummaryNavigationName, name: Router.Self })\r\nexport default class ValidationSummaryViewModel extends ScreenBase {\r\n  private countRegex = /%COUNT%/g;\r\n  private expirationRegex = /%EXPIRATION%/g;\r\n  private validRegex = /%VALID%/g;\r\n  @observable country?: CountryResponse;\r\n  @observable queryParams: object;\r\n\r\n  constructor(\r\n    public vehicle: Vehicle,\r\n    public chargeRegistrationsResponse: ChargeRegistrationsResponse,\r\n    public localizationService: LocalizationService,\r\n    public timeService: TimeService,\r\n    private enumService: EnumService,\r\n    private chargeTypesService: ChargeTypesService,\r\n    private chargeOrderService: ChargeOrderService\r\n  ) {\r\n    super();\r\n    this.navigationName = ValidationSummaryNavigationName;\r\n  }\r\n\r\n  protected async onInitialize(): Promise<Promise<any> | void> {\r\n    this.getCountryEnum();\r\n    await this.timeService.getCurrentServerTime();\r\n\r\n    this.enumService.values(\"exemption_reasons\") as ExemptionReasonResponse[];\r\n    return super.onInitialize();\r\n  }\r\n\r\n  async getCountryEnum() {\r\n    const countryId = this.vehicle.countryId;\r\n    if (countryId === czechID) {\r\n      this.country = {\r\n        id: czechID,\r\n        name: \"Česká republika\",\r\n        code: \"CZ\",\r\n        isDeleted: false,\r\n      };\r\n    } else {\r\n      this.country = (await this.enumService.lazyValue(\"countries\", countryId!)) as CountryResponse;\r\n    }\r\n  }\r\n\r\n  get navigationParams() {\r\n    const countryId = this.vehicle.countryId;\r\n    const licensePlate = this.vehicle.licensePlate;\r\n\r\n    return countryId && licensePlate ? { countryId, licensePlate } : {};\r\n  }\r\n\r\n  @computed\r\n  get isDifferentTimeZone() {\r\n    return this.timeService.isFetched && !this.timeService.isServerTimeSame;\r\n  }\r\n\r\n  @computed\r\n  get serverTime() {\r\n    return this.timeService.currentServerTime;\r\n  }\r\n\r\n  @computed\r\n  get status() {\r\n    if (this.chargeRegistrationsResponse.isGivenExemption) {\r\n      return ChargeRegistrationStatus.exempted;\r\n    } else if (this.chargeRegistrationsResponse.charges.some(charge => charge.isCurrentlyValid)) {\r\n      return ChargeRegistrationStatus.valid;\r\n    } else if (this.chargeRegistrationsResponse.possibleExemptionReasonIds.length > 0) {\r\n      return ChargeRegistrationStatus.possibleExempted;\r\n    } else {\r\n      return ChargeRegistrationStatus.invalid;\r\n    }\r\n  }\r\n\r\n  @computed\r\n  get possibleExemptionReason() {\r\n    const exemptionReasons = this.enumService.values(\"exemption_reasons\") as ExemptionReasonResponse[];\r\n    return this.chargeRegistrationsResponse.possibleExemptionReasonIds\r\n      ?.map(id => exemptionReasons.find(reason => reason.id === id)?.exemptionReason)\r\n      .map(reason => {\r\n        if (reason?.includes(ExemptionReason.O)) {\r\n          return ExemptionReason.O;\r\n        }\r\n        return reason;\r\n      })\r\n      .filter((value, index, self) => {\r\n        return self.indexOf(value) === index;\r\n      });\r\n  }\r\n\r\n  @computed\r\n  get validCharges(): RegisteredChargeResponse[] {\r\n    return this.chargeRegistrationsResponse.charges.filter(charge => charge.isCurrentlyValid);\r\n  }\r\n\r\n  @computed\r\n  get upcomingCharges(): RegisteredChargeResponse[] {\r\n    return this.chargeRegistrationsResponse.charges.filter(charge => !charge.isCurrentlyValid);\r\n  }\r\n\r\n  @computed\r\n  get hasExemption() {\r\n    return this.chargeRegistrationsResponse.isGivenExemption;\r\n  }\r\n\r\n  @computed\r\n  get buyEnabled() {\r\n    return [ChargeRegistrationStatus.invalid, ChargeRegistrationStatus.possibleExempted].includes(this.status);\r\n  }\r\n\r\n  @computed\r\n  get vehicleInfo() {\r\n    const licensePlate = this.vehicle.licensePlate;\r\n\r\n    if (!this.country?.code && !licensePlate) {\r\n      return \"\";\r\n    }\r\n\r\n    return `${this.country?.code || \"  \"} – ${licensePlate}`;\r\n  }\r\n\r\n  @action.bound\r\n  isChargeEco(charge: RegisteredChargeResponse) {\r\n    const priceList = this.chargeTypesService.getPriceItemList(true);\r\n    const priceListItem = priceList?.find(item => item.id === charge.priceListItemId);\r\n    if (!priceListItem) {\r\n      return false;\r\n    }\r\n    const fuelTypes = this.enumService.values(\"fuel_types\") as FuelTypeResponse[];\r\n    const fuelType = fuelTypes?.find(t => t.id.toString() === priceListItem.fuelTypeId)?.fuelType;\r\n    if (!fuelType) {\r\n      return false;\r\n    }\r\n    return [FuelType.NaturalGas, FuelType.Biomethane].includes(fuelType as FuelType);\r\n  }\r\n\r\n  @action.bound\r\n  getChargeExpiration(charge: RegisteredChargeResponse) {\r\n    const validDays = differenceInDays(charge.validUntil, new Date());\r\n\r\n    if (validDays < 0 || new Date() < charge.validSince || new Date() > charge.validUntil) {\r\n      return \"\"; // This can happen if the client has an incorrect date\r\n    }\r\n\r\n    let validDaysString;\r\n    if (validDays === 0) {\r\n      validDaysString = this.translate(\"today\");\r\n    } else {\r\n      validDaysString = this.translate(\"days\", validDays).replace(this.countRegex, validDays.toString());\r\n    }\r\n\r\n    return this.translate(\"expiration\").replace(this.expirationRegex, validDaysString);\r\n  }\r\n\r\n  @action.bound\r\n  getChargeValidIn(charge: RegisteredChargeResponse) {\r\n    const validInDays = differenceInDays(charge.validSince, startOfCzechDay());\r\n\r\n    if (validInDays < 0 || new Date() > charge.validSince) {\r\n      return \"\"; // This can happen if the client has an incorrect date\r\n    }\r\n\r\n    let validInDaysString;\r\n    if (validInDays === 0) {\r\n      validInDaysString = this.translate(\"lessThanDay\");\r\n    } else {\r\n      validInDaysString = this.translate(\"days\", validInDays).replace(this.countRegex, validInDays.toString());\r\n    }\r\n\r\n    return this.translate(\"validIn\").replace(this.validRegex, validInDaysString);\r\n  }\r\n\r\n  @action.bound\r\n  chargeValidityRange(charge: RegisteredChargeResponse) {\r\n    return charge.validUntil;\r\n  }\r\n\r\n  @action.bound\r\n  next() {\r\n    this.requestClose();\r\n  }\r\n\r\n  @action.bound\r\n  buy() {\r\n    this.chargeOrderService.createNewChargeOrder(this.vehicle);\r\n    window.location.href = this.localizationService.translateGeneral(\"eshopRedirect\", undefined, true);\r\n  }\r\n\r\n  @action.bound\r\n  ta(code: string) {\r\n    return this.localizationService.translateAttribute(\"chargeRegistration\", code);\r\n  }\r\n\r\n  @action.bound\r\n  translate(code: string, count: number | undefined = undefined, disabledUnbreakableRules = false) {\r\n    return this.localizationService.translateGeneral(`validation.${code}`, count, disabledUnbreakableRules);\r\n  }\r\n\r\n  static Factory({ container }: interfaces.Context) {\r\n    return (vehicle: Vehicle, chargeRegistration: ChargeRegistrationsResponse) =>\r\n      new ValidationSummaryViewModel(\r\n        vehicle,\r\n        chargeRegistration,\r\n        container.get(LocalizationService),\r\n        container.get(TimeService),\r\n        container.get(EnumService),\r\n        container.get(ChargeTypesService),\r\n        container.get(ChargeOrderService)\r\n      );\r\n  }\r\n}\r\n","import { bound } from \"@frui.ts/helpers\";\nimport { Router } from \"@frui.ts/screens/dist\";\nimport { addError, attachManualValidator, getValidationMessage, removeError } from \"@frui.ts/validation\";\nimport { onlyResolvesLast } from \"awesome-only-resolves-last-promise/dist\";\nimport { attachAutomaticBlurValidator } from \"utils/validationPatch\";\nimport { plainToClass } from \"class-transformer\";\nimport { action, computed, observable, reaction } from \"mobx\";\nimport NiaResponse from \"models/niaResponse\";\nimport ChargeRegistrationService from \"services/chargeRegistrationService\";\nimport EnumService from \"services/enumService\";\nimport EventBus, {\n  licensePlateChangeCreationFailed,\n  licensePlateChangeDocumentsUploadFailed,\n  licensePlateChangeDocumentsUploadSuccess,\n  licensePlateChangeISDSConceptStatusCheckFailure,\n  licensePlateChangeISDSConceptStatusCheckSuccess,\n  licensePlateChangeISDSSessionIdHandled,\n  licensePlateChangeNIAResponseHandled,\n} from \"services/eventBus\";\nimport LicensePlateChangeService from \"services/licensePlateChangeService\";\nimport LocalizationService from \"services/localizationService\";\nimport NiaService, { Notice } from \"services/NIA/niaService\";\nimport { SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY } from \"services/omissionService\";\nimport AppRouter from \"services/appRouter\";\nimport VehicleInfoViewModel from \"viewModels/common/vehicleInfoViewModel\";\nimport { getTooltipPosition } from \"viewModels/utils\";\nimport ISDSService from \"../../../services/ISDS/isdsService\";\nimport { repeatIfFailed } from \"../../../services/requestRecoveryService\";\nimport serializeNotice from \"../../../utils/serializeNotice\";\nimport NoticeViewModel from \"../noticeViewModel\";\nimport debounce from \"debounce-promise\";\nimport ApplicantPersonViewModel from \"../components/applicantPersonViewModel\";\nimport OutageService from \"../../../services/outageService\";\nimport OutagesViewModel from \"../../common/outagesViewModel\";\nimport VehicleChargingInstructionsResponse from \"entities/vehicleChargingInstructionsResponse\";\nimport ExemptionReasonResponse from \"entities/exemptionReasonResponse\";\nimport VehicleChangeApplicationProductionResponse from \"entities/vehicleChangeApplicationProductionResponse\";\nimport { czechID } from \"config\";\nimport { PersistedBase64, SignatureType } from \"models/notice\";\nimport { NoticeTechnicalLicenseRules } from \"models/licensePlateChange\";\n\nexport const LicensePlateChangeNoticeNavigationName = \"license_plate_change_notice\";\n\n@Router.registerRoute({ route: LicensePlateChangeNoticeNavigationName, name: Router.Self })\nexport default class LicensePlateChangeViewModel extends NoticeViewModel {\n  @observable tooltipPosition: \"right-start\" | \"bottom\";\n  @observable applicantPersonViewModel: ApplicantPersonViewModel;\n  @observable originalVehicleInfoViewModel: VehicleInfoViewModel;\n  @observable newVehicleInfoViewModel: VehicleInfoViewModel;\n  @observable allowCreateExemption = false;\n  @observable loadingInstruction = false;\n  private debouncedLookForChargeRegistration = debounce(this.lookForChargeRegistration, 400);\n  private lastResolveFindChargeRegistration = onlyResolvesLast(this.findChargeRegistration);\n\n  @computed\n  get newVehicleErrorMessage() {\n    return getValidationMessage(this, \"notice\");\n  }\n\n  @computed\n  get notice() {\n    return this.service.notice;\n  }\n\n  @computed\n  get hasToUploadPowerOfAttorney() {\n    return false;\n  }\n\n  @computed\n  get hasToUploadTechnicalLicense() {\n    return this.notice._signatureType === SignatureType.DataBox;\n  }\n\n  constructor(\n    public localizationService: LocalizationService,\n    protected enumService: EnumService,\n    protected niaService: NiaService,\n    protected isdsService: ISDSService,\n    protected outageService: OutageService,\n    protected eventBus: EventBus,\n    protected service: LicensePlateChangeService,\n    protected router: AppRouter,\n    protected outagesViewModelFactory: ReturnType<typeof OutagesViewModel.Factory>,\n    private chargeRegistrationService: ChargeRegistrationService,\n    private vehicleInfoVMFactory: ReturnType<typeof VehicleInfoViewModel.Factory>,\n    private applicantPersonInputVMFactory: ReturnType<typeof ApplicantPersonViewModel.Factory>\n  ) {\n    super(\n      localizationService,\n      enumService,\n      niaService,\n      isdsService,\n      outageService,\n      eventBus,\n      service,\n      router,\n      outagesViewModelFactory\n    );\n    this.navigationName = LicensePlateChangeNoticeNavigationName;\n    this.createChildren();\n    window.addEventListener(\"resize\", this.handleResize);\n    this.setDefaultCountryId();\n    if (!this.notice.countryId && this.localizationService.languageCode === \"CS\") {\n      this.notice.countryId = czechID;\n    }\n    attachManualValidator(this, true);\n    this.attachValidators();\n\n    this.unsubscriptions.push(\n      this.eventBus.subscribe(licensePlateChangeCreationFailed, this.generalOperationFailed),\n      this.eventBus.subscribe(licensePlateChangeDocumentsUploadFailed, this.isdsOperationFailed),\n      this.eventBus.subscribe(licensePlateChangeDocumentsUploadSuccess, this.isdsUploadOperationSuccess),\n      this.eventBus.subscribe(licensePlateChangeISDSConceptStatusCheckSuccess, this.isdsConceptStatusCheck),\n      this.eventBus.subscribe(licensePlateChangeISDSConceptStatusCheckFailure, this.isdsConceptFailure),\n      this.eventBus.subscribe(licensePlateChangeNIAResponseHandled, this.NiaResponseHandler),\n      this.eventBus.subscribe(licensePlateChangeISDSSessionIdHandled, this.ISDSSessionIdHandler)\n    );\n  }\n\n  @computed\n  get vehicleChargingInstructions(): VehicleChargingInstructionsResponse | undefined {\n    return this.chargeRegistrationService.vehicleChargingInstructions;\n  }\n\n  @computed\n  get vehicleChangeApplicationProduction(): VehicleChangeApplicationProductionResponse | undefined {\n    return this.service.vehicleChangeApplicationProduction;\n  }\n\n  @computed\n  get loadingData() {\n    return this.loadingInstruction;\n  }\n\n  @computed\n  get isContinueDisabled(): boolean {\n    return this.service.vehicleChangeApplicationProduction?.canBeAppliedFor === false;\n  }\n\n  @bound\n  translateGeneral(code: string, disableUnbreakableRules = false) {\n    return this.localizationService.translateGeneral(`licensePlateChange.${code}`, undefined, disableUnbreakableRules);\n  }\n\n  @bound\n  translateAttribute(code: string) {\n    return this.localizationService.translateAttribute(\"licensePlateChange\", code);\n  }\n\n  @bound\n  showBirthdate() {\n    return false;\n  }\n\n  @bound\n  translateWarningReason(code: string, possibleExemptionReasonIds?: string[]): string {\n    if (code === \"IDENTIFIED_POSSIBLE_EXEMPTION\") {\n      if (!possibleExemptionReasonIds || possibleExemptionReasonIds.length < 1) {\n        return this.localizationService.translateGeneral(\"errors.generic\");\n      }\n      const possibleExemptionReasonId = possibleExemptionReasonIds[0];\n      const exemptionReasons = this.enumService.values(\"exemption_reasons\") as ExemptionReasonResponse[];\n      const matchingReason = exemptionReasons.find(x => x.id === possibleExemptionReasonId);\n      switch (matchingReason?.exemptionReason) {\n        case \"C\":\n          return this.translateWarningReason(\"IDENTIFIED_POSSIBLE_EXEMPTION_C\", possibleExemptionReasonIds);\n        case \"P\":\n          return this.translateWarningReason(\"IDENTIFIED_POSSIBLE_EXEMPTION_P\", possibleExemptionReasonIds);\n        case \"O\":\n        case \"O1\":\n        case \"O2\":\n          return this.translateWarningReason(\"IDENTIFIED_POSSIBLE_EXEMPTION_O\", possibleExemptionReasonIds);\n        default:\n          return this.localizationService.translateGeneral(\"errors.generic\");\n      }\n    }\n    if (this.service.vehicleChangeApplicationProduction?.chargeManagementUrl) {\n      return this.localizationService\n        .translateGeneral(`eshop.order.license.exemptionReasonWarnings.${code}`, undefined, false)\n        .replace(\"%link%\", this.service.vehicleChangeApplicationProduction?.chargeManagementUrl);\n    }\n    return this.localizationService.translateGeneral(`eshop.order.license.exemptionReasonWarnings.${code}`, undefined, false);\n  }\n\n  protected async onInitialize(): Promise<any> {\n    this.enumService.values(\"exemption_reasons\") as ExemptionReasonResponse[];\n    this.unsubscriptions.push(\n      reaction(() => [this.notice.licensePlate, this.notice.countryId], this.chargeRegistrationReaction, {\n        fireImmediately: true,\n      }),\n      reaction(\n        () => [this.notice.vehicle?.licensePlate, this.notice.vehicle?.countryId],\n        () => {\n          this.allowCreateExemption = false;\n          this.service.vehicleChangeApplicationProduction = undefined;\n          this.chargeRegistrationService.vehicleChargingInstructions = undefined;\n        }\n      ),\n      reaction(() => [this.notice.licensePlate, this.notice.countryId], this.persistNotice),\n      reaction(\n        () => [\n          this.notice.licensePlate,\n          this.notice.countryId,\n          this.notice.vehicle?.licensePlate,\n          this.notice.vehicle?.countryId,\n        ],\n        this.sameVehicleCheck,\n        { fireImmediately: true }\n      )\n    );\n    return super.onInitialize();\n  }\n\n  protected onDeactivate(isClosing: boolean) {\n    if (isClosing) {\n      this.unsubscriptions.forEach(unsubscribe => unsubscribe());\n    }\n    window.removeEventListener(\"resize\", this.handleResize);\n    return super.onDeactivate(isClosing);\n  }\n\n  handleResize = () => {\n    this.tooltipPosition = getTooltipPosition(window);\n  };\n\n  private translateOrderItem(code: string) {\n    return this.localizationService.translateAttribute(\"orderItem\", code);\n  }\n\n  async navigate(subPath: string | undefined, params: any) {\n    if (!params) return;\n\n    if (params.sessionId) {\n      if (sessionStorage.getItem(SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY)) {\n        sessionStorage.removeItem(SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY);\n        await this.isdsService.conceptStatus(params.sessionId, Notice.LICENSE_PLATE_CHANGE);\n        return;\n      }\n      this.eventBus.publish(licensePlateChangeISDSSessionIdHandled({ sessionId: params.sessionId }));\n    } else if (params.response) {\n      const response = params.response;\n\n      if (response && this.notice && this.notice.applicant) {\n        const urlDecoded = decodeURI(response);\n        const base64Decoded = atob(urlDecoded);\n        const niaResponse = plainToClass(NiaResponse, JSON.parse(base64Decoded));\n\n        if (!niaResponse) return;\n\n        this.eventBus.publish(licensePlateChangeNIAResponseHandled({ niaResponse }));\n      }\n    }\n  }\n\n  @action.bound\n  protected isdsConceptStatusCheck(data: { type: string; payload: { success: boolean; notice: Notice } }) {\n    if (data.payload.success && data.payload.notice) {\n      this.router.navigate(\"license_plate_change_documents\", undefined, {\n        notice: data.payload.notice,\n      });\n    }\n  }\n\n  @action.bound\n  protected isdsUploadOperationSuccess(data: { type: string; payload: { conceptIdent: string } }) {\n    super.isdsUploadOperationSuccess(data);\n    this.isdsService.redirectToISDSConcept(Notice.LICENSE_PLATE_CHANGE, data.payload.conceptIdent);\n  }\n\n  @bound\n  sameVehicleCheck() {\n    removeError(this, \"notice\");\n    if (\n      this.notice.countryId &&\n      this.notice.licensePlate &&\n      this.notice.vehicle?.countryId === this.notice.countryId &&\n      this.notice.vehicle?.licensePlate === this.notice.licensePlate\n    ) {\n      addError(this, \"notice\", this.localizationService.translate(\"validators.sameVehicle\"));\n    }\n  }\n\n  @bound\n  private async chargeRegistrationReaction() {\n    this.allowCreateExemption = false;\n    this.service.vehicleChangeApplicationProduction = undefined;\n    this.chargeRegistrationService.vehicleChargingInstructions = undefined;\n    if (this.notice.countryId && this.notice.licensePlate) {\n      try {\n        this.loadingInstruction = true;\n        await this.debouncedLookForChargeRegistration();\n        this.loadingInstruction = false;\n      } catch (e) {\n        this.loadingInstruction = false;\n        // Silent catch - background task with auto recovery mechanism\n      }\n    }\n  }\n\n  @action.bound\n  @repeatIfFailed\n  private async lookForChargeRegistration() {\n    const countryId = this.notice.countryId;\n    const licensePlate = this.notice.licensePlate;\n\n    if (!countryId || !licensePlate) return;\n\n    this.chargeRegistrationService.reset();\n\n    try {\n      await this.lastResolveFindChargeRegistration(countryId, licensePlate);\n    } catch (e) {\n      throw new Error(\"Registration check failed\");\n    }\n  }\n\n  @bound\n  private findChargeRegistration(countryId: string, licensePlate: string) {\n    return this.chargeRegistrationService.getChargingInstructions(countryId, licensePlate);\n  }\n\n  protected attachValidators() {\n    attachAutomaticBlurValidator(this.notice, {\n      ...this.notice.rules,\n      ...NoticeTechnicalLicenseRules,\n    });\n  }\n\n  @bound\n  protected async persistNotice() {\n    sessionStorage.setItem(Notice.LICENSE_PLATE_CHANGE, serializeNotice(this.notice));\n\n    await super.persistNotice();\n  }\n\n  @action.bound\n  public async createNotice(): Promise<string | undefined> {\n    this.errorMessage = undefined;\n    const countryId = this.notice.vehicle?.countryId;\n    const licensePlate = this.notice.vehicle?.licensePlate;\n\n    if (!countryId || !licensePlate) return Promise.resolve(undefined);\n\n    const response = (await this.service.getProduction(this.notice)) as any;\n\n    if (response.errors) {\n      this.creationLoadingModalToggle(false);\n      this.errorMessage = this.localizationService.translateGeneral(\"errors.invalidData\");\n      return;\n    }\n\n    if (\n      (this.vehicleChangeApplicationProduction?.warningReasons?.length ||\n        this.vehicleChangeApplicationProduction?.rejectionReason ||\n        this.vehicleChangeApplicationProduction?.canBeAppliedFor === false) &&\n      !this.allowCreateExemption\n    ) {\n      this.allowCreateExemption = true;\n\n      return Promise.resolve(undefined);\n    }\n\n    return this.service.createLicensePlateChangeNotice(this.notice);\n  }\n\n  @action.bound\n  public uploadDocuments(ISDSSessionId: string, files: PersistedBase64[]): Promise<void> | undefined {\n    this.errorMessage = undefined;\n    const countryId = this.notice.vehicle?.countryId;\n    const licensePlate = this.notice.vehicle?.licensePlate;\n\n    if (!countryId || !licensePlate) return;\n\n    return this.service.uploadDocuments(ISDSSessionId, files);\n  }\n\n  @action.bound\n  public redirectToISDS(): void {\n    this.errorMessage = undefined;\n    this.creationLoadingModalToggle(false);\n    this.isdsService.redirectToISDS(Notice.LICENSE_PLATE_CHANGE);\n  }\n\n  @action.bound\n  public redirectToNia() {\n    this.errorMessage = undefined;\n    this.creationLoadingModalToggle(false);\n    this.niaService.redirectToNia(Notice.LICENSE_PLATE_CHANGE);\n  }\n\n  protected createChildren() {\n    this.children.clear();\n    this.children.push(\n      (this.originalVehicleInfoViewModel = this.vehicleInfoVMFactory(this.notice.vehicle!, {\n        attachValidator: true,\n        fixedLicensePlateSize: false,\n        initByLocalization: true,\n      })),\n      (this.newVehicleInfoViewModel = this.vehicleInfoVMFactory(this.notice, { attachValidator: false })),\n      (this.applicantPersonViewModel = this.applicantPersonInputVMFactory(this.notice.applicant, this.GDPR, this.showBirthdate()))\n    );\n  }\n}\n","import { bound } from \"@frui.ts/helpers\";\nimport { watchBusy } from \"@frui.ts/screens\";\nimport { action, computed, observable } from \"mobx\";\nimport ChargeManagementService, {\n  DOWNLOAD_PAYMENT_CONFIRMATION_REQUEST_FAILURE,\n  SEND_CHARGE_PAYMENT_CONFIRMATION_EMAIL_REQUEST_FAILURE,\n} from \"services/chargeManagementService\";\nimport EventBus, {\n  downloadPaymentConfirmationFailure,\n  emailUpdated,\n  putChargeContactSuccess,\n  sendChargePaymentConfirmationEmailFailure,\n  sendChargePaymentConfirmationEmailModalClosed,\n  sendChargePaymentConfirmationEmailSuccess,\n} from \"services/eventBus\";\nimport LocalizationService from \"services/localizationService\";\nimport SignalRNotificationService from \"services/signalR/notification/signalRNotificationService\";\nimport ChargeManagementEditPartViewModel from \"./chargeManagementEditPartViewModel\";\nimport React from \"react\";\nimport * as Sentry from \"@sentry/react\";\nimport { validate } from \"@frui.ts/validation\";\nimport { saveFileFromURL } from \"../../../utils/fileUtils\";\nimport NotificationPreferences from \"models/notificationPreferences\";\nimport ReceiptEmailModalViewModel from \"./receiptEmailModalViewModel\";\nimport EnumService from \"services/enumService\";\nimport ChargeTypesService from \"services/chargeTypesService\";\nimport TurnstileViewModel from \"../../common/turnstileViewModel\";\nimport { TurnstileInstance } from \"@marsidev/react-turnstile\";\n\nexport default class ChargeManagementReceiptViewModel extends ChargeManagementEditPartViewModel {\n  EMAIL_REGEX = \"%email%\";\n  turnstileViewModel: TurnstileViewModel;\n\n  turnstileAction?: () => Promise<void>;\n  recatpchaFailed?: () => void;\n  @observable emailInputViewModel?: ReceiptEmailModalViewModel;\n  @observable showModal = false;\n  @observable emailModalOpened = false;\n  @observable checkRequiredEmail = false;\n  @observable turnstileError?: string;\n  @observable turnstileInfo?: string;\n  @observable private notificationPreferences = new NotificationPreferences();\n\n  constructor(\n    public localizationService: LocalizationService,\n    protected chargeManagementService: ChargeManagementService,\n    protected chargeTypesService: ChargeTypesService,\n    protected eventBus: EventBus,\n    protected enumService: EnumService,\n    protected signalRNotificationService: SignalRNotificationService,\n    private receiptEmailModalViewModelFactory: ReturnType<typeof ReceiptEmailModalViewModel.Factory>,\n    turnstileViewModelFactory: ReturnType<typeof TurnstileViewModel.Factory>\n  ) {\n    super();\n    this.navigationName = \"receipt\";\n    this.turnstileViewModel = turnstileViewModelFactory(\"chargeManagementReceipt\", true);\n    this.unsubscriptions.push(\n      this.eventBus.subscribe(downloadPaymentConfirmationFailure, this.downloadPaymentConfirmationFailure),\n      this.eventBus.subscribe(sendChargePaymentConfirmationEmailModalClosed, this.sendChargePaymentConfirmationEmailModalClosed),\n      this.eventBus.subscribe(sendChargePaymentConfirmationEmailFailure, this.sendChargePaymentConfirmationEmailFailure),\n      this.eventBus.subscribe(sendChargePaymentConfirmationEmailSuccess, this.sendChargePaymentConfirmationEmailSuccess),\n      this.eventBus.subscribe(putChargeContactSuccess, this.putChargeContactSuccess),\n      this.eventBus.subscribe(emailUpdated, this.onEmailUpdated)\n    );\n  }\n\n  protected onInitialize(): Promise<any> | void {\n    return super.onInitialize();\n  }\n\n  protected onDeactivate(isClosing: boolean): Promise<any> | void {\n    if (isClosing) {\n      this.unsubscriptions.forEach(unsubscribe => unsubscribe());\n      this.unsubscriptions = [];\n    }\n    return super.onDeactivate(isClosing);\n  }\n\n  get canEdit(): boolean {\n    return true;\n  }\n\n  @computed\n  get hasSecondStep() {\n    return false;\n  }\n\n  @bound\n  public validate(): boolean {\n    return validate(this.notificationPreferences);\n  }\n\n  submit() {\n    // silence is golden\n  }\n\n  @bound\n  protected openChargePaymentConfirmationModal(token: string) {\n    this.showModal = true;\n    if (this.charge) {\n      this.emailModalOpened = true;\n      this.emailInputViewModel = this.receiptEmailModalViewModelFactory(this.charge, this.closeEmailModal, () =>\n        this.sendPaymentConfirmationEmail(token)\n      );\n    }\n  }\n\n  @bound\n  protected downloadPaymentConfirmationFailure(data: { type: string; payload: { type: string } }) {\n    this.success = false;\n    this.errorMessage = this.genericError;\n  }\n\n  @bound\n  protected sendChargePaymentConfirmationEmailModalClosed() {\n    this.emailModalOpened = false;\n  }\n\n  @bound\n  protected sendChargePaymentConfirmationEmailSuccess() {\n    this.success = true;\n    this.emailModalOpened = false;\n  }\n\n  @bound\n  protected sendChargePaymentConfirmationEmailFailure(data: ReturnType<typeof sendChargePaymentConfirmationEmailFailure>) {\n    this.success = false;\n    this.errorMessage = this.genericError;\n  }\n\n  @computed\n  get customSuccessMessage() {\n    return this.translate(\"receipt.success\").replace(\n      this.EMAIL_REGEX,\n      this.charge && this.charge.emailAddress ? this.charge.emailAddress : \"unknown\"\n    );\n  }\n\n  @computed\n  get doesNotHaveEmail() {\n    return !this.charge?.emailAddress;\n  }\n\n  @action.bound\n  closeEmailModal() {\n    this.showModal = false;\n  }\n\n  @bound\n  protected onEmailUpdated(data: ReturnType<typeof emailUpdated>) {\n    this.setEmailAddress(data.payload.emailAddress);\n    if (this.emailInputViewModel) {\n      this.emailInputViewModel = undefined;\n    }\n  }\n\n  @bound\n  protected async putChargeContactSuccess(data: ReturnType<typeof putChargeContactSuccess>) {\n    if (data.payload.triggerer !== \"contactChange\") {\n      this.emailInputViewModel = undefined;\n      return;\n    }\n\n    this.clearAfterAsyncAction();\n\n    if (!this.charge) {\n      return;\n    }\n\n    this.charge.notificationPreferences.smsNotificationEnabled = data.payload.notificationPreferences?.smsNotificationEnabled;\n    this.charge.notificationPreferences.emailNotificationEnabled = data.payload.notificationPreferences?.emailNotificationEnabled;\n    this.charge.notificationPreferences._emailAddressNotification =\n      data.payload.notificationPreferences?._emailAddressNotification;\n    this.charge.notificationPreferences._emailConfirmation = data.payload.emailAddress;\n    this.charge.emailAddress = data.payload.emailAddress;\n    this.charge.notificationPreferences.phoneNumber = data.payload.notificationPreferences?.phoneNumber;\n    if (data.payload.authCode) this.charge.authCode = data.payload.authCode;\n  }\n\n  @action.bound\n  @watchBusy\n  async sendPaymentConfirmationEmail(token: string) {\n    // If the user doesn't have an email address, we need to display a modal window first.\n    this.checkRequiredEmail = true;\n    if (this.charge && !this.charge.emailAddress && !this.emailModalOpened && this.checkRequiredEmail) {\n      this.openChargePaymentConfirmationModal(token);\n      return;\n    }\n\n    // Once the user fills out their email (or has had it already, we submit it).\n    this.success = false;\n    this.errorMessage = undefined;\n\n    if (!this.validate()) return;\n\n    // Set action that will be called after turnstile has validated\n    if (token) {\n      try {\n        await this.actionSendPaymentConfirmationEmail(token);\n      } catch (error) {\n        Sentry.withScope(scope => {\n          scope.setTag(\"turnstile\", \"execute\");\n          const sentryError = error instanceof Error ? error : new Error(String(error));\n          sentryError.name = \"TurnstileExecuteError\";\n          Sentry.captureException(sentryError);\n        });\n        this.recatpchaFailed = () => {\n          this.eventBus.publish(\n            sendChargePaymentConfirmationEmailFailure({ type: SEND_CHARGE_PAYMENT_CONFIRMATION_EMAIL_REQUEST_FAILURE })\n          );\n        };\n      }\n    }\n    this.turnstileViewModel.reset();\n  }\n\n  @action.bound\n  @watchBusy\n  async actionSendPaymentConfirmationEmail(token: string) {\n    if (token) {\n      this.isLoading = true;\n      try {\n        await this.chargeManagementService.sendChargePaymentConfirmationEmail(\n          this.emailModalOpened ? this.charge?.emailAddress : undefined,\n          token\n        );\n      } finally {\n        this.isLoading = false;\n      }\n    }\n  }\n\n  @action.bound\n  @watchBusy\n  async downloadPaymentConfirmation(token: string) {\n    this.success = false;\n    this.errorMessage = undefined;\n    this.checkRequiredEmail = false;\n    try {\n      // Set action that will be called after turnstile has validated\n      if (token) {\n        this.actionDownloadPaymentConfirmation(token);\n      }\n      this.turnstileViewModel.reset();\n      this.recatpchaFailed = () => {\n        this.eventBus.publish(downloadPaymentConfirmationFailure({ type: DOWNLOAD_PAYMENT_CONFIRMATION_REQUEST_FAILURE }));\n      };\n    } catch (error) {\n      this.eventBus.publish(downloadPaymentConfirmationFailure({ type: DOWNLOAD_PAYMENT_CONFIRMATION_REQUEST_FAILURE }));\n    }\n  }\n\n  @action.bound\n  @watchBusy\n  async actionDownloadPaymentConfirmation(token: string) {\n    if (token) {\n      await saveFileFromURL(() => this.chargeManagementService.downloadPaymentConfirmation(token!), \"Charge management\", {\n        charge: this.charge,\n      });\n    }\n  }\n}\n","import { observable } from \"mobx\";\nimport CustomerRatingScore from \"./customerRatingScore\";\nimport { EntityValidationRules } from \"services/validationService\";\n\n// This entity has been generated, do not change its content, your changes might get lost. You CAN modify the rest of the file.\nexport default class ChargeOrderCustomerRatingRequest {\n  @observable\n  score!: CustomerRatingScore;\n\n  @observable\n  comment?: string;\n}\n\nexport const ChargeOrderCustomerRatingRules: EntityValidationRules<ChargeOrderCustomerRatingRequest> = {\n  score: {\n    required: true,\n  },\n  comment: {\n    isLength: {\n      max: 1000,\n      customMessage: \"ratingCommentLenght\",\n    },\n    prohibitedCharacters: true,\n  },\n};\n","import { Router, ScreenBase } from \"@frui.ts/screens\";\nimport ChargeOrderCustomerRatingRequest, { ChargeOrderCustomerRatingRules } from \"entities/chargeOrderCustomerRatingRequest\";\nimport CustomerRatingScore from \"entities/customerRatingScore\";\nimport { action, computed, observable, reaction } from \"mobx\";\nimport LocalizationService from \"services/localizationService\";\nimport ChargeOrderRepository from \"repositories/chargeOrderRepository\";\nimport { attachAutomaticBlurValidator } from \"utils/validationPatch\";\nimport { getValidationMessage, validate } from \"@frui.ts/validation\";\nimport EventBus, { customerRatingOrderData } from \"services/eventBus\";\nimport EshopError from \"models/eshopError\";\nimport { scrollToElement } from \"utils/scrollTo\";\nimport CustomerReviewStorageRepository from \"repositories/customerReviewStorageRepository/customerReviewStorageRepository\";\nimport CustomerRating from \"entities/customerRating\";\nimport { isMobile } from \"react-device-detect\";\n\nexport const CustomerReviewModuleNavigationName = \"customer_review\";\n\nexport interface CustomerReview {\n  id: string;\n  value: CustomerRatingScore;\n}\n\nexport const customerReview: CustomerReview[] = [\n  { id: \"1\", value: CustomerRatingScore.Positive },\n  { id: \"2\", value: CustomerRatingScore.Neutral },\n  { id: \"3\", value: CustomerRatingScore.Negative },\n];\n\n@Router.registerRoute({ route: CustomerReviewModuleNavigationName, name: \"customer_review\" })\nexport default class CustomerReviewViewModel extends ScreenBase {\n  unsubscriptions: Array<() => void> = [];\n  @observable customerRating: ChargeOrderCustomerRatingRequest;\n  @observable orderId: string;\n  @observable step = 1;\n  @observable errorMessage: string;\n\n  constructor(\n    protected eventBus: EventBus,\n    private repository: ChargeOrderRepository,\n    private customerReviewStorage: CustomerReviewStorageRepository,\n    private localizationService: LocalizationService\n  ) {\n    super();\n    this.customerRating = new ChargeOrderCustomerRatingRequest();\n    attachAutomaticBlurValidator(this.customerRating, {\n      ...ChargeOrderCustomerRatingRules,\n    });\n    this.unsubscriptions.push(this.eventBus.subscribe(customerRatingOrderData, this.onCustomerRatingOrderData));\n  }\n\n  protected onInitialize(): Promise<any> | void {\n    return super.onInitialize();\n  }\n\n  protected onActivate() {\n    this.checkCustomerRatingStorage();\n  }\n\n  protected onDeactivate(isClosing: boolean): Promise<any> | void {\n    if (isClosing) {\n      this.unsubscriptions.forEach(unsubscribe => unsubscribe());\n      this.unsubscriptions = [];\n    }\n    this.customerReviewStorage.removeCustomerRating(this.orderId);\n    return super.onDeactivate(isClosing);\n  }\n\n  @computed\n  get customerReviews() {\n    return customerReview.map(item => item);\n  }\n\n  @computed\n  get rating() {\n    return this.customerRating;\n  }\n\n  @computed\n  get ratingScore() {\n    return this.rating.score;\n  }\n\n  @computed\n  get successRatingCardElement() {\n    return window.document.getElementById(\"success-rating-card\");\n  }\n\n  @computed\n  get error() {\n    return getValidationMessage(this.rating, \"score\");\n  }\n\n  @action.bound\n  public customerReviewColor(value: CustomerRatingScore) {\n    switch (value) {\n      case CustomerRatingScore.Neutral:\n        return \"color-alert\";\n      case CustomerRatingScore.Negative:\n        return \"color-danger\";\n      default:\n        return \"color-success\";\n    }\n  }\n\n  @action.bound\n  public checkCustomerRatingStorage() {\n    const storageRating = this.customerReviewStorage.getCustomerRating(this.orderId);\n    if (!storageRating) {\n      return;\n    }\n    if (storageRating.step) {\n      this.step = storageRating.step;\n    }\n    if (storageRating.warning) {\n      this.errorMessage = storageRating.warning;\n    }\n    if (storageRating.rating) {\n      this.customerRating = storageRating.rating;\n    }\n  }\n\n  @computed\n  get isDisabled() {\n    if (!!this.errorMessage && this.errorMessage !== \"REQUEST_MODEL_VALIDATION_FAILED\") {\n      return true;\n    }\n    if (!!this.errorMessage) {\n      return true;\n    }\n    return false;\n  }\n\n  @action.bound\n  isDisabledConfirm() {\n    if (!validate(this.rating)) {\n      return true;\n    }\n    return false;\n  }\n\n  @action.bound\n  public async onSubmit() {\n    if (validate(this.rating) && this.orderId) {\n      const response = await this.repository.postCustomerRating(this.orderId, this.rating);\n      if (response instanceof EshopError && response.title && response.type) {\n        this.errorMessage = response.type;\n        const storageRating: CustomerRating = {\n          step: this.step,\n          warning: this.errorMessage,\n          rating: this.rating,\n          orderId: this.orderId,\n        };\n        this.customerReviewStorage.addCustomerRating(storageRating);\n        return;\n      }\n      this.step = 2;\n      const storageRating: CustomerRating = {\n        step: this.step,\n        warning: this.errorMessage,\n        rating: this.rating,\n        orderId: this.orderId,\n      };\n      this.customerReviewStorage.addCustomerRating(storageRating);\n      if (isMobile && this.successRatingCardElement) {\n        scrollToElement(this.successRatingCardElement);\n      }\n    }\n  }\n\n  @action.bound\n  public async onCustomerRatingOrderData(data: ReturnType<typeof customerRatingOrderData>) {\n    const { orderId } = data.payload;\n\n    if (orderId) {\n      this.orderId = orderId;\n    }\n  }\n\n  @action.bound\n  translate(code: string, disableUnbreakableRules = false) {\n    return this.localizationService.translateGeneral(`customerRating.${code}`, undefined, disableUnbreakableRules);\n  }\n\n  @action.bound\n  translateError(code: string, disableUnbreakableRules = false) {\n    return this.localizationService.translateGeneral(`customerRating.errors.${code}`, undefined, disableUnbreakableRules);\n  }\n}\n","export enum PayGateLanguageCode {\n  CS = \"CS\",\n  EN = \"EN\",\n  DE = \"DE\",\n  FR = \"FR\",\n  HU = \"HU\",\n  IT = \"IT\",\n  JP = \"JP\",\n  PL = \"PL\",\n  PT = \"PT\",\n  RO = \"RO\",\n  RU = \"RU\",\n  SK = \"SK\",\n  ES = \"ES\",\n  TR = \"TR\",\n  VN = \"VN\",\n  HR = \"HR\",\n  SI = \"SI\",\n}\n","export const LANGUAGE_CODE = \"language_code\";\nexport const REDIRECT_AFTER_CONFIRM_URL = \"redirect_after_confirm_url\";\nexport const REDIRECT_URL = \"charge_orders/%ORDER_ID%/payment_request\";\nexport const ORDER_ID_REGEX = /%ORDER_ID%/g;\nexport const PARENT_REGEX = /%PARENT%/g;\nexport const CALLBACK = \"/#/eshop/status/%ORDER_ID%\";\nexport const CALLBACK_URL = \"%PROTOCOL%//%HOSTNAME%%PORT%%CALLBACK%\";\nexport const SPINNER = \"/wp-content/themes/edaz/spinner.html\";\nexport const PROTOCOL_REGEX = /%PROTOCOL%/g;\nexport const HOSTNAME_REGEX = /%HOSTNAME%/g;\nexport const PORT_REGEX = /%PORT%/g;\nexport const CALLBACK_REGEX = /%CALLBACK%/g;\n","import { action, observable } from \"mobx\";\nimport { PayGateLanguageCode } from \"./payGateLanguageCode.enum\";\nimport {\n  CALLBACK,\n  CALLBACK_REGEX,\n  CALLBACK_URL,\n  HOSTNAME_REGEX,\n  LANGUAGE_CODE,\n  ORDER_ID_REGEX,\n  PARENT_REGEX,\n  PORT_REGEX,\n  PROTOCOL_REGEX,\n  REDIRECT_AFTER_CONFIRM_URL,\n  REDIRECT_URL,\n  SPINNER,\n} from \"./constants\";\nimport LocalizationService from \"services/localizationService\";\nimport {\n  persistCallbackDestination,\n  SESSION_STORAGE_EXTERNAL_SERVICE_CALLBACK_DESTINATION_URL,\n} from \"utils/externalServiceUtils\";\nimport PaymentRepository from \"../../repositories/paymentRepository\";\nimport ChargeOrderRepository from \"../../repositories/chargeOrderRepository\";\nimport GooglePayMetadata from \"../../models/googlePayMetadata\";\nimport EventBus, {\n  getGooglePayMetadataFailure,\n  getGooglePayMetadataSuccess,\n  googlePayPayment3DSecureLoaded,\n  googlePayPaymentBrowserFingerprintLoaded,\n  paymentFailed,\n  submitGooglePayPaymentBrowserFingerprint,\n  submitGooglePayPaymentDeferred,\n  submitGooglePayPaymentFailure,\n  submitGooglePayPaymentSuccess,\n} from \"../eventBus\";\nimport EshopError from \"../../models/eshopError\";\nimport { PayGateCommonPaymentStatus } from \"../../models/googlePayInitPaymentResponse\";\nimport { PayGatePaymentStatus } from \"../../models/payGatePaymentResponse\";\nimport GooglePayProcessPaymentRequest from \"models/googlePayProcessPaymentRequest\";\nimport SignalRNotificationService from \"services/signalR/notification/signalRNotificationService\";\nimport { NOTIFICATION_SERVICE_CONNECTION_ID_UNDEFINED, NOTIFICATION_SERVICE_START_FAILURE } from \"repositories/order/constants\";\n\nconst PAYMENT_GATE_CALLBACK_DESTINATION_PATH = \"%PARENT%/status/%ORDER_ID%\";\n\nexport default class PaymentService {\n  @observable isFetchingGooglePayMetadata = false;\n  @observable submittingGooglePayment = false;\n  googlePayPoolingInterval: number;\n\n  private readonly GOOGLE_PAY_STATUS_POLL_INTERVAL_MS = 5000;\n  private readonly GOOGLE_PAY_STATUS_POLL_START_DELAY_MS = 20000;\n  private googlePayStatusPollTimeoutId?: any;\n  private googlePayStatusPollIntervalId?: any;\n  private googlePayStatusPollInFlight = false;\n\n  constructor(\n    private paymentRepository: PaymentRepository,\n    private notificationService: SignalRNotificationService,\n    private localizationService: LocalizationService,\n    private eventBus: EventBus,\n    private chargeOrderRepository: ChargeOrderRepository\n  ) {}\n\n  private stopGooglePayStatusPoll() {\n    if (this.googlePayStatusPollTimeoutId !== undefined) {\n      clearTimeout(this.googlePayStatusPollTimeoutId);\n      this.googlePayStatusPollTimeoutId = undefined;\n    }\n    if (this.googlePayStatusPollIntervalId !== undefined) {\n      clearInterval(this.googlePayStatusPollIntervalId);\n      this.googlePayStatusPollIntervalId = undefined;\n    }\n  }\n\n  private startGooglePayStatusPoll(orderId: string) {\n    this.stopGooglePayStatusPoll();\n    const checkStatus = async () => {\n      if (this.googlePayStatusPollInFlight) return;\n      this.googlePayStatusPollInFlight = true;\n      try {\n        const response = await this.chargeOrderRepository.getPayGatePayment(orderId);\n        if (!response || !this.submittingGooglePayment) return;\n        if (this.mapPayGateStatus(response.status) === PayGateCommonPaymentStatus.SUCCEEDED) {\n          await this.finalizeGooglePayPayment(PayGateCommonPaymentStatus.SUCCEEDED);\n        }\n      } catch {\n      } finally {\n        this.googlePayStatusPollInFlight = false;\n      }\n    };\n    this.googlePayStatusPollTimeoutId = setTimeout(() => {\n      this.googlePayStatusPollTimeoutId = undefined;\n      checkStatus();\n      this.googlePayStatusPollIntervalId = setInterval(checkStatus, this.GOOGLE_PAY_STATUS_POLL_INTERVAL_MS);\n    }, this.GOOGLE_PAY_STATUS_POLL_START_DELAY_MS);\n  }\n\n  private mapPayGateStatus(status: PayGatePaymentStatus | undefined): PayGateCommonPaymentStatus | undefined {\n    switch (status) {\n      case PayGatePaymentStatus.SUCCEEDED:\n        return PayGateCommonPaymentStatus.SUCCEEDED;\n      case PayGatePaymentStatus.DEFERRED:\n        return PayGateCommonPaymentStatus.DEFERRED;\n      case PayGatePaymentStatus.CANCELED:\n        return PayGateCommonPaymentStatus.CANCELED;\n      case PayGatePaymentStatus.FAILED:\n        return PayGateCommonPaymentStatus.FAILED;\n      case PayGatePaymentStatus.IN_PROGRESS:\n        return PayGateCommonPaymentStatus.IN_PROGRESS;\n      default:\n        return undefined;\n    }\n  }\n\n  @action.bound\n  async getGooglePayMetadata() {\n    if (this.isFetchingGooglePayMetadata) {\n      return;\n    }\n\n    this.isFetchingGooglePayMetadata = true;\n\n    const response = await this.paymentRepository.getGooglePayMetadata();\n\n    this.isFetchingGooglePayMetadata = false;\n\n    if (response instanceof GooglePayMetadata) {\n      this.eventBus.publish(getGooglePayMetadataSuccess({ googlePayMetadata: response }));\n    } else {\n      this.eventBus.publish(getGooglePayMetadataFailure());\n    }\n  }\n\n  @action.bound\n  async submitGooglePayment(orderId: string, payload: google.payments.api.PaymentData) {\n    if (this.submittingGooglePayment) {\n      this.eventBus.publish(submitGooglePayPaymentFailure());\n      return;\n    }\n\n    this.submittingGooglePayment = true;\n\n    const redirectAfterConfirmationUrl = this.buildSpinnerUrl();\n    const response = await this.paymentRepository.submitGooglePayment(orderId, redirectAfterConfirmationUrl, payload);\n\n    if (response instanceof EshopError) {\n      this.submittingGooglePayment = false;\n      this.eventBus.publish(submitGooglePayPaymentFailure());\n      return;\n    }\n\n    if (response.paymentStatus != PayGateCommonPaymentStatus.IN_PROGRESS) {\n      this.finalizeGooglePayPayment(response.paymentStatus);\n      return;\n    }\n\n    if (response.browserFingerprintActionUrl) {\n      this.eventBus.publish(submitGooglePayPaymentBrowserFingerprint({ url: response.browserFingerprintActionUrl }));\n    } else {\n      this.eventBus.publish(googlePayPaymentBrowserFingerprintLoaded());\n    }\n  }\n\n  @action.bound\n  confirmGooglePayPayment(orderId: string) {\n    return this.notificationService\n      .initialize()\n      .then(() => this.notificationService.serviceStart())\n      .then(async () => {\n        if (!this.notificationService.connectionId) {\n          this.submittingGooglePayment = false;\n          this.eventBus.publish(paymentFailed({ message: NOTIFICATION_SERVICE_CONNECTION_ID_UNDEFINED }));\n          return;\n        }\n\n        this.notificationService.subscribeToGetGooglePayStatus();\n\n        const request = {\n          language: window.navigator.language,\n          javaScriptEnabled: true,\n          javaEnabled: true,\n          colorDepth: screen.colorDepth,\n          screenWidth: Math.min(screen.width, 868),\n          screenHeight: Math.min(screen.height, 500),\n          timezoneOffset: new Date().getTimezoneOffset(),\n        } as GooglePayProcessPaymentRequest;\n\n        const response = await this.paymentRepository.submitGooglePayPaymentConfirmation(\n          orderId,\n          this.notificationService.connectionId,\n          request\n        );\n\n        if (response instanceof EshopError) {\n          this.submittingGooglePayment = false;\n          await this.notificationService.serviceStop().catch(() => {\n            // do nothing.\n          });\n          this.eventBus.publish(submitGooglePayPaymentFailure());\n          return;\n        }\n\n        if (response.action?.browserChallenge?.challengeUrl) {\n          this.eventBus.publish(googlePayPayment3DSecureLoaded({ url: response.action.browserChallenge.challengeUrl }));\n        }\n\n        this.startGooglePayStatusPoll(orderId);\n      })\n      .catch(() => {\n        this.submittingGooglePayment = false;\n        this.eventBus.publish(paymentFailed({ message: NOTIFICATION_SERVICE_START_FAILURE }));\n      });\n  }\n\n  @action.bound\n  async finalizeGooglePayPayment(status: PayGateCommonPaymentStatus) {\n    clearInterval(this.googlePayPoolingInterval);\n    this.stopGooglePayStatusPoll();\n    this.submittingGooglePayment = false;\n\n    // publish the result event immediately.\n    switch (status) {\n      case PayGateCommonPaymentStatus.SUCCEEDED:\n        this.eventBus.publish(submitGooglePayPaymentSuccess());\n        break;\n      case PayGateCommonPaymentStatus.DEFERRED:\n        this.eventBus.publish(submitGooglePayPaymentDeferred());\n        break;\n      default:\n        this.eventBus.publish(submitGooglePayPaymentFailure());\n    }\n\n    await this.notificationService.serviceStop().catch(() => {\n      // do nothing.\n    });\n  }\n\n  @action.bound\n  async payGateRedirect(orderId: string, parent: string) {\n    persistCallbackDestination(\n      PAYMENT_GATE_CALLBACK_DESTINATION_PATH.replace(PARENT_REGEX, parent).replace(ORDER_ID_REGEX, orderId)\n    );\n    window.location.href = await this.buildRedirectUrl(orderId);\n  }\n\n  public resetRedirect() {\n    const redirect = sessionStorage && sessionStorage[SESSION_STORAGE_EXTERNAL_SERVICE_CALLBACK_DESTINATION_URL];\n    if (redirect) {\n      sessionStorage.removeItem(SESSION_STORAGE_EXTERNAL_SERVICE_CALLBACK_DESTINATION_URL);\n    }\n  }\n\n  private buildRedirectUrl = async (orderId: string) => {\n    const { paymentGateway } = await import(\"config\");\n\n    const url = new URL(REDIRECT_URL.replace(ORDER_ID_REGEX, orderId), paymentGateway);\n    url.searchParams.append(LANGUAGE_CODE, this.localizedPayGateLanguageCode());\n    url.searchParams.append(REDIRECT_AFTER_CONFIRM_URL, this.buildCallbackUrl(orderId));\n    return url.toString();\n  };\n\n  private buildCallbackUrl = (orderId: string) =>\n    CALLBACK_URL.replace(PROTOCOL_REGEX, window.location.protocol)\n      .replace(HOSTNAME_REGEX, window.location.hostname)\n      .replace(PORT_REGEX, window.location.port ? \":\" + window.location.port : \"\")\n      .replace(CALLBACK_REGEX, CALLBACK.replace(ORDER_ID_REGEX, orderId));\n\n  // The spinner URL is used in the 3D secure popup of Google Pay right after confirming the 3D secure code.\n  // This is used to signal that we are processing the payment. Usually it is shown only for 1-2 seconds max.\n  private buildSpinnerUrl = () =>\n    CALLBACK_URL.replace(PROTOCOL_REGEX, window.location.protocol)\n      .replace(HOSTNAME_REGEX, window.location.hostname)\n      .replace(PORT_REGEX, window.location.port ? \":\" + window.location.port : \"\")\n      .replace(CALLBACK_REGEX, SPINNER);\n\n  private localizedPayGateLanguageCode() {\n    switch (this.localizationService.locale) {\n      case \"cs\":\n        return PayGateLanguageCode.CS;\n      case \"en-GB\":\n      case \"en\":\n        return PayGateLanguageCode.EN;\n      case \"de\":\n        return PayGateLanguageCode.DE;\n      case \"hu\":\n        return PayGateLanguageCode.HU;\n      case \"pl\":\n        return PayGateLanguageCode.PL;\n      case \"ru\":\n        return PayGateLanguageCode.RU;\n      default:\n        return PayGateLanguageCode.EN;\n    }\n  }\n}\n","export enum PayGatePaymentType {\n  STANDARD = \"STANDARD\",\n  APPLE_PAY = \"APPLE_PAY\",\n  GOOGLE_PAY = \"GOOGLE_PAY\",\n  TERMINAL = \"TERMINAL\",\n}\n\nexport enum PayGatePaymentStatus {\n  IN_PROGRESS = \"IN_PROGRESS\",\n  SUCCEEDED = \"SUCCEEDED\",\n  DEFERRED = \"DEFERRED\",\n  CANCELED = \"CANCELED\",\n  FAILED = \"FAILED\",\n}\n\nexport interface PayGatePaymentRetryPermittedAction {\n  isAllowed: boolean;\n  allowedPayGatePaymentTypes: PayGatePaymentType[] | null;\n  retryPaymentAllowedUntil?: string | null;\n}\n\nexport interface PayGatePaymentPermittedActions {\n  paymentRetry: PayGatePaymentRetryPermittedAction;\n}\n\nexport default interface PayGatePaymentResponse {\n  payGatePaymentType: PayGatePaymentType;\n  status: PayGatePaymentStatus;\n  permittedActions: PayGatePaymentPermittedActions;\n}\n","import { bound } from \"@frui.ts/helpers\";\nimport { Router } from \"@frui.ts/screens/dist\";\nimport { validate } from \"@frui.ts/validation\";\nimport { plainToClass } from \"class-transformer\";\nimport { action, computed, observable, reaction } from \"mobx\";\nimport NiaResponse from \"models/niaResponse\";\nimport EnumService from \"services/enumService\";\nimport EventBus, {\n  omissionCreationFailed,\n  omissionDocumentsUploadFailed,\n  omissionDocumentsUploadSuccess,\n  omissionISDSConceptStatusCheckFailure,\n  omissionISDSConceptStatusCheckSuccess,\n  omissionISDSSessionIdHandled,\n  omissionNIAResponseHandled,\n} from \"services/eventBus\";\nimport LocalizationService from \"services/localizationService\";\nimport NiaService, { Notice } from \"services/NIA/niaService\";\nimport OmissionService, { SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY } from \"services/omissionService\";\nimport AppRouter from \"services/appRouter\";\nimport ISDSService from \"services/ISDS/isdsService\";\nimport serializeNotice from \"utils/serializeNotice\";\nimport VehicleInfoViewModel from \"../../common/vehicleInfoViewModel\";\nimport NoticeViewModel from \"../noticeViewModel\";\nimport debounce from \"debounce-promise\";\nimport OperatorViewModel from \"../components/operator/operatorViewModel\";\nimport ApplicantPersonViewModel from \"../components/applicantPersonViewModel\";\nimport ManualEntityValidator from \"@frui.ts/validation/dist/manualEntityValidator\";\nimport Vehicle from \"models/vehicle\";\nimport { CountryIdValidationRules, LicensePlateValidationRules } from \"models/orderItem\";\nimport { attachAutomaticBlurValidator } from \"utils/validationPatch\";\nimport OutageService from \"services/outageService\";\nimport OutagesViewModel from \"../../common/outagesViewModel\";\nimport { onlyResolvesLast } from \"awesome-only-resolves-last-promise/dist\";\nimport ChargeRegistrationService from \"services/chargeRegistrationService\";\nimport { repeatIfFailed } from \"services/requestRecoveryService\";\nimport ExemptionCancellationApplicationProductionResponse from \"entities/exemptionCancellationApplicationProductionResponse\";\nimport { PersistedBase64 } from \"models/notice\";\nimport { NoticePowerOfAttorneyRules } from \"models/omission\";\n\nexport const OmissionNoticeNavigationName = \"omission_notice\";\n\n@Router.registerRoute({ route: OmissionNoticeNavigationName, name: Router.Self })\nexport default class OmissionViewModel extends NoticeViewModel {\n  private vehicleManualValidator: ManualEntityValidator<Vehicle>;\n  @observable vehicleInfoViewModel: VehicleInfoViewModel;\n  @observable applicantPersonViewModel: ApplicantPersonViewModel;\n  @observable operatorViewModel: OperatorViewModel;\n  @observable allowCreateExemption = false;\n  private debouncedLookForChargingInstructions = debounce(this.lookForChargingInstructions, 400);\n  private lastResolveFindChargingInstructions = onlyResolvesLast(this.findChargingInstructions);\n\n  constructor(\n    public localizationService: LocalizationService,\n    protected enumService: EnumService,\n    protected niaService: NiaService,\n    protected isdsService: ISDSService,\n    protected outageService: OutageService,\n    protected eventBus: EventBus,\n    protected service: OmissionService,\n    protected router: AppRouter,\n    protected outagesViewModelFactory: ReturnType<typeof OutagesViewModel.Factory>,\n    private chargeRegistrationService: ChargeRegistrationService,\n    private vehicleInfoVMFactory: ReturnType<typeof VehicleInfoViewModel.Factory>,\n    private applicantPersonVMFactory: ReturnType<typeof ApplicantPersonViewModel.Factory>,\n    private operatorVMFactory: ReturnType<typeof OperatorViewModel.Factory>\n  ) {\n    super(\n      localizationService,\n      enumService,\n      niaService,\n      isdsService,\n      outageService,\n      eventBus,\n      service,\n      router,\n      outagesViewModelFactory\n    );\n    this.navigationName = OmissionNoticeNavigationName;\n    this.createChildren();\n    this.unsubscriptions.push(\n      this.eventBus.subscribe(omissionCreationFailed, this.generalOperationFailed),\n      this.eventBus.subscribe(omissionDocumentsUploadFailed, this.isdsOperationFailed),\n      this.eventBus.subscribe(omissionDocumentsUploadSuccess, this.isdsUploadOperationSuccess),\n      this.eventBus.subscribe(omissionISDSConceptStatusCheckSuccess, this.isdsConceptStatusCheck),\n      this.eventBus.subscribe(omissionISDSConceptStatusCheckFailure, this.isdsConceptFailure),\n      this.eventBus.subscribe(omissionNIAResponseHandled, this.NiaResponseHandler),\n      this.eventBus.subscribe(omissionISDSSessionIdHandled, this.ISDSSessionIdHandler)\n    );\n    this.attachValidators();\n    this.setDefaultCountryId();\n  }\n\n  @computed\n  get cancellationApplicationProduction(): ExemptionCancellationApplicationProductionResponse | undefined {\n    return this.service.cancellationApplicationProduction;\n  }\n\n  @computed\n  get isContinueDisabled(): boolean {\n    return this.service.cancellationApplicationProduction?.canBeAppliedFor === false;\n  }\n\n  @bound\n  translateGeneral(code: string, disableUnbreakableRules = false) {\n    return this.localizationService.translateGeneral(`omission.${code}`, undefined, disableUnbreakableRules);\n  }\n\n  @bound\n  translateAttribute(code: string) {\n    return this.localizationService.translateAttribute(\"omission\", code);\n  }\n\n  @bound\n  translateWarningReason(code: string): string {\n    return this.localizationService.translateGeneral(`eshop.order.license.exemptionReasonWarnings.${code}`, undefined, false);\n  }\n\n  protected async onInitialize(): Promise<any> {\n    this.chargeRegistrationService.vehicleChargingInstructions = undefined;\n    this.service.cancellationApplicationProduction = undefined;\n\n    this.unsubscriptions.push(\n      reaction(\n        () => [this.vehicleInfoViewModel.item.countryId, this.vehicleInfoViewModel.item.licensePlate],\n        () => {\n          this.handleVehicleInfoChange();\n        },\n        {\n          fireImmediately: true,\n        }\n      )\n    );\n\n    return super.onInitialize();\n  }\n\n  protected attachValidators() {\n    attachAutomaticBlurValidator(this.notice.vehicle, {\n      ...LicensePlateValidationRules,\n      ...CountryIdValidationRules,\n    });\n    attachAutomaticBlurValidator(this.notice, {\n      ...NoticePowerOfAttorneyRules,\n    });\n  }\n\n  @computed\n  get notice() {\n    return this.service.notice;\n  }\n\n  async navigate(subPath: string | undefined, params: any) {\n    if (!params) this.eventBus.publish(omissionISDSSessionIdHandled({ sessionId: \"\" }));\n\n    if (params.sessionId) {\n      if (sessionStorage.getItem(SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY)) {\n        sessionStorage.removeItem(SESSION_STORAGE_ISDS_UPLOAD_REQUEST_SOURCE_KEY);\n        await this.isdsService.conceptStatus(params.sessionId, Notice.OMISSION);\n        return;\n      }\n      this.eventBus.publish(omissionISDSSessionIdHandled({ sessionId: params.sessionId }));\n    } else if (params.response) {\n      const response = params.response;\n\n      if (response && this.notice && this.notice.applicant) {\n        const urlDecoded = decodeURI(response);\n        const base64Decoded = atob(urlDecoded);\n        const niaResponse = plainToClass(NiaResponse, JSON.parse(base64Decoded));\n\n        if (!niaResponse) return;\n\n        this.eventBus.publish(omissionNIAResponseHandled({ niaResponse }));\n      }\n    }\n  }\n\n  @action.bound\n  protected isdsConceptStatusCheck(data: { type: string; payload: { success: boolean; notice: Notice } }) {\n    if (data.payload.success && data.payload.notice) {\n      this.router.navigate(\"omission_documents\", undefined, {\n        notice: data.payload.notice,\n      });\n    }\n  }\n\n  @action.bound\n  protected isdsUploadOperationSuccess(data: { type: string; payload: { conceptIdent: string } }) {\n    super.isdsUploadOperationSuccess(data);\n    this.isdsService.redirectToISDSConcept(Notice.OMISSION, data.payload.conceptIdent);\n  }\n\n  @bound\n  private async handleVehicleInfoChange() {\n    this.allowCreateExemption = false;\n    this.service.cancellationApplicationProduction = undefined;\n    this.chargeRegistrationService.vehicleChargingInstructions = undefined;\n  }\n\n  @bound\n  private findChargingInstructions(countryId: string, licensePlate: string) {\n    return this.chargeRegistrationService.getChargingInstructions(countryId, licensePlate);\n  }\n\n  @bound\n  protected async persistNotice() {\n    sessionStorage.setItem(Notice.OMISSION, serializeNotice(this.notice));\n\n    await super.persistNotice();\n  }\n\n  @action.bound\n  @repeatIfFailed\n  private async lookForChargingInstructions() {\n    const countryId = this.notice.vehicle?.countryId;\n    const licensePlate = this.notice.vehicle?.licensePlate;\n\n    if (!countryId || !licensePlate) return;\n\n    try {\n      await this.lastResolveFindChargingInstructions(countryId, licensePlate);\n    } catch (e) {\n      throw new Error(\"Vehicle instructions check failed\");\n    }\n  }\n\n  @action.bound\n  public async createNotice(): Promise<string | undefined> {\n    this.errorMessage = undefined;\n    this.persistNotice();\n    if (this.vehicleManualValidator) {\n      this.vehicleManualValidator.removeError(\"licensePlate\");\n    }\n    if (this.notice?.vehicle?.countryId && this.notice?.vehicle?.licensePlate && validate(this.notice.vehicle)) {\n      this.notice.vehicle.countryId = this.vehicleInfoViewModel.item.countryId;\n      this.notice.vehicle.licensePlate = this.vehicleInfoViewModel.item.licensePlate;\n\n      const response = (await this.service.getProduction(this.notice)) as any;\n\n      if (response.errors) {\n        this.creationLoadingModalToggle(false);\n        this.errorMessage = this.localizationService.translateGeneral(\"errors.invalidData\");\n        return;\n      }\n\n      if (this.service.cancellationApplicationProduction?.rejectionReason?.length && !this.allowCreateExemption) {\n        this.allowCreateExemption = true;\n\n        return Promise.resolve(undefined);\n      }\n      return this.service.createOmission(this.notice);\n    }\n  }\n\n  @action.bound\n  public uploadDocuments(ISDSSessionId: string, files: PersistedBase64[]): Promise<void> | undefined {\n    this.errorMessage = undefined;\n    return this.service.uploadDocuments(ISDSSessionId, files);\n  }\n\n  @action.bound\n  public redirectToISDS(): void {\n    this.errorMessage = undefined;\n    this.creationLoadingModalToggle(false);\n    this.isdsService.redirectToISDS(Notice.OMISSION);\n  }\n\n  @action.bound\n  public redirectToNia() {\n    this.errorMessage = undefined;\n    this.creationLoadingModalToggle(false);\n    this.niaService.redirectToNia(Notice.OMISSION);\n  }\n\n  protected createChildren() {\n    this.children.clear();\n    this.children.push(\n      (this.vehicleInfoViewModel = this.vehicleInfoVMFactory(this.notice.vehicle!, {\n        attachValidator: false,\n        fixedLicensePlateSize: false,\n        initByLocalization: true,\n      })),\n      (this.operatorViewModel = this.operatorVMFactory(this.notice, \"omission\", this.persistNotice, this.showBirthdate())),\n      (this.applicantPersonViewModel = this.applicantPersonVMFactory(this.notice.applicant, undefined, this.showBirthdate()))\n    );\n  }\n}\n","import { bound } from \"@frui.ts/helpers\";\nimport { watchBusy } from \"@frui.ts/screens\";\nimport { getValidationMessage, validateAll } from \"@frui.ts/validation\";\nimport { plainToClass } from \"class-transformer\";\nimport { action, computed, observable } from \"mobx\";\nimport { LicensePlateConfirmationValidationRules } from \"models/orderItem\";\nimport { CountryIdConfirmationValidationRules } from \"models/vehicle\";\nimport VehicleChangeDuringValidityRequest from \"models/vehicleChangeDuringValidityRequest\";\nimport { putChargeContactSuccess, putChargeVehicleSuccess } from \"services/eventBus\";\nimport { EntityValidationRules } from \"services/validationService\";\nimport { attachAutomaticBlurValidator } from \"utils/validationPatch\";\nimport ChargeManagementEditViewModel from \"./chargeManagementEditViewModel\";\nimport ChargeManagementLicensePlateChangeViewModel from \"./chargeManagementLicensePlateChangeViewModel\";\nimport React from \"react\";\nimport * as Sentry from \"@sentry/react\";\nimport { scrollToFirstError } from \"../../../utils/scrollTo\";\nimport NotificationPreferencesResponse from \"entities/notificationPreferencesResponse\";\nimport InputEmail from \"entities/InputEmail\";\n\nexport default class ChargeManagementActiveChargeLicensePlateChangeViewModel extends ChargeManagementLicensePlateChangeViewModel {\n  readonly request: VehicleChangeDuringValidityRequest = new VehicleChangeDuringValidityRequest();\n  navigationName = \"vehicleChangeDuringValidity\";\n\n  @computed get agreementError() {\n    return getValidationMessage(this.request, \"_agreement\");\n  }\n\n  @computed\n  get charge() {\n    return this.chargeManagementService.charge;\n  }\n\n  @computed\n  get newVehicle() {\n    return this.request;\n  }\n\n  get canSubmit() {\n    return this.newVehicle?.licensePlate !== undefined || this.newVehicle?.countryId !== undefined;\n  }\n\n  @computed\n  get hasSecondStep() {\n    return true;\n  }\n\n  @computed\n  get validationRules() {\n    const validationRules: EntityValidationRules<VehicleChangeDuringValidityRequest> = {\n      ...CountryIdConfirmationValidationRules,\n      ...LicensePlateConfirmationValidationRules,\n      countryId: {\n        required: \"requiredCountryId\",\n        manualValidation: this.manualValidator,\n      },\n      _agreement: {\n        isTrue: true,\n      },\n      licensePlate: {\n        hasRequiredLength: { min: 1, max: 10 },\n        isLicensePlate: {\n          hasLength: this.request.licensePlate.length,\n        },\n        licensePlateChange: {\n          originalProperty: \"_originalLicensePlate\" as const,\n        },\n        manualValidation: this.manualValidator,\n      },\n    };\n\n    validationRules._licensePlateConfirmation = {\n      ...validationRules._licensePlateConfirmation,\n      isLicensePlate: {\n        hasLength: this.request.licensePlate.length,\n      },\n    };\n\n    return validationRules;\n  }\n\n  protected onInitialize(): Promise<any> | void {\n    if (this.charge) {\n      this.request.licensePlate =\n        this.request._originalLicensePlate =\n        this.request._licensePlateConfirmation =\n          this.charge.vehicle.licensePlate!;\n    }\n    this.newVehicleInfoViewModel = this.vehicleInfoViewModelFactory(this.request, {\n      attachValidator: false,\n      fixedLicensePlateSize: true,\n      context: \"new\",\n      countryIDConfirmation: true,\n      licensePlateConfirmation: true,\n    });\n    if (this.charge && !this.charge.emailAddress && this.charge) {\n      this.emailInputViewModel = this.emailInputViewModelFactory(\n        new InputEmail(this.charge.emailAddress, this.charge.notificationPreferences._emailConfirmation),\n        \"\",\n        \"\"\n      );\n    }\n    attachAutomaticBlurValidator(this.request, this.validationRules);\n\n    return super.onInitialize();\n  }\n\n  @bound\n  protected async putChargeContactSuccess(data: ReturnType<typeof putChargeContactSuccess>) {\n    // E-mail was filled from other part\n    if (data.payload.triggerer !== \"licensePlateChange\" && data.payload.triggerer !== \"contactChange\") {\n      this.emailInputViewModel = undefined;\n      attachAutomaticBlurValidator(this.request, this.validationRules);\n      this.request.emailAddress = undefined;\n      return;\n    } else {\n      this.emailInputViewModel = this.emailInputViewModelFactory(\n        new InputEmail(this.charge?.emailAddress, this.charge?.notificationPreferences._emailConfirmation),\n        \"\",\n        \"\"\n      );\n    }\n  }\n\n  @bound\n  protected async putChargeVehicleSuccess(data: ReturnType<typeof putChargeVehicleSuccess>) {\n    this.clearAfterAsyncAction();\n\n    if (!this.charge) return;\n\n    const { countryId, licensePlate, authCode, emailAddress } = data.payload.vehicle;\n\n    this.success = true;\n    this.charge.permittedActions.vehicleChangeDuringValidity.isAllowed = false;\n    if (licensePlate) this.charge.vehicle.licensePlate = licensePlate;\n    if (countryId) this.charge.vehicle.countryId = countryId;\n    if (authCode) this.charge.authCode = authCode;\n    if (emailAddress) this.charge.emailAddress = emailAddress;\n    if (this.charge) {\n      this.charge.notificationPreferences._emailConfirmation = emailAddress;\n    }\n\n    if (this.request.emailAddress) {\n      this.charge.notificationPreferences.emailAddress = this.request.emailAddress;\n      this.eventBus.publish(\n        putChargeContactSuccess({\n          emailAddress: this.request.emailAddress,\n          notificationPreferences: plainToClass(NotificationPreferencesResponse, {\n            emailAddress: this.request.emailAddress,\n          }),\n          triggerer: \"licensePlateChange\",\n        })\n      );\n    }\n\n    this.router.navigate(ChargeManagementEditViewModel, undefined, { countryId, licensePlate, authCode });\n  }\n\n  /*   onTurnstileVerify = async (turnstileToken: string) => {\n    if (turnstileToken) {\n      this.turnstileToken = turnstileToken;\n    }\n  }; */\n\n  @action.bound\n  @watchBusy\n  async submit(turnstileToken?: string) {\n    if (!this.showSecondStep) {\n      await this.checkRsvValidity();\n      this.showSecondStep = true;\n    } else {\n      this.sameVehicleCheck();\n      this.success = false;\n      this.errorMessage = undefined;\n      this.secondStepErrorMessage = undefined;\n      this.warningMessages = [];\n\n      if (!this.validate()) {\n        scrollToFirstError(this.formElement);\n        return;\n      }\n\n      if (!turnstileToken || !this.turnstileViewModel.turnstileToken) return;\n      const token = turnstileToken || this.turnstileViewModel.turnstileToken;\n\n      this.isLoading = true;\n\n      try {\n        if (this.charge && !this.charge.emailAddress) {\n          this.request.emailAddress = this.emailInputViewModel?.inputEmail.email;\n          await this.chargeManagementService.editActiveCharge(this.request, token);\n          return;\n        }\n\n        await this.chargeManagementService.editActiveCharge(this.request, token);\n      } finally {\n        this.isLoading = false;\n      }\n    }\n  }\n\n  @action.bound\n  onCancelSecondStep() {\n    this.request.countryId = undefined!;\n    this.request._countryIdConfirmation = undefined!;\n    this.request._agreement = false!;\n    this.showSecondStep = false;\n    this.hideConfirmChangeButton = false;\n    this.request.licensePlate = this.charge?.vehicle.licensePlate!;\n    this.request._licensePlateConfirmation = this.charge?.vehicle.licensePlate!;\n\n    // We need to reset the Character Wise Input.\n    // This is a hack to reset it, as changing value does nothing to the component.\n    this.newVehicleInfoViewModel = undefined!;\n    setTimeout(() => {\n      this.newVehicleInfoViewModel = this.vehicleInfoViewModelFactory(this.request, {\n        attachValidator: false,\n        fixedLicensePlateSize: true,\n        context: \"new\",\n        countryIDConfirmation: true,\n        licensePlateConfirmation: true,\n      });\n    }, 100);\n\n    attachAutomaticBlurValidator(this.request, this.validationRules);\n  }\n\n  @bound\n  public validate() {\n    const objectsForValidation: any[] = [this.request];\n    if (this.charge && !this.charge.emailAddress) {\n      objectsForValidation.push(this.emailInputViewModel?.inputEmail);\n    }\n\n    return validateAll(objectsForValidation);\n  }\n}\n","import { bound } from \"@frui.ts/helpers\";\nimport { watchBusy } from \"@frui.ts/screens\";\nimport { addError, attachManualValidator, getValidationMessage, removeError, validateAll } from \"@frui.ts/validation\";\nimport { action, computed, observable, reaction } from \"mobx\";\nimport { ExemptionState } from \"models/orderItem\";\nimport ValidChargeResponse from \"models/validChargeResponse\";\nimport ChargeManagementService from \"services/chargeManagementService\";\nimport ChargeRegistrationService, { RequestSource } from \"services/chargeRegistrationService\";\nimport EventBus, {\n  emailUpdated,\n  putChargeContactFailure,\n  putChargeContactSuccess,\n  putChargeValidityFailure,\n  putChargeValiditySuccess,\n  vehicleHasValidCharges,\n  vehicleRegistration,\n} from \"services/eventBus\";\nimport LocalizationService from \"services/localizationService\";\nimport AppRouter from \"services/appRouter\";\nimport SignalRNotificationService from \"services/signalR/notification/signalRNotificationService\";\nimport { dateToIsoString, endOfCzechDay, isSameOrBeforePragueDay, maxValidSince, zonedCZTimeToUtc } from \"utils/dateUtils\";\nimport ChargeManagementEditPartViewModel from \"./chargeManagementEditPartViewModel\";\nimport ChargeManagementEditViewModel from \"./chargeManagementEditViewModel\";\nimport EmailInputViewModel from \"./common/emailInputViewModel\";\nimport TurnstileViewModel from \"../../common/turnstileViewModel\";\nimport React from \"react\";\nimport * as Sentry from \"@sentry/react\";\nimport { scrollToFirstError } from \"utils/scrollTo\";\nimport EnumService from \"services/enumService\";\nimport { startOfCzechDay, utcToCZZonedTime } from \"../../../utils/dateUtils\";\nimport ChargeValidityRuleResponse from \"entities/chargeValidityRuleResponse\";\nimport ChargeValidityInstructionsResponse from \"entities/chargeValidityInstructionsResponse\";\nimport ChargeOverlapType from \"entities/chargeOverlapType\";\nimport InputEmail from \"entities/InputEmail\";\nimport ChargeValidity from \"entities/chargeValidity\";\nimport ChargeTypesService from \"services/chargeTypesService\";\nimport TimeService from \"services/timeService\";\nimport { TurnstileInstance } from \"@marsidev/react-turnstile\";\n\nexport default class ChargeManagementValidityViewModel extends ChargeManagementEditPartViewModel {\n  private sinceRegex = /%since%/g;\n  private untilRegex = /%until%/g;\n  private intervalId?: any;\n  readonly IDLE_TIMER_TIMEOUT = 100 * 60;\n  readonly IDLE_PROMPT_TIMEOUT = 100 * 60 * 4;\n  readonly IDLE_TIMER_DEBOUNCE = 250;\n  @observable private _validCharges?: ValidChargeResponse[];\n  @observable private _exemptionState?: ExemptionState;\n  @observable emailInputViewModel?: EmailInputViewModel;\n  turnstileViewModel: TurnstileViewModel;\n  @observable turnstileToken: string;\n  @observable chargeValidityRules: ChargeValidityRuleResponse[];\n  @observable postponedValidityRule: ChargeValidityRuleResponse | undefined;\n  @observable counter: number;\n  @observable isFormFilled = false;\n  @observable isSingleCharTypeToday?: boolean;\n  @observable overlappingCharges?: any;\n\n  constructor(\n    public localizationService: LocalizationService,\n    protected chargeManagementService: ChargeManagementService,\n    protected timeService: TimeService,\n    protected chargeRegistrationService: ChargeRegistrationService,\n    protected chargeTypesService: ChargeTypesService,\n    protected enumService: EnumService,\n    protected eventBus: EventBus,\n    protected signalRNotificationService: SignalRNotificationService,\n    private emailInputViewModelFactory: ReturnType<typeof EmailInputViewModel.Factory>,\n    private router: AppRouter,\n    turnstileViewModelFactory: ReturnType<typeof TurnstileViewModel.Factory>\n  ) {\n    super();\n    this.navigationName = \"validity\";\n    this.turnstileViewModel = turnstileViewModelFactory(\"chargeManagementValidity\", true);\n    this.unsubscriptions.push(\n      this.eventBus.subscribe(putChargeValidityFailure, this.putChargeValidityFailure),\n      this.eventBus.subscribe(putChargeValiditySuccess, this.putChargeValiditySuccess),\n      this.eventBus.subscribe(vehicleRegistration, this.vehicleIsExempted),\n      this.eventBus.subscribe(vehicleHasValidCharges, this.vehicleHasValidCharges),\n      this.eventBus.subscribe(putChargeContactFailure, this.putChargeContactFailure),\n      this.eventBus.subscribe(putChargeContactSuccess, this.putChargeContactSuccess),\n      this.eventBus.subscribe(emailUpdated, this.onEmailUpdated)\n    );\n  }\n\n  private ta = (code: string) => this.localizationService.translateAttribute(\"orderItem\", code);\n\n  protected async onInitialize(): Promise<Promise<any> | void> {\n    this.chargeValidityRules = await this.enumService.lazyValues(\"charge_validity_rules\");\n    await this.timeService.getCurrentServerTime();\n    this.getPostponedValidityMaxDays(this.timeService.currentServerTime, this.chargeValidityRules);\n    if (this.charge && !this.charge.emailAddress && this.charge) {\n      this.emailInputViewModel = this.emailInputViewModelFactory(\n        new InputEmail(this.charge.emailAddress, this.charge.notificationPreferences._emailConfirmation),\n        \"\",\n        \"\"\n      );\n    }\n\n    attachManualValidator(this);\n    this.unsubscriptions.push(\n      reaction(\n        () => this.newValidity?.validSince,\n        () => {\n          this.validSinceCheck();\n        }\n      ),\n      reaction(\n        () => this.postponedValidityRule?.postponedValidityMaxDays,\n        () => {\n          this.validSinceCheck();\n        }\n      )\n    );\n    return super.onInitialize();\n  }\n\n  @bound\n  protected putChargeValiditySuccess(data: ReturnType<typeof putChargeValiditySuccess>) {\n    this.clearAfterAsyncAction();\n\n    if (!this.charge) return;\n\n    this.success = true;\n    this.charge._canBeChanged = false;\n    if (data.payload.validity.validSince) {\n      this.charge.validSince = data.payload.validity.validSince;\n      // When we change validSince to today's date, only the vehicleChangeBeforeValidity will be allowed.\n      // We must set it manually to display during validity change form.\n      this.charge.permittedActions.vehicleChangeDuringValidity.isAllowed = true;\n    }\n    if (data.payload.validity.validUntil) this.charge.validUntil = data.payload.validity.validUntil;\n    if (data.payload.validity.authCode) this.charge.authCode = data.payload.validity.authCode;\n    if (data.payload.validity.emailAddress)\n      this.charge.emailAddress = this.charge.notificationPreferences._emailConfirmation = data.payload.validity.emailAddress;\n\n    this.router.navigate(ChargeManagementEditViewModel, undefined, {\n      countryId: this.charge.vehicle.countryId,\n      licensePlate: this.charge.vehicle.licensePlate,\n      authCode: data.payload.validity.authCode,\n    });\n  }\n\n  @bound\n  protected putChargeValidityFailure(data: ReturnType<typeof putChargeValidityFailure>) {\n    this.clearAfterAsyncAction();\n    this.setErrorMessageBasedOnType(data.payload.type);\n  }\n\n  @bound\n  protected onEmailUpdated(data: ReturnType<typeof emailUpdated>) {\n    this.setEmailAddress(data.payload.emailAddress);\n    if (this.emailInputViewModel) {\n      this.emailInputViewModel = undefined;\n    }\n  }\n\n  // TODO: R-29-2 Remove after user accepted.\n  @bound\n  protected async putChargeContactSuccess(data: ReturnType<typeof putChargeContactSuccess>) {\n    if (data.payload.triggerer !== \"validityChange\" && data.payload.triggerer !== \"contactChange\") {\n      this.emailInputViewModel = undefined;\n      return;\n    } else {\n      this.emailInputViewModel = this.emailInputViewModelFactory(\n        new InputEmail(this.charge?.emailAddress, this.charge?.notificationPreferences._emailConfirmation),\n        \"\",\n        \"\"\n      );\n    }\n\n    this.clearAfterAsyncAction();\n\n    if (!this.charge) {\n      return;\n    }\n    this.charge._canBeChanged = false;\n    this.charge.notificationPreferences.smsNotificationEnabled = data.payload.notificationPreferences?.smsNotificationEnabled;\n    this.charge.notificationPreferences.emailNotificationEnabled = data.payload.notificationPreferences?.emailNotificationEnabled;\n    this.charge.emailAddress = data.payload.notificationPreferences?.emailAddress;\n    this.charge.notificationPreferences._emailAddressNotification = data.payload.notificationPreferences?.emailAddress;\n    this.charge.notificationPreferences._emailConfirmation = data.payload.notificationPreferences?.emailAddress;\n    this.charge.notificationPreferences.phoneNumber = data.payload.notificationPreferences?.phoneNumber;\n    this.charge.authCode = data.payload?.authCode ?? \"\";\n\n    this.router.navigate(ChargeManagementEditViewModel, undefined, {\n      countryId: this.charge.vehicle.countryId,\n      licensePlate: this.charge.vehicle.licensePlate,\n      authCode: data.payload.authCode,\n    });\n\n    // const newValidSince = this.newValidity?.validSince;\n\n    // if (!newValidSince) return;\n\n    // await this.chargeManagementService.editChargeValidity(newValidSince, this.turnstileToken);\n  }\n\n  @action.bound\n  protected putChargeContactFailure(data: ReturnType<typeof putChargeContactFailure>) {\n    if (data.payload.triggerer !== \"validityChange\") {\n      return;\n    }\n\n    this.clearAfterAsyncAction();\n    this.setErrorMessageBasedOnType(data.payload.type);\n  }\n\n  @computed\n  get validSince() {\n    if (!this.charge || !this.charge.validSince) return \"-\";\n\n    const validSince = this.charge.validSince;\n\n    return validSince ? this.localizationService.formatDateTime(new Date(validSince)) : \"-\";\n  }\n\n  @computed\n  get isDifferentTimeZone() {\n    return this.timeService.isFetched && !this.timeService.isServerTimeSame;\n  }\n\n  @computed\n  get serverTime() {\n    return this.timeService.currentServerTime;\n  }\n\n  @computed\n  get validUntil() {\n    if (!this.charge || !this.charge.validUntil) return \"-\";\n\n    const validUntil = this.charge.validUntil;\n\n    return validUntil ? this.localizationService.formatDateTime(new Date(validUntil)) : \"-\";\n  }\n\n  @computed\n  get newValidity() {\n    return {\n      validSince: this.charge?.newValidSince,\n      validUntil: this.charge?.newValidUntil,\n    };\n  }\n\n  @computed\n  get validChargesInfo() {\n    if (this._validCharges) {\n      return this._validCharges\n        .map(validCharge =>\n          this.ta(\"validSinceRegistrationInfo\")\n            .replace(this.untilRegex, this.localizationService.formatDateTime(validCharge.validUntil))\n            .replace(this.sinceRegex, this.localizationService.formatDateTime(validCharge.validSince))\n        )\n        .join(\"\\r\\n\\r\\n\");\n    }\n\n    return undefined;\n  }\n\n  @computed\n  get exemptionInfo() {\n    switch (this._exemptionState) {\n      case ExemptionState.Exempted:\n        return this.ta(\"exemptedRegistrationInfo\");\n      default:\n        return undefined;\n    }\n  }\n\n  @action.bound\n  async handleIdle() {\n    this.counter = this.IDLE_PROMPT_TIMEOUT;\n    this.intervalId = setInterval(async () => {\n      this.counter = this.counter - 1000;\n      if (this.counter === 0 && this.newValidity?.validSince) {\n        this.chargeValidityRules = await this.enumService.lazyValues(\"charge_validity_rules\");\n        this.getPostponedValidityMaxDays(this.timeService.currentServerTime, this.chargeValidityRules);\n      }\n      if (this.counter === 0) {\n        this.clearTimeoutInterval();\n        this.handleIdle();\n      }\n    }, 1000);\n  }\n\n  @bound\n  clearTimeoutInterval() {\n    if (this.intervalId) {\n      clearInterval(this.intervalId);\n      this.intervalId = undefined;\n    }\n  }\n\n  @action.bound\n  singleCharTypeToday() {\n    if (!this.charge) return;\n    const chargeType = this.chargeTypesService.getPriceListItemChargeType(this.charge._chargeTypeId, true);\n\n    if (!chargeType) return;\n\n    this.isSingleCharTypeToday = this.charge?.newValidSince\n      ? isSameOrBeforePragueDay(this.charge.newValidSince, this.timeService.currentServerTime) &&\n        this.chargeTypesService.findChargeType(chargeType.id)?.validFor === ChargeValidity.SingleDay\n      : false;\n  }\n\n  @action.bound\n  getPostponedValidityMaxDays(validSince: Date | undefined, chargeValidityRules: ChargeValidityRuleResponse[]) {\n    if (validSince && chargeValidityRules) {\n      const filteredChargeValidityRules = chargeValidityRules.find(\n        rule =>\n          validSince &&\n          rule.validSinceDate &&\n          startOfCzechDay(new Date(rule.validSinceDate)) <= validSince &&\n          (!rule.validUntilDate || startOfCzechDay(new Date(rule.validUntilDate)) >= validSince)\n      );\n      this.postponedValidityRule = filteredChargeValidityRules ?? undefined;\n    }\n  }\n\n  @bound\n  async validSinceCheck() {\n    this.isFormFilled = this.newValidity.validSince !== undefined;\n    this.resetSecondStep();\n    this.singleCharTypeToday();\n    const max = dateToIsoString(\n      maxValidSince(utcToCZZonedTime(this.charge?.chargeOrderConfirmedAt!), this.postponedValidityRule?.postponedValidityMaxDays)\n    );\n    removeError(this, \"charge\");\n    if (\n      this.charge?.validSince &&\n      this.charge?.newValidSince &&\n      dateToIsoString(utcToCZZonedTime(this.charge?.validSince)) === dateToIsoString(utcToCZZonedTime(this.charge?.newValidSince))\n    ) {\n      addError(this, \"charge\", this.translate(\"validators.sameValidSince\"));\n    } else if (\n      this.charge?.validSince &&\n      this.charge?.newValidSince &&\n      this.postponedValidityRule?.postponedValidityMaxDays &&\n      max > dateToIsoString(utcToCZZonedTime(this.charge?.validSince)) &&\n      max < dateToIsoString(utcToCZZonedTime(this.charge?.newValidSince))\n    ) {\n      const d1 = new Date(max);\n      const d2 = new Date(dateToIsoString(this.timeService.currentServerTime));\n\n      if (isNaN(d1.getTime()) || isNaN(d2.getTime())) {\n        return;\n      }\n      const msNaDen = 1000 * 60 * 60 * 24;\n      const diff = Math.abs((d2.getTime() - d1.getTime()) / msNaDen);\n      addError(this, \"charge\", this.localizationService.translateAttribute(\"validSince\", \"max\").replace(\"%amount%\", `${diff}`));\n    } else if (\n      this.charge?.validSince &&\n      this.charge?.newValidSince &&\n      this.postponedValidityRule?.postponedValidityMaxDays &&\n      dateToIsoString(this.timeService.currentServerTime) > dateToIsoString(utcToCZZonedTime(this.charge.newValidSince))\n    ) {\n      addError(this, \"charge\", this.localizationService.translateAttribute(\"validSince\", \"min\"));\n    }\n  }\n\n  @action.bound\n  vehicleIsExempted(data: ReturnType<typeof vehicleRegistration>) {\n    const payload = data.payload;\n    if (payload.source === RequestSource.NewValidity && payload.vehicleRegistration.isGivenExemption) {\n      this._exemptionState = ExemptionState.Exempted;\n    }\n  }\n\n  @action.bound\n  vehicleHasValidCharges(data: ReturnType<typeof vehicleHasValidCharges>) {\n    if (!data.payload.source || !data.payload.validCharges.charges.length) return;\n\n    if (data.payload.source === RequestSource.NewValidity) {\n      // Filter out current charge\n      this._validCharges = data.payload.validCharges.charges.filter(\n        charge =>\n          !(\n            this.charge &&\n            this.charge &&\n            this.charge.validSince &&\n            charge.validSince.toISOString() === this.charge.validSince.toISOString() &&\n            charge.validUntil.toISOString() === this.charge?.validUntil.toISOString()\n          )\n      );\n    }\n  }\n\n  @action.bound\n  onNewValidityChanged() {\n    this.isFormFilled = this.newValidity.validSince !== undefined;\n    this.resetSecondStep();\n  }\n\n  @action.bound\n  @watchBusy\n  async submit(turnstileToken?: string) {\n    if (!this.validate()) {\n      scrollToFirstError(this.formElement);\n      return;\n    }\n\n    if (!this.showSecondStep) {\n      await this.checkRsvValidity();\n      this.showSecondStep = true;\n    } else {\n      if (!turnstileToken || !this.turnstileViewModel.turnstileToken) return;\n      const token = turnstileToken || this.turnstileViewModel.turnstileToken;\n\n      const newValidSince = this.newValidity?.validSince;\n\n      if (!newValidSince) return;\n\n      this.isLoading = true;\n\n      try {\n        if (this.charge && !this.charge.emailAddress && this.charge) {\n          await this.chargeManagementService.editChargeValidity(newValidSince, this.emailInputViewModel?.inputEmail.email, token);\n          return;\n        }\n\n        await this.chargeManagementService.editChargeValidity(newValidSince, undefined, token);\n      } finally {\n        this.isLoading = false;\n      }\n    }\n  }\n\n  @action.bound\n  onCancelSecondStep() {\n    if (!this.charge) {\n      return;\n    }\n    this.charge.newValidSince = undefined!;\n    this.showSecondStep = false;\n    this.hideConfirmChangeButton = false;\n  }\n\n  @bound\n  protected async checkRsvValidity() {\n    this.success = false;\n    this.errorMessage = undefined;\n\n    if (!this.validate()) {\n      scrollToFirstError(this.formElement);\n      return false;\n    }\n\n    const countryId = this.charge?.vehicle.countryId;\n    const licensePlate = this.charge?.vehicle.licensePlate;\n    const newValidSince = this.newValidity?.validSince;\n    const chargeId = this.charge?.id;\n\n    if (!countryId || !licensePlate || !newValidSince || !chargeId) return false;\n\n    this.secondStepLoading = true;\n    const response = await this.chargeManagementService.getChargeValidityInstructions(\n      countryId,\n      licensePlate,\n      newValidSince,\n      chargeId\n    );\n    this.secondStepLoading = false;\n\n    let isSuccessful = false;\n    if (response instanceof ChargeValidityInstructionsResponse) {\n      this.overlappingCharges = response.overlappingCharges?.map(overlap =>\n        this.translateOverlappingCharge(overlap, this.isDifferentTimeZone ?? false)\n      );\n\n      if (response.overlapTypes?.includes(ChargeOverlapType.ExemptionOverlap)) {\n        const exemptionOverlapMessage = this.translateOverlapReason(ChargeOverlapType.ExemptionOverlap);\n        this.warningMessages = [exemptionOverlapMessage];\n      }\n\n      isSuccessful = this.warningMessages.length === 0 && this.overlappingCharges.length === 0;\n    }\n\n    if (isSuccessful) {\n      this.hideConfirmChangeButton = true;\n    } else {\n      this.showSecondStep = true;\n    }\n    return isSuccessful;\n  }\n\n  @bound\n  public validate() {\n    const objectsForValidation: any[] = [this.charge?.newValidSince, this.charge?.newValidUntil, this];\n\n    if (this.charge && !this.charge.emailAddress) {\n      objectsForValidation.push(this.emailInputViewModel?.inputEmail);\n    }\n\n    return validateAll(objectsForValidation);\n  }\n\n  @computed\n  get sameValidSinceError() {\n    return getValidationMessage(this, \"charge\");\n  }\n\n  @computed\n  get hasSecondStep() {\n    return true;\n  }\n\n  @computed\n  get canSubmit(): boolean {\n    return this.isFormFilled;\n  }\n\n  get canEdit(): boolean {\n    if (!this.charge) {\n      return false;\n    }\n    return this.charge.permittedActions.validityChange.isAllowed;\n  }\n}\n","import { IInitializationService } from \"./types\";\nimport { observable, runInAction } from \"mobx\";\nimport LocaleProvider from \"../localeProvider\";\nimport LocalizationService from \"../localizationService\";\nimport ValidationService from \"../validationService\";\nimport AuthorizationService from \"../authorizationService\";\nimport OutageService from \"../outageService\";\nimport { validatorsRepository } from \"@frui.ts/validation\";\nimport { availableLocales } from \"../../config\";\n\nexport default class InitializationWithOutagesService implements IInitializationService {\n  @observable isInitialized: boolean;\n\n  constructor(\n    private localeProvider: LocaleProvider,\n    private localizationService: LocalizationService,\n    private validationService: ValidationService,\n    private authorizationService: AuthorizationService,\n    private outageService: OutageService\n  ) {\n    this.isInitialized = false;\n  }\n\n  async initialize(defaultLanguage?: string) {\n    this.validationService.initialize(validatorsRepository as any);\n    this.localeProvider.initialize(availableLocales, defaultLanguage);\n    this.authorizationService.initialize();\n    this.outageService.initialize();\n\n    await Promise.all([this.localizationService.initialize()]);\n\n    runInAction(() => (this.isInitialized = true));\n  }\n}\n","import { Router } from \"@frui.ts/screens/dist\";\nimport StatusViewModel from \"./statusViewModel\";\n\nexport const SingleStatusViewNavigationName = \"single_status\";\n\n@Router.registerRoute({ route: `${SingleStatusViewNavigationName}/:orderId`, name: Router.Self })\nexport default class SingleStatusViewModel extends StatusViewModel {}\n","import { bound } from \"@frui.ts/helpers\";\nimport { watchBusy } from \"@frui.ts/screens\";\nimport { validateAll } from \"@frui.ts/validation\";\nimport { action, computed, observable } from \"mobx\";\nimport { CountryIdValidationRules, LicensePlateConfirmationValidationRules, LicensePlateValidationRules } from \"models/orderItem\";\nimport { CountryIdConfirmationValidationRules } from \"models/vehicle\";\nimport { putChargeContactSuccess, putChargeVehicleSuccess } from \"services/eventBus\";\nimport { attachAutomaticBlurValidator } from \"utils/validationPatch\";\nimport ChargeManagementEditViewModel from \"./chargeManagementEditViewModel\";\nimport ChargeManagementLicensePlateChangeViewModel from \"./chargeManagementLicensePlateChangeViewModel\";\nimport React from \"react\";\nimport * as Sentry from \"@sentry/react\";\nimport { scrollToFirstError } from \"../../../utils/scrollTo\";\nimport VehicleRegistrationResponse from \"entities/vehicleRegistrationResponse\";\nimport InputEmail from \"../../../entities/InputEmail\";\nimport { TurnstileInstance } from \"@marsidev/react-turnstile\";\n\nexport default class ChargeManagementBeforeValidChargeLicensePlateChangeViewModel extends ChargeManagementLicensePlateChangeViewModel {\n  navigationName = \"vehicleChangeBeforeValidity\";\n\n  @observable turnstileToken: string;\n\n  @computed\n  get validationRules() {\n    const validationRules = {\n      ...CountryIdValidationRules,\n      ...CountryIdConfirmationValidationRules,\n      ...LicensePlateValidationRules,\n      ...LicensePlateConfirmationValidationRules,\n    };\n\n    validationRules.countryId = {\n      ...validationRules.countryId,\n      manualValidation: this.manualValidator,\n    };\n\n    validationRules.licensePlate = {\n      ...validationRules.licensePlate,\n      manualValidation: this.manualValidator,\n    };\n\n    return validationRules;\n  }\n\n  @computed\n  get newVehicle() {\n    return this.charge?.newVehicle;\n  }\n\n  @computed\n  get hasSecondStep() {\n    return true;\n  }\n\n  get canSubmit() {\n    return this.newVehicle?.licensePlate !== undefined && this.newVehicle?.countryId !== undefined;\n  }\n\n  protected onInitialize(): Promise<any> | void {\n    this.newVehicleInfoViewModel = this.vehicleInfoViewModelFactory(this.newVehicle!, {\n      attachValidator: false,\n      context: \"new\",\n      countryIDConfirmation: true,\n      licensePlateConfirmation: true,\n    });\n    if (this.charge && !this.charge.emailAddress && this.charge?.notificationPreferences) {\n      this.emailInputViewModel = this.emailInputViewModelFactory(\n        new InputEmail(this.charge.emailAddress, this.charge.notificationPreferences._emailConfirmation),\n        this.translate(\"emailInputUsageInfo\"),\n        this.translate(\"emailInputGDPR\", true)\n      );\n    }\n\n    attachAutomaticBlurValidator(this.newVehicle, this.validationRules);\n\n    return super.onInitialize();\n  }\n\n  @bound\n  public validate() {\n    const objectsForValidation: any[] = [this.charge?.newVehicle];\n    if (this.charge && !this.charge.emailAddress) {\n      objectsForValidation.push(this.emailInputViewModel?.inputEmail);\n    }\n\n    return validateAll(objectsForValidation);\n  }\n\n  onTurnstileVerify = async (turnstileToken: string) => {\n    if (turnstileToken) {\n      this.turnstileViewModel.onTurnstileVerify(turnstileToken);\n    }\n  };\n\n  @action.bound\n  @watchBusy\n  async submit(turnstileToken?: string) {\n    if (!this.showSecondStep) {\n      await this.checkRsvValidity();\n      this.showSecondStep = true;\n    } else {\n      this.sameVehicleCheck();\n      this.success = false;\n      this.errorMessage = undefined;\n      this.secondStepErrorMessage = undefined;\n      this.warningMessages = [];\n\n      if (!this.validate()) {\n        scrollToFirstError(this.formElement);\n        return;\n      }\n\n      const newCountryId = this.newVehicle?.countryId;\n      const newLicensePlate = this.newVehicle?.licensePlate;\n\n      if (!newCountryId || !newLicensePlate) return;\n\n      if (!turnstileToken || !this.turnstileViewModel.turnstileToken) return;\n      const token = turnstileToken || this.turnstileViewModel.turnstileToken;\n      this.isLoading = true;\n\n      try {\n        if (this.charge && !this.charge.emailAddress) {\n          await this.chargeManagementService.editVehicle(\n            newCountryId,\n            newLicensePlate,\n            this.emailInputViewModel?.inputEmail.email,\n            token\n          );\n          return;\n        }\n\n        await this.chargeManagementService.editVehicle(newCountryId, newLicensePlate, undefined, token);\n      } finally {\n        this.isLoading = false;\n      }\n    }\n  }\n\n  @action.bound\n  onCancelSecondStep() {\n    if (!this.newVehicle) {\n      return;\n    }\n    this.newVehicle.countryId = undefined!;\n    this.newVehicle._countryIdConfirmation = undefined!;\n    this.newVehicle.licensePlate = undefined!;\n    this.newVehicle._licensePlateConfirmation = undefined!;\n    this.showSecondStep = false;\n    this.hideConfirmChangeButton = false;\n    attachAutomaticBlurValidator(this.newVehicle, this.validationRules);\n  }\n\n  @bound\n  protected async putChargeVehicleSuccess(data: ReturnType<typeof putChargeVehicleSuccess>) {\n    this.clearAfterAsyncAction();\n\n    if (!this.charge) return;\n\n    const { countryId, licensePlate, authCode, emailAddress } = data.payload.vehicle;\n\n    this.success = true;\n    this.charge.permittedActions.vehicleChangeBeforeValidity.isAllowed = false;\n    if (licensePlate) this.charge.vehicle.licensePlate = licensePlate;\n    if (countryId) this.charge.vehicle.countryId = countryId;\n    if (authCode) this.charge.authCode = authCode;\n    if (licensePlate) this.charge.vehicle.licensePlate = licensePlate;\n    if (emailAddress) this.charge.emailAddress = emailAddress;\n    if (this.charge) {\n      this.charge.notificationPreferences._emailConfirmation = emailAddress;\n    }\n    this.charge.newVehicle = new VehicleRegistrationResponse();\n\n    this.router.navigate(ChargeManagementEditViewModel, undefined, { countryId, licensePlate, authCode });\n  }\n\n  // TODO: R-29-2 Remove after user accepted.\n  @bound\n  protected async putChargeContactSuccess(data: ReturnType<typeof putChargeContactSuccess>) {\n    if (data.payload.triggerer !== \"licensePlateChange\" && data.payload.triggerer !== \"contactChange\") {\n      this.emailInputViewModel = undefined;\n      return;\n    } else {\n      this.emailInputViewModel = this.emailInputViewModelFactory(\n        new InputEmail(this.charge?.emailAddress, this.charge?.notificationPreferences._emailConfirmation),\n        \"\",\n        \"\"\n      );\n    }\n\n    this.clearAfterAsyncAction();\n\n    if (!this.charge) {\n      return;\n    }\n    this.charge._canBeChanged = false;\n    this.charge.notificationPreferences.smsNotificationEnabled = data.payload.notificationPreferences?.smsNotificationEnabled;\n    this.charge.notificationPreferences.emailNotificationEnabled = data.payload.notificationPreferences?.emailNotificationEnabled;\n    this.charge.notificationPreferences._emailAddressNotification =\n      data.payload.notificationPreferences?._emailAddressNotification;\n    this.charge.notificationPreferences._emailConfirmation = data.payload.emailAddress;\n    this.charge.emailAddress = data.payload.emailAddress;\n    this.charge.notificationPreferences.phoneNumber = data.payload.notificationPreferences?.phoneNumber;\n    if (data.payload.authCode) this.charge.authCode = data.payload.authCode;\n\n    this.router.navigate(ChargeManagementEditViewModel, undefined, {\n      countryId: this.charge.vehicle.countryId,\n      licensePlate: this.charge.vehicle.licensePlate,\n      authCode: this.charge.authCode,\n    });\n  }\n}\n"],"sourceRoot":""}