{"version":3,"file":"manage-booking.4a56a31b1a24b6c4.js","mappings":"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","names":["CheckInEntryModule","static","this","__ngFactoryType__","fesm2022_core","$C","G2t","FragmentService","imports","CmsModule","CommonModule","ComponentsModule","DirectiveModule","FinFormsModule","PipesModule","UiTranslateModule","UiComponentsModule","PnrWidgetModule","GtmModule","ManageBookingCommonModule","PnrFormService","constructor","route","router","store$","subscription","Subscription","getInitialValues","initialStoreValues$","pipe","getRedirectPnrOrUndefined","map","pnr","lastName","recLoc","take","finShare","add","filter","subscribe","dispatch","RedirectActions","clearPNR","initialValues$","queryParams","switchMap","params","iif","isNotBlank","of","decodeURI","deepLinkRouteChange$","values","record","from","navigate","queryParamsHandling","ngOnDestroy","unsubscribe","i0","i1","i2","jDH","factory","ɵfac","_r1","ctx_r1","closeErrorNotification","cancelRetrieve","$event","onSubmit","preventDefault","recLocRegex","backgroundImage","loading","disruptions$","mainError$","cmsArticle$","initialValues_r3","NotificationTheme","ALERT","NotificationLayout","BLOCK","error_r5","_r6","submitGroupFirstName","ButtonType","SUBMIT","groupFirstNameForm","valid","_c0","LoaderTheme","INLINE","_r4","onFirstNameModalClose","CheckInFormComponent_fcom_modal_3_fcom_notification_12_Template","CheckInFormComponent_fcom_modal_3_fcom_button_15_Template","CheckInFormComponent_fcom_modal_3_fcom_loader_16_Template","ModalButtons","CUSTOM","showGroupBookingModal$","groupModalError$","order$","bound$","CheckInFormComponent","mmbService","fragmentService","redirectService","commonBookingAncillaryService","pnrFormService","languageService","MmbError","NEVER","RegExp","PNR_PATTERN_WITH_TRAILING_WHITESPACE","source","ETICKET_PATTERN","BehaviorSubject","GROUP_ERRORS","GROUP_BOOKING","GROUP_BOOKING_NOT_FOUND","GROUP_MODAL_ERRORS","GROUP_BOOKING_LOGGING_WITH_INFANT","cancelRetrieve$","Subject","NAME_VALIDATORS","Validators","required","minLength","maxLength","pattern","NAME_PATTERN","subscriptions","ngOnInit","getFragment","error$","getError","error","includes","next","combineLatest","show","_","RequestInitiator","DEEPLINK_CHECK_IN","value","event","resetStage","requestInitiator","CHECK_IN","FormGroup","firstName","FormControl","tourOperatorCode","retrieveOrderFromForm","canActivateCheckInTrigger$","order","eligibilities","checkIn","some","e","isAllowedToUseCheckIn","version","FinnairCheckInVersion","NEXTGEN","passengersNotCheckedInExist","flightTravelerEligibility","boundId","find","id","bounds","OrderActions","StateActions","setServiceCatalog","firstEligibleBoundEligibility","isEligibleForTravelReady","travelReady","isAllowedToUse","redirectForm","redirect","isNewCheckInFlow","navigateByUrl","langValue","RootPaths","TRAVEL_READY","redirectToCheckIn","stage","MmbStage","VIEW","fromCheckIn","controls","setValue","i3","i4","i5","i6","i7","i8","VBU","selectors","inputs","decls","vars","consts","template","rf","ctx","CheckInFormComponent_fcom_pnr_widget_0_Template","CheckInFormComponent_fcom_modal_3_Template","CheckInFormComponent_fin_check_in_trigger_4_Template","ctx_r0","LoaderType","mainContent$","CheckInEntryRouteComponent_ng_container_0_ng_container_2_fin_cms_json_content_4_Template","loading$","backgroundImage$","CheckInEntryRouteComponent_ng_container_0_fin_loader_1_Template","CheckInEntryRouteComponent_ng_container_0_ng_container_2_Template","isLoading_r2","CheckInEntryRouteComponent","pageService","feedbackService","setSurvey","QualtricsSurveys","setFeedbackWidgetVisibility","template$","getPageDataAndSetMeta","CHECK_IN_ROOT","MANAGE_BOOKING_ROOT","data","startWith","contents$","filterWithoutType","CmsViewType","DISRUPTIONS","c","main","findByType","getBackgroundImageForCmsTemplate","t","getLoading","CheckInEntryRouteComponent_ng_container_0_Template","AncillaryPurchaseCheckoutGuard","platform","canActivate","isPlatformServer","getStage","paymentStatus","orderFetchInformation","acceptTerms","termsAndCondition","paymentCheck","CHECKOUT","LOGIN","REVIEW","isTermsAndConditionsAccepted","isPresent","hash","PaymentStatus","PENDING_VERIFICATION","PLATFORM_ID","providedIn","_r3","operator","ManageBookingEntryWidgetComponent_fcom_pnr_widget_0_ng_container_2_Template","ManageBookingEntryWidgetComponent_fcom_pnr_widget_0_ng_container_3_Template","tourOperatorImage","initialValues_r5","error_r7","_r8","ManageBookingEntryWidgetComponent_fcom_modal_3_fcom_notification_12_Template","ManageBookingEntryWidgetComponent_fcom_modal_3_fcom_button_15_Template","ManageBookingEntryWidgetComponent_fcom_modal_3_fcom_loader_16_Template","ManageBookingEntryWidgetComponent","MMB_FEEDBACK","DEEPLINK_MMB","MMB","ManageBookingEntryWidgetComponent_fcom_pnr_widget_0_Template","ManageBookingEntryWidgetComponent_fcom_modal_3_Template","tourOperatorImage$","operator$","ManageBookingEntryRouteComponent_ng_container_0_ng_container_2_fin_mmb_entry_widget_1_Template","ManageBookingEntryRouteComponent_ng_container_0_ng_container_2_fin_cms_json_content_4_Template","ManageBookingEntryRouteComponent_ng_container_0_fin_loader_1_Template","ManageBookingEntryRouteComponent_ng_container_0_ng_container_2_Template","ManageBookingEntryRouteComponent","cmsDataService","content","obj","contentType","CmsContentType","CMPlaceholder","localSettings","tourOperatorLogo","jsonUrl","Boolean","logoUrl","getFragmentJson","ManageBookingEntryRouteComponent_ng_container_0_Template","ManageBookingEntryModule","ViewGuard","manageBookingService","DELAY_ON_UPDATE_INTERRUPTED","hasOrderData","orderState","navigated","Object","isUpdating","OrderPartStatus","UPDATING","PNR","timer","getOrderWithIdAndHash","orderData","ManageBookingViewModule","AlternativeOffersService","CommonBookingComponentsModule","CommonBookingAncillariesModule","FeedbackWidgetModule","SubViewModule","AncillarySubviewModule","MmbPromotionComponent","ManageBookingReviewModule","CommonServiceFormsModule","PassengerDetailsGuard","hasBooking","PASSENGERS","defaultQueryParams","cta","info","title","subtitle","ctaAction","navigateToError","lang","skipLocationChange","canViewTravelPreparations","bookingHasDisruption","entries","travelRequirement","key","eligibility","canViewCarRentals","isWithin24HoursOfCreation","TzDate","creationDateTime","hoursTo","now","carRentalElibible","carRental","CustomServiceType","JOURNEY","airportTransfersEligible","airportTransfer","item_r1","path","translationKey","stage$","targetStage","refetchOrder","orderLoading$","naviExpand_r5","toggleDetails","item_r6","_r7","ManageBookingSideNavigationComponent_div_0_li_4_Template","ManageBookingSideNavigationComponent_div_0_li_6_Template","ManageBookingSideNavigationComponent_div_0_li_17_Template","ManageBookingSideNavigationComponent_div_0_li_19_Template","navigationItems$","enableRefetchOrder","TRACKING_CONTEXT","ElementTypes","LINK","activeTitle_r8","isOpen$","SvgLibraryIcon","CHEVRON_DOWN","ManageBookingSideNavigationComponent","configService","GaContext","SECTION_NAVIGATION","cfg","MANAGE_BOOKING_STEPS","VIEW_PASSENGERS","TRAVEL_PREPARATION","CAR_RENTAL","getMmbNavigationItems","item","activeMenuItemTitle$","navigationItems","expandComponent","snapshot","ManageBookingSideNavigationComponent_div_0_Template","toggleMenu","loginDialog","toggleLogin","navigateBackFromReview","onHomeClick","loginStatus$","LoginStatus","LOGGED_IN","homeUrl","isReviewStage$","profileName$","_c1","LoginWidgetContext","trackCTAButton","removeCTAButtonClass","ManageBookingRoutingComponent_ng_container_7_ng_container_3_ng_container_1_Template","singleColumnLayout_r4","hasUnpaidServices$","stage_r7","ManageBookingRoutingComponent_ng_container_7_ng_container_4_div_1_ng_container_9_ng_container_2_Template","ManageBookingRoutingComponent_ng_container_7_ng_container_4_div_1_ng_container_9_ng_container_3_Template","ManageBookingRoutingComponent_ng_container_7_ng_container_4_div_1_ng_container_9_ng_container_4_Template","ManageBookingRoutingComponent_ng_container_7_ng_container_4_div_1_ng_container_9_ng_container_5_Template","ManageBookingRoutingComponent_ng_container_7_ng_container_4_div_1_ng_container_9_fin_cms_json_content_10_Template","bookingIsDisrupted$","_r5","openBasket","ManageBookingRoutingComponent_ng_container_7_ng_container_4_div_1_fin_booking_header_summary_5_Template","ManageBookingRoutingComponent_ng_container_7_ng_container_4_div_1_ng_container_9_Template","isNavigationMenuOpen$","hasBasket$","bookingSummary$","hasTwoColumnLayout$","ManageBookingRoutingComponent_ng_container_7_ng_container_4_div_1_Template","booking$","_c2","title_r8","ManageBookingRoutingComponent_ng_container_7_ng_container_2_Template","ManageBookingRoutingComponent_ng_container_7_ng_container_3_Template","ManageBookingRoutingComponent_ng_container_7_ng_container_4_Template","ManageBookingRoutingComponent_ng_container_7_ng_template_5_Template","ManageBookingRoutingComponent_ng_container_7_span_8_Template","CHECK_IN_FLOW","title$","CTA_VISIBLE_CLASS","ManageBookingRoutingComponent","navigationMenuService","gtmService","pageMetaService","document","renderer","loginStatus","profileName","priceUpdating$","categoryPartStatus","Category","BAGGAGE","status","booking","services","unpaid","length","isShowLoginHeader$","CONFIRMATION","isBasketDisabled$","priceUpdating","hasUnpaidServices","events","isNavigationEvent","distinctUntilChanged","url","split","slice","getPageData","safeMap","header","prevStage","curStage","translate","setTitle","locations","bound","originLocationCode","departure","locationCode","destinationLocationCode","arrival","dates","departureDate","dateTime","toLocalDate","returnDate","tripType","getTripTypeFromBookingLocationCodes","paxAmount","passengers","removeClass","body","trackElement","MANAGE_BOOKING","BUTTON","undefined","ElementActions","CLICK","otherInformation","analyticsToken","toggleMenuOpen","ctaElement","querySelector","classList","contains","addClass","DOCUMENT","viewQuery","ManageBookingRoutingComponent_fin_header_1_Template","ManageBookingRoutingComponent_fcom_booking_header_3_Template","ManageBookingRoutingComponent_fin_login_dialog_5_Template","ManageBookingRoutingComponent_ng_container_7_Template","PassengerDetailsDeactivateGuard","canDeactivate","component","_currentRoute","_currentState","nextState","componentReference","instance","ManageBookingViewPassengersModule","ReactiveFormsModule","withConfig","callSetDisabledState","ManageBookingPurchaseSuccessGuard","fetchInformation","isAlreadyFetched","isAllowed","orderid","ManageBookingPurchaseSuccessModule","PurchaseSuccessService","BookingOrderService","BookingCommonModule","CommonBookingPurchaseSuccessModule","QualtricsModule","CarTrawlerWidgetModule","AncillaryPurchaseCheckoutModule","OrderApiModule","ManageBookingErrorRouteGuard","errorParams","iconName","showButton","replaceUrl","then","catch","Promise","reject","TravelPreparationsGuard","redirectToLogin","ManageBookingTravelPreparationsModule","CheckInFlowGuard","inject","Store","getCheckInBoundId","checkInAllPassengers","allPaxSelectedCheckboxCheckedByDefault$","passenger_r4","$implicit","setUpdatingPassenger","index_r5","passengersWithCheckInInfo_r6","controlData$","applyForCheckInForm","mainPaxInfo$","getAccompanyingAdult","getAccompanyingInfant","updatingPassengers","allFrequentFlyerCards$","CheckInPassengerDetailsComponent_ng_container_6_div_2_Template","passenger_r8","index_r9","checkedInPassengers_r10","CheckInPassengerDetailsComponent_ng_container_8_div_2_Template","CheckInPassengerDetailsComponent","ButtonPosition","ButtonTheme","modifyCheckIn","confirmPassengers","EventEmitter","prefetchSeatmap","checkInEligibilityForBound$","passengersWithCheckinInfo$","checkInEligibilityForBound","passengers$","checkinFlightEligibilities","passenger","passengerEligibility","flatMap","flightCheckinEligibility","travelerIds","pax","withInfant","getInfantAssociation","isCheckedIn","isAllowedToUseBoardingPass","hasUnrecoverableReason","hasUnrecoverableEligibilityForPassenger","passengerTypeCode","FinnairPassengerCode","INF","notCheckedInPassengers$","checkedInPassengers$","passengersNotCheckedIn","passengersCheckedIn","createForm","disabled","confirmEnabled$","valueChanges","keys","get","infant","accompanyingTravelerId","createFormControl","reduce","all","control","isTruthy","custom","passengerId","forEach","confirmPassengersStep","emit","p","updating","push","i","confirmButtonLoading$","isAPISRequired$","outputs","CheckInPassengerDetailsComponent_div_3_Template","CheckInPassengerDetailsComponent_ng_container_6_Template","CheckInPassengerDetailsComponent_ng_container_8_Template","tmp_1_0","GRID_FULL","LIGHT_PRIMARY_CTA_HEATHER","accompanyingInfant","accompanyingAdult","CheckInPassengerInfoBoxComponent_ng_container_2_span_11_Template","CheckInPassengerInfoBoxComponent_ng_container_2_span_12_Template","ADULT_INFANT","extendedPassengerInfo","paxTypeKey","CHECKMARK","SINGLE_PAX","SERVICE_DESK","CheckInPassengerInfoBoxComponent_ng_container_3_fcom_icon_4_Template","CheckInPassengerInfoBoxComponent_ng_container_3_fcom_icon_5_Template","CheckInPassengerInfoBoxComponent_ng_container_3_span_13_Template","CheckInPassengerInfoBoxComponent_ng_container_3_span_14_Template","CheckInPassengerInfoBoxComponent_ng_container_3_ng_container_15_Template","CheckInPassengerInfoBoxComponent_ng_container_3_div_17_Template","formGroup","passengerInfo_r2","_c3","CheckInPassengerInfoBoxComponent_ng_container_4_span_11_Template","CheckInPassengerInfoBoxComponent_ng_container_4_span_12_Template","dateOfBirth","EMAIL","email","CheckInPassengerInfoBoxComponent_div_11_ng_container_1_span_1_Template","first_r4","PHONE","phone_r3","countryPrefix","number","CheckInPassengerInfoBoxComponent_div_11_ng_container_1_Template","phoneNumbers","_c4","ffCard_r5","cardNumber","oneWorldTierName","CheckInPassengerInfoBoxComponent_div_12_div_1_div_2_Template","CheckInPassengerInfoBoxComponent_div_12_div_1_span_3_Template","CheckInPassengerInfoBoxComponent_div_12_div_1_fcom_tag_4_Template","CheckInPassengerInfoBoxComponent_div_12_div_1_div_5_Template","companyCode","FINNAIR_PLUS","ONEWORLD_LOGO","CheckInPassengerInfoBoxComponent_div_12_div_1_Template","cards","edit","LIGHT_SECONDARY_OUTLINE","_c5","EDIT","IconPosition","RIGHT","CheckInPassengerInfoBoxComponent_ng_template_16_ng_container_0_div_1_Template","CheckInPassengerInfoBoxComponent_ng_template_16_ng_container_0_div_2_Template","passenger_r7","CheckInPassengerInfoBoxComponent_ng_template_16_ng_container_0_Template","ONEWORLD_TIERS","EMER","SAPP","RUBY","CheckInPassengerInfoBoxComponent","IconLibrary","showEdit","updatePassengerInfo","ngOnChanges","changes","asPaxTypeKey","toLowerCase","frequentFlyerCards","frequentFlyerCard","getFrequentFlyerLabel","getOneWorldTierName","allianceTierLevel","tierBaseLabel","companyBaseLabel","FREQUENT_FLIER_AIRLINES","code","tierLevel","FrequentFlyerTierLevel","PLUS","SILVER","GOLD","PLATINUM","LUMO","JUNIOR","features","ngContentSelectors","CheckInPassengerInfoBoxComponent_ng_container_2_Template","CheckInPassengerInfoBoxComponent_ng_container_3_Template","CheckInPassengerInfoBoxComponent_ng_container_4_Template","CheckInPassengerInfoBoxComponent_div_9_Template","CheckInPassengerInfoBoxComponent_div_10_Template","CheckInPassengerInfoBoxComponent_div_11_Template","CheckInPassengerInfoBoxComponent_div_12_Template","CheckInPassengerInfoBoxComponent_div_13_Template","CheckInPassengerInfoBoxComponent_div_15_Template","CheckInPassengerInfoBoxComponent_ng_template_16_Template","togglePassengerInfo","isSaving_r5","passengerFormGroup_r3","ngIf","saveDetails","TRANSFER_LOADER","CheckInPassengerInfoComponent_fcom_modal_1_ng_container_10_fcom_button_1_Template","CheckInPassengerInfoComponent_fcom_modal_1_ng_container_10_fcom_button_3_Template","editingPassenger$","copyContactDetailsToAll","CheckInPassengerInfoComponent_fcom_modal_1_ng_container_10_Template","isSaving$","paxIndex","hideGroups","isMainPax","frequentFlyerAirlines","availableDays","trackingContext","passengersWithoutInfants","passengersToCopy","CheckInPassengerInfoComponent","fb","toasterService","ButtonSize","FREQUENT_FLYER_CARD_ERRORS","formDirtyStatus","paxDetailsUpdating","name","updatePassengersToCopy","passengerGroup$","controlData","phoneNumberRegex","codes","allFrequentFlyerCards","cardsForOtherPassengers","card","buildPassengerFormGroup","passengerForm","dirty","getEmailValidators","isMandatory","EMAIL_PATTERN","countryCodes","existingCards","paxFormGroup","group","type","birthDate","formatToDateOfBirth","toString","days$","parseInt","months","monthOfBirth","years","yearOfBirth","addControl","PaxFormFields","setBirthDateValue","phones","array","index","phonePrefix","numbersWithOptionCode","phoneNumber","validators","validatePhoneNumber","validateFrequentFlyer","isOpen","removeMessage","close","paxForm","copyToAllPassengers","disable","FinnairPhoneType","MOBILE","pop","countryCode","updateContactDetails","joinFinnairPlus","trackSubmit","mapError","contentKey","addMessageToQueue","theme","markAllAsTouched","updateValueAndValidity","form","field","onlySelf","errorKey","FORM","CheckInPassengerInfoComponent_fcom_modal_1_Template","CheckInModule","RedirectServiceModule","RouterModule","CarRentalGuard","getOrderData","CarTrawlerAirportTransfersModule","ManageBookingCarRentalModule","confirmPassengersForCheckIn","prefetchSeatMaps","modifyCheckIn$","clearingSeatsInProgress$","CheckInPassengersRouteComponent_ng_container_1_ng_container_1_Template","EMBEDDED","CheckInPassengersRouteComponent","activatedRoute","locationService","bookingOrderService","sentryLogger","checkInService","OrderStatus","BoundType","checkoutUrl","isModifyCheckIn","clearPendingSeatsOnEntry$","getClearPendingSeatsOnEntry","getOrder","orderStatus$","getOrderStatus","getBound","isAPISRequired","clearPendingSeats","clearAllPendingSeats","setClearPendingSeatsOnEntry","parameters","routeParams","orderInformation","replaceState","pathSegmentsToPathString","pathFromRoot","queueOrderLoad","seats$","getSeats","selectedForCheckInPassengers$","getPassengers","orderDataPrimaryPassenger","nextStep$","CheckInStep","APIS","SEATMAP","passengerIds","isExitRowSeatConfirmationRequiredForPassengers","exitSeatConfirmationRequired","nextStep","CheckInActions","setPassengers","getPassengerIdsWithInfants","setShowExitRowSeatsNotification","triggerNextCheckInStep","oldPassenger","featureFlags","checkInSeatsEnabled","isPassengerFFTierChanged","checkInBound","itinerary","isFlight","flight","triggerFetchSeatMap","prices","included","total","totalAmount","currencyCode","seats","combineServices","pending","s","category","SEAT","service","segments","segment","b","f","SeatMapActions","flightId","travelerId","seat","requests","getServiceData","setServices","warn","orderId","CheckInPassengersRouteComponent_ng_container_1_Template","CheckInPassengersRouteComponent_ng_template_3_Template","PENDING","loader_r3","slideIndex$","flights$","loadSeatMapForFlightFromOrder","changeSeats","flight_r4","subtotalChange","emitSwitchAncillaryLoaderOff","seatSelections$","i_r5","includedSeats$","flightAncillaryAvailability$","selectedModifiedPax$","ancillaryLoader$","checkInAssignFreeSeats","ARROW_BACK","ctaAction_r7","finLet","continue","action","CheckInSeatmapComponent_fcom_cta_button_10_ng_container_12_Template","updateInProgress$","hasNextFlight$","DARK_PRIMARY_NORDIC_BLUE","subTotalPrice$","checkInAssignSeatVisible$","Action","CONFIRM_NO_CHANGES","CONFIRM_CHANGES","NEXT_FLIGHT","OK_SEATMAP_STATUS","SeatMapStatus","OK","OK_NO_AVAILABILITY","CheckInSeatmapComponent","preSelectedSeatsData","confirmStep","seatsUpdate","checkInAssignSeat","switchAncillaryLoaderOff","subtotalPriceSub$","ReplaySubject","seatSelections","availability$","serviceAvailability","includedServicesMap","calculateSubTotalPrice","a","filterFlightsFromItinerary","flights","itineraryItemFlight","seatMap$","seatMapForFlight","seatMapStatus$","seatMapForFlightStatus","orderStatus","seatmapStatus","INITIAL","ctaAction$","allFlights","price","presentSeatSelections","includedSeats","isLastFlight","containsSeatChanges","includedSeatsForFlight","seatNumber","isPriceZero","isNaN","amount","containsUnpaidSeats","flightEligibilityMap","isConfirmedOrCheckedIn","isBoundOrFlightConfirmedOrCheckedIn","allowedToSell","isAllowedToSell","currentFlight$","setCheckInAssignSeatEligible","seatMapWithStatus","currentSeatMapStatus","currentFlight","getSeatMap","fragmentId","flightIndexSelected","findIndex","paxId","seatMap","seatSelected","updateServices","flightsTrackBy","_index","inProgress","isUnsuccessful","slideIndex","currentFlightId","assignSeatFlightId","unpaidSeats$","getUnpaidSeatsBySegmentId","unpaidSeats","boundItem","showCheckInAssignSeat","CheckInSeatmapComponent_fin_ancillary_flight_bound_selector_3_Template","CheckInSeatmapComponent_div_8_Template","CheckInSeatmapComponent_fcom_cta_button_10_Template","WARNING","ALERT_TRIANGLE","CheckInSeatmapRouteComponent_ng_container_3_ng_container_1_fcom_notification_2_Template","_r2","goToNextStep","onSeatsUpdate","checkInAssignSeatForFlight","ancillariesLoading$","showNoSeatsToReassignLeftNotification$","CheckInSeatmapRouteComponent_ng_container_3_ng_container_1_Template","CheckInSeatmapRouteComponent_ng_template_7_div_0_Template","updateServicesModalOn$","CheckInSeatmapRouteComponent","ButtonLayout","ButtonMode","C","AppConstants","waitForSeatmap$","AncillaryLoaderStatus","OFF","seatsReassignmentSuccessful$","getShowSeatsReassignmentSuccessfulMessage","seatsReassignmentSuccessful","SUCCESS","keepMessageAfterNavigation","setShowSeatsReassignmentSuccessfulMessage","getShowNoSeatsLeftNotificationMessage","locations$","seatsUpdateInformation","REASSIGNING","messages","finnairOrder","CheckInSeatmapRouteComponent_div_0_Template","CheckInSeatmapRouteComponent_ng_container_3_Template","CheckInSeatmapRouteComponent_ng_template_5_Template","CheckInSeatmapRouteComponent_ng_template_7_Template","CheckInSeatmapRouteComponent_ng_container_9_Template","loadingModal_r4","viewSeatmap","services$","includeSeatActionButtons$","hasPendingSeats","isCarrierConnect$","ctaAction_r4","totalPrice$","CONFIRM","PROCEED_TO_PAYMENT","CheckInKnowYourTripComponent","initializePayment","serviceItem","totalPrice","isCarrierConnect","initializePaymentIfNeeded","CheckInKnowYourTripComponent_fin_included_products_3_Template","CheckInKnowYourTripComponent_fcom_cta_button_5_Template","goToSeatmapStep","servicesWithEmptySeats$","orderWithCheckInPax$","hasUnpaidSeats$","modalLoaderState_r3","CheckInKnowYourTripRouteComponent_ng_template_5_div_0_Template","CheckInKnowYourTripRouteComponent","paymentService","windowRef","loadingModal$","paxIds","getServices","createEmptySeatServices","isPaymentError","checkInPassengers","serviceRequests","orderFetchInfo","paymentRedirectionUrl","receivedUrl","nativeWindow","location","href","queuePaymentInit","PaymentFlow","CHECK_IN_FUNNEL","TECHNICAL_ERROR","CheckInKnowYourTripRouteComponent_ng_container_1_Template","CheckInKnowYourTripRouteComponent_ng_template_3_Template","CheckInKnowYourTripRouteComponent_ng_template_5_Template","CheckInKnowYourTripRouteComponent_ng_container_7_Template","loader_r4","loadingModal_r5","airline_r1","INFO","CheckInRestrictedItemsComponent","carrierConnectAirline$","operatingAirline","buttonLoading$","CheckInRestrictedItemsComponent_ng_container_0_Template","CheckInRestrictedItemsComponent_fcom_notification_3_Template","CheckInRestrictedItemsComponent_div_153_Template","CARRY_ON_BAG","CHECKED_BAG_PROHIBITED","SPARE_LITHIUM_BATTERIES","POWER_BANK","E_CIGARETTE","LIGHTERS_MATCHES","LAPTOP","CAMERA","CARRY_ON_PROHIBITED","CHECKED_BAGGAGE","FIRE_ARMS","TAZER","TOOLS_AND_BLUNT_INSTRUMENTS","SHARP_OBJECTS","POWER_BANK_PROHIBITED","SCOOTER_PROHIBITED","EXPLOSIVES_PROHIBITED","FLAMMABLE_GASES_PROHIBITED","RADIOACTIVE_PROHIBITED","POISON_PROHIBITED","CORROSIVES_PROHIBITED","completeCheckIn","CheckInRulesRouteComponent","mmbOrderService","getOrderByIdAndHash","catchError","EMPTY","isPaymentSuccess","statusOfPayment","VERIFIED","withLatestFrom","mapPaymentMethods","paymentIdsPaid","__","paidPaymentIds","paymentId","checkouts","sort","timestamp","paymentMethods","parseFloat","completeManageBookingPurchase","GtmPurchaseFlow","setPaymentIdPaid","tap","flightIds","acceptance","success","DapiHttpErrorResponse","DapiErrorCode","CHECK_IN_ACCEPT_UNRECOVERABLE_FAILURE","CHECK_IN_ACCEPT_FAILED","throwError","delay","i9","CheckInRulesRouteComponent_ng_container_1_Template","CheckInRulesRouteComponent_ng_template_3_Template","ApisCountryOfResidenceComponent","DatepickerTheme","LocalDate","completed","passenger$","countryOfResidenceData","apisCpr","requirements","requirement","FinnairApisRequirementKeyEnum","COUNTRY_OF_RESIDENCE","countryOfResidenceForm","countryOfResidence","saveAndContinue","createCountryOfResidenceUpdateRequest","request","updateRegulatoryDetails","enable","markAsTouched","boundId$","advancePassengerInformation","countries$","getFirstDefinedDateOrEmpty","definedDate","date","isLocalDate","passportForm","CALENDAR","WEB_2","minusYears","guideModalOpen","guide_r3","teaserTitle","guide$","ApisPassportComponent","passportData","PASSPORT","APIS_NAME_PATTERN","gender","titleToGender","APIS_PASSPORT_NUMBER_PATTERN","nationality","issuingCountry","expiryDate","issuanceDate","createPassportUpdateRequest","markFormAsTouched","passport","documentType","FinnairTravelDocumentType","expirationDate","toUpperCase","showGuide","nationalities$","genders$","ApisPassportComponent_div_27_Template","ApisPassportComponent_fcom_modal_32_Template","forDate","plusYears","entryDocumentForm","entryDocumentTypes$","ApisVisaComponent_div_27_fin_datepicker_1_Template","ApisVisaComponent_div_27_fin_select_input_2_Template","ApisVisaComponent_div_27_div_4_Template","showNationalitySelector$","EntryDocumentType","VISA","RESIDENT","EntryDocumentTitle","ENTRY_DOCUMENT","ApisVisaComponent","requiredEntryDocumentType$","visaRequirementPresent","r","residentCardRequirementPresent","PERMANENT_RESIDENT_CARD","entryDocumentTitle$","types","entryDocumentData","APIS_ENTRY_DOCUMENT_NUMBER_PATTERN","createEntryDocumentUpdateRequest","apisDocument","PERMANENTRESIDENTCARD","console","log","ApisVisaComponent_fin_select_input_13_Template","ApisVisaComponent_div_27_Template","countryName_r2","ApisDestinationComponent_form_0_ng_container_5_span_1_Template","ctx_r2","addressType","DESTINATION_ADDRESS","countryRegions$","ApisDestinationComponent_form_0_ng_container_5_Template","ApisDestinationComponent_form_0_fcom_notification_7_Template","ApisDestinationComponent_form_0_ng_container_12_Template","ApisDestinationComponent_form_0_ng_template_14_Template","countryName$","tmp_6_0","stateInput_r4","ApisDestinationComponent","Array","isArray","countryCodes$","arrivalCountryCode$","arrivalCountryCode","HOME_ADDRESS","country","getCountryCode","logErrors","regions","region","address","destinationAddress","homeAddress","ADDRESS_PATTERN","city","CITY_PATTERN","state","STATE_PATTERN","zipCode","ZIP_CODE_PATTERN","request$","destinationCountry","homeCountry","ApisDestinationComponent_form_0_Template","ApisEmergencyContactComponent","phonePrefixService","phonePrefixes$","setupPhonePrefixes","emergencyContactData","EMERGENCY_CONTACT","emergencyContactForm","contactName","PHONE_PREFIX_PATTERN","PHONE_PATTERN","createEmergencyContactUpdateRequest","phonePrefixValues","emergencyContact","EMERGENCY","ApisPurposeOfVisitComponent","purposeOfVisitData","PURPOSE_OF_VISIT","purposeOfVisitForm","purposeOfVisit","purposes$","options","createPurposeOfVisitUpdateRequest","PurposeOfVisitEnum","step_r3","ctx_r3","navigateBack","ARROW_LEFT","LEFT","passenger_r5","step_r7","_r9","_r10","_r11","_r12","_r13","_r14","_r15","ApisPaxComponent_ng_container_17_Case_1_Template","ApisPaxComponent_ng_container_17_Case_2_Template","ApisPaxComponent_ng_container_17_Case_3_Template","ApisPaxComponent_ng_container_17_Case_4_Template","ApisPaxComponent_ng_container_17_Case_5_Template","ApisPaxComponent_ng_container_17_Case_6_Template","ApisPaxComponent_ng_container_17_Case_7_Template","ApisPaxComponent_ng_container_17_Case_8_Template","ApisPaxComponent_ng_container_17_Case_9_Template","tmp_3_0","ALL_STEPS","ApisPaxComponent","scrollService","goToMmb","subviewOpen$","navigate$","steps$","step","FinnairCompletionStatus","COMPLETED","navigateSteps$","arrivalCityCode","step$","merge","steps","currentStepIndex","currentStep","shouldGoToMainPaxPage","direction","scrollContainer","scrollToImmediate","requiredTravelRequirements$","specialCountryCodes","specialCountryCode","localeCompare","generateCountryOptions","genders","FinnairGender","MALE","FEMALE","UNSPECIFIED","ctaOpenApisFormAction$","ctaActionPassengerId","showApisForm","ApisPaxComponent_fcom_button_8_Template","ApisPaxComponent_div_10_Template","ApisPaxComponent_ng_container_17_Template","INFO_BLOCK","isFirst_r5","passenger$_r4","CheckInApisRouteComponent","getPassengersWithApis","passengerInAgentReval$","isInAgentReval","isApisCompleted$","isApisCompleted","canContinue$","allPassengerIds","segmentCheckInEligibilities","every","allowedEligibilities","isAllowedToAcceptCheckIn","continueToNextStep","isExitRowSeatConfirmationRequired","canContinue","passengerIdWithMissingDetails","passengerWithAgentReval","exitRowSeatsConfirmationRequired","CheckInApisRouteComponent_p_0_Template","CheckInApisRouteComponent_ng_template_3_Template","CheckInApisRouteComponent_fcom_notification_5_Template","CheckInApisRouteComponent_fcom_notification_8_Template","CheckInApisRouteComponent_fin_apis_pax_13_Template","apisComplete_r6","tmp_9_0","manageBookingRoutes","children","createRoute","checkInOrMmb","CHECK_IN_STEPS","CheckInFunnelRoutingComponent","KYT","RULES","CheckInConfirmationRouteComponent","CHECK_IN_BOARDING_PASS","CheckInBoardingPassRouteComponent","ENTRY","enumValues","TourOperator","server","ManageBookingViewRouteComponent","ManageBookingPassengerDetailsRouteComponent","ManageBookingCarRentalRouteComponent","ManageBookingTravelPreparationsRouteComponent","ManageBookingReviewRouteComponent","ancillaryPurchaseReviewGuard","AncillaryPurchaseCheckoutRouteComponent","ManageBookingPurchaseSuccessRouteComponent","ERROR_STEPS","PAYMENT_ERROR","ErrorComponent","ERROR_ROUTE","ERROR","ManageBookingRoutesModule","forChild","StageEffects","actions$","createEffect","ofType","scrollTop","fragment","parseUrl","hasParam","param","queryParamMap","has","ManageBookingModule","localizationProvider","triggerLazyLocalizations","I18nKey","CmsPageService","ManageBookingService","UtilsService","NotificationsService","CommonBookingAncillaryService","PaymentService","OffersService","CarTrawlerWidgetService","CheckInService","NavigationModule","LocationsModule","FormsModule","StoreModule","forFeature","MANAGE_BOOKING_FEATURE_KEY","reducers","EffectsModule","ImagesModule","LoginModule","MmbOrderModule"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/modules/manage-booking/modules/check-in-entry/check-in-entry.module.ts","./src/modules/manage-booking/services/pnr-form-service.ts","./src/modules/manage-booking/modules/check-in-entry/components/check-in-form/check-in-form.component.html","./src/modules/manage-booking/modules/check-in-entry/components/check-in-form/check-in-form.component.ts","./src/modules/manage-booking/modules/check-in-entry/routes/check-in-entry-route.component.html","./src/modules/manage-booking/modules/check-in-entry/routes/check-in-entry-route.component.ts","./src/modules/manage-booking/modules/ancillary-purchase-checkout/services/ancillary-purchase-checkout.guard.ts","./src/modules/manage-booking/modules/entry/components/manage-booking-entry-widget/manage-booking-entry-widget.component.html","./src/modules/manage-booking/modules/entry/components/manage-booking-entry-widget/manage-booking-entry-widget.component.ts","./src/modules/manage-booking/modules/entry/routes/manage-booking-entry-route.component.html","./src/modules/manage-booking/modules/entry/routes/manage-booking-entry-route.component.ts","./src/modules/manage-booking/modules/entry/manage-booking-entry.module.ts","./src/modules/manage-booking/modules/view/services/view.guard.ts","./src/modules/manage-booking/modules/view/view.module.ts","./src/modules/manage-booking/modules/review/review.module.ts","./src/modules/manage-booking/modules/view-passengers/services/passenger-details.guard.ts","./src/modules/manage-booking/utils/routing.utils.ts","./src/modules/manage-booking/components/side-navigation/side-navigation.component.html","./src/modules/manage-booking/components/side-navigation/side-navigation.component.ts","./src/modules/manage-booking/components/manage-booking-routing/manage-booking-routing.component.html","./src/modules/manage-booking/components/manage-booking-routing/manage-booking-routing.component.ts","./src/modules/manage-booking/modules/view-passengers/services/passenger-details-deactivate.guard.ts","./src/modules/manage-booking/modules/view-passengers/view-passengers.module.ts","./src/modules/manage-booking/modules/purchase-success/services/purchase-success.guard.ts","./src/modules/manage-booking/modules/purchase-success/purchase-success.module.ts","./src/modules/manage-booking/modules/ancillary-purchase-checkout/ancillary-purchase-checkout.module.ts","./src/modules/manage-booking/services/error-route.guard.ts","./src/modules/manage-booking/modules/travel-preparations/services/travel-preparations.guard.ts","./src/modules/manage-booking/modules/travel-preparations/travel-preparations.module.ts","./src/modules/manage-booking/services/check-in-flow-guard.ts","./src/modules/manage-booking/modules/check-in/components/check-in-passenger-details.component.html","./src/modules/manage-booking/modules/check-in/components/check-in-passenger-details.component.ts","./src/modules/manage-booking/modules/check-in/components/check-in-passenger-info-box.component.html","./src/modules/manage-booking/modules/check-in/components/check-in-passenger-info-box.component.ts","./src/modules/manage-booking/modules/check-in/components/check-in-passenger-info.component.html","./src/modules/manage-booking/modules/check-in/components/check-in-passenger-info.component.ts","./src/modules/manage-booking/modules/check-in/check-in.module.ts","./src/modules/manage-booking/modules/car-rental/services/car-rental.guard.ts","./src/modules/manage-booking/modules/common/components/cartrawler-airport-transfers/cartrawler-airport-transfers.module.ts","./src/modules/manage-booking/modules/car-rental/car-rental.module.ts","./src/modules/manage-booking/modules/check-in/routes/check-in-passengers-route.component.html","./src/modules/manage-booking/modules/check-in/routes/check-in-passengers-route.component.ts","./src/modules/manage-booking/modules/check-in/components/check-in-seatmap.component.html","./src/modules/manage-booking/modules/check-in/components/check-in-seatmap.component.ts","./src/modules/manage-booking/modules/check-in/routes/check-in-seatmap-route.component.html","./src/modules/manage-booking/modules/check-in/routes/check-in-seatmap-route.component.ts","./src/modules/manage-booking/modules/check-in/components/check-in-know-your-trip.component.html","./src/modules/manage-booking/modules/check-in/components/check-in-know-your-trip.component.ts","./src/modules/manage-booking/modules/check-in/routes/check-in-know-your-trip-route.component.html","./src/modules/manage-booking/modules/check-in/routes/check-in-know-your-trip-route.component.ts","./src/modules/manage-booking/modules/check-in/components/check-in-restricted-items.component.html","./src/modules/manage-booking/modules/check-in/components/check-in-restricted-items.component.ts","./src/modules/manage-booking/modules/check-in/routes/check-in-rules-route.component.html","./src/modules/manage-booking/modules/check-in/routes/check-in-rules-route.component.ts","./src/modules/manage-booking/modules/travel-preparations/components/apis-country-of-residence/apis-country-of-residence.component.ts","./src/modules/manage-booking/modules/travel-preparations/components/apis-country-of-residence/apis-country-of-residence.component.html","./src/modules/manage-booking/modules/travel-preparations/components/apis-utils.ts","./src/modules/manage-booking/modules/travel-preparations/components/apis-passport/apis-passport.component.html","./src/modules/manage-booking/modules/travel-preparations/components/apis-passport/apis-passport.component.ts","./src/modules/manage-booking/modules/travel-preparations/components/apis-visa/apis-visa.component.html","./src/modules/manage-booking/modules/travel-preparations/components/apis-visa/apis-visa.component.ts","./src/modules/manage-booking/modules/travel-preparations/components/apis-destination/apis-destination.component.html","./src/modules/manage-booking/modules/travel-preparations/components/apis-destination/apis-destination.component.ts","./src/modules/manage-booking/modules/travel-preparations/components/apis-emergency-contact/apis-emergency-contact.component.ts","./src/modules/manage-booking/modules/travel-preparations/components/apis-emergency-contact/apis-emergency-contact.component.html","./src/modules/manage-booking/modules/travel-preparations/components/apis-purpose-of-visit/apis-purpose-of-visit.component.ts","./src/modules/manage-booking/modules/travel-preparations/components/apis-purpose-of-visit/apis-purpose-of-visit.component.html","./src/modules/manage-booking/modules/travel-preparations/components/apis-pax/apis-pax.component.html","./src/modules/manage-booking/modules/travel-preparations/components/apis-pax/apis-pax.component.ts","./src/modules/manage-booking/modules/check-in/routes/check-in-apis-route.component.html","./src/modules/manage-booking/modules/check-in/routes/check-in-apis-route.component.ts","./src/modules/manage-booking/manage-booking.routes.ts","./src/modules/manage-booking/modules/review/services/ancillary-purchase-review.guard.ts","./src/modules/manage-booking/store/effects/stage.effects.ts","./src/modules/manage-booking/manage-booking.module.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { UiTranslateModule } from '@fcom/ui-translate';\nimport { UiComponentsModule } from '@fcom/ui-components';\nimport { CmsModule } from '@fcom/cms/components';\nimport { ComponentsModule, DirectiveModule, FinFormsModule, FragmentService, PipesModule } from '@fcom/common';\nimport { PnrWidgetModule } from '@fcom/pnr-widget/pnr-widget.module';\nimport { GtmModule } from '@fcom/common/gtm';\n\nimport { CheckInFormComponent } from './components/check-in-form/check-in-form.component';\nimport { CheckInEntryRouteComponent } from './routes/check-in-entry-route.component';\nimport { ManageBookingCommonModule } from '../common/booking-common.module';\n\n@NgModule({\n imports: [\n CmsModule,\n CommonModule,\n ComponentsModule,\n DirectiveModule,\n FinFormsModule,\n PipesModule,\n UiTranslateModule,\n UiComponentsModule,\n FinFormsModule,\n PnrWidgetModule,\n GtmModule,\n ManageBookingCommonModule,\n ],\n declarations: [CheckInEntryRouteComponent, CheckInFormComponent],\n exports: [CheckInEntryRouteComponent],\n providers: [FragmentService],\n})\nexport class CheckInEntryModule {}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { from, iif, Observable, of, Subscription } from 'rxjs';\nimport { filter, map, switchMap, take } from 'rxjs/operators';\nimport { Store } from '@ngrx/store';\n\nimport { getRedirectPnrOrUndefined, PassengerNameRecord } from '@fcom/common-booking';\nimport { finShare } from '@fcom/rx';\nimport { AppState, isNotBlank, unsubscribe } from '@fcom/core';\nimport { RedirectActions } from '@fcom/common-booking/store/actions/redirect.actions';\n\n@Injectable()\nexport class PnrFormService implements OnDestroy {\n subscription = new Subscription();\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private store$: Store\n ) {}\n\n getInitialValues(): { initialValues$; deepLinkRouteChange$ } {\n const initialStoreValues$: Observable = this.store$.pipe(\n getRedirectPnrOrUndefined(),\n map((pnr: PassengerNameRecord) => ({\n lastName: pnr?.lastName ?? '',\n recLoc: pnr?.recLoc ?? '',\n })),\n take(1),\n finShare()\n );\n\n this.subscription.add(\n initialStoreValues$\n .pipe(filter((pnr) => Boolean(pnr?.recLoc)))\n .subscribe(() => this.store$.dispatch(RedirectActions.clearPNR()))\n );\n\n const initialValues$: Observable = this.route.queryParams.pipe(\n switchMap((params) => {\n return iif(\n () => isNotBlank(params['recLoc']) && isNotBlank(params['lastName']),\n of({\n lastName: decodeURI(params['lastName']),\n recLoc: params['recLoc'],\n }),\n initialStoreValues$\n );\n }),\n take(1),\n finShare()\n );\n\n const deepLinkRouteChange$ = initialValues$.pipe(\n take(1),\n filter((values) => isNotBlank(values.recLoc) && isNotBlank(values.lastName)),\n switchMap((record) =>\n from(\n this.router.navigate([], {\n queryParams: { lastName: null, recLoc: null },\n queryParamsHandling: 'merge',\n })\n ).pipe(map(() => record))\n )\n );\n\n return {\n initialValues$,\n deepLinkRouteChange$,\n };\n }\n\n ngOnDestroy(): void {\n unsubscribe(this.subscription);\n }\n}\n","\n \n
\n {{ 'MMB.links.recloceticket.text' | finLocalization }}\n
\n
\n {{ 'MMB.links.checkinfaq.text' | finLocalization }}\n
\n
\n\n\n\n \n
\n

\n {{ 'MMB.login.group.heading' | finLocalization }}\n

\n

\n {{ 'MMB.login.group.info' | finLocalization }}\n

\n\n
\n \n \n\n \n {{ 'MMB.login.errors.' + error | finLocalization }}\n \n
\n\n
\n \n \n
\n \n
\n\n\n","import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\n\nimport { BehaviorSubject, combineLatest, filter, map, NEVER, Observable, Subject, Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\n\nimport {\n ETICKET_PATTERN,\n NAME_PATTERN,\n passengersNotCheckedInExist,\n PNR_PATTERN_WITH_TRAILING_WHITESPACE,\n} from '@fcom/core/utils';\nimport { RedirectService } from '@fcom/common-booking/modules/redirect-service';\nimport { OrderActions, PassengerNameRecord } from '@fcom/common-booking';\nimport { CmsArticle, CmsCollection, CmsImageData } from '@fcom/core-api/interfaces';\nimport { FragmentService } from '@fcom/common/services';\nimport { getError, StateActions } from '@fcom/manage-booking/store';\nimport {\n FinnairBoundItem,\n FinnairCheckInVersion,\n FinnairOrder,\n RequestInitiator,\n TourOperatorCode,\n} from '@fcom/dapi/api/models';\nimport { ButtonType, LoaderTheme, ModalButtons, NotificationLayout, NotificationTheme } from '@fcom/ui-components';\nimport { CommonBookingAncillaryService } from '@fcom/common-booking/modules/ancillaries/services';\nimport { RootPaths } from '@fcom/core';\nimport { LanguageService } from '@fcom/ui-translate';\n\nimport { ManageBookingService } from '../../../../services';\nimport { ManageBookingFeatureState } from '../../../../interfaces';\nimport { MmbError, MmbStage } from '../../../../enums';\nimport { PnrFormService } from '../../../../services/pnr-form-service';\n\n@Component({\n selector: 'fin-check-in-form',\n templateUrl: 'check-in-form.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckInFormComponent implements OnInit, OnDestroy {\n readonly MmbError = MmbError;\n readonly ModalButtons = ModalButtons;\n readonly NotificationTheme = NotificationTheme;\n readonly NotificationLayout = NotificationLayout;\n readonly ButtonType = ButtonType;\n readonly LoaderTheme = LoaderTheme;\n\n @Input() backgroundImage: CmsImageData;\n @Input() disruptions$: Observable = NEVER;\n @Input() loading: boolean;\n\n recLocRegex = new RegExp(PNR_PATTERN_WITH_TRAILING_WHITESPACE.source + '|' + ETICKET_PATTERN.source);\n\n mainError$: Observable;\n groupModalError$: Observable;\n showGroupBookingModal$ = new BehaviorSubject(false);\n\n GROUP_ERRORS = [MmbError.GROUP_BOOKING, MmbError.GROUP_BOOKING_NOT_FOUND];\n GROUP_MODAL_ERRORS = [MmbError.GROUP_BOOKING_NOT_FOUND, MmbError.GROUP_BOOKING_LOGGING_WITH_INFANT];\n\n cancelRetrieve$: Subject = new Subject();\n\n cmsArticle$: Observable;\n\n groupFirstNameForm: FormGroup<{\n firstName: FormControl;\n lastName: FormControl;\n recLoc: FormControl;\n tourOperatorCode: FormControl;\n }>;\n\n NAME_VALIDATORS = [\n Validators.required,\n Validators.minLength(2),\n Validators.maxLength(50),\n Validators.pattern(NAME_PATTERN),\n ];\n\n order$: Observable;\n bound$: Observable;\n canActivateCheckInTrigger$: Observable;\n initialValues$: Observable;\n\n private subscriptions: Subscription = new Subscription();\n\n constructor(\n private store$: Store,\n private mmbService: ManageBookingService,\n private fragmentService: FragmentService,\n private redirectService: RedirectService,\n private commonBookingAncillaryService: CommonBookingAncillaryService,\n private pnrFormService: PnrFormService,\n private router: Router,\n private languageService: LanguageService\n ) {}\n\n ngOnInit(): void {\n this.cmsArticle$ = this.fragmentService.getFragment('MMB.fragments.checkInInfo.url');\n\n const error$ = this.store$.pipe(getError());\n this.subscriptions.add(\n error$.subscribe((error) => {\n if (this.GROUP_ERRORS.includes(error)) {\n this.showGroupBookingModal$.next(true);\n }\n })\n );\n\n this.groupModalError$ = error$.pipe(filter((error) => error && this.GROUP_MODAL_ERRORS.includes(error)));\n this.mainError$ = combineLatest([this.showGroupBookingModal$, error$]).pipe(\n filter(([show]) => !show),\n map(([_, error]) => (error ? 'MMB.login.errors.' + error : null))\n );\n\n const { initialValues$, deepLinkRouteChange$ } = this.pnrFormService.getInitialValues();\n\n this.initialValues$ = initialValues$;\n\n this.subscriptions.add(\n deepLinkRouteChange$.subscribe((record: PassengerNameRecord) => {\n this.onSubmit(record, true, RequestInitiator.DEEPLINK_CHECK_IN);\n })\n );\n }\n\n submitGroupFirstName(): void {\n if (this.groupFirstNameForm.valid) {\n this.onSubmit(this.groupFirstNameForm.value as PassengerNameRecord, true);\n }\n }\n\n onSubmit(event: PassengerNameRecord | null, resetStage = false, requestInitiator = RequestInitiator.CHECK_IN): void {\n this.groupFirstNameForm = new FormGroup({\n firstName: new FormControl(event.firstName ?? '', this.NAME_VALIDATORS),\n lastName: new FormControl(event.lastName),\n recLoc: new FormControl(event.recLoc),\n tourOperatorCode: new FormControl(event.tourOperatorCode),\n });\n\n this.order$ = this.mmbService.retrieveOrderFromForm(\n event,\n requestInitiator,\n true,\n resetStage,\n this.cancelRetrieve$,\n true\n );\n this.canActivateCheckInTrigger$ = this.order$.pipe(\n map((order) => {\n return (\n order.eligibilities?.checkIn?.some(\n (e) =>\n e.isAllowedToUseCheckIn &&\n e.version === FinnairCheckInVersion.NEXTGEN &&\n passengersNotCheckedInExist(e.flightTravelerEligibility)\n ) ?? false\n );\n })\n );\n this.bound$ = this.order$.pipe(\n map((order: FinnairOrder) => {\n const boundId = order.eligibilities?.checkIn?.find(\n ({ version, isAllowedToUseCheckIn }) => version === FinnairCheckInVersion.NEXTGEN && isAllowedToUseCheckIn\n )?.id;\n\n return order.bounds.find(({ id }) => id === boundId);\n })\n );\n\n this.subscriptions.add(\n this.order$.subscribe((order) => {\n this.store$.dispatch(OrderActions.setOrderData({ order }));\n this.store$.dispatch(StateActions.setLoading({ loading: false }));\n this.commonBookingAncillaryService.setServiceCatalog(order);\n\n const firstEligibleBoundEligibility = order.eligibilities?.checkIn?.find((e) => e.isAllowedToUseCheckIn);\n const isEligibleForTravelReady =\n !!firstEligibleBoundEligibility &&\n order.eligibilities?.travelReady?.find((e) => e.id === firstEligibleBoundEligibility.id)?.isAllowedToUse;\n const redirectForm = firstEligibleBoundEligibility?.redirect;\n const isNewCheckInFlow = firstEligibleBoundEligibility?.version === FinnairCheckInVersion.NEXTGEN;\n if (isEligibleForTravelReady) {\n this.router.navigateByUrl(`${this.languageService.langValue}/${RootPaths.TRAVEL_READY}`);\n } else if (!isNewCheckInFlow && redirectForm) {\n this.redirectService.redirectToCheckIn(order);\n } else if (\n !isNewCheckInFlow ||\n (isNewCheckInFlow && !passengersNotCheckedInExist(firstEligibleBoundEligibility?.flightTravelerEligibility))\n ) {\n this.store$.dispatch(StateActions.setStage({ stage: MmbStage.VIEW, fromCheckIn: true }));\n }\n })\n );\n }\n\n cancelRetrieve(): void {\n this.store$.dispatch(StateActions.setLoading({ loading: false }));\n this.cancelRetrieve$.next(true);\n }\n\n onFirstNameModalClose(): void {\n this.groupFirstNameForm.controls.firstName.setValue('');\n this.store$.dispatch(StateActions.clearError());\n this.showGroupBookingModal$.next(false);\n }\n\n closeErrorNotification(): void {\n this.store$.dispatch(StateActions.clearError());\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n}\n","\n \n\n \n \n\n \n \n \n\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\n\nimport { filter, map, Observable, startWith, Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\n\nimport { CmsPageService, LoaderType } from '@fcom/common';\nimport { unsubscribe } from '@fcom/core/utils';\nimport { RootPaths } from '@fcom/core/constants';\nimport { finShare } from '@fcom/rx';\nimport { filterWithoutType, findByType } from '@fcom/cms';\nimport { CmsCollection, CmsImageData, CmsTemplate, CmsViewType } from '@fcom/core-api/interfaces';\nimport { getBackgroundImageForCmsTemplate } from '@fcom/cms/services/cms-utils/cms-utils';\nimport { QualtricsSurveys } from '@fcom/common/qualtrics/qualtrics.utils';\nimport { FeedbackService } from '@fcom/common/services/feedback/feedback.service';\n\nimport { ManageBookingFeatureState } from '../../../interfaces';\nimport { getLoading } from '../../../store/selectors';\n\n@Component({\n selector: 'fin-check-in-entry-route',\n templateUrl: 'check-in-entry-route.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckInEntryRouteComponent implements OnInit, OnDestroy {\n readonly LoaderType = LoaderType;\n\n loading$: Observable;\n template$: Observable<{ loading: boolean; data: CmsTemplate }>;\n backgroundImage$: Observable;\n disruptions$: Observable;\n mainContent$: Observable;\n\n private subscription = new Subscription();\n constructor(\n private pageService: CmsPageService,\n private store$: Store,\n private feedbackService: FeedbackService\n ) {}\n\n ngOnInit(): void {\n this.feedbackService.setSurvey(QualtricsSurveys.CHECK_IN);\n this.feedbackService.setFeedbackWidgetVisibility(true);\n\n this.template$ = this.pageService\n .getPageDataAndSetMeta(RootPaths.CHECK_IN_ROOT, RootPaths.MANAGE_BOOKING_ROOT)\n .pipe(\n map((data) => ({ loading: false, data })),\n startWith({ loading: true, data: null }),\n finShare()\n );\n\n const contents$ = this.template$.pipe(\n filter((template) => Boolean(template.data)),\n map((template) => template.data)\n );\n this.mainContent$ = contents$.pipe(filterWithoutType(CmsViewType.DISRUPTIONS, 'main'));\n this.disruptions$ = contents$.pipe(\n map((c) => c.main),\n findByType(CmsViewType.DISRUPTIONS, false)\n );\n\n this.backgroundImage$ = getBackgroundImageForCmsTemplate(this.template$.pipe(map((t) => t.data)));\n\n this.loading$ = this.store$.pipe(getLoading());\n }\n\n ngOnDestroy(): void {\n unsubscribe(this.subscription);\n this.feedbackService.setFeedbackWidgetVisibility(false);\n }\n}\n","import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { isPlatformServer } from '@angular/common';\n\nimport { Store } from '@ngrx/store';\nimport { map, take } from 'rxjs/operators';\nimport { combineLatest, Observable, of } from 'rxjs';\n\nimport { isPresent } from '@fcom/core/utils';\nimport { acceptTerms, paymentStatus } from '@fcom/common-booking/store/selectors';\nimport { orderFetchInformation } from '@fcom/common-booking/store/selectors/order.selector';\nimport { PaymentStatus } from '@fcom/common-booking/interfaces';\nimport { IdAndHash } from '@fcom/dapi';\nimport { BookingAndAppState } from '@fcom/common/interfaces/booking';\n\nimport { MmbStage } from '../../../enums';\nimport { getStage, StateActions } from '../../../store';\n\n@Injectable({ providedIn: 'root' })\nexport class AncillaryPurchaseCheckoutGuard implements CanActivate {\n constructor(\n private store$: Store,\n @Inject(PLATFORM_ID) private platform: Record\n ) {}\n\n canActivate(): Observable {\n if (isPlatformServer(this.platform)) {\n return of(true);\n }\n\n return combineLatest([\n this.store$.pipe(getStage()),\n this.store$.pipe(paymentStatus()),\n this.store$.pipe(orderFetchInformation()),\n this.store$.pipe(acceptTerms()),\n ]).pipe(\n take(1),\n map(\n ([stage, paymentStatus, orderFetchInformation, termsAndCondition]: [\n MmbStage,\n PaymentStatus,\n IdAndHash,\n boolean,\n ]) => {\n if (this.paymentCheck(paymentStatus, orderFetchInformation, termsAndCondition)) {\n if (stage !== MmbStage.CHECKOUT) {\n this.store$.dispatch(StateActions.setStage({ stage: MmbStage.CHECKOUT }));\n }\n return true;\n }\n if (!termsAndCondition) {\n this.store$.dispatch(StateActions.setStage({ stage: MmbStage.REVIEW }));\n return false;\n }\n this.store$.dispatch(StateActions.setStage({ stage: MmbStage.LOGIN }));\n return false;\n }\n )\n );\n }\n\n private paymentCheck(\n paymentStatus: PaymentStatus,\n orderFetchInformation: IdAndHash,\n isTermsAndConditionsAccepted: boolean\n ): boolean {\n return (\n isTermsAndConditionsAccepted &&\n isPresent(orderFetchInformation) &&\n isPresent(orderFetchInformation.id) &&\n isPresent(orderFetchInformation.hash) &&\n PaymentStatus.PENDING_VERIFICATION !== paymentStatus\n );\n }\n}\n","\n \n \n
\n {{ 'MMB.links.recloceticket.text' | finLocalization }}\n
\n
\n {{ 'MMB.links.refund.text' | finLocalization }}\n
\n
\n \n
\n {{ 'MMB.links.' + operator + '.text' | finLocalization }}\n
\n
\n
\n\n\n\n \n
\n

\n {{ 'MMB.login.group.heading' | finLocalization }}\n

\n

\n {{ 'MMB.login.group.info' | finLocalization }}\n

\n\n
\n \n \n\n \n {{ 'MMB.login.errors.' + error | finLocalization }}\n \n
\n\n
\n \n \n
\n \n
\n","import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\n\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, combineLatest, NEVER, Observable, Subject, Subscription } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\n\nimport { PassengerNameRecord } from '@fcom/common-booking';\nimport { CmsArticle, CmsCollection, CmsImageData } from '@fcom/core-api';\nimport { FragmentService } from '@fcom/common';\nimport { TourOperator } from '@fcom/common-booking/interfaces/tour-operator.interface';\nimport { ETICKET_PATTERN, NAME_PATTERN, PNR_PATTERN_WITH_TRAILING_WHITESPACE } from '@fcom/core/utils';\nimport { ButtonType, LoaderTheme, ModalButtons, NotificationLayout, NotificationTheme } from '@fcom/ui-components';\nimport { RequestInitiator, TourOperatorCode } from '@fcom/dapi/api/models';\nimport { FeedbackService } from '@fcom/common/services/feedback/feedback.service';\nimport { QualtricsSurveys } from '@fcom/common/qualtrics/qualtrics.utils';\n\nimport { MmbError } from '../../../../enums';\nimport { ManageBookingFeatureState } from '../../../../interfaces';\nimport { ManageBookingService } from '../../../../services';\nimport { getError, StateActions } from '../../../../store';\nimport { PnrFormService } from '../../../../services/pnr-form-service';\n\n@Component({\n selector: 'fin-mmb-entry-widget',\n templateUrl: './manage-booking-entry-widget.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ManageBookingEntryWidgetComponent implements OnInit, OnDestroy {\n readonly MmbError = MmbError;\n readonly ModalButtons = ModalButtons;\n readonly NotificationTheme = NotificationTheme;\n readonly NotificationLayout = NotificationLayout;\n readonly ButtonType = ButtonType;\n readonly LoaderTheme = LoaderTheme;\n\n @Input() backgroundImage: CmsImageData;\n @Input() tourOperatorImage: CmsImageData;\n @Input() loading: boolean;\n @Input() operator: TourOperator | undefined;\n @Input() disruptions$: Observable = NEVER;\n\n recLocRegex = new RegExp(PNR_PATTERN_WITH_TRAILING_WHITESPACE.source + '|' + ETICKET_PATTERN.source);\n\n mainError$: Observable;\n groupModalError$: Observable;\n showGroupBookingModal$ = new BehaviorSubject(false);\n\n GROUP_ERRORS = [MmbError.GROUP_BOOKING, MmbError.GROUP_BOOKING_NOT_FOUND];\n GROUP_MODAL_ERRORS = [MmbError.GROUP_BOOKING_NOT_FOUND, MmbError.GROUP_BOOKING_LOGGING_WITH_INFANT];\n\n cancelRetrieve$: Subject = new Subject();\n\n cmsArticle$: Observable;\n\n initialValues$: Observable;\n\n groupFirstNameForm: FormGroup<{\n firstName: FormControl;\n lastName: FormControl;\n recLoc: FormControl;\n tourOperatorCode: FormControl;\n }>;\n\n NAME_VALIDATORS = [\n Validators.required,\n Validators.minLength(2),\n Validators.maxLength(50),\n Validators.pattern(NAME_PATTERN),\n ];\n\n private subscriptions: Subscription = new Subscription();\n\n constructor(\n private store$: Store,\n private mmbService: ManageBookingService,\n private fragmentService: FragmentService,\n private feedbackService: FeedbackService,\n private pnrFormService: PnrFormService\n ) {}\n\n ngOnInit(): void {\n this.cmsArticle$ = this.fragmentService.getFragment('MMB.fragments.mmbInfo.url');\n\n const error$ = this.store$.pipe(getError());\n this.subscriptions.add(\n error$.subscribe((error) => {\n if (this.GROUP_ERRORS.includes(error)) {\n this.showGroupBookingModal$.next(true);\n }\n })\n );\n\n this.groupModalError$ = error$.pipe(filter((error) => error && this.GROUP_MODAL_ERRORS.includes(error)));\n this.mainError$ = combineLatest([this.showGroupBookingModal$, error$]).pipe(\n filter(([show]) => !show),\n map(([_, error]) => (error ? 'MMB.login.errors.' + error : null))\n );\n this.feedbackService.setSurvey(QualtricsSurveys.MMB_FEEDBACK);\n this.feedbackService.setFeedbackWidgetVisibility(true);\n\n const { initialValues$, deepLinkRouteChange$ } = this.pnrFormService.getInitialValues();\n\n this.initialValues$ = initialValues$;\n\n this.subscriptions.add(\n deepLinkRouteChange$.subscribe((record: PassengerNameRecord) => {\n this.onSubmit(record, RequestInitiator.DEEPLINK_MMB);\n })\n );\n }\n\n submitGroupFirstName(): void {\n if (this.groupFirstNameForm.valid) {\n this.onSubmit(this.groupFirstNameForm.value as PassengerNameRecord);\n }\n }\n\n onSubmit(event: PassengerNameRecord | null, requestInitiator = RequestInitiator.MMB): void {\n this.groupFirstNameForm = new FormGroup({\n firstName: new FormControl(event.firstName ?? '', this.NAME_VALIDATORS),\n lastName: new FormControl(event.lastName),\n recLoc: new FormControl(event.recLoc),\n tourOperatorCode: new FormControl(event.tourOperatorCode),\n });\n this.mmbService.retrieveOrderFromForm(event, requestInitiator, true, true, this.cancelRetrieve$, false);\n }\n\n cancelRetrieve(): void {\n this.store$.dispatch(StateActions.setLoading({ loading: false }));\n this.cancelRetrieve$.next(true);\n }\n\n onFirstNameModalClose(): void {\n this.groupFirstNameForm.controls.firstName.setValue('');\n this.store$.dispatch(StateActions.clearError());\n this.showGroupBookingModal$.next(false);\n }\n\n closeErrorNotification(): void {\n this.store$.dispatch(StateActions.clearError());\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n}\n","\n \n\n \n \n \n\n \n \n \n\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { filter, map, startWith, switchMap } from 'rxjs/operators';\n\nimport { CmsPageService, LoaderType } from '@fcom/common';\nimport { CmsCollection, CmsContentType, CmsImageData, CmsTemplate, CmsViewType } from '@fcom/core-api';\nimport { RootPaths } from '@fcom/core/constants';\nimport { CmsDataService } from '@fcom/core';\nimport { finShare } from '@fcom/rx';\nimport { getBackgroundImageForCmsTemplate } from '@fcom/cms/services/cms-utils/cms-utils';\nimport { filterWithoutType, findByType } from '@fcom/cms';\nimport { TourOperator } from '@fcom/common-booking/interfaces/tour-operator.interface';\n\nimport { ManageBookingFeatureState } from '../../../interfaces';\nimport { getLoading } from '../../../store';\nimport { MmbError } from '../../../enums';\n\n@Component({\n selector: 'fin-mmb-entry-route',\n templateUrl: './manage-booking-entry-route.component.html',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ManageBookingEntryRouteComponent implements OnInit {\n readonly LoaderType = LoaderType;\n public readonly MmbError = MmbError;\n loading$: Observable;\n template$: Observable<{ loading: boolean; data: CmsTemplate }>;\n backgroundImage$: Observable;\n tourOperatorImage$: Observable;\n operator$: Observable;\n disruptions$: Observable;\n mainContent$: Observable;\n changeFlightModalOpen$: Observable;\n\n constructor(\n private store$: Store,\n private pageService: CmsPageService,\n private cmsDataService: CmsDataService,\n private route: ActivatedRoute\n ) {}\n\n ngOnInit(): void {\n this.operator$ = this.route.data.pipe(map((params) => params?.operator));\n this.loading$ = this.store$.pipe(getLoading());\n this.template$ = this.operator$.pipe(\n switchMap((operator) => {\n const operatorPath = operator ? `/${operator}` : '';\n return this.pageService\n .getPageDataAndSetMeta(RootPaths.MANAGE_BOOKING_ROOT + operatorPath)\n .pipe(map((data) => ({ loading: false, data })));\n }),\n startWith({ loading: true, data: null }),\n finShare()\n );\n\n const contents$ = this.template$.pipe(\n filter((template) => Boolean(template.data)),\n map((template) => template.data)\n );\n this.mainContent$ = contents$.pipe(filterWithoutType(CmsViewType.DISRUPTIONS, 'main'));\n this.disruptions$ = contents$.pipe(\n map((c) => c.main),\n findByType(CmsViewType.DISRUPTIONS, false)\n );\n\n this.backgroundImage$ = getBackgroundImageForCmsTemplate(this.template$.pipe(map((t) => t.data)));\n\n this.tourOperatorImage$ = this.template$.pipe(\n map((template) => template.data.main),\n map(\n (content) =>\n content?.find((obj) => obj.contentType === CmsContentType.CMPlaceholder)?.localSettings?.tourOperatorLogo\n ?.jsonUrl\n ),\n filter(Boolean),\n switchMap((logoUrl: string) => this.cmsDataService.getFragmentJson(logoUrl))\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { UiTranslateModule } from '@fcom/ui-translate';\nimport { UiComponentsModule } from '@fcom/ui-components';\nimport { CmsModule } from '@fcom/cms/components';\nimport { ComponentsModule, DirectiveModule, FinFormsModule, FragmentService, PipesModule } from '@fcom/common';\nimport { PnrWidgetModule } from '@fcom/pnr-widget/pnr-widget.module';\n\nimport { ManageBookingCommonModule } from '../common/booking-common.module';\nimport { ManageBookingEntryRouteComponent } from './routes/manage-booking-entry-route.component';\nimport { ManageBookingEntryWidgetComponent } from './components/manage-booking-entry-widget/manage-booking-entry-widget.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ComponentsModule,\n CmsModule,\n PipesModule,\n DirectiveModule,\n UiTranslateModule,\n UiComponentsModule,\n FinFormsModule,\n PnrWidgetModule,\n ManageBookingCommonModule,\n ],\n declarations: [ManageBookingEntryRouteComponent, ManageBookingEntryWidgetComponent],\n exports: [ManageBookingEntryRouteComponent],\n providers: [FragmentService],\n})\nexport class ManageBookingEntryModule {}\n","import { Injectable } from '@angular/core';\nimport { CanActivate, Router } from '@angular/router';\n\nimport { Store } from '@ngrx/store';\nimport { combineLatest, Observable, timer } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\n\nimport { hasOrderData, OrderPartStatus, OrderState, orderState } from '@fcom/common-booking';\nimport { AppState } from '@fcom/core';\n\nimport { ManageBookingService } from '../../../services';\nimport { StateActions } from '../../../store';\nimport { getStage } from '../../../store/selectors';\nimport { MmbStage } from '../../../enums';\n\n@Injectable()\nexport class ViewGuard implements CanActivate {\n private DELAY_ON_UPDATE_INTERRUPTED = 10000;\n\n constructor(\n private store$: Store,\n private router: Router,\n private manageBookingService: ManageBookingService\n ) {}\n\n canActivate(): Observable {\n return combineLatest([\n this.store$.pipe(hasOrderData()),\n this.store$.pipe(getStage()),\n this.store$.pipe(orderState()),\n ]).pipe(\n take(1),\n map(([hasOrderData, stage, orderState]: [boolean, MmbStage, OrderState]) => {\n if (hasOrderData) {\n const updateInterrupted =\n !this.router.navigated &&\n Object.values(orderState?.isUpdating || []).some((value) => value === OrderPartStatus.UPDATING);\n if (updateInterrupted && orderState?.PNR) {\n timer(this.DELAY_ON_UPDATE_INTERRUPTED)\n .pipe(take(1))\n .subscribe(() => {\n this.manageBookingService.getOrderWithIdAndHash(\n orderState.orderData.id,\n orderState.orderData.hash,\n false\n );\n });\n }\n\n if (stage !== MmbStage.VIEW) {\n this.store$.dispatch(StateActions.setStage({ stage: MmbStage.VIEW }));\n }\n return true;\n }\n\n this.store$.dispatch(StateActions.setStage({ stage: MmbStage.LOGIN }));\n return false;\n })\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { UiTranslateModule } from '@fcom/ui-translate';\nimport { UiComponentsModule } from '@fcom/ui-components';\nimport { CmsModule } from '@fcom/cms/components';\nimport { ComponentsModule, DirectiveModule, PipesModule, FinFormsModule } from '@fcom/common';\nimport { FeedbackWidgetModule } from '@fcom/common/components/feedback-widget/feedback-widget.module';\nimport { CommonBookingAncillariesModule, CommonBookingComponentsModule } from '@fcom/common-booking';\nimport { AlternativeOffersService } from '@fcom/reaccommodation/services/alternative-offers.service';\nimport { SubViewModule } from '@fcom/common-booking/components/subview/subview.module';\nimport { AncillarySubviewModule } from '@fcom/common-booking/modules/ancillaries/components/ancillary-subview/ancillary-subview.module';\n\nimport { ManageBookingViewRouteComponent } from './routes/view-route.component';\nimport { ViewGuard } from './services/view.guard';\nimport { ManageBookingCommonModule } from '../common/booking-common.module';\nimport { ManageBookingAncillariesComponent } from './components/ancillaries/ancillaries.component';\nimport { MmbPromotionComponent } from './components/promotion/promotion.component';\nimport { AncillaryCampaignComponent } from './components/ancillaries/ancillary-campaign.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ComponentsModule,\n CommonBookingComponentsModule,\n CmsModule,\n PipesModule,\n DirectiveModule,\n UiTranslateModule,\n UiComponentsModule,\n ManageBookingCommonModule,\n CommonBookingAncillariesModule,\n FeedbackWidgetModule,\n SubViewModule,\n AncillarySubviewModule,\n FinFormsModule,\n ],\n declarations: [\n ManageBookingViewRouteComponent,\n ManageBookingAncillariesComponent,\n MmbPromotionComponent,\n AncillaryCampaignComponent,\n ],\n exports: [ManageBookingViewRouteComponent],\n providers: [AlternativeOffersService, ViewGuard],\n})\nexport class ManageBookingViewModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { UiTranslateModule } from '@fcom/ui-translate';\nimport { UiComponentsModule } from '@fcom/ui-components';\nimport { CmsModule } from '@fcom/cms/components';\nimport { ComponentsModule, DirectiveModule, PipesModule } from '@fcom/common';\nimport { CommonBookingAncillariesModule, CommonBookingComponentsModule } from '@fcom/common-booking';\nimport { CommonServiceFormsModule } from '@fcom/service-forms/components/common/common-service-forms.module';\nimport { FinFormsModule } from '@fcom/common/forms/forms.module';\n\nimport { ManageBookingCommonModule } from '../common/booking-common.module';\nimport { ManageBookingReviewRouteComponent } from './routes/review-route.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ComponentsModule,\n ManageBookingCommonModule,\n CommonBookingComponentsModule,\n CommonBookingAncillariesModule,\n CmsModule,\n PipesModule,\n DirectiveModule,\n UiTranslateModule,\n UiComponentsModule,\n CommonServiceFormsModule,\n FinFormsModule,\n ],\n declarations: [ManageBookingReviewRouteComponent],\n exports: [ManageBookingReviewRouteComponent],\n providers: [],\n})\nexport class ManageBookingReviewModule {}\n","import { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\n\nimport { Store } from '@ngrx/store';\nimport { Observable, combineLatest } from 'rxjs';\nimport { take, map } from 'rxjs/operators';\n\nimport { AppState } from '@fcom/core';\nimport { hasOrderData } from '@fcom/common-booking';\n\nimport { StateActions, getStage } from '../../../store';\nimport { MmbStage } from '../../../enums';\n\n@Injectable()\nexport class PassengerDetailsGuard implements CanActivate {\n constructor(private store$: Store) {}\n\n canActivate(): Observable {\n return combineLatest([this.store$.pipe(hasOrderData()), this.store$.pipe(getStage())]).pipe(\n take(1),\n map(([hasBooking, stage]: [boolean, MmbStage]) => {\n if (hasBooking) {\n if (stage !== MmbStage.PASSENGERS) {\n this.store$.dispatch(StateActions.setStage({ stage: MmbStage.PASSENGERS }));\n }\n return true;\n }\n\n this.store$.dispatch(StateActions.setStage({ stage: MmbStage.LOGIN }));\n\n return false;\n })\n );\n }\n}\n","import { Params, Router } from '@angular/router';\n\nimport { ERROR_CTA_ACTIONS } from '@fcom/common/components';\nimport { RootPaths, TzDate } from '@fcom/core';\nimport { FinnairOrder, FinnairTravelRequirementsEligibility } from '@fcom/dapi/api/models';\nimport { bookingHasDisruption } from '@fcom/common-booking/utils/common-booking.utils';\nimport { MANAGE_BOOKING_STEPS } from '@fcom/common-booking/manage-booking-config';\nimport { CustomServiceType } from '@fcom/dapi';\n\nimport { MmbNavigationItem } from '../interfaces';\nimport { MmbStage } from '../enums';\n\nexport const defaultQueryParams: Params = {\n cta: 'errors.generic.cta',\n info: 'errors.booking.description',\n title: 'sorry',\n subtitle: 'errors.booking.title',\n ctaAction: ERROR_CTA_ACTIONS.NAVIGATE_TO_MANAGE_BOOKING,\n};\n\nexport const navigateToError = (router: Router, lang: string, error: string, queryParams: Params = {}): void => {\n router.navigate([lang, RootPaths.MANAGE_BOOKING_ROOT, 'error', error], {\n skipLocationChange: true,\n queryParams: { ...defaultQueryParams, ...queryParams },\n });\n};\n\nexport const canViewTravelPreparations = (order: FinnairOrder): boolean =>\n !bookingHasDisruption(order) &&\n Object.entries(order.eligibilities.travelRequirement).some(\n ([key, eligibility]: [string, FinnairTravelRequirementsEligibility]) =>\n key !== 'emergencyContactDetails' && eligibility.required\n );\n\nexport const canViewCarRentals = (order: FinnairOrder): boolean => {\n const isWithin24HoursOfCreation = new TzDate(order.creationDateTime).hoursTo(TzDate.now()) < 24;\n\n const carRentalElibible = order.eligibilities?.carRental?.find((eligibility) => {\n return eligibility.id === CustomServiceType.JOURNEY && eligibility.isAllowedToUse;\n });\n\n const airportTransfersEligible = order.eligibilities?.airportTransfer?.find((eligibility) => {\n return eligibility.id === CustomServiceType.JOURNEY && eligibility.isAllowedToUse;\n });\n\n return !isWithin24HoursOfCreation && Boolean(carRentalElibible || airportTransfersEligible);\n};\n\nexport const getMmbNavigationItems = (order: FinnairOrder): MmbNavigationItem[] =>\n [\n {\n targetStage: MmbStage.VIEW,\n path: `${RootPaths.MANAGE_BOOKING_ROOT}/${MANAGE_BOOKING_STEPS.VIEW.path}`,\n translationKey: 'tripOverview',\n },\n {\n targetStage: MmbStage.PASSENGERS,\n path: `${RootPaths.MANAGE_BOOKING_ROOT}/${MANAGE_BOOKING_STEPS.VIEW_PASSENGERS.path}`,\n translationKey: 'passengerDetails',\n },\n canViewTravelPreparations(order) && {\n targetStage: MmbStage.TRAVEL_PREPARATION,\n path: `${RootPaths.MANAGE_BOOKING_ROOT}/${MANAGE_BOOKING_STEPS.TRAVEL_PREPARATION.path}`,\n translationKey: 'travelPreparations',\n },\n canViewCarRentals(order) && {\n targetStage: MmbStage.CAR_RENTAL,\n path: `${RootPaths.MANAGE_BOOKING_ROOT}/${MANAGE_BOOKING_STEPS.CAR_RENTAL.path}`,\n translationKey: 'carRental',\n },\n {\n targetStage: MmbStage.LOGIN,\n path: `${RootPaths.MANAGE_BOOKING_ROOT}`,\n translationKey: 'login',\n },\n ].filter(Boolean);\n","
\n \n
\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\n\nimport { SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\nimport { Store } from '@ngrx/store';\nimport { combineLatest, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { LanguageService } from '@fcom/ui-translate';\nimport { ElementTypes, ExpandComponent } from '@fcom/common';\nimport { AppState, ConfigService } from '@fcom/core';\nimport { orderData } from '@fcom/common-booking';\nimport { finShare, snapshot } from '@fcom/rx';\nimport { GaContext } from '@fcom/common/interfaces/gtm.interface';\nimport { FinnairOrder } from '@fcom/dapi/api/models';\n\nimport { MmbStage } from '../../enums';\nimport { MmbNavigationItem } from '../../interfaces';\nimport { getLoading, getStage } from '../../store';\nimport { getMmbNavigationItems } from '../../utils/routing.utils';\nimport { ManageBookingService } from '../../services';\n\n@Component({\n selector: 'fin-mmb-side-navigation',\n templateUrl: './side-navigation.component.html',\n styleUrls: ['./side-navigation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ManageBookingSideNavigationComponent implements OnInit {\n readonly ElementTypes = ElementTypes;\n readonly SvgLibraryIcon = SvgLibraryIcon;\n readonly TRACKING_CONTEXT = GaContext.SECTION_NAVIGATION;\n\n navigationItems$: Observable;\n stage$: Observable;\n activeMenuItemTitle$: Observable;\n orderLoading$: Observable;\n enableRefetchOrder: boolean;\n\n constructor(\n private store$: Store,\n private languageService: LanguageService,\n private mmbService: ManageBookingService,\n private configService: ConfigService\n ) {}\n\n ngOnInit(): void {\n this.enableRefetchOrder = this.configService.cfg.enableRefetchOrder;\n this.orderLoading$ = this.store$.pipe(getLoading());\n this.stage$ = this.store$.pipe(getStage());\n this.navigationItems$ = this.store$.pipe(orderData()).pipe(\n map((order) =>\n getMmbNavigationItems(order).map((item) => {\n return {\n ...item,\n path: `${this.languageService.langValue}/${item.path}`,\n };\n })\n ),\n finShare()\n );\n\n this.activeMenuItemTitle$ = combineLatest([this.stage$, this.navigationItems$]).pipe(\n map(\n ([stage, navigationItems]) => navigationItems.find((item) => item.targetStage === stage)?.translationKey ?? ''\n )\n );\n }\n\n toggleDetails(expandComponent: ExpandComponent): void {\n expandComponent.toggleDetails();\n }\n\n refetchOrder(event: Event): void {\n event.preventDefault();\n const order: FinnairOrder = snapshot(this.store$.pipe(orderData()));\n this.mmbService.getOrderWithIdAndHash(order.id, order.hash);\n }\n}\n","\n\n\n\n\n\n\n\n\n \n \n
\n \n
\n
\n \n \n \n \n \n \n \n \n\n
\n
\n \n

\n \n {{ 'MMB.labels.manageBooking' | finLocalization }}\n \n \n {{ 'MMB.labels.passengerDetails' | finLocalization }}\n \n \n {{ 'MMB.labels.travelPreparations' | finLocalization }}\n \n \n {{ 'MMB.labels.carRental' | finLocalization }}\n \n

\n\n \n\n
\n \n
\n\n \n \n
\n
\n
\n \n
\n
\n\n \n \n \n\n
\n {{\n 'navigation.pageChangedTo' | finLocalization: { pageTitle: title }\n }}\n
\n
\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, OnInit, Renderer2, ViewChild } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { Store } from '@ngrx/store';\nimport { combineLatest, Observable, Subscription } from 'rxjs';\nimport { distinctUntilChanged, filter, map, startWith, switchMap } from 'rxjs/operators';\n\nimport { BookingHeaderSummary, GlobalBookingTripDates } from '@fcom/common/interfaces';\nimport { finShare, safeMap, snapshot } from '@fcom/rx';\nimport { GtmService } from '@fcom/common/gtm';\nimport { loginStatus, profileName } from '@fcom/core/selectors';\nimport { LoginStatus } from '@fcom/core-api/login';\nimport {\n CmsPageService,\n ElementActions,\n ElementTypes,\n GaContext,\n isNavigationEvent,\n NavigationMenuService,\n PageMetaService,\n} from '@fcom/common';\nimport { LoginDialogComponent, LoginWidgetContext } from '@fcom/common/login';\nimport { Category, FinnairOrder } from '@fcom/dapi/api/models';\nimport { categoryPartStatus, orderData, OrderPartStatus } from '@fcom/common-booking';\nimport { AppState, RootPaths, TzDate } from '@fcom/core';\nimport { LanguageService } from '@fcom/ui-translate';\nimport { unsubscribe } from '@fcom/core/utils';\nimport { CmsTemplate } from '@fcom/core-api';\nimport {\n bookingHasDisruption,\n getTripTypeFromBookingLocationCodes,\n} from '@fcom/common-booking/utils/common-booking.utils';\nimport { QualtricsSurveys } from '@fcom/common/qualtrics/qualtrics.utils';\nimport { FeedbackService } from '@fcom/common/services/feedback/feedback.service';\nimport { MANAGE_BOOKING_STEPS } from '@fcom/common-booking/manage-booking-config';\n\nimport { getStage } from '../../store';\nimport { MmbStage } from '../../enums';\n\nconst CTA_VISIBLE_CLASS = 'cta-visible';\n\n@Component({\n selector: 'fin-mmb-routing',\n templateUrl: './manage-booking-routing.component.html',\n styleUrls: ['./manage-booking-routing.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ManageBookingRoutingComponent implements OnInit, OnDestroy {\n readonly LoginStatus = LoginStatus;\n readonly LoginWidgetContext = LoginWidgetContext;\n readonly MmbStage = MmbStage;\n\n loginStatus$: Observable;\n profileName$: Observable;\n isShowLoginHeader$: Observable;\n stage$: Observable;\n booking$: Observable;\n homeUrl: string;\n hasBasket$: Observable;\n isBasketDisabled$: Observable;\n hasTwoColumnLayout$: Observable;\n isReviewStage$: Observable;\n template$: Observable;\n title$: Observable;\n isNavigationMenuOpen$: Observable;\n hasUnpaidServices$: Observable;\n bookingSummary$: Observable;\n bookingIsDisrupted$: Observable;\n\n @ViewChild('loginDialog', { static: false }) loginDialog: LoginDialogComponent;\n\n private subscriptions: Subscription = new Subscription();\n\n constructor(\n private store$: Store,\n private languageService: LanguageService,\n private navigationMenuService: NavigationMenuService,\n private gtmService: GtmService,\n private pageMetaService: PageMetaService,\n private router: Router,\n private pageService: CmsPageService,\n private feedbackService: FeedbackService,\n @Inject(DOCUMENT) private readonly document: Document,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.loginStatus$ = this.store$.pipe(loginStatus());\n this.profileName$ = this.store$.pipe(profileName());\n this.stage$ = this.store$.pipe(getStage());\n this.booking$ = this.store$.pipe(orderData());\n\n const priceUpdating$: Observable = this.store$.pipe(\n categoryPartStatus(Category.BAGGAGE),\n map((status) => status === OrderPartStatus.UPDATING),\n startWith(false)\n );\n this.hasUnpaidServices$ = this.booking$.pipe(map((booking) => booking?.services?.unpaid?.length > 0));\n\n this.isNavigationMenuOpen$ = this.navigationMenuService.isNavigationMenuOpen$;\n\n this.isShowLoginHeader$ = this.stage$.pipe(map((stage) => MmbStage.LOGIN === stage));\n this.isReviewStage$ = this.stage$.pipe(map((stage) => MmbStage.REVIEW === stage));\n\n this.hasTwoColumnLayout$ = this.stage$.pipe(\n map((stage) =>\n [MmbStage.VIEW, MmbStage.PASSENGERS, MmbStage.TRAVEL_PREPARATION, MmbStage.CAR_RENTAL].includes(stage)\n )\n );\n this.homeUrl = this.languageService.langValue ? `/${this.languageService.langValue}` : '/en';\n this.hasBasket$ = this.stage$.pipe(\n map((stage) => ![MmbStage.REVIEW, MmbStage.CHECKOUT, MmbStage.CONFIRMATION].includes(stage))\n );\n this.isBasketDisabled$ = combineLatest([priceUpdating$, this.hasUnpaidServices$]).pipe(\n map(([priceUpdating, hasUnpaidServices]) => !hasUnpaidServices || priceUpdating),\n startWith(true)\n );\n this.template$ = this.router.events.pipe(\n filter(isNavigationEvent),\n startWith(this.router),\n distinctUntilChanged(),\n filter((event: NavigationEnd) =>\n event.url\n .split('?')[0]\n .split('/')\n .slice(2)\n .some((path) =>\n [\n MANAGE_BOOKING_STEPS.VIEW.path,\n MANAGE_BOOKING_STEPS.VIEW_PASSENGERS.path,\n MANAGE_BOOKING_STEPS.TRAVEL_PREPARATION.path,\n MANAGE_BOOKING_STEPS.CAR_RENTAL.path,\n ].includes(path)\n )\n ),\n switchMap(() => {\n return this.pageService.getPageData(this.router.url);\n }),\n finShare()\n );\n\n this.title$ = this.template$.pipe(safeMap((template: CmsTemplate) => template?.header?.[0]?.title ?? ''));\n\n this.subscriptions.add(\n this.stage$\n .pipe(\n distinctUntilChanged((prevStage, curStage) => prevStage === curStage),\n filter((stage) => stage !== MmbStage.LOGIN),\n switchMap((stage) => this.languageService.translate(`MMB.meta.${stage}.title`))\n )\n .subscribe((title) => {\n this.pageMetaService.setTitle(`${title} | Finnair`);\n })\n );\n\n this.bookingSummary$ = this.store$.pipe(orderData()).pipe(\n map((order) => {\n const locations = order.bounds.map((bound) => ({\n originLocationCode: bound.departure.locationCode,\n destinationLocationCode: bound.arrival.locationCode,\n }));\n\n const dates: GlobalBookingTripDates = {\n departureDate: TzDate.of(order.bounds[0].departure.dateTime).toLocalDate(),\n ...(order.bounds.length > 1\n ? { returnDate: TzDate.of(order.bounds[order.bounds.length - 1].arrival.dateTime).toLocalDate() }\n : {}),\n };\n\n return {\n tripType: getTripTypeFromBookingLocationCodes(locations),\n locations,\n paxAmount: order.passengers.length,\n dates,\n };\n })\n );\n\n this.bookingIsDisrupted$ = this.booking$.pipe(\n map((booking: FinnairOrder) => bookingHasDisruption(booking)),\n finShare()\n );\n this.feedbackService.setSurvey(QualtricsSurveys.MMB_FEEDBACK);\n this.feedbackService.setFeedbackWidgetVisibility(true);\n }\n\n ngOnDestroy(): void {\n this.feedbackService.setFeedbackWidgetVisibility(false);\n unsubscribe(this.subscriptions);\n this.renderer.removeClass(this.document.body, CTA_VISIBLE_CLASS);\n }\n\n openBasket(): void {\n this.gtmService.trackElement(\n 'continue-to-review_header-basket',\n GaContext.MANAGE_BOOKING,\n ElementTypes.BUTTON,\n undefined,\n ElementActions.CLICK,\n `recLoc-${snapshot(this.booking$).otherInformation.analyticsToken}`\n );\n\n this.router.navigateByUrl(\n `/${this.languageService.langValue}/${RootPaths.MANAGE_BOOKING_ROOT}/${MANAGE_BOOKING_STEPS.REVIEW.path}`\n );\n }\n\n toggleMenu(): void {\n this.navigationMenuService.toggleMenuOpen();\n }\n\n navigateBackFromReview(): void {\n this.router.navigateByUrl(\n `/${this.languageService.langValue}/${RootPaths.MANAGE_BOOKING_ROOT}/${MANAGE_BOOKING_STEPS.VIEW.path}`\n );\n }\n\n onHomeClick(url: string): void {\n this.router.navigateByUrl(url);\n }\n\n trackCTAButton(): void {\n const ctaElement = this.document.querySelector('fcom-cta-button .visible');\n if (ctaElement && !this.document.body.classList.contains(CTA_VISIBLE_CLASS)) {\n this.renderer.addClass(this.document.body, CTA_VISIBLE_CLASS);\n } else if (!ctaElement && this.document.body.classList.contains(CTA_VISIBLE_CLASS)) {\n this.renderer.removeClass(this.document.body, CTA_VISIBLE_CLASS);\n }\n }\n\n removeCTAButtonClass(): void {\n this.renderer.removeClass(this.document.body, CTA_VISIBLE_CLASS);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanDeactivate, RouterStateSnapshot, UrlTree } from '@angular/router';\n\nimport { Observable } from 'rxjs';\n\nimport { ClientOnlyComponent } from '@fcom/common';\n\nexport interface DeactivationGuarded {\n canDeactivate(nextUrl: string): Observable | Promise | boolean;\n}\n\n@Injectable()\nexport class PassengerDetailsDeactivateGuard implements CanDeactivate> {\n canDeactivate(\n component: ClientOnlyComponent,\n _currentRoute: ActivatedRouteSnapshot,\n _currentState: RouterStateSnapshot,\n nextState: RouterStateSnapshot\n ): Observable | Promise | boolean {\n return component.componentReference.instance.canDeactivate(nextState.url);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { CommonBookingAncillariesModule, CommonBookingComponentsModule } from '@fcom/common-booking';\nimport { UiTranslateModule } from '@fcom/ui-translate';\nimport { UiComponentsModule } from '@fcom/ui-components';\nimport { CmsModule } from '@fcom/cms/components';\nimport { ComponentsModule, DirectiveModule, FinFormsModule, PipesModule } from '@fcom/common';\nimport { FeedbackWidgetModule } from '@fcom/common/components/feedback-widget/feedback-widget.module';\n\nimport { ManageBookingCommonModule } from '../common/booking-common.module';\nimport { PassengerDetailsGuard } from './services/passenger-details.guard';\nimport { ManageBookingPassengerDetailsRouteComponent } from './routes/passenger-details-route.component';\nimport { MmbPassengerInfoComponent } from './components/mmb-passenger-info/mmb-passenger-info.component';\nimport { ManageBookingTierBenefitsComponent } from './components/tier-benefits/tier-benefits.component';\nimport { ManageBookingPassengerTicketsComponent } from './components/passenger-tickets/passenger-tickets.component';\nimport { ManageBookingPassengerEMDsComponent } from './components/passenger-emds/passenger-emds.component';\nimport { ManageBookingPassengerOrderEticketComponent } from './components/passenger-order-eticket/passenger-order-eticket.component';\nimport { PassengerDetailsDeactivateGuard } from './services/passenger-details-deactivate.guard';\n\n@NgModule({\n imports: [\n CommonModule,\n ComponentsModule,\n CmsModule,\n PipesModule,\n ReactiveFormsModule.withConfig({\n callSetDisabledState: 'whenDisabledForLegacyCode',\n }),\n DirectiveModule,\n UiTranslateModule,\n UiComponentsModule,\n ManageBookingCommonModule,\n CommonBookingComponentsModule,\n CommonBookingAncillariesModule,\n FeedbackWidgetModule,\n FinFormsModule,\n ],\n declarations: [\n ManageBookingPassengerDetailsRouteComponent,\n MmbPassengerInfoComponent,\n ManageBookingTierBenefitsComponent,\n ManageBookingPassengerTicketsComponent,\n ManageBookingPassengerEMDsComponent,\n ManageBookingPassengerOrderEticketComponent,\n ],\n exports: [ManageBookingPassengerDetailsRouteComponent, MmbPassengerInfoComponent],\n providers: [PassengerDetailsGuard, PassengerDetailsDeactivateGuard],\n})\nexport class ManageBookingViewPassengersModule {}\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router } from '@angular/router';\nimport { isPlatformServer } from '@angular/common';\n\nimport { Store } from '@ngrx/store';\nimport { Observable, combineLatest, of } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\n\nimport { orderFetchInformation } from '@fcom/common-booking';\nimport { AppState } from '@fcom/core';\nimport { LanguageService } from '@fcom/ui-translate';\n\nimport { getStage, StateActions } from '../../../store';\nimport { MmbStage } from '../../../enums';\nimport { navigateToError } from '../../../utils/routing.utils';\n\n@Injectable()\nexport class ManageBookingPurchaseSuccessGuard implements CanActivate {\n constructor(\n private store$: Store,\n private router: Router,\n private languageService: LanguageService,\n @Inject(PLATFORM_ID) private platform: Record\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot): Observable {\n if (isPlatformServer(this.platform)) {\n this.store$.dispatch(StateActions.setStage({ stage: MmbStage.CONFIRMATION }));\n return of(true);\n }\n\n return combineLatest([\n this.store$.pipe(\n orderFetchInformation(),\n map((fetchInformation) => !!fetchInformation)\n ),\n this.store$.pipe(getStage(), take(1)),\n ]).pipe(\n map(([isAlreadyFetched, stage]: [boolean, MmbStage]) => {\n const urlContainsOrderId = route.queryParams?.['orderid'] !== undefined;\n const isAllowed = urlContainsOrderId || isAlreadyFetched;\n\n if (!isAllowed) {\n navigateToError(this.router, this.languageService.langValue, 'MMB_FORBIDDEN');\n }\n if (stage !== MmbStage.CONFIRMATION) {\n this.store$.dispatch(StateActions.setStage({ stage: MmbStage.CONFIRMATION }));\n }\n return isAllowed;\n })\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { UiTranslateModule } from '@fcom/ui-translate';\nimport { UiComponentsModule } from '@fcom/ui-components';\nimport { CmsModule } from '@fcom/cms/components';\nimport { ComponentsModule, DirectiveModule, PipesModule } from '@fcom/common';\nimport {\n CommonBookingComponentsModule,\n BookingOrderService,\n CommonBookingAncillariesModule,\n} from '@fcom/common-booking';\nimport { QualtricsModule } from '@fcom/common/qualtrics/qualtrics.module';\nimport {\n CommonBookingPurchaseSuccessModule,\n PurchaseSuccessService,\n} from '@fcom/common-booking/modules/purchase-success';\nimport { BookingCommonModule } from '@fcom/booking/modules/common/booking-common.module';\n\nimport { ManageBookingCommonModule } from '../common/booking-common.module';\nimport { ManageBookingPurchaseSuccessRouteComponent } from './routes/purchase-success-route.component';\nimport { ManageBookingPurchaseSuccessGuard } from './services/purchase-success.guard';\nimport { ManageBookingPurchaseSuccessComponent } from './components/purchase-success.component';\nimport { CarTrawlerWidgetModule } from '../../modules/common/components/cartrawler-widget/cartrawler-widget.module';\n\n@NgModule({\n imports: [\n BookingCommonModule,\n CommonModule,\n ComponentsModule,\n ManageBookingCommonModule,\n CommonBookingComponentsModule,\n CommonBookingAncillariesModule,\n CommonBookingPurchaseSuccessModule,\n CmsModule,\n PipesModule,\n QualtricsModule,\n DirectiveModule,\n UiTranslateModule,\n UiComponentsModule,\n CarTrawlerWidgetModule,\n ],\n declarations: [ManageBookingPurchaseSuccessRouteComponent, ManageBookingPurchaseSuccessComponent],\n exports: [ManageBookingPurchaseSuccessRouteComponent],\n providers: [ManageBookingPurchaseSuccessGuard, PurchaseSuccessService, BookingOrderService],\n})\nexport class ManageBookingPurchaseSuccessModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { CommonBookingComponentsModule } from '@fcom/common-booking/components';\nimport { ComponentsModule } from '@fcom/common/components/components.module';\nimport { PipesModule } from '@fcom/common/pipes/pipes.module';\nimport { OrderApiModule } from '@fcom/dapi/api/order-api.module';\n\nimport { AncillaryPurchaseCheckoutRouteComponent } from './routes/ancillary-purchase-checkout-route.component';\nimport { AncillaryPurchaseCheckoutGuard } from './services/ancillary-purchase-checkout.guard';\n\n@NgModule({\n imports: [CommonModule, PipesModule, ComponentsModule, OrderApiModule, CommonBookingComponentsModule],\n exports: [AncillaryPurchaseCheckoutRouteComponent],\n declarations: [AncillaryPurchaseCheckoutRouteComponent],\n providers: [AncillaryPurchaseCheckoutGuard],\n})\nexport class AncillaryPurchaseCheckoutModule {}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Params, Router } from '@angular/router';\n\nimport { ERROR_CTA_ACTIONS } from '@fcom/common/components';\nimport { LanguageService } from '@fcom/ui-translate';\nimport { RootPaths } from '@fcom/core';\n\nimport { navigateToError } from '../utils/routing.utils';\n\n@Injectable()\nexport class ManageBookingErrorRouteGuard implements CanActivate {\n constructor(\n private router: Router,\n private languageService: LanguageService\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot): boolean {\n const errorParams: Params = {\n iconName: route.queryParams?.iconName,\n title: route.queryParams?.title ?? 'sorry',\n subtitle: route.queryParams?.subtitle ?? 'errors.payment.title',\n info: route.queryParams?.info ?? 'errors.payment.description',\n cta: route.queryParams?.cta ?? 'errors.generic.cta',\n ctaAction: ERROR_CTA_ACTIONS.NAVIGATE_TO_MANAGE_BOOKING,\n showButton: true,\n };\n\n // To clear the url params altogether, we need to work around the routing behavior a bit\n // We have the possible params saved to our errorParams object, that we got from /payment/error?params=...\n // First we clear current queryParams by navigating to the generic /error route without any params and overwriting the history\n const targetUrl = `/${this.languageService.langValue}/${RootPaths.MANAGE_BOOKING_ROOT}/error`;\n this.router\n .navigateByUrl(targetUrl, { replaceUrl: true })\n .then(() => {\n // The second navigation here is the actual navigation to the /error where we pass the saved errorParams from before\n navigateToError(this.router, this.languageService.langValue, 'MMB_PAYMENT_ERROR', errorParams);\n })\n .catch(() => Promise.reject());\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\n\nimport { Store } from '@ngrx/store';\nimport { Observable, combineLatest, of } from 'rxjs';\nimport { take, map } from 'rxjs/operators';\n\nimport { snapshot } from '@fcom/rx';\nimport { AppState } from '@fcom/core';\nimport { hasOrderData, orderData } from '@fcom/common-booking';\nimport { FinnairOrder } from '@fcom/dapi/api/models';\n\nimport { StateActions, getStage } from '../../../store';\nimport { MmbStage } from '../../../enums';\nimport { canViewTravelPreparations } from '../../../utils/routing.utils';\n\n@Injectable()\nexport class TravelPreparationsGuard implements CanActivate {\n constructor(private store$: Store) {}\n\n private redirectToLogin(): boolean {\n this.store$.dispatch(StateActions.setStage({ stage: MmbStage.LOGIN }));\n return false;\n }\n\n canActivate(): Observable {\n if (!snapshot(this.store$.pipe(hasOrderData()))) {\n return of(this.redirectToLogin());\n }\n\n return combineLatest([this.store$.pipe(orderData()), this.store$.pipe(getStage())]).pipe(\n take(1),\n map(([orderData, stage]: [FinnairOrder, MmbStage]) => {\n if (canViewTravelPreparations(orderData)) {\n if (stage !== MmbStage.TRAVEL_PREPARATION) {\n this.store$.dispatch(StateActions.setStage({ stage: MmbStage.TRAVEL_PREPARATION }));\n }\n return true;\n }\n return this.redirectToLogin();\n })\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { CommonBookingComponentsModule } from '@fcom/common-booking';\nimport { UiTranslateModule } from '@fcom/ui-translate';\nimport { UiComponentsModule } from '@fcom/ui-components';\nimport { CmsModule } from '@fcom/cms/components';\nimport { ComponentsModule, DirectiveModule, FinFormsModule, PipesModule } from '@fcom/common';\nimport { SubViewModule } from '@fcom/common-booking/components/subview/subview.module';\nimport { CommonServiceFormsModule } from '@fcom/service-forms/components/common/common-service-forms.module';\n\nimport { ManageBookingCommonModule } from '../common/booking-common.module';\nimport { TravelPreparationsGuard } from './services/travel-preparations.guard';\nimport { ManageBookingTravelPreparationsRouteComponent } from './routes/travel-preparations-route.component';\nimport { ApisPassengerComponent } from './components/apis-passenger/apis-passenger.component';\nimport { ApisPaxFormComponent } from './components/apis-pax-form/apis-pax-form.component';\nimport { ApisGlobalStatusComponent } from './components/apis-global-status/apis-global-status.component';\nimport { ApisStatusRowComponent } from './components/apis-status-row/apis-status-row.component';\nimport { ApisPassportComponent } from './components/apis-passport/apis-passport.component';\nimport { ApisVisaComponent } from './components/apis-visa/apis-visa.component';\nimport { ApisDestinationComponent } from './components/apis-destination/apis-destination.component';\nimport { ApisEmergencyContactComponent } from './components/apis-emergency-contact/apis-emergency-contact.component';\nimport { ApisCountryOfResidenceComponent } from './components/apis-country-of-residence/apis-country-of-residence.component';\nimport { ApisPurposeOfVisitComponent } from './components/apis-purpose-of-visit/apis-purpose-of-visit.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ComponentsModule,\n CmsModule,\n PipesModule,\n DirectiveModule,\n UiTranslateModule,\n UiComponentsModule,\n ManageBookingCommonModule,\n CommonBookingComponentsModule,\n SubViewModule,\n FinFormsModule,\n CommonServiceFormsModule,\n ],\n declarations: [\n ManageBookingTravelPreparationsRouteComponent,\n ApisPassengerComponent,\n ApisPaxFormComponent,\n ApisGlobalStatusComponent,\n ApisStatusRowComponent,\n ApisPassportComponent,\n ApisCountryOfResidenceComponent,\n ApisVisaComponent,\n ApisDestinationComponent,\n ApisPurposeOfVisitComponent,\n ApisEmergencyContactComponent,\n ],\n exports: [\n ManageBookingTravelPreparationsRouteComponent,\n ApisPassengerComponent,\n ApisCountryOfResidenceComponent,\n ApisPaxFormComponent,\n ApisPassportComponent,\n ApisVisaComponent,\n ApisDestinationComponent,\n ApisEmergencyContactComponent,\n ApisPurposeOfVisitComponent,\n ],\n providers: [TravelPreparationsGuard],\n})\nexport class ManageBookingTravelPreparationsModule {}\n","import { inject, PLATFORM_ID } from '@angular/core';\nimport { CanActivateFn } from '@angular/router';\nimport { isPlatformServer } from '@angular/common';\n\nimport { Store } from '@ngrx/store';\n\nimport { snapshot } from '@fcom/rx';\nimport { orderData } from '@fcom/common-booking';\nimport { FinnairCheckInVersion } from '@fcom/dapi/api/models';\n\nimport { MmbStage } from '../enums';\nimport { getCheckInBoundId } from '../store/selectors/check-in.selector';\nimport { StateActions } from '../store';\n\nexport const CheckInFlowGuard: CanActivateFn = (): boolean => {\n const platform = inject(PLATFORM_ID);\n const store$ = inject(Store);\n\n if (isPlatformServer(platform)) {\n store$.dispatch(StateActions.setStage({ stage: MmbStage.CHECK_IN_FLOW }));\n return true;\n }\n\n const order = snapshot(store$.pipe(orderData()));\n const boundId = snapshot(store$.pipe(getCheckInBoundId()));\n if (\n order?.eligibilities?.checkIn?.find((eligibility) => eligibility.id === boundId)?.version ===\n FinnairCheckInVersion.NEXTGEN\n ) {\n store$.dispatch(StateActions.setStage({ stage: MmbStage.CHECK_IN_FLOW }));\n return true;\n }\n store$.dispatch(StateActions.setStage({ stage: MmbStage.LOGIN }));\n return false;\n};\n","{{ 'MMB.checkIn.steps.passengerInfo.notificationText' | finLocalization }}\n\n 1) ||\n (modifyCheckIn && (checkedInPassengers$ | async)?.length > 1)\n \"\n data-testid=\"check-in-check-all-pax-checkbox\"\n class=\"flex\"\n>\n \n {{ 'MMB.checkIn.funnel.steps.passengers.checkInAllPassengers' | finLocalization }}\n \n\n\n
\n \n \n \n \n
\n\n
\n \n \n \n \n
\n\n\n {{\n ((isAPISRequired$ | async)\n ? 'MMB.checkIn.funnel.steps.passengers.button.apisDescription'\n : 'MMB.checkIn.funnel.steps.passengers.button.description'\n ) | finLocalization\n }}\n\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup } from '@angular/forms';\n\nimport { BehaviorSubject, combineLatest, Observable, Subscription } from 'rxjs';\nimport { map, take, startWith } from 'rxjs/operators';\n\nimport {\n ControlData,\n FinnairBoundItem,\n FinnairCheckInEligibility,\n FinnairFrequentFlyerCardItem,\n FinnairOrder,\n FinnairPassengerCode,\n FinnairPassengerItem,\n} from '@fcom/dapi/api/models';\nimport { GaContext } from '@fcom/common/interfaces';\nimport { ButtonPosition, ButtonTheme } from '@fcom/ui-components/index';\nimport { isTruthy } from '@fcom/core/index';\n\nimport { PassengerWithCheckInInfo } from '../interface/check-in.interface';\nimport { hasUnrecoverableEligibilityForPassenger } from '../../../utils/check-in.utils';\n\nexport type PassengerForm = FormGroup>>;\n\n@Component({\n selector: 'fin-check-in-passenger-details',\n templateUrl: './check-in-passenger-details.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckInPassengerDetailsComponent implements OnInit, OnDestroy {\n readonly GaContext = GaContext;\n readonly ButtonPosition = ButtonPosition;\n readonly ButtonTheme = ButtonTheme;\n\n @Input() order$: Observable;\n @Input() bound$: Observable;\n @Input() passengers$: Observable;\n @Input() mainPaxInfo$: Observable;\n @Input() controlData$: Observable;\n @Input() allFrequentFlyerCards$: Observable;\n @Input() confirmButtonLoading$: Observable;\n @Input() modifyCheckIn = false;\n @Input() isAPISRequired$: Observable;\n\n @Output() confirmPassengers: EventEmitter = new EventEmitter();\n @Output() prefetchSeatmap: EventEmitter = new EventEmitter();\n\n applyForCheckInForm: PassengerForm;\n updatingPassengers: string[] = [];\n passengersWithCheckinInfo$: Observable;\n notCheckedInPassengers$: Observable;\n checkedInPassengers$: Observable;\n allPaxSelectedCheckboxCheckedByDefault$: BehaviorSubject = new BehaviorSubject(false);\n\n confirmEnabled$: Observable;\n\n private subscriptions: Subscription = new Subscription();\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n ngOnInit(): void {\n const checkInEligibilityForBound$: Observable = combineLatest([\n this.order$,\n this.bound$,\n ]).pipe(\n map(([order, bound]) => order?.eligibilities?.checkIn?.find((eligibility) => eligibility.id === bound?.id))\n );\n\n this.passengersWithCheckinInfo$ = combineLatest([\n checkInEligibilityForBound$.pipe(\n map((checkInEligibilityForBound) => checkInEligibilityForBound?.flightTravelerEligibility ?? {})\n ),\n this.passengers$,\n ]).pipe(\n map(([checkinFlightEligibilities, passengers]) => {\n return passengers\n .map((passenger) => {\n // TODO: This does not take into account multi flight different eligibilities\n const passengerEligibility = Object.values(checkinFlightEligibilities)\n .flatMap((flightCheckinEligibility) =>\n flightCheckinEligibility.find((eligibility) => eligibility.travelerIds.includes(passenger.id))\n )\n .filter(Boolean)[0];\n return {\n ...passengers.find((pax) => pax.id === passenger.id),\n withInfant: this.getInfantAssociation(passengers, passenger),\n isCheckedIn: passengerEligibility?.isCheckedIn ?? false,\n isAllowedToUseCheckIn: passengerEligibility?.isAllowedToUseCheckIn ?? false,\n isAllowedToUseBoardingPass: passengerEligibility?.isAllowedToUseBoardingPass ?? false,\n hasUnrecoverableReason: hasUnrecoverableEligibilityForPassenger(passengerEligibility),\n };\n })\n .filter(({ passengerTypeCode }) => passengerTypeCode !== FinnairPassengerCode.INF);\n })\n );\n this.notCheckedInPassengers$ = this.passengersWithCheckinInfo$.pipe(\n map((passengers) => passengers.filter((passenger) => !passenger.isCheckedIn))\n );\n this.checkedInPassengers$ = this.passengersWithCheckinInfo$.pipe(\n map((passengers) => passengers.filter((passenger) => passenger.isCheckedIn))\n );\n\n this.subscriptions.add(\n combineLatest([this.notCheckedInPassengers$, this.checkedInPassengers$])\n .pipe(take(1))\n .subscribe(([passengersNotCheckedIn, passengersCheckedIn]) => {\n if (!this.modifyCheckIn) {\n this.applyForCheckInForm = this.createForm(passengersNotCheckedIn, (passenger) => {\n return new FormControl({\n value: !passenger.isCheckedIn && passenger.isAllowedToUseCheckIn,\n disabled: passenger.isCheckedIn || !passenger.isAllowedToUseCheckIn,\n });\n });\n this.allPaxSelectedCheckboxCheckedByDefault$.next(true);\n } else {\n this.applyForCheckInForm = this.createForm(passengersCheckedIn, () => {\n return new FormControl(false);\n });\n }\n })\n );\n\n this.confirmEnabled$ = this.applyForCheckInForm.valueChanges.pipe(\n map(() => {\n return Object.keys(this.applyForCheckInForm.controls).some((id) => this.applyForCheckInForm.get(id).value);\n }),\n startWith(Object.keys(this.applyForCheckInForm.controls).some((id) => this.applyForCheckInForm.get(id).value))\n );\n }\n\n private getInfantAssociation(passengers: FinnairPassengerItem[], passenger: FinnairPassengerItem): string | null {\n const infant = passengers.find(({ accompanyingTravelerId }) => accompanyingTravelerId === passenger.id);\n if (infant) {\n return `${infant.firstName} ${infant.lastName}`;\n }\n return null;\n }\n\n private createForm(\n passengers: (FinnairPassengerItem & {\n isCheckedIn: boolean;\n isAllowedToUseCheckIn: boolean;\n })[],\n createFormControl: (passenger) => FormControl\n ): PassengerForm {\n const hasPassengersSelected = (control: AbstractControl) => {\n if (!Object.values(control.value).some(isTruthy)) {\n return { custom: true };\n }\n return null;\n };\n\n return new FormGroup(\n passengers.reduce(\n (all, passenger) => {\n all[passenger.id] = createFormControl(passenger);\n return all;\n },\n {} as Record\n ),\n hasPassengersSelected\n );\n }\n\n checkInAllPassengers(checkInAllPassengers: boolean): void {\n Object.keys(this.applyForCheckInForm.controls)\n .filter((passengerId) => !this.applyForCheckInForm.get(passengerId).disabled)\n .forEach((key) => {\n this.applyForCheckInForm.controls[key].setValue(checkInAllPassengers);\n });\n }\n\n confirmPassengersStep(): void {\n this.confirmPassengers.emit(\n Object.keys(this.applyForCheckInForm.controls).filter(\n (passengerId) => this.applyForCheckInForm.get(passengerId).value\n )\n );\n }\n\n getAccompanyingInfant(passenger: FinnairPassengerItem): Observable {\n return this.order$.pipe(\n take(1),\n map((order) => order.passengers.find((p) => passenger.id === p.accompanyingTravelerId))\n );\n }\n\n getAccompanyingAdult(passenger: FinnairPassengerItem): Observable {\n return this.order$.pipe(\n take(1),\n map((order) => order.passengers.find((p) => p.id === passenger.accompanyingTravelerId))\n );\n }\n\n setUpdatingPassenger(passenger: FinnairPassengerItem, updating: boolean): void {\n if (updating) {\n this.updatingPassengers.push(passenger.id);\n } else {\n this.updatingPassengers = this.updatingPassengers.filter((i) => i !== passenger.id);\n this.prefetchSeatmap.emit(passenger);\n }\n }\n}\n","
\n
\n \n
\n
\n
\n \n {{ extendedPassengerInfo.firstName }} {{ extendedPassengerInfo.lastName }}\n {{ 'passenger.' + extendedPassengerInfo.paxTypeKey | finLocalization | titlecase }}\n ({{\n 'passenger.withInfant'\n | finLocalization\n : { withInfantFullName: accompanyingInfant.firstName + ' ' + accompanyingInfant.lastName }\n | finToLowerCase: ''\n }})\n ({{\n 'passengerReview.withAdult'\n | finLocalization\n : { withAdultFullName: accompanyingAdult.firstName + ' ' + accompanyingAdult.lastName }\n | finToLowerCase: ''\n }})\n
\n
\n \n {{ 'MMB.checkIn.funnel.steps.passengers.checkInCompleted' | finLocalization }}\n
\n
\n
\n
\n \n
\n \n
\n \n \n
\n {{ extendedPassengerInfo.firstName }} {{ extendedPassengerInfo.lastName }}\n {{ 'passenger.' + extendedPassengerInfo.paxTypeKey | finLocalization | titlecase }}\n ({{\n 'passenger.withInfant'\n | finLocalization\n : { withInfantFullName: accompanyingInfant.firstName + ' ' + accompanyingInfant.lastName }\n | finToLowerCase: ''\n }})({{\n 'passengerReview.withAdult'\n | finLocalization\n : { withAdultFullName: accompanyingAdult.firstName + ' ' + accompanyingAdult.lastName }\n | finToLowerCase: ''\n }})\n
\n \n
\n \n
\n \n \n {{ 'MMB.checkIn.funnel.steps.passengers.checkInAtAirport' | finLocalization }}\n
\n
\n
\n \n \n
\n \n
\n
\n {{ extendedPassengerInfo.firstName }} {{ extendedPassengerInfo.lastName }}\n {{ 'passenger.' + extendedPassengerInfo.paxTypeKey | finLocalization | titlecase }}\n ({{\n 'passenger.withInfant'\n | finLocalization\n : { withInfantFullName: accompanyingInfant.firstName + ' ' + accompanyingInfant.lastName }\n | finToLowerCase: ''\n }})({{\n 'passengerReview.withAdult'\n | finLocalization\n : { withAdultFullName: accompanyingAdult.firstName + ' ' + accompanyingAdult.lastName }\n | finToLowerCase: ''\n }})\n
\n
\n \n {{ 'MMB.checkIn.funnel.steps.passengers.checkInCompleted' | finLocalization }}\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n {{ 'passengerReview.dateOfBirth' | finLocalization }}\n {{ extendedPassengerInfo.dateOfBirth | finDateFormat: 'DATE' }}\n
\n
\n \n {{ extendedPassengerInfo.email | lowercase }}\n
\n 0\"\n class=\"ps-xsmall-t\"\n data-testid=\"pasenger-info-box-phone-numbers\"\n >\n / (+{{ phone?.countryPrefix }})\n {{ phone?.number }}\n
\n
0\" class=\"ps-xsmall-t flex\">\n
\n \n
\n {{ 'MMB.checkIn.funnel.steps.passengers.ffMessage' | finLocalization: { ffNumber: ffCard.cardNumber } }}\n
\n \n {{ (ffCard.translationKey | finLocalization) + ': ' + ffCard.cardNumber }}\n \n {{\n ffCard.translationKey | finLocalization\n }}\n
\n oneworld\n {{ ffCard.oneWorldTierName }}\n
\n
\n
\n \n
\n \n {{ 'MMB.checkIn.funnel.steps.passengers.addToFfTitle' | finLocalization }}\n \n
\n \n {{ 'MMB.checkIn.funnel.steps.passengers.addToFfButton' | finLocalization }}\n \n
\n
\n \n
\n \n \n
\n
\n \n
\n
\n\n\n\n \n
\n {{ 'MMB.checkIn.state.notCheckedIn' | finLocalization }}\n
\n
\n {{ 'MMB.checkIn.state.notEligible' | finLocalization }}\n
\n
\n
\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\n\nimport { IconLibrary, SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\n\nimport { asPaxTypeKey } from '@fcom/dapi/utils';\nimport { FinnairFrequentFlyerCardItem, FinnairPassengerCode, FinnairPassengerItem } from '@fcom/dapi/api/models';\nimport { FREQUENT_FLIER_AIRLINES } from '@fcom/core/utils';\nimport { ButtonTheme, IconPosition } from '@fcom/ui-components/index';\nimport { FrequentFlyerTierLevel } from '@fcom/common-booking/index';\n\nimport { PassengerForm } from './check-in-passenger-details.component';\nimport { PassengerWithCheckInInfo } from '../interface/check-in.interface';\n\nexport type FrequentFlyerCardItemWithTranslations = FinnairFrequentFlyerCardItem & {\n translationKey: string;\n oneWorldTierName: string;\n};\n\nexport type ExtendedFinnairPassengerItem = FinnairPassengerItem & {\n paxTypeKey: string;\n cards: FrequentFlyerCardItemWithTranslations[];\n};\n\nconst ONEWORLD_TIERS = {\n EMER: 'Emerald',\n SAPP: 'Sapphire',\n RUBY: 'Ruby',\n};\n\n@Component({\n selector: 'fin-check-in-passenger-info-box',\n templateUrl: 'check-in-passenger-info-box.component.html',\n styleUrls: ['./check-in-passenger-info-box.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckInPassengerInfoBoxComponent implements OnInit, OnChanges {\n readonly FinnairPassengerCode = FinnairPassengerCode;\n readonly ButtonTheme = ButtonTheme;\n readonly IconPosition = IconPosition;\n readonly SvgLibraryIcon = SvgLibraryIcon;\n readonly IconLibrary = IconLibrary;\n\n @Input()\n passenger: PassengerWithCheckInInfo;\n\n @Input()\n accompanyingAdult: FinnairPassengerItem;\n\n @Input()\n accompanyingInfant: FinnairPassengerItem;\n\n @Input()\n showEdit = false;\n\n @Input()\n formGroup: PassengerForm;\n\n @Output()\n edit: EventEmitter = new EventEmitter();\n\n @Input()\n modifyCheckIn = false;\n\n extendedPassengerInfo: ExtendedFinnairPassengerItem;\n\n ngOnInit(): void {\n this.updatePassengerInfo();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['passenger']) {\n this.updatePassengerInfo();\n }\n }\n\n private updatePassengerInfo(): void {\n this.extendedPassengerInfo = {\n ...this.passenger,\n paxTypeKey: asPaxTypeKey(this.passenger.passengerTypeCode).toLowerCase(),\n cards: (this.passenger.frequentFlyerCards ?? []).map((frequentFlyerCard) => ({\n ...frequentFlyerCard,\n translationKey: this.getFrequentFlyerLabel(frequentFlyerCard),\n oneWorldTierName: this.getOneWorldTierName(frequentFlyerCard),\n })),\n };\n }\n\n private getOneWorldTierName(frequentFlyerCard: FinnairFrequentFlyerCardItem): string {\n return ONEWORLD_TIERS[frequentFlyerCard.allianceTierLevel] ?? '';\n }\n\n private getFrequentFlyerLabel(frequentFlyerCard: FinnairFrequentFlyerCardItem): string {\n const companyCode = frequentFlyerCard.companyCode.toLowerCase();\n const tierBaseLabel = 'finnairPlus.tier';\n const companyBaseLabel = 'purchase.review.frequentFlyer';\n\n if (companyCode !== 'ay') {\n if (FREQUENT_FLIER_AIRLINES.some(({ code }) => code.toLowerCase() === companyCode)) {\n return `${companyBaseLabel}.${companyCode}`;\n }\n return `${companyBaseLabel}.default`;\n }\n\n switch (frequentFlyerCard.tierLevel) {\n case FrequentFlyerTierLevel.PLUS:\n return `${tierBaseLabel}.basic`;\n case FrequentFlyerTierLevel.SILVER:\n return `${tierBaseLabel}.silver`;\n case FrequentFlyerTierLevel.GOLD:\n return `${tierBaseLabel}.gold`;\n case FrequentFlyerTierLevel.PLATINUM:\n return `${tierBaseLabel}.platinum`;\n case FrequentFlyerTierLevel.LUMO:\n return `${tierBaseLabel}.lumo`;\n case FrequentFlyerTierLevel.JUNIOR:\n return `${tierBaseLabel}.junior`;\n default:\n return `${companyBaseLabel}.ay`;\n }\n }\n}\n","\n\n\n\n
\n 1\"\n [copyFromPassengersList]=\"passengersToCopy\"\n (copyDetailsClicked)=\"copyContactDetailsToAll(passengerFormGroup)\"\n >\n \n
\n
\n \n \n \n \n
\n\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { AbstractControl, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\n\nimport { BehaviorSubject, combineLatest, Observable, of, Subscription } from 'rxjs';\nimport { map, switchMap, take } from 'rxjs/operators';\nimport { SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\n\nimport {\n ControlData,\n FinnairFrequentFlyerCardItem,\n FinnairPassengerCode,\n FinnairPassengerItem,\n FinnairPhoneType,\n} from '@fcom/dapi/api/models';\nimport { ElementActions, ElementTypes, GaContext, SelectOption } from '@fcom/common/interfaces';\nimport {\n CountryCode,\n EMAIL_PATTERN,\n FREQUENT_FLIER_AIRLINES,\n isNotBlank,\n mapError,\n unsubscribe,\n} from '@fcom/core/index';\nimport { TypedFormGroup } from '@fcom/service-forms/index';\nimport { GtmService } from '@fcom/common/gtm';\nimport { LanguageService } from '@fcom/ui-translate/index';\nimport { ToasterService } from '@fcom/common/services';\nimport { finShare } from '@fcom/rx/index';\nimport { ValidationErrors } from '@fcom/common/utils';\nimport { formatToDateOfBirth } from '@fcom/common-booking/utils/date-utils';\nimport {\n PaxFormFields,\n validateFrequentFlyer,\n validatePhoneNumber,\n} from '@fcom/common-booking/components/pax-details/pax-details-form-group.component';\nimport { DapiError } from '@fcom/dapi/index';\nimport {\n ButtonPosition,\n ButtonSize,\n ButtonTheme,\n IconPosition,\n ModalButtons,\n NotificationTheme,\n} from '@fcom/ui-components/index';\n\nimport { numbersWithOptionCode } from '../../../utils';\nimport { ManageBookingService } from '../../../services';\nimport { PassengerForm } from './check-in-passenger-details.component';\nimport { PassengerWithCheckInInfo } from '../interface/check-in.interface';\n\n@Component({\n selector: 'fin-check-in-passenger-info',\n templateUrl: 'check-in-passenger-info.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckInPassengerInfoComponent implements OnInit, OnDestroy, OnChanges {\n readonly ModalButtons = ModalButtons;\n readonly FinnairPassengerCode = FinnairPassengerCode;\n readonly ButtonSize = ButtonSize;\n readonly ButtonTheme = ButtonTheme;\n readonly IconPosition = IconPosition;\n readonly FREQUENT_FLYER_CARD_ERRORS = ['FREQUENT_FLYER_CARD_ADDITION', 'FREQUENT_FLYER_CARD_DELETION'];\n protected readonly ButtonPosition = ButtonPosition;\n protected readonly SvgLibraryIcon = SvgLibraryIcon;\n\n private subscriptions: Subscription = new Subscription();\n\n editingPassenger$: BehaviorSubject = new BehaviorSubject(false);\n\n @Input() passenger: PassengerWithCheckInInfo;\n @Input() passengersWithoutInfants: PassengerWithCheckInInfo[];\n @Input() paxIndex: number;\n @Input() accompanyingAdult: FinnairPassengerItem;\n @Input() accompanyingInfant: FinnairPassengerItem;\n @Input() controlData$: Observable;\n @Input() isMainPax: boolean;\n @Input() isSaving$: Observable;\n @Input() allFrequentFlyerCards$: Observable;\n @Input() hideGroups = false;\n @Input() trackingContext = GaContext.CHECK_IN;\n @Input() formGroup: PassengerForm;\n @Input() modifyCheckIn = false;\n\n @Output()\n formDirtyStatus: EventEmitter = new EventEmitter();\n @Output()\n paxDetailsUpdating: EventEmitter = new EventEmitter();\n\n frequentFlyerAirlines: SelectOption[] = FREQUENT_FLIER_AIRLINES.map(({ name, code }) => ({ name, value: code }));\n availableDays: { days$: Observable; months: number[]; years: number[] };\n passengerGroup$: Observable;\n passengersToCopy: FinnairPassengerItem[] = [];\n updatingPassengers: string[] = [];\n\n constructor(\n private gtmService: GtmService,\n private languageService: LanguageService,\n private fb: UntypedFormBuilder,\n private manageBookingService: ManageBookingService,\n private toasterService: ToasterService\n ) {}\n\n ngOnInit(): void {\n this.updatePassengersToCopy();\n this.passengerGroup$ = combineLatest([\n this.languageService.translate('countryCodes'),\n this.controlData$.pipe(map((controlData) => controlData?.phoneNumberRegex)),\n this.allFrequentFlyerCards$,\n ]).pipe(\n take(1),\n map(([codes, phoneNumberRegex, allFrequentFlyerCards]) => {\n const cardsForOtherPassengers = allFrequentFlyerCards.filter(\n (card) => !this.passenger.frequentFlyerCards?.some(({ cardNumber }) => cardNumber === card.cardNumber)\n );\n return this.buildPassengerFormGroup(codes, phoneNumberRegex, cardsForOtherPassengers, this.isMainPax);\n }),\n finShare()\n );\n\n this.subscriptions.add(\n this.passengerGroup$\n .pipe(switchMap((passengerForm) => passengerForm.valueChanges.pipe(map(() => passengerForm))))\n .subscribe((passengerForm) => this.formDirtyStatus.emit(passengerForm.dirty))\n );\n }\n\n getEmailValidators(isMandatory: boolean): ((control: AbstractControl) => ValidationErrors)[] {\n return isMandatory ? [Validators.required, Validators.pattern(EMAIL_PATTERN)] : [Validators.pattern(EMAIL_PATTERN)];\n }\n\n buildPassengerFormGroup(\n countryCodes: CountryCode[],\n phoneNumberRegex: string,\n existingCards: FinnairFrequentFlyerCardItem[],\n isMainPax: boolean\n ): TypedFormGroup {\n const paxFormGroup = this.fb.group({\n firstName: [{ value: this.passenger.firstName, disabled: true }],\n lastName: [{ value: this.passenger.lastName, disabled: true }],\n type: [{ value: this.passenger.passengerTypeCode, disabled: true }],\n email: [this.passenger.email, this.getEmailValidators(isMainPax || !!this.passenger.email)],\n }) as TypedFormGroup;\n\n const birthDate = this.passenger.dateOfBirth ? formatToDateOfBirth(this.passenger.dateOfBirth.toString()) : null;\n this.availableDays = birthDate\n ? {\n days$: of([parseInt(birthDate.dateOfBirth)]),\n months: [parseInt(birthDate.monthOfBirth)],\n years: [parseInt(birthDate.yearOfBirth)],\n }\n : null;\n if (birthDate) {\n paxFormGroup.addControl(\n PaxFormFields.birthDate,\n this.fb.group({ dateOfBirth: [], monthOfBirth: [], yearOfBirth: [] })\n );\n this.setBirthDateValue(paxFormGroup, birthDate.dateOfBirth, PaxFormFields.dateOfBirth);\n this.setBirthDateValue(paxFormGroup, birthDate.monthOfBirth, PaxFormFields.monthOfBirth);\n this.setBirthDateValue(paxFormGroup, birthDate.yearOfBirth, PaxFormFields.yearOfBirth);\n }\n\n paxFormGroup.addControl(\n PaxFormFields.phones,\n this.fb.array(\n this.passenger.phoneNumbers?.map((number, index) => {\n return this.fb.group(\n {\n [PaxFormFields.phonePrefix]: number ? numbersWithOptionCode(number, countryCodes) : '',\n [PaxFormFields.phoneNumber]: number?.number ?? '',\n },\n {\n validators: (formGroup: UntypedFormGroup) =>\n validatePhoneNumber(\n formGroup,\n phoneNumberRegex,\n this.isMainPax || (index === 0 && this.passenger.phoneNumbers.length > 0)\n ),\n }\n );\n }) ?? []\n )\n );\n\n paxFormGroup.addControl(\n PaxFormFields.frequentFlyerCards,\n this.fb.array(\n this.passenger?.frequentFlyerCards?.map((card) =>\n this.fb.group(\n {\n [PaxFormFields.companyCode]: card?.companyCode ?? '',\n [PaxFormFields.cardNumber]: card?.cardNumber ?? '',\n },\n {\n validators: (formGroup: UntypedFormGroup): ValidationErrors =>\n validateFrequentFlyer(formGroup, existingCards),\n }\n )\n ) ?? []\n )\n );\n\n return paxFormGroup;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['passenger'] || changes['passengers']) {\n this.updatePassengersToCopy();\n }\n }\n\n togglePassengerInfo(isOpen: boolean): void {\n this.editingPassenger$.next(isOpen);\n this.gtmService.trackElement(\n `update-details_passenger-${isOpen ? 'edit' : 'cancel'}`,\n this.trackingContext,\n ElementTypes.BUTTON,\n `passenger-${this.paxIndex}`,\n ElementActions.CLICK\n );\n if (isOpen) {\n this.toasterService.removeMessage('contact-update-failed');\n } else {\n this.close();\n }\n }\n\n saveDetails(paxForm: UntypedFormGroup, copyToAllPassengers = false): void {\n if (!paxForm.dirty && !copyToAllPassengers) {\n this.togglePassengerInfo(false);\n } else if (!paxForm.disabled && paxForm.valid) {\n paxForm.disable();\n this.paxDetailsUpdating.emit(true);\n const { id, title, passengerTypeCode, firstName, lastName } = this.passenger;\n const { email, phones } = paxForm.value;\n const frequentFlyerCards = paxForm.value.frequentFlyerCards.filter(({ cardNumber }) => isNotBlank(cardNumber));\n const phoneNumbers = phones\n .filter(({ phoneNumber }) => isNotBlank(phoneNumber))\n .map((phoneNumber) => ({\n number: phoneNumber.phoneNumber,\n type: FinnairPhoneType.MOBILE,\n countryPrefix: phoneNumber.phonePrefix.split('|').pop(),\n countryCode: phoneNumber.phonePrefix.split('|')[0],\n }));\n\n const passengers = copyToAllPassengers\n ? this.passengersWithoutInfants.map((passenger) => ({\n title: passenger.title,\n id: passenger.id,\n passengerTypeCode: passenger.passengerTypeCode,\n firstName: passenger.firstName,\n lastName: passenger.lastName,\n email,\n phoneNumbers,\n frequentFlyerCards: passenger.frequentFlyerCards,\n }))\n : [\n {\n title,\n id,\n passengerTypeCode,\n firstName,\n lastName,\n ...(isNotBlank(email) && { email }),\n phoneNumbers,\n frequentFlyerCards,\n },\n ];\n\n this.subscriptions.add(\n this.manageBookingService\n .updateContactDetails({\n joinFinnairPlus: false,\n passengers,\n })\n .subscribe({\n next: () => {\n this.trackSubmit('success');\n this.close();\n },\n error: (e: unknown) => {\n const { key } = mapError(e) as DapiError;\n const contentKey = this.FREQUENT_FLYER_CARD_ERRORS.includes(key)\n ? 'MMB.errors.errorUpdatingFrequentFlyer'\n : 'MMB.errors.errorContactDetails';\n this.toasterService.addMessageToQueue({\n id: 'contact-update-failed',\n contentKey,\n theme: NotificationTheme.ALERT,\n });\n this.trackSubmit('error', key);\n this.close();\n },\n })\n );\n } else {\n paxForm.markAllAsTouched();\n paxForm.updateValueAndValidity();\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions = unsubscribe(this.subscriptions);\n }\n\n copyContactDetailsToAll(passengerForm: UntypedFormGroup): void {\n this.saveDetails(passengerForm, true);\n }\n\n private updatePassengersToCopy(): void {\n this.passengersToCopy = this.passengersWithoutInfants.filter(\n (p) => p.id !== this.passenger.id && !this.passenger.email && !!p.email\n );\n }\n\n close(): void {\n this.paxDetailsUpdating.emit(false);\n this.editingPassenger$.next(false);\n this.formDirtyStatus.emit(false);\n }\n\n private setBirthDateValue(form: UntypedFormGroup, value: string, field: string): void {\n form.get(PaxFormFields.birthDate).get(field).setValue(value);\n form.get(PaxFormFields.birthDate).get(field).disable({ onlySelf: true });\n }\n\n private trackSubmit(event: string, errorKey: string = undefined) {\n this.gtmService.trackElement(\n `update-details_passenger-${event}`,\n this.trackingContext,\n ElementTypes.FORM,\n errorKey ? `ERROR::${errorKey}` : undefined,\n ElementActions.SUBMIT\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nimport { ComponentsModule, DirectiveModule, FinFormsModule, PipesModule } from '@fcom/common';\nimport { UiTranslateModule } from '@fcom/ui-translate';\nimport { UiComponentsModule } from '@fcom/ui-components';\nimport { CommonBookingAncillariesModule, CommonBookingComponentsModule } from '@fcom/common-booking';\nimport { RedirectServiceModule } from '@fcom/common-booking/modules/redirect-service';\nimport { AncillarySubviewModule } from '@fcom/common-booking/modules/ancillaries/components/ancillary-subview/ancillary-subview.module';\nimport { SubViewModule } from '@fcom/common-booking/components/subview/subview.module';\nimport { GtmModule } from '@fcom/common/gtm';\nimport { CmsModule } from '@fcom/cms/components';\nimport { QualtricsModule } from '@fcom/common/qualtrics/qualtrics.module';\n\nimport { ManageBookingCommonModule } from '../common/booking-common.module';\nimport { ManageBookingViewPassengersModule } from '../view-passengers/view-passengers.module';\nimport { CheckInBoardingPassRouteComponent } from './routes/check-in-boarding-pass-route.component';\nimport { CheckInExitRowSeatsComponent } from './components/check-in-exit-row-seats.component';\nimport { CheckInFunnelRoutingComponent } from './routes/check-in-funnel-routing.component';\nimport { CheckInPassengerDetailsComponent } from './components/check-in-passenger-details.component';\nimport { CheckInPassengerInfoComponent } from './components/check-in-passenger-info.component';\nimport { CheckInPassengerInfoBoxComponent } from './components/check-in-passenger-info-box.component';\nimport { CheckInSeatmapComponent } from './components/check-in-seatmap.component';\nimport { CheckInKnowYourTripComponent } from './components/check-in-know-your-trip.component';\nimport { CheckInRestrictedItemsComponent } from './components/check-in-restricted-items.component';\nimport { CheckInConfirmationRouteComponent } from './routes/check-in-confirmation-route.component';\nimport { CheckInSubheaderComponent } from './components/check-in-subheader.component';\nimport { CheckInApisRouteComponent } from './routes/check-in-apis-route.component';\nimport { ManageBookingTravelPreparationsModule } from '../travel-preparations/travel-preparations.module';\nimport { CheckInPassengersRouteComponent } from './routes/check-in-passengers-route.component';\nimport { CheckInSeatmapRouteComponent } from './routes/check-in-seatmap-route.component';\nimport { CheckInKnowYourTripRouteComponent } from './routes/check-in-know-your-trip-route.component';\nimport { CheckInRulesRouteComponent } from './routes/check-in-rules-route.component';\nimport { ApisPaxComponent } from '../travel-preparations/components/apis-pax/apis-pax.component';\nimport { CheckInBoardingPassStatusComponent } from './components/boarding-pass-status/check-in-boarding-pass-status.component';\nimport { CarTrawlerWidgetModule } from '../common/components/cartrawler-widget/cartrawler-widget.module';\n\n@NgModule({\n imports: [\n CommonModule,\n ComponentsModule,\n DirectiveModule,\n PipesModule,\n UiTranslateModule,\n UiComponentsModule,\n ManageBookingCommonModule,\n CommonBookingComponentsModule,\n RedirectServiceModule,\n ManageBookingViewPassengersModule,\n CommonBookingAncillariesModule,\n AncillarySubviewModule,\n SubViewModule,\n RouterModule,\n FinFormsModule,\n GtmModule,\n ManageBookingTravelPreparationsModule,\n CmsModule,\n CarTrawlerWidgetModule,\n QualtricsModule,\n ],\n declarations: [\n CheckInBoardingPassRouteComponent,\n CheckInExitRowSeatsComponent,\n CheckInFunnelRoutingComponent,\n CheckInPassengerDetailsComponent,\n CheckInPassengerInfoComponent,\n CheckInPassengerInfoBoxComponent,\n CheckInSeatmapComponent,\n CheckInKnowYourTripComponent,\n CheckInRestrictedItemsComponent,\n CheckInConfirmationRouteComponent,\n CheckInSubheaderComponent,\n CheckInPassengersRouteComponent,\n CheckInSeatmapRouteComponent,\n CheckInKnowYourTripRouteComponent,\n CheckInRulesRouteComponent,\n CheckInApisRouteComponent,\n ApisPaxComponent,\n CheckInBoardingPassStatusComponent,\n ],\n exports: [RouterModule],\n})\nexport class CheckInModule {}\n","import { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\n\nimport { Store } from '@ngrx/store';\nimport { Observable, combineLatest } from 'rxjs';\nimport { take, map } from 'rxjs/operators';\n\nimport { AppState } from '@fcom/core';\nimport { hasOrderData, orderData as getOrderData } from '@fcom/common-booking';\nimport { FinnairOrder } from '@fcom/dapi/api/models';\n\nimport { StateActions, getStage } from '../../../store';\nimport { MmbStage } from '../../../enums';\nimport { canViewCarRentals } from '../../../utils/routing.utils';\n\n@Injectable()\nexport class CarRentalGuard implements CanActivate {\n constructor(private store$: Store) {}\n\n canActivate(): Observable {\n return combineLatest([\n this.store$.pipe(hasOrderData()),\n this.store$.pipe(getStage()),\n this.store$.pipe(getOrderData(true)),\n ]).pipe(\n take(1),\n map(([hasBooking, stage, orderData]: [boolean, MmbStage, FinnairOrder]) => {\n if (hasBooking && canViewCarRentals(orderData)) {\n if (stage !== MmbStage.CAR_RENTAL) {\n this.store$.dispatch(StateActions.setStage({ stage: MmbStage.CAR_RENTAL }));\n }\n return true;\n }\n\n this.store$.dispatch(StateActions.setStage({ stage: MmbStage.LOGIN }));\n\n return false;\n })\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { PipesModule } from '@fcom/common/pipes';\nimport { ComponentsModule } from '@fcom/common/components';\nimport { UiTranslateModule } from '@fcom/ui-translate';\nimport { UiComponentsModule } from '@fcom/ui-components';\nimport { DirectiveModule } from '@fcom/common';\n\nimport { CarTrawlerAirportTransfersComponent } from './cartrawler-airport-transfers.component';\n\n@NgModule({\n imports: [CommonModule, PipesModule, UiTranslateModule, UiComponentsModule, ComponentsModule, DirectiveModule],\n declarations: [CarTrawlerAirportTransfersComponent],\n exports: [CarTrawlerAirportTransfersComponent],\n providers: [],\n})\nexport class CarTrawlerAirportTransfersModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { CommonBookingAncillariesModule, CommonBookingComponentsModule } from '@fcom/common-booking';\nimport { UiTranslateModule } from '@fcom/ui-translate';\nimport { UiComponentsModule } from '@fcom/ui-components';\nimport { CmsModule } from '@fcom/cms/components';\nimport { ComponentsModule, DirectiveModule, PipesModule } from '@fcom/common';\n\nimport { ManageBookingCommonModule } from '../common/booking-common.module';\nimport { ManageBookingCarRentalRouteComponent } from './routes/car-rental-route.component';\nimport { CarRentalGuard } from './services/car-rental.guard';\nimport { CarTrawlerWidgetModule } from '../common/components/cartrawler-widget/cartrawler-widget.module';\nimport { CarTrawlerAirportTransfersModule } from '../common/components/cartrawler-airport-transfers/cartrawler-airport-transfers.module';\n\n@NgModule({\n imports: [\n CommonModule,\n ComponentsModule,\n CmsModule,\n PipesModule,\n DirectiveModule,\n UiTranslateModule,\n UiComponentsModule,\n ManageBookingCommonModule,\n CommonBookingComponentsModule,\n CommonBookingAncillariesModule,\n CarTrawlerWidgetModule,\n CarTrawlerAirportTransfersModule,\n ],\n declarations: [ManageBookingCarRentalRouteComponent],\n exports: [ManageBookingCarRentalRouteComponent],\n providers: [CarRentalGuard],\n})\nexport class ManageBookingCarRentalModule {}\n","
\n \n \n \n \n \n
\n\n\n
\n \n
\n
\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Location } from '@angular/common';\n\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, combineLatest, Observable, Subscription } from 'rxjs';\nimport { filter, map, take } from 'rxjs/operators';\n\nimport { ConfigService, pathSegmentsToPathString, SentryLogger, unsubscribe } from '@fcom/core/index';\nimport {\n Category,\n ControlData,\n FinnairBoundItem,\n FinnairFrequentFlyerCardItem,\n FinnairItineraryItemFlight,\n FinnairOrder,\n FinnairPassengerItem,\n FinnairServiceItem,\n} from '@fcom/dapi/api/models';\nimport { BoundType } from '@fcom/dapi/index';\nimport { combineServices } from '@fcom/common-booking/modules/ancillaries/utils';\nimport { getServiceData } from '@fcom/common-booking/utils/ancillaries.utils';\nimport { isFlight } from '@fcom/common-booking/utils/common-booking.utils';\nimport { isPassengerFFTierChanged } from '@fcom/manage-booking-common/utils';\nimport { GaContext, LoaderType } from '@fcom/common/interfaces';\nimport {\n BookingOrderService,\n CommonBookingFeatureState,\n OrderActions,\n orderDataPrimaryPassenger,\n OrderStatus,\n SeatMapActions,\n} from '@fcom/common-booking/index';\n\nimport { ManageBookingFeatureState } from '../../../interfaces';\nimport { ManageBookingService } from '../../../services';\nimport { CheckInActions } from '../../../store';\nimport { CheckInStep } from '../../../enums';\nimport { CheckInService } from '../../../services/check-in.service';\nimport { getPassengerIdsWithInfants } from '../../../utils/check-in.utils';\n\n@Component({\n selector: 'fin-check-in-passengers-route',\n templateUrl: 'check-in-passengers-route.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckInPassengersRouteComponent implements OnInit, OnDestroy {\n readonly OrderStatus = OrderStatus;\n readonly LoaderType = LoaderType;\n readonly GaContext = GaContext;\n readonly BoundType = BoundType;\n\n order$: Observable;\n orderStatus$: Observable;\n bound$: Observable;\n passengers$: Observable;\n seats$: Observable;\n selectedForCheckInPassengers$: Observable;\n controlData$: Observable;\n mainPaxInfo$: Observable;\n allFrequentFlyerCards$: Observable;\n clearPendingSeatsOnEntry$: Observable;\n loading$: BehaviorSubject = new BehaviorSubject(false);\n modifyCheckIn$: Observable;\n clearingSeatsInProgress$: BehaviorSubject = new BehaviorSubject(false);\n isAPISRequired$: Observable;\n nextStep$: Observable;\n\n checkoutUrl: string;\n\n private subscriptions = new Subscription();\n\n constructor(\n private store$: Store,\n private configService: ConfigService,\n private activatedRoute: ActivatedRoute,\n private locationService: Location,\n private bookingOrderService: BookingOrderService,\n private manageBookingService: ManageBookingService,\n private sentryLogger: SentryLogger,\n private checkInService: CheckInService\n ) {}\n\n ngOnInit(): void {\n this.checkoutUrl = this.configService.cfg.checkoutUrl;\n this.modifyCheckIn$ = this.checkInService.isModifyCheckIn();\n this.clearPendingSeatsOnEntry$ = this.checkInService.getClearPendingSeatsOnEntry();\n this.order$ = this.checkInService.getOrder();\n this.orderStatus$ = this.checkInService.getOrderStatus();\n this.bound$ = this.checkInService.getBound();\n this.isAPISRequired$ = this.checkInService.isAPISRequired();\n\n this.subscriptions.add(\n combineLatest([this.clearPendingSeatsOnEntry$.pipe(take(1)), this.order$])\n .pipe(take(1))\n .subscribe(([clearPendingSeats, order]) => {\n if (clearPendingSeats) {\n this.clearAllPendingSeats(order);\n this.checkInService.setClearPendingSeatsOnEntry(false);\n } else {\n this.prefetchSeatMaps();\n }\n })\n );\n this.subscriptions.add(\n this.activatedRoute.queryParams\n .pipe(\n take(1),\n filter((parameters) => parameters?.orderid && parameters?.hash)\n )\n .subscribe((routeParams) => {\n this.store$.dispatch(\n OrderActions.setOrderFetchInformation({\n orderInformation: {\n id: routeParams?.orderid,\n hash: routeParams?.hash,\n },\n })\n );\n\n // Remove sensitive param from history and browser url\n this.locationService.replaceState(pathSegmentsToPathString(this.activatedRoute.snapshot.pathFromRoot));\n this.bookingOrderService.queueOrderLoad(true);\n })\n );\n\n this.passengers$ = this.order$.pipe(map(({ passengers }) => passengers));\n this.seats$ = this.checkInService.getSeats();\n this.selectedForCheckInPassengers$ = this.checkInService.getPassengers();\n this.controlData$ = this.order$.pipe(map((order) => order.controlData));\n this.mainPaxInfo$ = this.store$.pipe(orderDataPrimaryPassenger());\n this.allFrequentFlyerCards$ = this.order$.pipe(\n map(({ passengers }) => passengers.flatMap((pax) => pax.frequentFlyerCards ?? []))\n );\n this.nextStep$ = this.isAPISRequired$.pipe(\n map((isAPISRequired) => (isAPISRequired ? CheckInStep.APIS : CheckInStep.SEATMAP))\n );\n }\n\n ngOnDestroy(): void {\n unsubscribe(this.subscriptions);\n }\n\n confirmPassengersForCheckIn(passengerIds: string[]): void {\n this.subscriptions.add(\n combineLatest([\n this.passengers$,\n this.checkInService.isExitRowSeatConfirmationRequiredForPassengers(passengerIds),\n this.nextStep$,\n ])\n .pipe(take(1))\n .subscribe(([passengers, exitSeatConfirmationRequired, nextStep]) => {\n this.store$.dispatch(\n CheckInActions.setPassengers({ passengers: getPassengerIdsWithInfants(passengers, passengerIds) })\n );\n if (exitSeatConfirmationRequired && nextStep === CheckInStep.SEATMAP) {\n this.checkInService.setShowExitRowSeatsNotification(true);\n } else {\n this.checkInService.triggerNextCheckInStep();\n }\n })\n );\n }\n\n prefetchSeatMaps(oldPassenger?: FinnairPassengerItem): void {\n this.subscriptions.add(\n combineLatest([this.order$, this.bound$])\n .pipe(\n take(1),\n filter(\n ([order, _]) =>\n order.otherInformation.featureFlags?.checkInSeatsEnabled === true &&\n isPassengerFFTierChanged(order, oldPassenger)\n )\n )\n .subscribe(([order, checkInBound]) => {\n checkInBound.itinerary.filter(isFlight).forEach((flight) => {\n this.manageBookingService.triggerFetchSeatMap(\n flight,\n order.id,\n order.hash,\n order.prices?.included?.total?.total?.totalAmount?.currencyCode ?? 'EUR',\n true\n );\n });\n })\n );\n }\n\n private clearAllPendingSeats(order: FinnairOrder) {\n const seats = combineServices([order?.services?.pending || [], order?.services?.unpaid || []]).filter(\n (s) => s.category === Category.SEAT\n );\n if (seats.length > 0) {\n this.clearingSeatsInProgress$.next(true);\n seats\n .flatMap((service) => service.bounds)\n .flatMap((bound) => bound.segments)\n .forEach((segment) => {\n const flight: FinnairItineraryItemFlight = order.bounds\n .flatMap((b) => b.itinerary)\n .filter(isFlight)\n .find((f) => f.id === segment.id);\n segment.passengers.forEach((passenger) => {\n this.store$.dispatch(\n SeatMapActions.setSeatForFlight({\n flightId: flight.id,\n travelerId: passenger.id,\n seat: {},\n })\n );\n });\n const [requests] = getServiceData(this.store$, Category.SEAT, order.bounds, [flight]);\n const didOperation = this.manageBookingService.setServices(requests, Category.SEAT, {\n next: () => {\n this.clearingSeatsInProgress$.next(false);\n this.prefetchSeatMaps();\n },\n error: (error) => {\n this.clearingSeatsInProgress$.next(false);\n this.sentryLogger.warn('Could not clear pending seats when entering CHECK-IN', {\n orderId: order.id,\n error: error,\n });\n this.prefetchSeatMaps();\n },\n });\n if (!didOperation) {\n this.clearingSeatsInProgress$.next(false);\n this.prefetchSeatMaps();\n }\n });\n } else {\n this.prefetchSeatMaps();\n }\n }\n}\n","

{{ 'MMB.checkIn.funnel.steps.seats.message' | finLocalization }}

\n\n 1\"\n class=\"pr-small-t mobile-bleed\"\n [showFlightCard$]=\"true | finToObservable\"\n [boundsOrFlights]=\"flights$ | async\"\n [activeBoundIndex]=\"slideIndex$ | async\"\n [passengers]=\"passengers$ | async\"\n [locations]=\"order$ | finMap: 'locations' | async\"\n (selectIndex)=\"slideIndex$.next($event)\"\n>\n\n\n
\n
\n \n \n \n
\n
\n\n\n\n {{ 'subtotal' | finLocalization }}: \n {{ subTotalPrice$ | async | finPrice | finEmpty: '–' }}\n \n
\n \n
\n
\n\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\n\nimport { SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\nimport { BehaviorSubject, combineLatest, Observable, of, ReplaySubject, startWith, Subject, Subscription } from 'rxjs';\nimport { distinctUntilChanged, filter, map, switchMap, take } from 'rxjs/operators';\nimport { Store } from '@ngrx/store';\n\nimport {\n CommonBookingFeatureState,\n getUnpaidSeatsBySegmentId,\n includedServicesMap,\n OrderStatus,\n orderStatus,\n SeatMapActions,\n seatMapForFlight,\n seatMapForFlightStatus,\n seatMapWithStatus,\n seatSelections,\n serviceAvailability,\n} from '@fcom/common-booking/index';\nimport {\n Amount,\n SelectedServiceData,\n ServiceAvailability,\n ServiceCatalogSelectionsForAllTravelers,\n} from '@fcom/dapi/index';\nimport {\n Category,\n FinnairBoundItem,\n FinnairItineraryItemFlight,\n FinnairOrder,\n FinnairPassengerItem,\n FinnairServiceBoundItem,\n FinnairServiceItem,\n SeatmapSvgAndControlData,\n} from '@fcom/dapi/api/models';\nimport {\n EligibilityWithCategory,\n FlightWithStreams,\n SeatChangeEvent,\n} from '@fcom/common-booking/modules/ancillaries/interfaces';\nimport { containsUnpaidSeats, getServiceData } from '@fcom/common-booking/utils/ancillaries.utils';\nimport { unsubscribe } from '@fcom/core/utils';\nimport { ButtonPosition, ButtonTheme, ModalButtons } from '@fcom/ui-components/index';\nimport { calculateSubTotalPrice, isAllowedToSell } from '@fcom/common-booking/modules/ancillaries/utils';\nimport { finShare } from '@fcom/rx/index';\nimport { isBoundOrFlightConfirmedOrCheckedIn, isFlight } from '@fcom/common-booking/utils/common-booking.utils';\nimport { SeatMapStatus } from '@fcom/common/interfaces/seat-map.interface';\nimport { AncillaryLoaderStatus } from '@fcom/common-booking/modules/ancillaries/enums';\n\nimport { ManageBookingService } from '../../../services';\nimport { filterFlightsFromItinerary } from '../../../utils';\nimport { ManageBookingFeatureState } from '../../../interfaces';\n\ninterface FinnairItineraryItemFlightWithSeatmap extends FinnairItineraryItemFlight {\n seatMap$: Observable;\n seatMapStatus$: Observable;\n}\n\nenum Action {\n CONFIRM_NO_CHANGES,\n CONFIRM_CHANGES,\n NEXT_FLIGHT,\n}\n\ninterface CtaAction {\n key: string;\n action: Action;\n}\n\nexport interface SeatsUpdateProgress {\n inProgress: boolean;\n isUnsuccessful?: boolean;\n}\n\nconst OK_SEATMAP_STATUS = [SeatMapStatus.PENDING, SeatMapStatus.OK, SeatMapStatus.OK_NO_AVAILABILITY];\n\n@Component({\n selector: 'fin-check-in-seatmap',\n templateUrl: 'check-in-seatmap.component.html',\n styleUrls: ['./check-in-seatmap.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckInSeatmapComponent implements OnInit, OnDestroy {\n readonly Category = Category;\n readonly ButtonTheme = ButtonTheme;\n readonly ButtonPosition = ButtonPosition;\n readonly ModalButtons = ModalButtons;\n readonly SvgLibraryIcon = SvgLibraryIcon;\n\n @Input() order$: Observable;\n @Input() bound$: Observable;\n @Input() passengers$: Observable;\n @Input() ancillaryLoader$: BehaviorSubject;\n @Input() preSelectedSeatsData: SelectedServiceData = undefined;\n\n @Output()\n confirmStep: EventEmitter = new EventEmitter();\n\n @Output()\n seatsUpdate: EventEmitter = new EventEmitter();\n\n @Output()\n checkInAssignSeat: EventEmitter<{ currentFlightId: string }> = new EventEmitter();\n\n @Output() switchAncillaryLoaderOff = new EventEmitter();\n\n flights$: Observable;\n slideIndex$ = new BehaviorSubject(0);\n availability$: Observable;\n selectedModifiedPax$: BehaviorSubject = new BehaviorSubject(undefined);\n hasNextFlight$: Observable;\n seatSelections$: Observable;\n includedSeats$: Observable;\n flightAncillaryAvailability$: Observable<{ [fragmentId: string]: EligibilityWithCategory[] }>;\n subTotalPrice$: Observable;\n updateInProgress$: BehaviorSubject = new BehaviorSubject(false);\n checkInAssignSeatVisible$: Subject = new BehaviorSubject(false);\n unpaidSeats$: Observable;\n ctaAction$: Observable;\n\n private subtotalPriceSub$: ReplaySubject = new ReplaySubject<\n Amount & { category: Category; fragmentId: string }\n >(1);\n\n subscriptions: Subscription = new Subscription();\n\n constructor(\n private store$: Store,\n private manageBookingService: ManageBookingService\n ) {}\n\n ngOnInit(): void {\n this.seatSelections$ = this.store$.pipe(seatSelections());\n this.availability$ = this.store$.pipe(serviceAvailability());\n this.includedSeats$ = this.store$.pipe(\n includedServicesMap(),\n map((services) => services?.[Category.SEAT]),\n finShare()\n );\n this.subTotalPrice$ = calculateSubTotalPrice(this.subtotalPriceSub$, of(Category.SEAT)).pipe(\n startWith(null),\n finShare()\n );\n\n this.flights$ = this.bound$.pipe(\n distinctUntilChanged((a, b) => a.id === b.id),\n map((b) => filterFlightsFromItinerary(b.itinerary)),\n map((flights: FinnairItineraryItemFlight[]) =>\n flights.flatMap((itineraryItemFlight) => ({\n ...itineraryItemFlight,\n seatMap$: this.store$.pipe(seatMapForFlight(itineraryItemFlight.id)),\n seatMapStatus$: combineLatest([\n this.store$.pipe(seatMapForFlightStatus(itineraryItemFlight.id)),\n this.store$.pipe(orderStatus()),\n ]).pipe(\n map(([seatmapStatus, orderStatus]) =>\n orderStatus === OrderStatus.PENDING ? SeatMapStatus.PENDING : seatmapStatus || SeatMapStatus.INITIAL\n )\n ),\n }))\n )\n );\n\n this.hasNextFlight$ = combineLatest([this.slideIndex$, this.flights$]).pipe(\n map(([index, flights]) => index < flights.length - 1)\n );\n\n this.ctaAction$ = combineLatest([\n this.order$,\n this.slideIndex$,\n this.flights$,\n this.subTotalPrice$,\n this.seatSelections$,\n this.includedSeats$,\n ]).pipe(\n map(([order, index, allFlights, price, presentSeatSelections, includedSeats]) => {\n const isLastFlight = index === allFlights.length - 1;\n const containsSeatChanges =\n Object.entries(presentSeatSelections ?? {})\n .flatMap(([flightId, seats]) => {\n const includedSeatsForFlight =\n includedSeats?.bounds.flatMap(\n ({ segments }) =>\n segments\n .filter(({ id }) => id === flightId)\n .flatMap(({ passengers }) => passengers.flatMap(({ services }) => services))\n .map(({ seatNumber }) => seatNumber) ?? []\n ) ?? [];\n return seats.filter(({ seatNumber }) => !includedSeatsForFlight.includes(seatNumber));\n })\n .filter(Boolean).length > 0;\n const isPriceZero = isNaN(+price?.amount) || +price?.amount === 0;\n\n if (!isLastFlight) {\n return {\n key: 'actions.nextFlight',\n action: Action.NEXT_FLIGHT,\n };\n }\n\n if (containsUnpaidSeats(order) || (containsSeatChanges && isPriceZero) || !isPriceZero) {\n return {\n key: 'MMB.checkIn.funnel.steps.seats.button.viewSummary',\n action: Action.CONFIRM_CHANGES,\n };\n }\n\n return {\n key: 'MMB.checkIn.funnel.steps.seats.button.confirmStep',\n action: Action.CONFIRM_NO_CHANGES,\n };\n })\n );\n\n this.flightAncillaryAvailability$ = combineLatest([this.availability$, this.flights$, this.order$]).pipe(\n map(([serviceAvailability, flights, order]) => {\n return flights.reduce((flightEligibilityMap, flight) => {\n const isConfirmedOrCheckedIn = isBoundOrFlightConfirmedOrCheckedIn(flight);\n const allowedToSell = isAllowedToSell(Category.SEAT, order, serviceAvailability, flight);\n\n flightEligibilityMap[flight.id] = allowedToSell.map((eligibility) => {\n return {\n ...eligibility,\n isAllowedToUse: isConfirmedOrCheckedIn && eligibility.isAllowedToUse,\n };\n });\n return flightEligibilityMap;\n }, {});\n }),\n distinctUntilChanged(),\n finShare()\n );\n\n const currentFlight$ = combineLatest([this.slideIndex$, this.flights$]).pipe(\n map(([index, flights]) => flights[index])\n );\n\n this.subscriptions.add(\n combineLatest([this.slideIndex$, this.flights$]).subscribe(([index, flights]) => {\n this.setCheckInAssignSeatEligible(flights[index]?.id);\n })\n );\n\n this.subscriptions.add(\n currentFlight$\n .pipe(\n switchMap((flight) => this.store$.pipe(seatMapWithStatus(flight.id), take(1))),\n filter(\n (currentSeatMapStatus) => !currentSeatMapStatus || !OK_SEATMAP_STATUS.includes(currentSeatMapStatus.status)\n ),\n switchMap(() => combineLatest([currentFlight$, this.order$]).pipe(take(1)))\n )\n .subscribe(([currentFlight, order]) => {\n this.getSeatMap(order, currentFlight);\n })\n );\n\n if (this.preSelectedSeatsData) {\n if (this.preSelectedSeatsData.fragmentId) {\n this.subscriptions.add(\n this.flights$.pipe(take(1)).subscribe((flights) => {\n const flightIndexSelected = flights.findIndex(\n (flight) => flight.id === this.preSelectedSeatsData.fragmentId\n );\n if (flightIndexSelected) {\n this.slideIndex$.next(flightIndexSelected);\n }\n })\n );\n }\n if (this.preSelectedSeatsData.paxId) {\n this.selectedModifiedPax$.next(this.preSelectedSeatsData.paxId);\n }\n }\n }\n\n ngOnDestroy(): void {\n unsubscribe(this.subscriptions);\n }\n\n loadSeatMapForFlightFromOrder(flight: FinnairItineraryItemFlight): void {\n this.subscriptions.add(this.order$.pipe(take(1)).subscribe((order) => this.getSeatMap(order, flight)));\n }\n\n changeSeats({ seatNumber, flightId, travelerId }: SeatChangeEvent): void {\n this.subscriptions.add(\n this.flights$\n .pipe(\n take(1),\n map((flights) => flights.find(({ id }) => id === flightId)),\n switchMap((flight) => flight.seatMap$)\n )\n .subscribe((seatMap) => {\n const seatSelected = seatMap.seats.find((seat) => seat.seatNumber === seatNumber);\n\n this.store$.dispatch(\n SeatMapActions.setSeatForFlight({\n flightId,\n travelerId,\n seat: seatSelected,\n })\n );\n })\n );\n }\n\n continue(action: Action): void {\n switch (action) {\n case Action.NEXT_FLIGHT: {\n this.slideIndex$.next(this.slideIndex$.value + 1);\n break;\n }\n case Action.CONFIRM_CHANGES: {\n this.updateServices();\n break;\n }\n case Action.CONFIRM_NO_CHANGES: {\n this.confirmStep.emit();\n break;\n }\n default: {\n this.confirmStep.emit();\n break;\n }\n }\n }\n\n subtotalChange(value: Amount, fragmentId: string): void {\n this.subtotalPriceSub$.next({ ...value, category: Category.SEAT, fragmentId });\n }\n\n flightsTrackBy(_index: number, flight: FlightWithStreams): string {\n return flight.id;\n }\n\n private updateServices(): void {\n this.subscriptions.add(\n this.bound$.pipe(take(1)).subscribe((bound) => {\n this.seatsUpdate.emit({ inProgress: true });\n const [requests] = getServiceData(this.store$, Category.SEAT, [bound], bound.itinerary.filter(isFlight));\n this.updateInProgress$.next(true);\n const didOperation = this.manageBookingService.setServices(requests, Category.SEAT, {\n next: () => {\n this.updateInProgress$.next(false);\n this.seatsUpdate.emit({ inProgress: false });\n this.confirmStep.emit();\n },\n error: () => {\n this.updateInProgress$.next(false);\n this.seatsUpdate.emit({ inProgress: false, isUnsuccessful: true });\n },\n });\n\n if (!didOperation) {\n this.updateInProgress$.next(false);\n this.seatsUpdate.emit({ inProgress: false });\n this.confirmStep.emit();\n }\n })\n );\n }\n\n private getSeatMap(order: FinnairOrder, flight: FinnairItineraryItemFlight): void {\n this.manageBookingService.triggerFetchSeatMap(\n flight,\n order.id,\n order.hash,\n order.prices?.included?.total?.total?.totalAmount?.currencyCode ?? 'EUR'\n );\n }\n\n checkInAssignFreeSeats(): void {\n this.subscriptions.add(\n combineLatest([this.slideIndex$, this.flights$])\n .pipe(take(1))\n .subscribe(([slideIndex, flights]) => {\n const currentFlight = flights[slideIndex];\n this.checkInAssignSeat.emit({ currentFlightId: currentFlight.id });\n })\n );\n }\n\n private setCheckInAssignSeatEligible(assignSeatFlightId: string) {\n this.unpaidSeats$ = this.store$.pipe(getUnpaidSeatsBySegmentId(assignSeatFlightId));\n this.subscriptions.add(\n this.unpaidSeats$\n .pipe(\n map((unpaidSeats) =>\n unpaidSeats.some((boundItem) => boundItem.segments.some((segment) => segment.id === assignSeatFlightId))\n )\n )\n .subscribe((showCheckInAssignSeat) => {\n this.checkInAssignSeatVisible$.next(showCheckInAssignSeat);\n })\n );\n }\n\n emitSwitchAncillaryLoaderOff(event: boolean): void {\n this.switchAncillaryLoaderOff.emit(event);\n }\n}\n","
\n \n
\n\n
\n \n \n \n \n {{ 'MMB.checkIn.exitRowSeats.notifications.passengerDeclidedExitRowSeat' | finLocalization }}\n \n \n \n \n \n
\n\n\n
\n \n
\n
\n\n\n
\n \n\n \n \n \n
\n
\n\n\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\n\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, combineLatest, Observable, Subject, Subscription } from 'rxjs';\nimport { filter, map, switchMap, take } from 'rxjs/operators';\nimport { IconLibrary, SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\n\nimport { ConfigService, unsubscribe } from '@fcom/core/index';\nimport {\n Category,\n FinnairBoundItem,\n FinnairItineraryItemFlight,\n FinnairOrder,\n FinnairPassengerItem,\n FinnairServiceItem,\n} from '@fcom/dapi/api/models';\nimport { BoundType } from '@fcom/dapi/index';\nimport { ToasterService } from '@fcom/common/services';\nimport { AncillaryLoaderStatus } from '@fcom/common-booking/modules/ancillaries/enums';\nimport { getServiceData } from '@fcom/common-booking/utils/ancillaries.utils';\nimport { isFlight } from '@fcom/common-booking/utils/common-booking.utils';\nimport { SeatMapStatus } from '@fcom/common/interfaces/seat-map.interface';\nimport { AppConstants } from '@fcom/booking/app-constants';\nimport { GaContext, LoaderType } from '@fcom/common/interfaces';\nimport { CommonBookingFeatureState, OrderStatus, SeatMapActions, seatMapWithStatus } from '@fcom/common-booking/index';\nimport {\n ButtonLayout,\n ButtonMode,\n ButtonPosition,\n ButtonTheme,\n IconPosition,\n ModalButtons,\n NotificationLayout,\n NotificationTheme,\n} from '@fcom/ui-components/index';\n\nimport { ManageBookingFeatureState } from '../../../interfaces';\nimport { SeatsUpdateProgress } from '../components/check-in-seatmap.component';\nimport { ManageBookingService } from '../../../services';\nimport { CheckInService } from '../../../services/check-in.service';\n\n@Component({\n selector: 'fin-check-in-seatmap-route',\n templateUrl: 'check-in-seatmap-route.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckInSeatmapRouteComponent implements OnInit, OnDestroy {\n readonly ButtonTheme = ButtonTheme;\n readonly NotificationTheme = NotificationTheme;\n readonly IconPosition = IconPosition;\n readonly ButtonPosition = ButtonPosition;\n readonly NotificationLayout = NotificationLayout;\n readonly ButtonLayout = ButtonLayout;\n readonly OrderStatus = OrderStatus;\n readonly ModalButtons = ModalButtons;\n readonly LoaderType = LoaderType;\n readonly GaContext = GaContext;\n readonly ButtonMode = ButtonMode;\n readonly BoundType = BoundType;\n readonly SvgLibraryIcon = SvgLibraryIcon;\n readonly IconLibrary = IconLibrary;\n readonly C = AppConstants;\n\n order$: Observable;\n orderStatus$: Observable;\n bound$: Observable;\n seats$: Observable;\n passengers$: Observable;\n locations$: Observable;\n waitForSeatmap$: Subject = new Subject();\n showNoSeatsToReassignLeftNotification$: Observable;\n seatsReassignmentSuccessful$: Observable;\n updateServicesModalOn$: BehaviorSubject = new BehaviorSubject(false);\n ancillaryLoader$: BehaviorSubject = new BehaviorSubject(\n AncillaryLoaderStatus.OFF\n );\n ancillariesLoading$: BehaviorSubject = new BehaviorSubject(false);\n loading$: BehaviorSubject = new BehaviorSubject(false);\n checkoutUrl: string;\n\n private subscriptions = new Subscription();\n\n constructor(\n private store$: Store,\n private toasterService: ToasterService,\n private configService: ConfigService,\n private manageBookingService: ManageBookingService,\n private checkInService: CheckInService\n ) {}\n\n ngOnInit(): void {\n this.checkoutUrl = this.configService.cfg.checkoutUrl;\n this.seatsReassignmentSuccessful$ = this.checkInService.getShowSeatsReassignmentSuccessfulMessage();\n this.subscriptions.add(\n this.seatsReassignmentSuccessful$\n .pipe(\n take(1),\n filter((seatsReassignmentSuccessful) => !!seatsReassignmentSuccessful)\n )\n .subscribe(() => {\n this.toasterService.addMessageToQueue({\n id: 'checkIn',\n theme: NotificationTheme.SUCCESS,\n keepMessageAfterNavigation: true,\n contentKey: 'MMB.checkIn.notifications.info.seatsReassigned',\n });\n this.checkInService.setShowSeatsReassignmentSuccessfulMessage(false);\n })\n );\n this.showNoSeatsToReassignLeftNotification$ = this.checkInService.getShowNoSeatsLeftNotificationMessage();\n this.orderStatus$ = this.checkInService.getOrderStatus();\n this.order$ = this.checkInService.getOrder();\n this.bound$ = this.checkInService.getBound();\n this.passengers$ = this.checkInService.getPassengers();\n this.locations$ = this.order$.pipe(map((order) => order.locations));\n this.seats$ = this.checkInService.getSeats();\n }\n\n ngOnDestroy(): void {\n unsubscribe(this.subscriptions);\n }\n\n goToNextStep(): void {\n this.checkInService.triggerNextCheckInStep();\n }\n\n onSeatsUpdate(seatsUpdateInformation: SeatsUpdateProgress): void {\n this.updateServicesModalOn$.next(seatsUpdateInformation.inProgress);\n if (seatsUpdateInformation.isUnsuccessful) {\n this.toasterService.addMessageToQueue({\n id: 'checkIn',\n theme: NotificationTheme.WARNING,\n keepMessageAfterNavigation: true,\n contentKey: 'MMB.checkIn.notifications.error.seatsUpdate',\n });\n }\n }\n\n checkInAssignSeatForFlight(event: { currentFlightId: string }): void {\n this.subscriptions.add(\n combineLatest([this.passengers$, this.order$])\n .pipe(take(1))\n .subscribe(([passengers, order]) => {\n const flight: FinnairItineraryItemFlight = order.bounds\n .flatMap((b) => b.itinerary)\n .filter(isFlight)\n .find((f) => f.id === event.currentFlightId);\n this.ancillaryLoader$.next(AncillaryLoaderStatus.REASSIGNING);\n this.ancillariesLoading$.next(true);\n passengers.forEach((p) => {\n this.store$.dispatch(\n SeatMapActions.setSeatForFlight({\n flightId: flight.id,\n travelerId: p.id,\n seat: {},\n })\n );\n });\n\n const [requests, messages] = getServiceData(this.store$, Category.SEAT, order.bounds, [flight]);\n this.manageBookingService.setServices(requests, Category.SEAT, {\n next: (finnairOrder) => {\n this.manageBookingService.triggerFetchSeatMap(\n flight,\n finnairOrder.id,\n finnairOrder.hash,\n finnairOrder.prices?.included?.total?.total?.totalAmount?.currencyCode ?? 'EUR'\n );\n this.waitForSeatmap$.next(flight);\n },\n error: () => {\n this.waitForSeatmap$.next(flight);\n this.toasterService.addMessageToQueue(messages.error);\n },\n });\n })\n );\n\n this.subscriptions.add(\n this.waitForSeatmap$\n .pipe(\n switchMap((flight) => this.store$.pipe(seatMapWithStatus(flight.id))),\n map((s) => s.status),\n filter((status) => status !== SeatMapStatus.PENDING && status !== SeatMapStatus.INITIAL),\n take(1)\n )\n .subscribe((_) => {\n this.ancillariesLoading$.next(false);\n })\n );\n }\n}\n","{{ 'MMB.checkIn.kyt.notification' | finLocalization }}\n\n\n\n {{ 'subtotal' | finLocalization }}: \n {{ totalPrice$ | async | finPrice | finEmpty: '–' }}\n\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\n\nimport { combineLatest, Observable, Subscription } from 'rxjs';\nimport { SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\nimport { map, take } from 'rxjs/operators';\n\nimport { Category, FinnairBoundItem, FinnairOrder } from '@fcom/dapi/api/models';\nimport { ButtonPosition, ButtonTheme } from '@fcom/ui-components/index';\nimport { Amount, IdAndHash } from '@fcom/dapi/index';\nimport { containsUnpaidSeats } from '@fcom/common-booking/utils/ancillaries.utils';\nimport { finShare } from '@fcom/rx/index';\nimport { FinnairServiceItemWithIcon } from '@fcom/common-booking/interfaces';\n\nenum Action {\n CONFIRM,\n PROCEED_TO_PAYMENT,\n}\n\ninterface CtaAction {\n key: string;\n action: Action;\n}\n\n@Component({\n selector: 'fin-check-in-know-your-trip',\n templateUrl: 'check-in-know-your-trip.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckInKnowYourTripComponent implements OnInit, OnDestroy {\n @Input()\n services$: Observable;\n\n @Input()\n bound$: Observable;\n\n @Input()\n order$: Observable;\n\n @Input()\n hasPendingSeats: boolean;\n\n @Output()\n confirmStep: EventEmitter = new EventEmitter();\n\n @Output()\n viewSeatmap: EventEmitter = new EventEmitter();\n\n @Output()\n clearPendingSeats: EventEmitter = new EventEmitter();\n\n @Output()\n initializePayment: EventEmitter = new EventEmitter();\n\n ctaAction$: Observable;\n totalPrice$: Observable;\n isCarrierConnect$: Observable;\n includeSeatActionButtons$: Observable;\n\n private subscriptions = new Subscription();\n\n protected readonly ButtonTheme = ButtonTheme;\n protected readonly SvgLibraryIcon = SvgLibraryIcon;\n protected readonly ButtonPosition = ButtonPosition;\n\n ngOnInit(): void {\n this.totalPrice$ = this.order$.pipe(\n map(\n (order) =>\n order.services.unpaid?.find((serviceItem) => serviceItem.category === Category.SEAT)?.totalPrice || {\n amount: '0.0',\n currencyCode: order.prices?.included?.total?.total?.totalAmount?.currencyCode,\n }\n ),\n finShare()\n );\n this.ctaAction$ = this.totalPrice$.pipe(\n map((price) => {\n if (!(isNaN(+price?.amount) || +price?.amount === 0)) {\n return {\n key: 'MMB.checkIn.funnel.steps.kyt.button.proceedToPayment',\n action: Action.PROCEED_TO_PAYMENT,\n };\n }\n return {\n key: 'MMB.checkIn.funnel.steps.kyt.button.confirmStep',\n action: Action.CONFIRM,\n };\n })\n );\n this.isCarrierConnect$ = combineLatest([this.order$, this.bound$.pipe(map((bound) => bound.id))]).pipe(\n map(\n ([order, boundId]) =>\n order.eligibilities?.checkIn?.find((eligibility) => eligibility.id === boundId)?.isCarrierConnect ?? false\n )\n );\n this.includeSeatActionButtons$ = combineLatest([this.services$, this.bound$]).pipe(\n map(([services, bound]) => {\n const seats = services.find((s) => s.category === Category.SEAT);\n return seats?.bounds\n ?.find((b) => b.id === bound.id)\n ?.segments?.flatMap((s) => s.passengers?.flatMap((p) => p.services))\n .some((seat) => !!seat.seatNumber ?? false);\n })\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n continue(): void {\n this.subscriptions.add(\n this.order$.pipe(take(1)).subscribe((order) => {\n this.initializePaymentIfNeeded(order);\n })\n );\n }\n\n private initializePaymentIfNeeded(order: FinnairOrder): void {\n if (containsUnpaidSeats(order)) {\n this.initializePayment.emit({ id: order.id, hash: order.hash });\n } else {\n this.confirmStep.emit();\n }\n }\n}\n","
\n \n \n \n \n \n
\n\n\n
\n \n
\n
\n\n\n
\n \n\n \n \n \n
\n
\n\n\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, combineLatest, Observable, Subscription } from 'rxjs';\nimport { filter, map, take } from 'rxjs/operators';\n\nimport { ConfigService, isPresent, RootPaths, unsubscribe, WindowRef } from '@fcom/core/index';\nimport { Category, FinnairBoundItem, FinnairOrder, FinnairPassengerItem } from '@fcom/dapi/api/models';\nimport { BoundType, IdAndHash } from '@fcom/dapi/index';\nimport { ToasterService } from '@fcom/common/services';\nimport { containsUnpaidSeats, getServiceData } from '@fcom/common-booking/utils/ancillaries.utils';\nimport { createEmptySeatServices, isFlight } from '@fcom/common-booking/utils/common-booking.utils';\nimport { GaContext, LoaderType, ToasterMessage } from '@fcom/common/interfaces';\nimport {\n CommonBookingFeatureState,\n FinnairServiceItemWithIcon,\n OrderActions,\n OrderStatus,\n PaymentFlow,\n paymentRedirectionUrl,\n PaymentService,\n PaymentStatus,\n paymentStatus,\n SeatMapActions,\n} from '@fcom/common-booking/index';\nimport { NotificationTheme } from '@fcom/ui-components/index';\nimport { LanguageService } from '@fcom/ui-translate/index';\n\nimport { ManageBookingFeatureState } from '../../../interfaces';\nimport { ManageBookingService } from '../../../services';\nimport { CheckInStep } from '../../../enums';\nimport { CheckInService } from '../../../services/check-in.service';\n\ntype ModalStates = 'clearing' | 'payment' | 'off';\n\n@Component({\n selector: 'fin-check-in-kyt-route',\n templateUrl: 'check-in-know-your-trip-route.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckInKnowYourTripRouteComponent implements OnInit, OnDestroy {\n readonly OrderStatus = OrderStatus;\n readonly GaContext = GaContext;\n readonly BoundType = BoundType;\n readonly LoaderType = LoaderType;\n\n order$: Observable;\n orderWithCheckInPax$: Observable;\n orderStatus$: Observable;\n bound$: Observable;\n selectedForCheckInPassengers$: Observable;\n services$: Observable;\n hasUnpaidSeats$: Observable;\n servicesWithEmptySeats$: Observable;\n\n loadingModal$: BehaviorSubject = new BehaviorSubject('off');\n loading$: BehaviorSubject = new BehaviorSubject(false);\n\n clearingSeatsInProgress$: BehaviorSubject = new BehaviorSubject(false);\n\n updatingPassengers: string[] = [];\n checkoutUrl: string;\n\n private subscriptions = new Subscription();\n\n constructor(\n private store$: Store,\n private toasterService: ToasterService,\n private configService: ConfigService,\n private manageBookingService: ManageBookingService,\n private paymentService: PaymentService,\n private windowRef: WindowRef,\n private router: Router,\n private languageService: LanguageService,\n private activatedRoute: ActivatedRoute,\n private checkInService: CheckInService\n ) {}\n\n ngOnInit(): void {\n this.checkoutUrl = this.configService.cfg.checkoutUrl;\n this.order$ = this.checkInService.getOrder();\n this.orderStatus$ = this.checkInService.getOrderStatus();\n this.bound$ = this.checkInService.getBound();\n this.selectedForCheckInPassengers$ = this.checkInService.getPassengers();\n this.orderWithCheckInPax$ = combineLatest([\n this.order$,\n this.selectedForCheckInPassengers$.pipe(map((pax) => pax.map((p) => p.id))),\n ]).pipe(\n map(([order, paxIds]) => {\n return {\n ...order,\n passengers: order.passengers.filter((passenger) => paxIds.includes(passenger.id)),\n };\n })\n );\n this.services$ = this.checkInService.getServices();\n this.servicesWithEmptySeats$ = combineLatest([\n this.services$,\n this.bound$,\n this.selectedForCheckInPassengers$.pipe(map((passengers) => passengers.map((p) => p.id))),\n this.order$,\n this.languageService.translate('MMB.includedProducts.seat.title'),\n ]).pipe(map(([s, bound, paxIds, order, title]) => createEmptySeatServices(s, bound, paxIds, order, title)));\n this.hasUnpaidSeats$ = this.order$.pipe(map((order) => containsUnpaidSeats(order)));\n\n this.subscriptions.add(\n this.activatedRoute.data\n .pipe(\n take(1),\n filter((data) => isPresent(data?.isPaymentError))\n )\n .subscribe(() => {\n const message: ToasterMessage = {\n id: 'checkInPaymentResult',\n theme: NotificationTheme.ALERT,\n contentKey: 'MMB.checkIn.payment.error',\n };\n this.toasterService.addMessageToQueue(message);\n })\n );\n }\n\n ngOnDestroy(): void {\n unsubscribe(this.subscriptions);\n }\n\n confirmStep(): void {\n this.checkInService.triggerNextCheckInStep();\n }\n\n goToSeatmapStep(): void {\n this.router.navigateByUrl(\n `/${this.languageService.langValue}/${RootPaths.MANAGE_BOOKING_ROOT}/check-in/step/${CheckInStep.SEATMAP}`\n );\n }\n\n clearPendingSeats(): void {\n this.subscriptions.add(\n combineLatest([this.selectedForCheckInPassengers$, this.bound$])\n .pipe(take(1))\n .subscribe(([checkInPassengers, bound]) => {\n this.loadingModal$.next('clearing');\n bound.itinerary\n .filter(isFlight)\n .map((flight) => flight.id)\n .forEach((flightId) => {\n checkInPassengers\n .map((pax) => pax.id)\n .forEach((travelerId) => {\n this.store$.dispatch(\n SeatMapActions.setSeatForFlight({\n flightId,\n travelerId,\n seat: {},\n })\n );\n });\n });\n const [serviceRequests] = getServiceData(\n this.store$,\n Category.SEAT,\n [bound],\n bound.itinerary.filter(isFlight)\n );\n const didOperation = this.manageBookingService.setServices(serviceRequests, Category.SEAT, {\n next: () => {\n this.loadingModal$.next('off');\n this.toasterService.addMessageToQueue({\n id: 'checkIn',\n theme: NotificationTheme.SUCCESS,\n keepMessageAfterNavigation: false,\n contentKey: 'MMB.checkIn.notifications.info.clearingSeats',\n });\n },\n error: () => {\n this.loadingModal$.next('off');\n this.toasterService.addMessageToQueue({\n id: 'checkIn',\n theme: NotificationTheme.ALERT,\n keepMessageAfterNavigation: true,\n contentKey: 'MMB.checkIn.notifications.error.clearingSeats',\n });\n },\n });\n\n if (!didOperation) {\n this.loadingModal$.next('off');\n }\n })\n );\n }\n\n initializePayment(orderFetchInfo: IdAndHash): void {\n this.loadingModal$.next('payment');\n this.store$.dispatch(\n OrderActions.setOrderFetchInformation({\n orderInformation: { id: orderFetchInfo.id, hash: orderFetchInfo.hash },\n })\n );\n\n this.subscriptions.add(\n this.store$.pipe(paymentRedirectionUrl(), filter(isPresent), take(1)).subscribe((receivedUrl: string) => {\n this.windowRef.nativeWindow.location.href = receivedUrl;\n })\n );\n\n this.subscriptions.add(\n this.store$.pipe(paymentStatus()).subscribe((status: PaymentStatus) => {\n if (status === PaymentStatus.INITIAL) {\n this.paymentService.queuePaymentInit('web_checkin', PaymentFlow.CHECK_IN_FUNNEL);\n } else if (status === PaymentStatus.TECHNICAL_ERROR) {\n this.loadingModal$.next('off');\n this.toasterService.addMessageToQueue({\n id: 'checkIn',\n theme: NotificationTheme.ALERT,\n keepMessageAfterNavigation: true,\n contentKey: 'MMB.checkIn.notifications.error.paymentInitialization',\n });\n }\n })\n );\n }\n}\n","\n

{{ airline.name }}

\n\n \n {{\n 'MMB.checkIn.funnel.steps.restrictedItems.carrierConnect.notification.text'\n | finLocalization: { operated: airline.name }\n }}\n \n\n
\n\n

Finnair

\n
\n\n
\n \n
\n {{ 'MMB.checkIn.steps.rules.titles.seasonal' | finLocalization }}\n
\n
{{ 'MMB.checkIn.steps.rules.descriptions.seasonal' | finLocalization }}
\n
\n
\n
\n

\n {{ 'MMB.checkIn.steps.rules.titles.allowedCarryOnBaggage' | finLocalization }}\n

\n
\n \n
\n
\n \n
\n
\n
    \n
  • \n \n
    \n
    {{ 'MMB.checkIn.steps.rules.titles.lithiumBatteriesLow' | finLocalization }}
    \n
    \n {{ 'MMB.checkIn.steps.rules.descriptions.lithiumBatteriesLow' | finLocalization }}\n
    \n
    \n
  • \n
  • \n \n
    {{ 'MMB.checkIn.steps.rules.titles.powerBank' | finLocalization }}
    \n
  • \n
  • \n \n
    {{ 'MMB.checkIn.steps.rules.titles.eCigarette' | finLocalization }}
    \n
  • \n
  • \n \n
    {{ 'MMB.checkIn.steps.rules.titles.lighter' | finLocalization }}
    \n
  • \n
  • \n \n
    \n
    {{ 'MMB.checkIn.steps.rules.titles.personalElectricDevice' | finLocalization }}
    \n
    \n {{ 'MMB.checkIn.steps.rules.descriptions.personalElectricDevice' | finLocalization }}\n
    \n
    \n
  • \n
  • \n \n
    {{ 'MMB.checkIn.steps.rules.titles.camera' | finLocalization }}
    \n
  • \n
\n
\n
\n
\n

\n {{ 'MMB.checkIn.steps.rules.titles.allowedCheckedBaggage' | finLocalization }}\n

\n
\n \n
\n
\n \n
\n
\n
    \n
  • \n \n
    \n
    {{ 'MMB.checkIn.steps.rules.titles.weapons' | finLocalization }}
    \n
    \n {{ 'MMB.checkIn.steps.rules.descriptions.weapons' | finLocalization }}\n
    \n
    \n
  • \n
  • \n \n
    {{ 'MMB.checkIn.steps.rules.titles.stunGun' | finLocalization }}
    \n
  • \n
  • \n \n
    {{ 'MMB.checkIn.steps.rules.titles.tools' | finLocalization }}
    \n
  • \n
  • \n \n
    \n
    {{ 'MMB.checkIn.steps.rules.titles.sharpObjects' | finLocalization }}
    \n
    \n {{ 'MMB.checkIn.steps.rules.descriptions.sharpObjects' | finLocalization }}\n
    \n
    \n
  • \n
\n
\n
\n
\n

\n {{ 'MMB.checkIn.steps.rules.titles.notPermittedOnBoard' | finLocalization }}\n

\n
\n \n
\n
\n \n
\n
\n
    \n
  • \n \n
    \n
    {{ 'MMB.checkIn.steps.rules.titles.lithiumBatteriesHigh' | finLocalization }}
    \n
    \n {{ 'MMB.checkIn.steps.rules.descriptions.lithiumBatteriesHigh' | finLocalization }}\n
    \n
    \n
  • \n
  • \n \n
    \n
    {{ 'MMB.checkIn.steps.rules.titles.batteryTransportation' | finLocalization }}
    \n
    \n {{ 'MMB.checkIn.steps.rules.descriptions.batteryTransportation' | finLocalization }}\n
    \n
    \n
  • \n
  • \n \n
    \n
    {{ 'MMB.checkIn.steps.rules.titles.explosives' | finLocalization }}
    \n
    \n {{ 'MMB.checkIn.steps.rules.descriptions.explosives' | finLocalization }}\n
    \n
    \n
  • \n
  • \n \n
    \n
    {{ 'MMB.checkIn.steps.rules.titles.flammableGas' | finLocalization }}
    \n
    \n {{ 'MMB.checkIn.steps.rules.descriptions.flammableGas' | finLocalization }}\n
    \n
    \n
  • \n
  • \n \n
    {{ 'MMB.checkIn.steps.rules.titles.toxic' | finLocalization }}
    \n
  • \n
  • \n \n
    {{ 'MMB.checkIn.steps.rules.titles.biohazard' | finLocalization }}
    \n
  • \n
  • \n \n
    \n
    {{ 'MMB.checkIn.steps.rules.titles.corrosive' | finLocalization }}
    \n
    \n
  • \n
\n
\n \n \n
\n\n\n\n {{ 'MMB.checkIn.funnel.steps.restrictedItems.button.description' | finLocalization }}\n \n\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\nimport { combineLatest, Observable } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\n\nimport { ButtonPosition, ButtonTheme, NotificationTheme } from '@fcom/ui-components/index';\nimport { FinnairBoundItem, FinnairCodeAndName, FinnairOrder } from '@fcom/dapi/api/models';\nimport { isFlight } from '@fcom/common-booking/utils/common-booking.utils';\n\n@Component({\n selector: 'fin-check-in-restricted-items',\n templateUrl: 'check-in-restricted-items.component.html',\n styleUrls: ['./check-in-restricted-items.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckInRestrictedItemsComponent implements OnInit {\n readonly SvgLibraryIcon = SvgLibraryIcon;\n readonly ButtonPosition = ButtonPosition;\n readonly ButtonTheme = ButtonTheme;\n\n @Input() order$: Observable;\n\n @Input() bound$: Observable;\n\n @Input() buttonLoading$: Observable;\n\n @Output() confirmStep: EventEmitter = new EventEmitter();\n\n carrierConnectAirline$: Observable;\n\n ngOnInit(): void {\n this.carrierConnectAirline$ = combineLatest([this.order$, this.bound$]).pipe(\n map(([order, bound]) => {\n const isCarrierConnect = order.eligibilities?.checkIn?.find((e) => e.id === bound.id)?.isCarrierConnect;\n\n if (isCarrierConnect) {\n return bound.itinerary.filter(isFlight)[0]?.operatingAirline;\n }\n\n return null;\n }),\n filter(Boolean)\n );\n }\n\n protected readonly NotificationTheme = NotificationTheme;\n}\n","
\n \n \n \n
\n\n\n
\n \n
\n
\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Location } from '@angular/common';\n\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, combineLatest, EMPTY, Observable, Subscription, throwError } from 'rxjs';\nimport { catchError, filter, map, switchMap, take, tap, withLatestFrom } from 'rxjs/operators';\nimport { SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\n\nimport {\n ConfigService,\n isPresent,\n pathSegmentsToPathString,\n RootPaths,\n SentryLogger,\n unsubscribe,\n} from '@fcom/core/index';\nimport { FinnairBoundItem, FinnairOrder, FinnairPassengerItem } from '@fcom/dapi/api/models';\nimport { BoundType, DapiErrorCode, DapiHttpErrorResponse } from '@fcom/dapi/index';\nimport { GtmService } from '@fcom/common/gtm';\nimport { LanguageService } from '@fcom/ui-translate/index';\nimport { ToasterService } from '@fcom/common/services';\nimport { isFlight } from '@fcom/common-booking/utils/common-booking.utils';\nimport {\n ElementActions,\n ElementTypes,\n GaContext,\n GtmPurchaseFlow,\n LoaderType,\n ToasterMessage,\n} from '@fcom/common/interfaces';\nimport {\n CommonBookingFeatureState,\n OrderActions,\n OrderStatus,\n paymentIdsPaid,\n PaymentStatus,\n paymentStatus,\n} from '@fcom/common-booking/index';\nimport { NotificationTheme } from '@fcom/ui-components/index';\nimport { MmbOrderService } from '@fcom/manage-booking-common/index';\nimport { mapPaymentMethods } from '@fcom/common-booking/utils/payment.utils';\nimport { setPaymentIdPaid } from '@fcom/core/actions/global.actions';\nimport { finShare } from '@fcom/rx/operators/finShare';\n\nimport { ManageBookingFeatureState } from '../../../interfaces';\nimport { CheckInService } from '../../../services/check-in.service';\n\n@Component({\n selector: 'fin-check-in-rules-route',\n templateUrl: 'check-in-rules-route.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckInRulesRouteComponent implements OnInit, OnDestroy {\n readonly OrderStatus = OrderStatus;\n readonly LoaderType = LoaderType;\n readonly GaContext = GaContext;\n readonly BoundType = BoundType;\n\n order$: Observable;\n orderStatus$: Observable;\n bound$: Observable;\n selectedForCheckInPassengers$: Observable;\n loading$: BehaviorSubject = new BehaviorSubject(false);\n checkoutUrl: string;\n\n private subscriptions = new Subscription();\n\n constructor(\n private store$: Store,\n private gtmService: GtmService,\n private mmbOrderService: MmbOrderService,\n private toasterService: ToasterService,\n private languageService: LanguageService,\n private router: Router,\n private configService: ConfigService,\n private activatedRoute: ActivatedRoute,\n private locationService: Location,\n private checkInService: CheckInService,\n private sentryLogger: SentryLogger\n ) {}\n\n ngOnInit(): void {\n this.checkoutUrl = this.configService.cfg.checkoutUrl;\n\n this.order$ = this.checkInService.getOrder();\n this.orderStatus$ = this.checkInService.getOrderStatus();\n this.bound$ = this.checkInService.getBound();\n this.selectedForCheckInPassengers$ = this.checkInService.getPassengers();\n\n this.subscriptions.add(\n this.activatedRoute.queryParams\n .pipe(\n take(1),\n filter((queryParams) => queryParams?.orderid && queryParams?.hash),\n switchMap((queryParams) => {\n const { orderid, hash } = queryParams;\n\n return this.mmbOrderService.getOrderByIdAndHash(orderid, hash).pipe(\n catchError((error) => {\n this.sentryLogger.error('Error fetching order', { error });\n return EMPTY;\n }),\n switchMap((order) =>\n this.activatedRoute.data.pipe(\n take(1),\n map((data) => ({\n order,\n isPaymentSuccess: isPresent(data?.isPaymentSuccess),\n }))\n )\n )\n );\n })\n )\n .subscribe({\n next: ({ order, isPaymentSuccess }) => {\n this.store$.dispatch(OrderActions.setOrderData({ order }));\n this.locationService.replaceState(pathSegmentsToPathString(this.activatedRoute.snapshot.pathFromRoot));\n\n if (isPaymentSuccess) {\n const message: ToasterMessage = {\n id: 'checkInPaymentResult',\n theme: NotificationTheme.SUCCESS,\n contentKey: 'MMB.checkIn.payment.success',\n };\n this.toasterService.addMessageToQueue(message);\n }\n },\n })\n );\n\n this.subscriptions.add(\n this.store$\n .pipe(\n paymentStatus(),\n filter((statusOfPayment) => statusOfPayment === PaymentStatus.VERIFIED),\n withLatestFrom(this.order$.pipe(map(mapPaymentMethods)), this.order$, this.store$.pipe(paymentIdsPaid())),\n filter(([_, __, order, paidPaymentIds]) => {\n const paymentId = order.checkouts?.sort((a, b) => +a.timestamp - +b.timestamp)[0]?.id;\n return !paidPaymentIds.some((id) => id === paymentId);\n })\n )\n .subscribe(([_, paymentMethods, order]) => {\n const paymentId = order.checkouts?.sort((a, b) => +a.timestamp - +b.timestamp)[0]?.id;\n const totalAmount =\n order.prices?.checkouts?.find((c) => c.id === paymentId)?.prices?.services?.total?.totalAmount?.amount ??\n order.prices?.pending?.services?.total?.totalAmount.amount;\n const containsPricesToReport = parseFloat(totalAmount) > 0;\n if (containsPricesToReport) {\n this.gtmService.completeManageBookingPurchase(order, paymentMethods, GtmPurchaseFlow.MANAGE_BOOKING);\n this.store$.dispatch(setPaymentIdPaid({ paymentId }));\n }\n })\n );\n }\n\n ngOnDestroy(): void {\n unsubscribe(this.subscriptions);\n }\n\n completeCheckIn(): void {\n this.subscriptions.add(\n combineLatest([this.order$, this.selectedForCheckInPassengers$, this.bound$])\n .pipe(\n take(1),\n tap(() => {\n this.gtmService.trackElement(\n 'check-in-flow_confirm-cta_check-in',\n GaContext.CHECK_IN,\n ElementTypes.BUTTON,\n undefined,\n ElementActions.CLICK\n );\n this.loading$.next(true);\n }),\n switchMap(([order, passengers, bound]) => {\n return this.mmbOrderService\n .completeCheckIn(order.id, order.hash, {\n flightIds: bound.itinerary.filter(isFlight).map((f) => f.id),\n travelerIds: passengers.map(({ id }) => id),\n })\n .pipe(\n map((orderData) => ({\n order: orderData,\n acceptance: {\n success: true,\n },\n })),\n catchError((error: unknown) => {\n if (\n error instanceof DapiHttpErrorResponse &&\n (error.error?.key === DapiErrorCode.CHECK_IN_ACCEPT_UNRECOVERABLE_FAILURE ||\n error.error?.key === DapiErrorCode.CHECK_IN_ACCEPT_FAILED)\n ) {\n return this.mmbOrderService.getOrderByIdAndHash(order.id, order.hash).pipe(\n take(1),\n map((order) => ({\n order,\n acceptance: {\n success: false,\n },\n }))\n );\n }\n return throwError(() => error);\n })\n );\n }),\n finShare()\n )\n .subscribe({\n next: ({ order, acceptance }) => {\n this.store$.dispatch(OrderActions.setOrderData({ order }));\n if (acceptance.success) {\n this.checkInService.triggerNextCheckInStep();\n } else {\n this.router.navigateByUrl(`${this.languageService.langValue}/${RootPaths.MANAGE_BOOKING_ROOT}/view`);\n this.toasterService.addMessageToQueue({\n id: 'checkIn',\n theme: NotificationTheme.ALERT,\n iconName: SvgLibraryIcon.ALERT_TRIANGLE,\n keepMessageAfterNavigation: false,\n delay: true,\n contentKey: 'MMB.checkIn.confirmation.notifications.error',\n });\n }\n this.loading$.next(false);\n },\n error: (error) => {\n this.sentryLogger.error('Unexpected error in completeCheckIn', { error });\n this.router.navigateByUrl(`${this.languageService.langValue}/${RootPaths.MANAGE_BOOKING_ROOT}/view`);\n this.loading$.next(false);\n },\n })\n );\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\n\nimport { map, switchMap, take } from 'rxjs/operators';\nimport { combineLatest, Observable, Subscription } from 'rxjs';\nimport { SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\n\nimport { NotificationTheme } from '@fcom/ui-components/components/notifications';\nimport { DatepickerTheme } from '@fcom/service-forms/components/common/datepicker.component';\nimport {\n FinnairAdvancePassengerInformationRequestV2,\n FinnairApisRequirementCountryOfResidence,\n FinnairApisRequirementKeyEnum,\n} from '@fcom/dapi/api/models';\nimport { SelectOption } from '@fcom/common/interfaces';\nimport { ButtonType } from '@fcom/ui-components/components/buttons';\nimport { LocalDate, unsubscribe } from '@fcom/core/utils';\nimport { ModalButtons } from '@fcom/ui-components/components/modal';\n\nimport { FinnairPassengerItemWithApis } from '../../../check-in/interface/check-in.interface';\nimport { ManageBookingService } from '../../../../services';\n\n@Component({\n selector: 'fin-apis-country-of-residence',\n templateUrl: './apis-country-of-residence.component.html',\n styleUrls: ['./../apis-form.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ApisCountryOfResidenceComponent implements OnInit, OnDestroy {\n readonly SvgLibraryIcon = SvgLibraryIcon;\n readonly NotificationTheme = NotificationTheme;\n readonly DatepickerTheme = DatepickerTheme;\n readonly ButtonType = ButtonType;\n readonly ModalButtons = ModalButtons;\n readonly LocalDate = LocalDate;\n\n @Output() completed = new EventEmitter();\n\n @Input()\n boundId$: Observable;\n\n @Input()\n passenger$: Observable;\n\n @Input()\n countries$: Observable;\n\n countryOfResidenceForm: FormGroup<{\n countryOfResidence: FormControl;\n }>;\n\n loading = false;\n\n private subscriptions = new Subscription();\n\n constructor(private manageBookingService: ManageBookingService) {}\n\n ngOnInit(): void {\n this.subscriptions.add(\n this.passenger$.pipe(take(1)).subscribe((passenger) => {\n const countryOfResidenceData: FinnairApisRequirementCountryOfResidence = passenger.apisCpr?.requirements?.find(\n (requirement) => requirement.key === FinnairApisRequirementKeyEnum.COUNTRY_OF_RESIDENCE\n )?.data as FinnairApisRequirementCountryOfResidence;\n this.countryOfResidenceForm = new FormGroup({\n countryOfResidence: new FormControl(countryOfResidenceData?.countryOfResidence ?? '', Validators.required),\n });\n })\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions = unsubscribe(this.subscriptions);\n }\n\n saveAndContinue(): void {\n if (this.countryOfResidenceForm.valid && this.countryOfResidenceForm.dirty) {\n this.countryOfResidenceForm.disable();\n this.loading = true;\n\n this.subscriptions.add(\n this.createCountryOfResidenceUpdateRequest()\n .pipe(\n take(1),\n switchMap((request) => this.manageBookingService.updateRegulatoryDetails(request))\n )\n .subscribe({\n next: () => {\n this.countryOfResidenceForm.enable();\n this.loading = false;\n this.completed.emit();\n },\n error: () => {\n this.countryOfResidenceForm.enable();\n this.loading = false;\n },\n })\n );\n } else if (this.countryOfResidenceForm.valid) {\n this.completed.emit();\n } else {\n Object.keys(this.countryOfResidenceForm.controls).forEach((field) => {\n const control = this.countryOfResidenceForm.get(field);\n control.markAsTouched({ onlySelf: true });\n });\n }\n }\n\n private createCountryOfResidenceUpdateRequest(): Observable {\n return combineLatest([this.boundId$, this.passenger$]).pipe(\n map(([boundId, passenger]) => [\n {\n advancePassengerInformation: [\n {\n countryOfResidence: this.countryOfResidenceForm.controls.countryOfResidence.value,\n travelerId: passenger.id,\n },\n ],\n boundId,\n },\n ]),\n take(1)\n );\n }\n}\n","
\n
\n

{{ 'MMB.apis.form.countryOfResidence.title' | finLocalization }}

\n
\n\n
\n {{ 'MMB.apis.form.passport.mandatoryFields' | finLocalization }}\n
\n\n
\n \n \n
\n\n
\n\n
\n \n
\n
\n","import { LocalDate } from '@fcom/core/utils';\n\nexport const getFirstDefinedDateOrEmpty = (...dates: string[]): LocalDate | undefined => {\n const definedDate = dates.find((date) => !!date && LocalDate.isLocalDate(date));\n return definedDate ? new LocalDate(definedDate) : undefined;\n};\n","
\n
\n

{{ 'MMB.apis.form.passport.title' | finLocalization }}

\n\n \n {{ 'MMB.apis.form.passport.notification' | finLocalization }}\n \n
\n\n
\n {{ 'MMB.apis.form.passport.mandatoryFields' | finLocalization }}\n
\n\n
\n \n\n \n
\n\n
\n \n\n \n \n
\n\n
\n \n \n\n \n \n
\n\n
\n \n \n\n \n
\n\n
\n \n\n
\n
\n\n
\n\n
\n \n
\n
\n\n\n
\n \n \n
\n\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\n\nimport { map, switchMap, take } from 'rxjs/operators';\nimport { combineLatest, Observable, Subscription } from 'rxjs';\nimport { SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\n\nimport { NotificationTheme } from '@fcom/ui-components/components/notifications';\nimport { DatepickerTheme } from '@fcom/service-forms/components/common/datepicker.component';\nimport {\n ApisDocumentData,\n FinnairAdvancePassengerInformationRequestV2,\n FinnairApisRequirementDocument,\n FinnairApisRequirementKeyEnum,\n FinnairOrder,\n FinnairTravelDocumentType,\n} from '@fcom/dapi/api/models';\nimport { SelectOption } from '@fcom/common/interfaces';\nimport { ButtonType } from '@fcom/ui-components/components/buttons';\nimport { APIS_NAME_PATTERN, APIS_PASSPORT_NUMBER_PATTERN, LocalDate, unsubscribe } from '@fcom/core/utils';\nimport { ModalButtons } from '@fcom/ui-components/components/modal';\nimport { titleToGender } from '@fcom/common-booking/utils/common-booking.utils';\nimport { FragmentService } from '@fcom/common/services';\nimport { CmsArticle } from '@fcom/core-api/interfaces';\nimport { finShare } from '@fcom/rx/operators/finShare';\n\nimport { ManageBookingService } from '../../../../services';\nimport { FinnairPassengerItemWithApis } from '../../../check-in/interface/check-in.interface';\nimport { getFirstDefinedDateOrEmpty } from '../apis-utils';\n\n@Component({\n selector: 'fin-apis-passport',\n templateUrl: 'apis-passport.component.html',\n styleUrls: ['./../apis-form.scss', './apis-passport.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ApisPassportComponent implements OnInit, OnDestroy {\n readonly SvgLibraryIcon = SvgLibraryIcon;\n readonly NotificationTheme = NotificationTheme;\n readonly DatepickerTheme = DatepickerTheme;\n readonly ButtonType = ButtonType;\n readonly ModalButtons = ModalButtons;\n readonly LocalDate = LocalDate;\n\n @Output() completed = new EventEmitter();\n\n @Input()\n order$: Observable;\n @Input()\n boundId$: Observable;\n @Input()\n passenger$: Observable;\n @Input()\n nationalities$: Observable;\n @Input()\n countries$: Observable;\n @Input()\n genders$: Observable;\n\n passportForm: FormGroup<{\n firstName: FormControl;\n lastName: FormControl;\n birthDate: FormControl;\n gender: FormControl;\n number: FormControl;\n nationality: FormControl;\n issuingCountry: FormControl;\n issuanceDate?: FormControl;\n expiryDate: FormControl;\n }>;\n\n loading = false;\n guideModalOpen = false;\n guide$: Observable;\n\n private subscriptions = new Subscription();\n\n constructor(\n private manageBookingService: ManageBookingService,\n private fragmentService: FragmentService\n ) {}\n\n ngOnInit(): void {\n this.guide$ = this.fragmentService\n .getFragment('MMB.apis.form.passport.guide.article.url')\n .pipe(finShare());\n\n this.subscriptions.add(\n combineLatest([this.passenger$, this.order$, this.boundId$])\n .pipe(take(1))\n .subscribe(([passenger, order, boundId]) => {\n const passportData: FinnairApisRequirementDocument = passenger.apisCpr?.requirements?.find(\n (requirement) => requirement.key === FinnairApisRequirementKeyEnum.PASSPORT\n )?.data as FinnairApisRequirementDocument;\n this.passportForm = new FormGroup({\n firstName: new FormControl(passportData?.firstName ?? passenger.firstName, [\n Validators.required,\n Validators.minLength(2),\n Validators.maxLength(39),\n Validators.pattern(APIS_NAME_PATTERN),\n ]),\n lastName: new FormControl(passportData?.lastName ?? passenger.lastName, [\n Validators.required,\n Validators.minLength(2),\n Validators.maxLength(39),\n Validators.pattern(APIS_NAME_PATTERN),\n ]),\n birthDate: new FormControl(\n getFirstDefinedDateOrEmpty(passportData?.dateOfBirth, passenger.dateOfBirth),\n Validators.required\n ),\n gender: new FormControl(\n passportData?.gender ?? passenger?.gender ?? titleToGender(passenger.title) ?? '',\n Validators.required\n ),\n number: new FormControl(passportData?.number ?? '', [\n Validators.required,\n Validators.maxLength(12),\n Validators.pattern(APIS_PASSPORT_NUMBER_PATTERN),\n ]),\n nationality: new FormControl(passportData?.nationality ?? '', Validators.required),\n issuingCountry: new FormControl(passportData?.issuingCountry ?? '', Validators.required),\n expiryDate: new FormControl(getFirstDefinedDateOrEmpty(passportData?.expiryDate), Validators.required),\n });\n\n if (order.eligibilities.checkIn?.find((e) => e.id === boundId)?.isCarrierConnect) {\n this.passportForm.addControl(\n 'issuanceDate',\n new FormControl(passportData?.issuanceDate ?? '', Validators.required)\n );\n }\n })\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions = unsubscribe(this.subscriptions);\n }\n\n saveAndContinue(): void {\n if (this.passportForm.dirty && this.passportForm.valid) {\n this.passportForm.disable();\n this.loading = true;\n this.subscriptions.add(\n this.createPassportUpdateRequest()\n .pipe(\n take(1),\n switchMap((request) => this.manageBookingService.updateRegulatoryDetails(request))\n )\n .subscribe({\n next: () => {\n this.passportForm.enable();\n this.loading = false;\n this.completed.emit();\n },\n error: () => {\n this.passportForm.enable();\n this.loading = false;\n },\n })\n );\n } else if (this.passportForm.valid) {\n this.completed.emit();\n } else {\n this.markFormAsTouched();\n }\n }\n\n private markFormAsTouched(): void {\n Object.keys(this.passportForm.controls).forEach((field) => {\n const control = this.passportForm.get(field);\n control.markAsTouched({ onlySelf: true });\n });\n }\n\n private createPassportUpdateRequest(): Observable {\n return combineLatest([this.boundId$, this.passenger$]).pipe(\n map(([boundId, passenger]) => [\n {\n advancePassengerInformation: [\n {\n passport: {\n dateOfBirth: this.passportForm.controls.birthDate.value.toString(),\n documentType: FinnairTravelDocumentType.PASSPORT,\n expirationDate: this.passportForm.controls.expiryDate.value.toString(),\n firstName: this.passportForm.controls.firstName.value.toUpperCase(),\n lastName: this.passportForm.controls.lastName.value.toUpperCase(),\n gender: this.passportForm.controls.gender.value,\n issuingCountry: this.passportForm.controls.issuingCountry.value,\n nationality: this.passportForm.controls.nationality.value,\n number: this.passportForm.controls.number.value.toUpperCase(),\n ...(this.passportForm.controls.issuanceDate?.value\n ? { issuanceDate: this.passportForm.controls.issuanceDate?.value }\n : {}),\n } as ApisDocumentData,\n travelerId: passenger.id,\n },\n ],\n boundId,\n },\n ]),\n take(1)\n );\n }\n\n showGuide(): void {\n this.guideModalOpen = true;\n }\n}\n","
\n
\n

\n {{\n ((entryDocumentTitle$ | async) === EntryDocumentTitle.VISA\n ? 'MMB.apis.form.entryDocument.visaTitle'\n : 'MMB.apis.form.entryDocument.title'\n ) | finLocalization\n }}\n

\n\n \n {{ 'MMB.apis.form.entryDocument.notification' | finLocalization }}\n \n
\n\n
\n {{ 'MMB.apis.form.passport.mandatoryFields' | finLocalization }}\n
\n\n
\n \n \n\n \n \n
\n\n
\n \n \n
\n\n
\n \n\n \n \n
\n\n
\n \n \n \n
\n\n \n \n \n \n \n \n\n
\n\n
\n \n
\n\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\n\nimport { combineLatest, Observable, Subscription } from 'rxjs';\nimport { SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\nimport { map, switchMap, take } from 'rxjs/operators';\n\nimport {\n ApisDocumentData,\n FinnairAdvancePassengerInformationRequestV2,\n FinnairApisRequirementDocument,\n FinnairApisRequirementKeyEnum,\n FinnairOrder,\n FinnairTravelDocumentType,\n} from '@fcom/dapi/api/models';\nimport { LanguageService } from '@fcom/ui-translate/services/language.service';\nimport { NotificationTheme } from '@fcom/ui-components/components/notifications';\nimport { APIS_ENTRY_DOCUMENT_NUMBER_PATTERN, APIS_NAME_PATTERN, LocalDate } from '@fcom/core/utils';\nimport { DatepickerTheme } from '@fcom/service-forms/components/common/datepicker.component';\nimport { ButtonType } from '@fcom/ui-components/components/buttons';\nimport { SelectOption } from '@fcom/common/interfaces';\nimport { titleToGender } from '@fcom/common-booking/utils/common-booking.utils';\nimport { finShare } from '@fcom/rx/operators/finShare';\n\nimport { ManageBookingService } from '../../../../services';\nimport { FinnairPassengerItemWithApis } from '../../../check-in/interface/check-in.interface';\nimport { getFirstDefinedDateOrEmpty } from '../apis-utils';\n\nenum EntryDocumentType {\n VISA = 'visa',\n RESIDENT = 'permanentResidentCard',\n}\n\nenum EntryDocumentTitle {\n VISA,\n ENTRY_DOCUMENT,\n}\n\n@Component({\n selector: 'fin-apis-visa',\n templateUrl: 'apis-visa.component.html',\n styleUrls: ['./../apis-form.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ApisVisaComponent implements OnInit {\n readonly NotificationTheme = NotificationTheme;\n readonly LocalDate = LocalDate;\n readonly DatepickerTheme = DatepickerTheme;\n readonly ButtonType = ButtonType;\n readonly SvgLibraryIcon = SvgLibraryIcon;\n readonly EntryDocumentTitle = EntryDocumentTitle;\n\n @Input()\n order$: Observable;\n @Input()\n boundId$: Observable;\n @Input()\n passenger$: Observable;\n @Input()\n nationalities$: Observable;\n @Input()\n countries$: Observable;\n @Input()\n genders$: Observable;\n\n @Output() completed = new EventEmitter();\n\n entryDocumentForm: FormGroup<{\n type: FormControl;\n firstName: FormControl;\n lastName: FormControl;\n birthDate: FormControl;\n gender: FormControl;\n number: FormControl;\n nationality: FormControl;\n issuingCountry: FormControl;\n issuanceDate?: FormControl;\n expiryDate: FormControl;\n }>;\n\n entryDocumentTypes$: Observable;\n requiredEntryDocumentType$: Observable;\n entryDocumentTitle$: Observable;\n showNationalitySelector$: Observable;\n loading = false;\n\n private subscriptions = new Subscription();\n\n constructor(\n private languageService: LanguageService,\n private manageBookingService: ManageBookingService\n ) {}\n\n ngOnInit(): void {\n this.showNationalitySelector$ = combineLatest([this.order$, this.boundId$]).pipe(\n map(([order, boundId]) => {\n return order.eligibilities?.checkIn?.find((e) => e.id === boundId)?.isCarrierConnect ?? false;\n }),\n finShare()\n );\n\n this.requiredEntryDocumentType$ = this.passenger$.pipe(\n map((passenger) => {\n const visaRequirementPresent = passenger.apisCpr?.requirements?.some(\n (r) => r.key === FinnairApisRequirementKeyEnum.VISA\n );\n const residentCardRequirementPresent = passenger.apisCpr?.requirements?.some(\n (r) => r.key === FinnairApisRequirementKeyEnum.PERMANENT_RESIDENT_CARD\n );\n return visaRequirementPresent\n ? residentCardRequirementPresent\n ? undefined\n : EntryDocumentType.VISA\n : residentCardRequirementPresent\n ? EntryDocumentType.RESIDENT\n : undefined;\n })\n );\n this.entryDocumentTitle$ = this.requiredEntryDocumentType$.pipe(\n map((type) => (type === EntryDocumentType.VISA ? EntryDocumentTitle.VISA : EntryDocumentTitle.ENTRY_DOCUMENT))\n );\n this.entryDocumentTypes$ = this.languageService.translate('MMB.apis.passenger').pipe(\n map((types) => {\n return [EntryDocumentType.VISA, EntryDocumentType.RESIDENT].map((type) => ({\n name: types[type] ?? type,\n value: type,\n }));\n })\n );\n this.subscriptions.add(\n combineLatest([this.requiredEntryDocumentType$, this.passenger$, this.order$, this.boundId$])\n .pipe(take(1))\n .subscribe(([type, passenger, order, boundId]) => {\n const passportData: FinnairApisRequirementDocument = passenger.apisCpr?.requirements?.find(\n (requirement) => requirement.key === FinnairApisRequirementKeyEnum.PASSPORT\n )?.data as FinnairApisRequirementDocument;\n const entryDocumentData: FinnairApisRequirementDocument = passenger.apisCpr?.requirements?.find(\n (requirement) =>\n requirement.key ===\n (type === EntryDocumentType.VISA\n ? FinnairApisRequirementKeyEnum.VISA\n : FinnairApisRequirementKeyEnum.PERMANENT_RESIDENT_CARD)\n )?.data as FinnairApisRequirementDocument;\n this.entryDocumentForm = new FormGroup({\n type: new FormControl(type ?? '', Validators.required),\n firstName: new FormControl(entryDocumentData?.firstName ?? passenger.firstName, [\n Validators.required,\n Validators.minLength(2),\n Validators.maxLength(39),\n Validators.pattern(APIS_NAME_PATTERN),\n ]),\n lastName: new FormControl(entryDocumentData?.lastName ?? passenger.lastName, [\n Validators.required,\n Validators.minLength(2),\n Validators.maxLength(39),\n Validators.pattern(APIS_NAME_PATTERN),\n ]),\n birthDate: new FormControl(\n getFirstDefinedDateOrEmpty(\n entryDocumentData?.dateOfBirth,\n passportData?.dateOfBirth,\n passenger.dateOfBirth\n ),\n Validators.required\n ),\n gender: new FormControl(\n entryDocumentData?.gender ??\n passportData?.gender ??\n passenger?.gender ??\n titleToGender(passenger.title) ??\n '',\n Validators.required\n ),\n nationality: new FormControl(\n passportData?.nationality ?? entryDocumentData?.nationality ?? '',\n Validators.required\n ),\n number: new FormControl(entryDocumentData?.number ?? '', [\n Validators.required,\n Validators.maxLength(20),\n Validators.pattern(APIS_ENTRY_DOCUMENT_NUMBER_PATTERN),\n ]),\n issuingCountry: new FormControl(entryDocumentData?.issuingCountry ?? '', Validators.required),\n expiryDate: new FormControl(getFirstDefinedDateOrEmpty(entryDocumentData?.expiryDate), Validators.required),\n });\n\n if (order.eligibilities.checkIn?.find((e) => e.id === boundId)?.isCarrierConnect) {\n this.entryDocumentForm.addControl(\n 'issuanceDate',\n new FormControl(getFirstDefinedDateOrEmpty(passportData?.issuanceDate), Validators.required)\n );\n }\n })\n );\n }\n\n saveAndContinue(): void {\n if (this.entryDocumentForm.dirty && this.entryDocumentForm.valid) {\n this.entryDocumentForm.disable();\n this.loading = true;\n\n this.subscriptions.add(\n this.createEntryDocumentUpdateRequest()\n .pipe(\n take(1),\n switchMap((request) => this.manageBookingService.updateRegulatoryDetails(request))\n )\n .subscribe({\n next: () => {\n this.entryDocumentForm.enable();\n this.loading = false;\n this.completed.emit();\n },\n error: () => {\n this.entryDocumentForm.enable();\n this.loading = false;\n },\n })\n );\n } else if (this.entryDocumentForm.valid) {\n this.completed.emit();\n } else {\n this.markFormAsTouched();\n }\n }\n\n private markFormAsTouched(): void {\n Object.keys(this.entryDocumentForm.controls).forEach((field) => {\n const control = this.entryDocumentForm.get(field);\n control.markAsTouched({ onlySelf: true });\n });\n }\n private createEntryDocumentUpdateRequest(): Observable {\n return combineLatest([this.boundId$, this.passenger$]).pipe(\n map(([boundId, passenger]) => {\n let apisDocument;\n try {\n apisDocument = {\n documentType:\n this.entryDocumentForm.controls.type.value === EntryDocumentType.VISA\n ? FinnairTravelDocumentType.VISA\n : FinnairTravelDocumentType.PERMANENTRESIDENTCARD,\n expirationDate: this.entryDocumentForm.controls.expiryDate.value.toString(),\n firstName: this.entryDocumentForm.controls.firstName.value.toUpperCase(),\n lastName: this.entryDocumentForm.controls.lastName.value.toUpperCase(),\n issuingCountry: this.entryDocumentForm.controls.issuingCountry.value,\n gender: this.entryDocumentForm.controls.gender.value,\n dateOfBirth: this.entryDocumentForm.controls.birthDate.value.toString(),\n nationality: this.entryDocumentForm.controls.nationality.value,\n number: this.entryDocumentForm.controls.number.value.toUpperCase(),\n ...(this.entryDocumentForm.controls.issuanceDate?.value\n ? { issuanceDate: this.entryDocumentForm.controls.issuanceDate?.value.toString() }\n : {}),\n } as ApisDocumentData;\n } catch (e) {\n console.log('error', e);\n }\n const type = this.entryDocumentForm.controls.type.value === EntryDocumentType.VISA ? 'visa' : 'residentCard';\n\n return [\n {\n advancePassengerInformation: [\n {\n [type]: apisDocument,\n travelerId: passenger.id,\n },\n ],\n boundId,\n },\n ];\n }),\n take(1)\n );\n }\n}\n","
\n
\n

\n {{\n (addressType === FinnairApisRequirementKeyEnum.DESTINATION_ADDRESS\n ? 'MMB.apis.form.destination.title'\n : 'MMB.apis.form.home.title'\n ) | finLocalization\n }}\n \n {{ ' ' + countryName }}\n \n

\n\n \n {{ 'MMB.apis.form.destination.notification' | finLocalization }}\n \n
\n\n
\n {{ 'MMB.apis.form.passport.mandatoryFields' | finLocalization }}\n
\n\n
\n 0; else stateInput\">\n \n \n \n\n \n \n \n \n\n \n \n
\n\n
\n \n \n\n \n \n
\n\n
\n\n
\n \n
\n
\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\n\nimport { map, switchMap, take } from 'rxjs/operators';\nimport { combineLatest, Observable, Subscription } from 'rxjs';\n\nimport {\n FinnairAdvancePassengerInformationRequestV2,\n FinnairApisRequirementCountryOfResidence,\n FinnairApisRequirementDestinationAddress,\n FinnairApisRequirementHomeAddress,\n FinnairApisRequirementKeyEnum,\n} from '@fcom/dapi/api/models';\nimport { ADDRESS_PATTERN, CITY_PATTERN, STATE_PATTERN, unsubscribe, ZIP_CODE_PATTERN } from '@fcom/core/utils';\nimport { finShare } from '@fcom/rx/operators/finShare';\nimport { LanguageService } from '@fcom/ui-translate/services/language.service';\nimport { SelectOption } from '@fcom/common/interfaces';\nimport { ButtonType } from '@fcom/ui-components/components/buttons';\nimport { NotificationTheme } from '@fcom/ui-components/components/notifications';\n\nimport { FinnairPassengerItemWithApis } from '../../../check-in/interface/check-in.interface';\nimport { ManageBookingService } from '../../../../services';\n\nexport type AddressType =\n | FinnairApisRequirementKeyEnum.DESTINATION_ADDRESS\n | FinnairApisRequirementKeyEnum.HOME_ADDRESS;\n\n@Component({\n selector: 'fin-apis-destination',\n templateUrl: 'apis-destination.component.html',\n styleUrls: ['apis-destination.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ApisDestinationComponent implements OnInit, OnDestroy {\n readonly ButtonType = ButtonType;\n readonly FinnairApisRequirementKeyEnum = FinnairApisRequirementKeyEnum;\n readonly NotificationTheme = NotificationTheme;\n\n @Input()\n passenger$: Observable;\n\n @Input()\n boundId$: Observable;\n\n @Input()\n addressType: AddressType;\n\n @Input()\n arrivalCountryCode$: Observable;\n\n @Output() completed = new EventEmitter();\n\n form: FormGroup<{\n address: FormControl;\n city: FormControl;\n countryCode: FormControl;\n state: FormControl;\n zipCode: FormControl;\n }>;\n\n countryCodes$: Observable;\n countryRegions$: Observable;\n countryName$: Observable;\n loading = false;\n\n private subscriptions = new Subscription();\n\n constructor(\n private languageService: LanguageService,\n private manageBookingService: ManageBookingService\n ) {}\n\n ngOnInit(): void {\n const countries$ = this.languageService.translate('countryCodes').pipe(\n map((codes) => {\n if (!Array.isArray(codes)) {\n return [];\n }\n\n return codes;\n }),\n finShare()\n );\n\n this.countryCodes$ = countries$.pipe(\n map((codes) => codes.map((code) => ({ value: code.countryCode, name: code.name }))),\n finShare()\n );\n\n this.countryName$ = combineLatest([this.arrivalCountryCode$, this.countryCodes$, this.passenger$]).pipe(\n map(([arrivalCountryCode, countryCodes, passenger]) => {\n const countryOfResidence: FinnairApisRequirementCountryOfResidence = passenger.apisCpr?.requirements.find(\n (r) => r.key === FinnairApisRequirementKeyEnum.COUNTRY_OF_RESIDENCE\n )?.data as FinnairApisRequirementCountryOfResidence;\n const countryCode =\n this.addressType === FinnairApisRequirementKeyEnum.HOME_ADDRESS\n ? (countryOfResidence?.countryOfResidence ?? arrivalCountryCode)\n : arrivalCountryCode;\n\n const country = countryCodes.find((code) => code.value === countryCode);\n return country ? country.name : arrivalCountryCode;\n })\n );\n\n this.countryRegions$ = combineLatest([this.arrivalCountryCode$, this.passenger$]).pipe(\n map(([arrivalCountryCode, passenger]) => this.getCountryCode(this.addressType, passenger, arrivalCountryCode)),\n switchMap((countryCode) =>\n this.languageService.translate(`COUNTRY_REGIONS.${countryCode?.toLowerCase()}`, {}, { logErrors: false })\n ),\n map((regions) => {\n if (!regions) {\n return [];\n }\n\n return Object.keys(regions).map((region) => ({ value: region.toUpperCase(), name: regions[region] }));\n })\n );\n\n this.subscriptions.add(\n combineLatest([this.passenger$, this.arrivalCountryCode$])\n .pipe(take(1))\n .subscribe(([passenger, arrivalCountryCode]) => {\n const address = passenger.apisCpr?.requirements?.find((requirement) => requirement.key === this.addressType)\n ?.data as FinnairApisRequirementDestinationAddress | FinnairApisRequirementHomeAddress;\n\n const addressValue =\n (this.addressType === FinnairApisRequirementKeyEnum.DESTINATION_ADDRESS\n ? (address as FinnairApisRequirementDestinationAddress)?.destinationAddress\n : (address as FinnairApisRequirementHomeAddress)?.homeAddress) ?? '';\n\n this.form = new FormGroup({\n address: new FormControl(addressValue, [\n Validators.required,\n Validators.minLength(1),\n Validators.maxLength(35),\n Validators.pattern(ADDRESS_PATTERN),\n ]),\n city: new FormControl(address?.city ?? '', [\n Validators.required,\n Validators.maxLength(35),\n Validators.pattern(CITY_PATTERN),\n ]),\n countryCode: new FormControl(\n this.getCountryCode(this.addressType, passenger, arrivalCountryCode),\n Validators.required\n ),\n state: new FormControl(address?.state ?? '', [Validators.required, Validators.pattern(STATE_PATTERN)]),\n zipCode: new FormControl(address?.zipCode ?? '', [\n Validators.required,\n Validators.minLength(1),\n Validators.maxLength(20),\n Validators.pattern(ZIP_CODE_PATTERN),\n ]),\n });\n })\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions = unsubscribe(this.subscriptions);\n }\n\n saveAndContinue(): void {\n if (this.form.valid) {\n this.form.disable();\n this.loading = true;\n\n if (this.form.dirty) {\n const request$ = combineLatest([this.boundId$, this.passenger$]).pipe(\n map(([boundId, passenger]) => [\n {\n advancePassengerInformation: [\n {\n [this.addressType === FinnairApisRequirementKeyEnum.DESTINATION_ADDRESS\n ? 'destinationAddress'\n : 'homeAddress']: this.form.value,\n travelerId: passenger.id,\n },\n ],\n boundId,\n } as FinnairAdvancePassengerInformationRequestV2,\n ])\n );\n this.subscriptions.add(\n request$\n .pipe(\n take(1),\n switchMap((request) => this.manageBookingService.updateRegulatoryDetails(request))\n )\n .subscribe({\n next: () => {\n this.form.enable();\n this.loading = false;\n this.completed.emit();\n },\n error: () => {\n this.form.enable();\n this.loading = false;\n },\n })\n );\n } else {\n this.completed.emit();\n }\n } else {\n Object.keys(this.form.controls).forEach((field) => {\n const control = this.form.get(field);\n control.markAsTouched({ onlySelf: true });\n });\n }\n }\n\n private getCountryCode(\n addressType: AddressType,\n passenger: FinnairPassengerItemWithApis,\n arrivalCountryCode = ''\n ): string {\n const address = passenger.apisCpr?.requirements?.find((requirement) => requirement.key === this.addressType)\n ?.data as FinnairApisRequirementDestinationAddress | FinnairApisRequirementHomeAddress;\n\n const countryCode =\n addressType === FinnairApisRequirementKeyEnum.DESTINATION_ADDRESS\n ? (address as FinnairApisRequirementDestinationAddress)?.destinationCountry\n : (address as FinnairApisRequirementHomeAddress)?.homeCountry;\n\n if (countryCode) {\n return countryCode;\n }\n\n const countryOfResidence: FinnairApisRequirementCountryOfResidence = passenger.apisCpr?.requirements.find(\n (r) => r.key === FinnairApisRequirementKeyEnum.COUNTRY_OF_RESIDENCE\n )?.data as FinnairApisRequirementCountryOfResidence;\n\n return addressType === FinnairApisRequirementKeyEnum.HOME_ADDRESS\n ? (countryOfResidence?.countryOfResidence ?? arrivalCountryCode)\n : arrivalCountryCode;\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\n\nimport { map, switchMap, take } from 'rxjs/operators';\nimport { combineLatest, Observable, Subscription } from 'rxjs';\nimport { SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\n\nimport {\n ControlData,\n FinnairAdvancePassengerInformationRequestV2,\n FinnairApisRequirementEmergencyContact,\n FinnairApisRequirementKeyEnum,\n FinnairEmergencyContactData,\n FinnairOrder,\n FinnairPhoneType,\n} from '@fcom/dapi/api/models';\nimport { SelectOption } from '@fcom/common/interfaces';\nimport { ButtonType } from '@fcom/ui-components/components/buttons';\nimport { NAME_PATTERN, PHONE_PATTERN, PHONE_PREFIX_PATTERN, unsubscribe } from '@fcom/core/utils';\nimport { PhonePrefixService } from '@fcom/common/services';\nimport { NotificationTheme } from '@fcom/ui-components/components/notifications';\n\nimport { FinnairPassengerItemWithApis } from '../../../check-in/interface/check-in.interface';\nimport { ManageBookingService } from '../../../../services';\n\n@Component({\n selector: 'fin-apis-emergency-contact',\n templateUrl: 'apis-emergency-contact.component.html',\n styleUrls: ['./../apis-form.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ApisEmergencyContactComponent implements OnInit, OnDestroy {\n readonly SvgLibraryIcon = SvgLibraryIcon;\n readonly ButtonType = ButtonType;\n\n @Input()\n order$: Observable;\n @Input()\n boundId$: Observable;\n @Input()\n passenger$: Observable;\n @Input()\n controlData: ControlData;\n\n @Output() completed = new EventEmitter();\n\n phonePrefixes$: Observable;\n\n emergencyContactForm: FormGroup<{\n contactName: FormControl;\n phonePrefix: FormControl;\n phoneNumber: FormControl;\n }>;\n\n loading = false;\n\n private subscriptions = new Subscription();\n\n constructor(\n private phonePrefixService: PhonePrefixService,\n private manageBookingService: ManageBookingService\n ) {}\n\n ngOnInit(): void {\n this.phonePrefixes$ = this.phonePrefixService.setupPhonePrefixes(false).pipe(take(1));\n this.subscriptions.add(\n this.passenger$.pipe(take(1)).subscribe((passenger) => {\n const emergencyContactData: FinnairApisRequirementEmergencyContact = passenger.apisCpr?.requirements?.find(\n (requirement) => requirement.key === FinnairApisRequirementKeyEnum.EMERGENCY_CONTACT\n )?.data as FinnairApisRequirementEmergencyContact;\n this.emergencyContactForm = new FormGroup({\n contactName: new FormControl(emergencyContactData?.contactName, [\n Validators.required,\n Validators.minLength(2),\n Validators.maxLength(20),\n Validators.pattern(NAME_PATTERN),\n ]),\n phonePrefix: new FormControl(\n emergencyContactData?.phoneNumber?.countryCode && emergencyContactData?.phoneNumber?.countryPrefix\n ? `${emergencyContactData?.phoneNumber?.countryCode}|${emergencyContactData?.phoneNumber?.countryPrefix}`\n : '',\n [Validators.required, Validators.pattern(PHONE_PREFIX_PATTERN)]\n ),\n phoneNumber: new FormControl(emergencyContactData?.phoneNumber?.number ?? '', [\n Validators.required,\n Validators.pattern(PHONE_PATTERN),\n ]),\n });\n })\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions = unsubscribe(this.subscriptions);\n }\n\n saveAndContinue(): void {\n if (this.emergencyContactForm.dirty && this.emergencyContactForm.valid) {\n this.emergencyContactForm.disable();\n this.loading = true;\n this.subscriptions.add(\n this.createEmergencyContactUpdateRequest()\n .pipe(\n take(1),\n switchMap((request) => this.manageBookingService.updateRegulatoryDetails(request))\n )\n .subscribe({\n next: () => {\n this.emergencyContactForm.enable();\n this.loading = false;\n this.completed.emit();\n },\n error: () => {\n this.emergencyContactForm.enable();\n this.loading = false;\n },\n })\n );\n } else if (this.emergencyContactForm.valid) {\n this.completed.emit();\n } else {\n this.markFormAsTouched();\n }\n }\n\n private markFormAsTouched(): void {\n Object.keys(this.emergencyContactForm.controls).forEach((field) => {\n const control = this.emergencyContactForm.get(field);\n control.markAsTouched({ onlySelf: true });\n });\n }\n private createEmergencyContactUpdateRequest(): Observable {\n return combineLatest([this.boundId$, this.passenger$]).pipe(\n map(([boundId, passenger]) => {\n const phonePrefixValues = this.emergencyContactForm.controls.phonePrefix.value.split('|');\n return [\n {\n advancePassengerInformation: [\n {\n emergencyContact: {\n contactName: this.emergencyContactForm.controls.contactName.value,\n phoneNumber: {\n countryCode: phonePrefixValues[0],\n countryPrefix: phonePrefixValues[1],\n number: this.emergencyContactForm.controls.phoneNumber.value,\n type: FinnairPhoneType.EMERGENCY,\n },\n } as FinnairEmergencyContactData,\n travelerId: passenger.id,\n },\n ],\n boundId,\n },\n ];\n }),\n take(1)\n );\n }\n\n protected readonly NotificationTheme = NotificationTheme;\n}\n","
\n
\n

{{ 'MMB.apis.form.emergencyContact.title' | finLocalization }}

\n\n \n {{ 'MMB.apis.form.emergencyContact.notification' | finLocalization }}\n \n
\n\n
\n {{ 'MMB.apis.form.passport.mandatoryFields' | finLocalization }}\n
\n\n
\n \n
\n\n
\n \n \n \n \n
\n
\n\n
\n \n
\n
\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\n\nimport { map, switchMap, take } from 'rxjs/operators';\nimport { combineLatest, Observable, Subscription } from 'rxjs';\nimport { SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\n\nimport { NotificationTheme } from '@fcom/ui-components/components/notifications';\nimport { DatepickerTheme } from '@fcom/service-forms/components/common/datepicker.component';\nimport {\n FinnairAdvancePassengerInformationRequestV2,\n FinnairApisRequirementKeyEnum,\n FinnairApisRequirementPurposeOfVisit,\n PurposeOfVisitEnum,\n} from '@fcom/dapi/api/models';\nimport { SelectOption } from '@fcom/common/interfaces';\nimport { ButtonType } from '@fcom/ui-components/components/buttons';\nimport { LocalDate, unsubscribe } from '@fcom/core/utils';\nimport { ModalButtons } from '@fcom/ui-components/components/modal';\nimport { LanguageService } from '@fcom/ui-translate/services/language.service';\n\nimport { FinnairPassengerItemWithApis } from '../../../check-in/interface/check-in.interface';\nimport { ManageBookingService } from '../../../../services';\n\n@Component({\n selector: 'fin-apis-purpose-of-visit',\n templateUrl: './apis-purpose-of-visit.component.html',\n styleUrl: './../apis-form.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ApisPurposeOfVisitComponent implements OnInit, OnDestroy {\n readonly SvgLibraryIcon = SvgLibraryIcon;\n readonly NotificationTheme = NotificationTheme;\n readonly DatepickerTheme = DatepickerTheme;\n readonly ButtonType = ButtonType;\n readonly ModalButtons = ModalButtons;\n readonly LocalDate = LocalDate;\n\n @Input()\n boundId$: Observable;\n\n @Input()\n passenger$: Observable;\n\n @Output() completed = new EventEmitter();\n\n purposeOfVisitForm: FormGroup<{\n purposeOfVisit: FormControl;\n }>;\n\n purposes$: Observable;\n loading = false;\n\n private subscriptions = new Subscription();\n\n constructor(\n private languageService: LanguageService,\n private manageBookingService: ManageBookingService\n ) {}\n\n ngOnInit(): void {\n this.subscriptions.add(\n this.passenger$.pipe(take(1)).subscribe((passenger) => {\n const purposeOfVisitData: FinnairApisRequirementPurposeOfVisit = passenger.apisCpr?.requirements?.find(\n (requirement) => requirement.key === FinnairApisRequirementKeyEnum.PURPOSE_OF_VISIT\n )?.data as FinnairApisRequirementPurposeOfVisit;\n this.purposeOfVisitForm = new FormGroup({\n purposeOfVisit: new FormControl(purposeOfVisitData?.purposeOfVisit?.toUpperCase() ?? '', Validators.required),\n });\n })\n );\n\n this.purposes$ = this.languageService.translate('MMB.apis.form.purposeOfVisit.options').pipe(\n map((options) => {\n return Object.keys(options).map((key) => ({\n name: options[key] ?? key,\n value: key.toUpperCase(),\n }));\n })\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions = unsubscribe(this.subscriptions);\n }\n\n saveAndContinue(): void {\n if (this.purposeOfVisitForm.valid && this.purposeOfVisitForm.dirty) {\n this.purposeOfVisitForm.disable();\n this.loading = true;\n this.subscriptions.add(\n this.createPurposeOfVisitUpdateRequest()\n .pipe(\n take(1),\n switchMap((request) => this.manageBookingService.updateRegulatoryDetails(request))\n )\n .subscribe({\n next: () => {\n this.purposeOfVisitForm.enable();\n this.loading = false;\n this.completed.emit();\n },\n error: () => {\n this.purposeOfVisitForm.enable();\n this.loading = false;\n },\n })\n );\n } else if (this.purposeOfVisitForm.valid) {\n this.completed.emit();\n } else {\n Object.keys(this.purposeOfVisitForm.controls).forEach((field) => {\n const control = this.purposeOfVisitForm.get(field);\n control.markAsTouched({ onlySelf: true });\n });\n }\n }\n\n private createPurposeOfVisitUpdateRequest(): Observable {\n return combineLatest([this.boundId$, this.passenger$]).pipe(\n map(([boundId, passenger]) => [\n {\n advancePassengerInformation: [\n {\n purposeOfVisit: PurposeOfVisitEnum[this.purposeOfVisitForm.controls.purposeOfVisit.value],\n travelerId: passenger.id,\n },\n ],\n boundId,\n },\n ]),\n take(1)\n );\n }\n}\n","
\n
\n

{{ 'MMB.apis.form.purposeOfVisit.title' | finLocalization }}

\n
\n\n
\n \n \n
\n\n
\n\n
\n \n
\n
\n","\n\n\n \n \n
\n
\n \n \n
\n
\n
{{ passenger.firstName }} {{ passenger.lastName }}
\n
\n \n
\n
\n
\n \n
\n\n \n
\n
\n
\n \n @switch (step) {\n @case (FinnairApisRequirementKeyEnum.PASSPORT) {\n \n }\n\n @case (FinnairApisRequirementKeyEnum.COUNTRY_OF_RESIDENCE) {\n \n \n }\n\n @case (FinnairApisRequirementKeyEnum.VISA) {\n \n }\n\n @case (FinnairApisRequirementKeyEnum.PERMANENT_RESIDENT_CARD) {\n \n }\n\n @case (FinnairApisRequirementKeyEnum.DESTINATION_ADDRESS) {\n \n }\n\n @case (FinnairApisRequirementKeyEnum.HOME_ADDRESS) {\n \n }\n\n @case (FinnairApisRequirementKeyEnum.EMERGENCY_CONTACT) {\n \n }\n\n @case (FinnairApisRequirementKeyEnum.PURPOSE_OF_VISIT) {\n \n }\n\n @default {\n
\n \n
\n }\n }\n
\n
\n
\n
\n
\n
\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport { BehaviorSubject, combineLatest, merge, Observable, Subject, Subscription } from 'rxjs';\nimport { filter, map, take } from 'rxjs/operators';\nimport { SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\n\nimport {\n FinnairApisRequirementKeyEnum,\n FinnairBoundItem,\n FinnairCompletionStatus,\n FinnairGender,\n FinnairLocation,\n FinnairOrder,\n FinnairTravelRequirementsEligibility,\n} from '@fcom/dapi/api/models';\nimport { ModalButtons } from '@fcom/ui-components/components/modal';\nimport { LoaderType, SelectOption } from '@fcom/common/interfaces';\nimport { finShare } from '@fcom/rx/operators/finShare';\nimport { LanguageService } from '@fcom/ui-translate/services/language.service';\nimport { ButtonTheme, ButtonType } from '@fcom/ui-components/components/buttons';\nimport { IconPosition } from '@fcom/ui-components/components/icons';\nimport { unsubscribe } from '@fcom/core/utils';\nimport { ScrollService } from '@fcom/common/services';\nimport { CountryCode } from '@fcom/core/interfaces';\n\nimport { FinnairPassengerItemWithApis } from '../../../check-in/interface/check-in.interface';\nimport { generateCountryOptions } from '../../../../utils/check-in.utils';\n\nconst ALL_STEPS: FinnairApisRequirementKeyEnum[] = [\n FinnairApisRequirementKeyEnum.PASSPORT,\n FinnairApisRequirementKeyEnum.COUNTRY_OF_RESIDENCE,\n FinnairApisRequirementKeyEnum.VISA,\n FinnairApisRequirementKeyEnum.PERMANENT_RESIDENT_CARD,\n FinnairApisRequirementKeyEnum.PURPOSE_OF_VISIT,\n FinnairApisRequirementKeyEnum.DESTINATION_ADDRESS,\n FinnairApisRequirementKeyEnum.HOME_ADDRESS,\n FinnairApisRequirementKeyEnum.EMERGENCY_CONTACT,\n];\ntype StepDirection = 'next' | 'previous';\n\ninterface ApisNavigation {\n currentStep: FinnairApisRequirementKeyEnum;\n direction?: StepDirection;\n}\n\n@Component({\n selector: 'fin-apis-pax',\n templateUrl: 'apis-pax.component.html',\n styleUrls: ['./apis-pax.component.scss', './../apis-form.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ApisPaxComponent implements OnInit, OnDestroy {\n readonly ModalButtons = ModalButtons;\n readonly ButtonTheme = ButtonTheme;\n readonly ButtonType = ButtonType;\n readonly SvgLibraryIcon = SvgLibraryIcon;\n readonly IconPosition = IconPosition;\n readonly LoaderType = LoaderType;\n readonly FinnairApisRequirementKeyEnum = FinnairApisRequirementKeyEnum;\n\n @Input() order$: Observable;\n @Input() boundId$: Observable;\n @Input() passenger$: Observable;\n @Input() ctaOpenApisFormAction$: Observable;\n\n @Output() goToMmb: EventEmitter = new EventEmitter();\n\n @ViewChild('scrollContainer', { static: false }) scrollContainer: ElementRef;\n\n subviewOpen$: BehaviorSubject = new BehaviorSubject(false);\n nationalities$: Observable;\n countries$: Observable;\n genders$: Observable;\n step$: Observable;\n steps$: Observable;\n navigate$: Subject = new Subject();\n requiredTravelRequirements$: Observable;\n arrivalCountryCode$: Observable;\n countryCodes$: Observable;\n\n private subscriptions = new Subscription();\n\n constructor(\n private languageService: LanguageService,\n private scrollService: ScrollService\n ) {}\n\n ngOnInit(): void {\n this.steps$ = combineLatest([this.order$, this.boundId$, this.passenger$]).pipe(\n map(([order, boundId, passenger]) => {\n const isCarrierConnect = order.eligibilities?.checkIn?.find((e) => e.id === boundId)?.isCarrierConnect;\n return ALL_STEPS.filter((step) =>\n passenger.apisCpr?.requirements.some(\n (r) =>\n r.key === step &&\n r.required &&\n (!isCarrierConnect || (isCarrierConnect && r.status !== FinnairCompletionStatus.COMPLETED))\n )\n );\n }),\n finShare()\n );\n\n const navigateSteps$ = combineLatest([this.navigate$, this.steps$]);\n\n this.arrivalCountryCode$ = combineLatest([this.order$, this.boundId$]).pipe(\n map(([order, boundId]) => {\n const bound = order.bounds.find((b: FinnairBoundItem) => b.id === boundId);\n const arrivalCityCode = bound?.arrival.locationCode;\n const location: FinnairLocation = order.locations[arrivalCityCode];\n\n return location?.countryCode || '';\n })\n );\n\n this.step$ = merge(\n navigateSteps$.pipe(\n map(([navigate, steps]) => {\n const currentStepIndex = navigate.currentStep ? steps.findIndex((step) => step === navigate.currentStep) : 0;\n if (this.shouldGoToMainPaxPage(navigate, steps)) {\n return steps[0];\n }\n return navigate.direction === 'next' ? steps[currentStepIndex + 1] : steps[currentStepIndex - 1];\n })\n ),\n this.steps$.pipe(\n take(1),\n map((steps) => steps[0])\n )\n ).pipe(finShare());\n\n this.subscriptions.add(\n this.step$.subscribe(() => {\n if (this.scrollContainer) {\n this.scrollService.scrollToImmediate(this.scrollContainer);\n }\n })\n );\n\n this.subscriptions.add(\n navigateSteps$.pipe(filter(([navigate, steps]) => this.shouldGoToMainPaxPage(navigate, steps))).subscribe(() => {\n this.subviewOpen$.next(false);\n })\n );\n\n this.requiredTravelRequirements$ = this.order$.pipe(\n map((order) =>\n Object.entries(order.eligibilities.travelRequirement).map(\n ([key, _]: [string, FinnairTravelRequirementsEligibility]) => key\n )\n )\n );\n\n this.countryCodes$ = combineLatest([\n this.languageService.translate('countryCodes'),\n this.languageService.translate('MMB.specialCountryCodes'),\n ]).pipe(\n map(([countryCodes, specialCountryCodes]) => {\n return countryCodes.map((code) => {\n return (\n specialCountryCodes?.find((specialCountryCode) => specialCountryCode.countryCode === code.countryCode) ??\n code\n );\n });\n }),\n finShare()\n );\n\n this.nationalities$ = combineLatest([this.order$, this.passenger$, this.countryCodes$]).pipe(\n map(([order, passenger, codes]) => {\n const options = codes\n .map((code) => ({ value: code.countryCode, name: code.nationality ?? code.name }))\n .sort((a, b) => a.name.localeCompare(b.name));\n return generateCountryOptions(options, order, passenger);\n }),\n finShare()\n );\n\n this.countries$ = combineLatest([this.order$, this.passenger$, this.countryCodes$]).pipe(\n map(([order, passenger, codes]) => {\n const options = codes\n .map((code) => ({ value: code.countryCode, name: code.name }))\n .sort((a, b) => a.name.localeCompare(b.name));\n return generateCountryOptions(options, order, passenger);\n }),\n finShare()\n );\n\n this.genders$ = this.languageService.translate('MMB.apis.form.genders').pipe(\n map((genders) => {\n return [FinnairGender.MALE, FinnairGender.FEMALE, FinnairGender.UNSPECIFIED].map((gender) => ({\n name: genders[gender.toLowerCase()] ?? gender,\n value: gender,\n }));\n })\n );\n\n this.subscriptions.add(\n combineLatest([this.ctaOpenApisFormAction$, this.passenger$.pipe(map((passenger) => passenger.id))])\n .pipe(filter(([ctaActionPassengerId, passengerId]) => ctaActionPassengerId === passengerId))\n .subscribe(() => this.showApisForm())\n );\n }\n\n private shouldGoToMainPaxPage(navigate: ApisNavigation, steps: FinnairApisRequirementKeyEnum[]): boolean {\n const currentStepIndex = navigate.currentStep ? steps.findIndex((step) => step === navigate.currentStep) : 0;\n return (\n (navigate.direction === 'previous' && navigate.currentStep === steps[0]) ||\n (navigate.direction === 'next' && !steps[currentStepIndex + 1])\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions = unsubscribe(this.subscriptions);\n }\n\n navigateBack(currentStep: FinnairApisRequirementKeyEnum): void {\n this.navigate$.next({ currentStep, direction: 'previous' });\n }\n\n nextStep(currentStep: FinnairApisRequirementKeyEnum): void {\n this.navigate$.next({ currentStep, direction: 'next' });\n }\n\n showApisForm(): void {\n this.subviewOpen$.next(true);\n }\n}\n","\n {{ 'MMB.checkIn.steps.apis.informationMessage' | finLocalization }}\n

\n\n\n

\n {{ 'MMB.checkIn.steps.apis.informationMessageApisComplete' | finLocalization }}\n

\n
\n\n\n {{ 'MMB.checkIn.steps.apis.notification' | finLocalization }}\n\n\n\n {{ 'MMB.apis.notification.inAgentReval' | finLocalization }}\n\n\n

\n {{ 'MMB.checkIn.funnel.steps.apis.passengers' | finLocalization }}\n

\n\n\n\n {{\n ((passengerInAgentReval$ | async)\n ? 'MMB.apis.ctaButton.inAgentRevalDescription'\n : (canContinue$ | async)\n ? 'MMB.checkIn.steps.apis.nextStepButton'\n : (passengers$ | finObsToArray)?.length === 1\n ? 'MMB.checkIn.steps.apis.provideAllInformation'\n : 'MMB.checkIn.steps.apis.nextPassengerApisForm'\n ) | finLocalization\n }}\n \n\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { BehaviorSubject, combineLatest, Observable, Subscription } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\nimport { SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\n\nimport { FinnairCompletionStatus, FinnairOrder } from '@fcom/dapi/api/models';\nimport { ModalButtons } from '@fcom/ui-components/components/modal';\nimport { ButtonLayout, ButtonPosition, ButtonTheme, ButtonType } from '@fcom/ui-components/components/buttons';\nimport { LanguageService } from '@fcom/ui-translate/services/language.service';\nimport { RootPaths } from '@fcom/core/constants';\nimport { MANAGE_BOOKING_STEPS } from '@fcom/common-booking/manage-booking-config';\nimport { NotificationLayout, NotificationTheme } from '@fcom/ui-components/components/notifications';\n\nimport { CheckInService } from '../../../services/check-in.service';\nimport { FinnairPassengerItemWithApis } from '../interface/check-in.interface';\n\n@Component({\n selector: 'fin-check-in-apis-route',\n templateUrl: 'check-in-apis-route.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckInApisRouteComponent implements OnInit, OnDestroy {\n readonly ModalButtons = ModalButtons;\n readonly ButtonType = ButtonType;\n readonly ButtonTheme = ButtonTheme;\n readonly ButtonPosition = ButtonPosition;\n readonly ButtonLayout = ButtonLayout;\n readonly NotificationTheme = NotificationTheme;\n readonly SvgLibraryIcon = SvgLibraryIcon;\n readonly NotificationLayout = NotificationLayout;\n\n order$: Observable;\n boundId$: Observable;\n passengers$: Observable;\n canContinue$: Observable;\n passengerInAgentReval$: Observable;\n ctaOpenApisFormAction$: BehaviorSubject = new BehaviorSubject(undefined);\n isApisCompleted$: Observable;\n\n private subscriptions = new Subscription();\n\n constructor(\n private router: Router,\n private languageService: LanguageService,\n private checkInService: CheckInService\n ) {}\n\n ngOnInit(): void {\n this.passengers$ = this.checkInService.getPassengersWithApis();\n this.passengerInAgentReval$ = this.passengers$.pipe(\n map((passengers) => passengers.some((pax) => pax.isInAgentReval))\n );\n this.order$ = this.checkInService.getOrder();\n this.boundId$ = this.checkInService.getBound().pipe(map((b) => b.id));\n this.isApisCompleted$ = this.checkInService.isApisCompleted();\n this.canContinue$ = combineLatest([this.order$, this.boundId$, this.passengers$]).pipe(\n map(([order, boundId, passengers]) => {\n const allPassengerIds = passengers.map(({ id }) => id);\n\n const segmentCheckInEligibilities =\n order.eligibilities?.checkIn?.find((e) => e.id === boundId)?.flightTravelerEligibility ?? {};\n\n const values = Object.values(segmentCheckInEligibilities);\n return (\n values.length > 0 &&\n values.every((eligibility) => {\n const allowedEligibilities = eligibility.filter((e) => e.isAllowedToAcceptCheckIn);\n return (\n allowedEligibilities.length > 0 &&\n allowedEligibilities.every((e) => allPassengerIds.every((paxId) => e.travelerIds.includes(paxId)))\n );\n })\n );\n })\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n continueToNextStep(): void {\n this.subscriptions.add(\n combineLatest([\n this.canContinue$,\n this.passengers$.pipe(\n map(\n (passengers) =>\n passengers.find((passenger) => passenger.apisCpr?.status !== FinnairCompletionStatus.COMPLETED)?.id\n )\n ),\n this.passengers$.pipe(map((passengers) => passengers.find((passenger) => !!passenger.isInAgentReval)?.id)),\n this.checkInService.isExitRowSeatConfirmationRequired(),\n ])\n .pipe(take(1))\n .subscribe(\n ([canContinue, passengerIdWithMissingDetails, passengerWithAgentReval, exitRowSeatsConfirmationRequired]) => {\n if (passengerWithAgentReval) {\n this.ctaOpenApisFormAction$.next(passengerWithAgentReval);\n } else if (passengerIdWithMissingDetails) {\n this.ctaOpenApisFormAction$.next(passengerIdWithMissingDetails);\n } else if (exitRowSeatsConfirmationRequired && canContinue) {\n this.checkInService.setShowExitRowSeatsNotification(true);\n } else if (canContinue) {\n this.checkInService.triggerNextCheckInStep();\n }\n }\n )\n );\n }\n\n goToMmb(): void {\n this.router.navigateByUrl(\n `/${this.languageService.langValue}/${RootPaths.MANAGE_BOOKING_ROOT}/${MANAGE_BOOKING_STEPS.VIEW.path}`\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { createRoute, ErrorComponent } from '@fcom/common';\nimport { enumValues } from '@fcom/core/utils';\nimport { TourOperator } from '@fcom/common-booking/interfaces/tour-operator.interface';\nimport { ERROR_STEPS, MANAGE_BOOKING_STEPS } from '@fcom/common-booking/manage-booking-config';\n\nimport { checkInOrMmb } from './services/check-in-or-mmb.guard';\nimport { CheckInEntryModule } from './modules/check-in-entry/check-in-entry.module';\nimport { CheckInEntryRouteComponent } from './modules/check-in-entry/routes/check-in-entry-route.component';\nimport { AncillaryPurchaseCheckoutGuard } from './modules/ancillary-purchase-checkout/services/ancillary-purchase-checkout.guard';\nimport { AncillaryPurchaseCheckoutRouteComponent } from './modules/ancillary-purchase-checkout/routes';\nimport { ManageBookingEntryRouteComponent } from './modules/entry/routes/manage-booking-entry-route.component';\nimport { ManageBookingEntryModule } from './modules/entry/manage-booking-entry.module';\nimport { ManageBookingViewRouteComponent } from './modules/view/routes/view-route.component';\nimport { ManageBookingViewModule } from './modules/view/view.module';\nimport { ManageBookingReviewModule } from './modules/review/review.module';\nimport { ViewGuard } from './modules/view/services/view.guard';\nimport { PassengerDetailsGuard } from './modules/view-passengers/services/passenger-details.guard';\nimport { ManageBookingPassengerDetailsRouteComponent } from './modules/view-passengers/routes/passenger-details-route.component';\nimport { ManageBookingRoutingComponent } from './components/manage-booking-routing/manage-booking-routing.component';\nimport { ManageBookingViewPassengersModule } from './modules/view-passengers/view-passengers.module';\nimport { ManageBookingReviewRouteComponent } from './modules/review/routes/review-route.component';\nimport { ancillaryPurchaseReviewGuard } from './modules/review/services/ancillary-purchase-review.guard';\nimport { ManageBookingPurchaseSuccessRouteComponent } from './modules/purchase-success/routes/purchase-success-route.component';\nimport { ManageBookingPurchaseSuccessGuard } from './modules/purchase-success/services/purchase-success.guard';\nimport { ManageBookingPurchaseSuccessModule } from './modules/purchase-success/purchase-success.module';\nimport { AncillaryPurchaseCheckoutModule } from './modules/ancillary-purchase-checkout';\nimport { ManageBookingErrorRouteGuard } from './services/error-route.guard';\nimport { PassengerDetailsDeactivateGuard } from './modules/view-passengers/services/passenger-details-deactivate.guard';\nimport { ManageBookingTravelPreparationsRouteComponent } from './modules/travel-preparations/routes/travel-preparations-route.component';\nimport { TravelPreparationsGuard } from './modules/travel-preparations/services/travel-preparations.guard';\nimport { ManageBookingTravelPreparationsModule } from './modules/travel-preparations/travel-preparations.module';\nimport { CheckInFlowGuard } from './services/check-in-flow-guard';\nimport { CheckInBoardingPassRouteComponent } from './modules/check-in/routes/check-in-boarding-pass-route.component';\nimport { CheckInModule } from './modules/check-in/check-in.module';\nimport { CarTrawlerWidgetModule } from './modules/common/components/cartrawler-widget/cartrawler-widget.module';\nimport { ManageBookingCarRentalModule } from './modules/car-rental/car-rental.module';\nimport { ManageBookingCarRentalRouteComponent } from './modules/car-rental/routes/car-rental-route.component';\nimport { CarRentalGuard } from './modules/car-rental/services/car-rental.guard';\nimport { CheckInFunnelRoutingComponent } from './modules/check-in/routes/check-in-funnel-routing.component';\nimport { CheckInConfirmationRouteComponent } from './modules/check-in/routes/check-in-confirmation-route.component';\nimport { CheckInPassengersRouteComponent } from './modules/check-in/routes/check-in-passengers-route.component';\nimport { CheckInSeatmapRouteComponent } from './modules/check-in/routes/check-in-seatmap-route.component';\nimport { CheckInStep } from './enums';\nimport { CheckInKnowYourTripRouteComponent } from './modules/check-in/routes/check-in-know-your-trip-route.component';\nimport { CheckInRulesRouteComponent } from './modules/check-in/routes/check-in-rules-route.component';\nimport { CheckInApisRouteComponent } from './modules/check-in/routes/check-in-apis-route.component';\n\nexport const manageBookingRoutes: Routes = [\n {\n path: '',\n component: ManageBookingRoutingComponent,\n children: [\n createRoute(MANAGE_BOOKING_STEPS.CHECK_IN, CheckInEntryRouteComponent, [], [checkInOrMmb]),\n {\n ...createRoute(MANAGE_BOOKING_STEPS.CHECK_IN_STEPS, CheckInFunnelRoutingComponent, [], [CheckInFlowGuard]),\n children: [\n {\n path: CheckInStep.PASSENGERS,\n component: CheckInPassengersRouteComponent,\n },\n {\n path: CheckInStep.APIS,\n component: CheckInApisRouteComponent,\n },\n {\n path: CheckInStep.SEATMAP,\n component: CheckInSeatmapRouteComponent,\n },\n {\n path: CheckInStep.KYT,\n component: CheckInKnowYourTripRouteComponent,\n },\n {\n path: CheckInStep.KYT + '/payment/error',\n data: {\n isPaymentError: true,\n },\n component: CheckInKnowYourTripRouteComponent,\n },\n {\n path: CheckInStep.RULES,\n component: CheckInRulesRouteComponent,\n },\n {\n path: CheckInStep.RULES + '/payment/success',\n data: {\n isPaymentSuccess: true,\n },\n component: CheckInRulesRouteComponent,\n },\n {\n path: CheckInStep.CONFIRMATION,\n component: CheckInConfirmationRouteComponent,\n },\n ],\n },\n createRoute(\n MANAGE_BOOKING_STEPS.CHECK_IN_BOARDING_PASS,\n CheckInBoardingPassRouteComponent,\n [],\n [CheckInFlowGuard],\n []\n ),\n createRoute(MANAGE_BOOKING_STEPS.ENTRY, ManageBookingEntryRouteComponent, [], [checkInOrMmb]),\n ...enumValues(TourOperator).map((operator) =>\n createRoute({ path: operator, data: { operator, server: true } }, ManageBookingEntryRouteComponent, [], [], [])\n ),\n createRoute(MANAGE_BOOKING_STEPS.VIEW, ManageBookingViewRouteComponent, [], [ViewGuard]),\n createRoute(\n MANAGE_BOOKING_STEPS.VIEW_PASSENGERS,\n ManageBookingPassengerDetailsRouteComponent,\n [PassengerDetailsDeactivateGuard],\n [PassengerDetailsGuard]\n ),\n createRoute(MANAGE_BOOKING_STEPS.CAR_RENTAL, ManageBookingCarRentalRouteComponent, [], [CarRentalGuard]),\n createRoute(\n MANAGE_BOOKING_STEPS.TRAVEL_PREPARATION,\n ManageBookingTravelPreparationsRouteComponent,\n [],\n [TravelPreparationsGuard]\n ),\n createRoute(MANAGE_BOOKING_STEPS.REVIEW, ManageBookingReviewRouteComponent, [], [ancillaryPurchaseReviewGuard]),\n createRoute(\n MANAGE_BOOKING_STEPS.CHECKOUT,\n AncillaryPurchaseCheckoutRouteComponent,\n [],\n [AncillaryPurchaseCheckoutGuard]\n ),\n createRoute(\n MANAGE_BOOKING_STEPS.CONFIRMATION,\n ManageBookingPurchaseSuccessRouteComponent,\n [],\n [ManageBookingPurchaseSuccessGuard]\n ),\n createRoute(ERROR_STEPS.PAYMENT_ERROR, ErrorComponent, [], [ManageBookingErrorRouteGuard]),\n createRoute(ERROR_STEPS.ERROR_ROUTE, ErrorComponent, [], []),\n createRoute(ERROR_STEPS.ERROR, ErrorComponent, [], []),\n ],\n },\n];\n\n@NgModule({\n imports: [\n ManageBookingEntryModule,\n ManageBookingViewModule,\n ManageBookingReviewModule,\n ManageBookingTravelPreparationsModule,\n ManageBookingViewPassengersModule,\n ManageBookingCarRentalModule,\n ManageBookingPurchaseSuccessModule,\n AncillaryPurchaseCheckoutModule,\n CarTrawlerWidgetModule,\n CheckInEntryModule,\n CheckInModule,\n RouterModule.forChild(manageBookingRoutes),\n ],\n declarations: [],\n providers: [ManageBookingErrorRouteGuard],\n exports: [RouterModule],\n})\nexport class ManageBookingRoutesModule {}\n","import { inject } from '@angular/core';\nimport { CanActivateFn } from '@angular/router';\n\nimport { Store } from '@ngrx/store';\nimport { combineLatest, Observable } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\n\nimport { hasOrderData } from '@fcom/common-booking';\n\nimport { StateActions, getStage } from '../../../store';\nimport { MmbStage } from '../../../enums';\n\nexport const ancillaryPurchaseReviewGuard: CanActivateFn = (): Observable => {\n const store$ = inject(Store);\n\n return combineLatest([store$.pipe(hasOrderData()), store$.pipe(getStage())]).pipe(\n take(1),\n map(([hasBooking, stage]: [boolean, MmbStage]) => {\n if (hasBooking) {\n if (stage !== MmbStage.REVIEW) {\n store$.dispatch(StateActions.setStage({ stage: MmbStage.REVIEW }));\n }\n return true;\n }\n\n store$.dispatch(StateActions.setStage({ stage: MmbStage.LOGIN }));\n\n return false;\n })\n );\n};\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { isPlatformServer } from '@angular/common';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { map } from 'rxjs/operators';\n\nimport { LanguageService } from '@fcom/ui-translate';\nimport { ScrollService } from '@fcom/common/services';\nimport { RootPaths } from '@fcom/core/constants';\n\nimport { StateActions } from '../actions';\nimport { MmbStage } from '../../enums';\n\n@Injectable()\nexport class StageEffects {\n stage$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(StateActions.setStage.type),\n map((action) => {\n switch (action.stage) {\n case MmbStage.LOGIN: {\n this.router.navigate(['/', this.lang.langValue || 'en', ...RootPaths.MANAGE_BOOKING_ROOT.split('/')], {\n queryParamsHandling: 'merge',\n });\n this.scrollService.scrollTop();\n return;\n }\n case MmbStage.VIEW: {\n this.router.navigate(\n ['/', this.lang.langValue || 'en', ...RootPaths.MANAGE_BOOKING_ROOT.split('/'), 'view'],\n {\n queryParams: {\n lastName: null,\n recLoc: null,\n fromCheckIn: !!action.fromCheckIn,\n },\n fragment: this.router.parseUrl(this.router.url).fragment,\n queryParamsHandling: 'merge',\n replaceUrl: this.hasParam('lastName') && this.hasParam('recLoc'),\n }\n );\n this.scrollService.scrollTop();\n return;\n }\n case MmbStage.PASSENGERS: {\n this.router.navigate([\n '/',\n this.lang.langValue || 'en',\n ...RootPaths.MANAGE_BOOKING_ROOT.split('/'),\n 'view',\n 'passengers',\n ]);\n this.scrollService.scrollTop();\n return;\n }\n case MmbStage.CHECKOUT: {\n this.router.navigate(\n ['/', this.lang.langValue || 'en', ...RootPaths.MANAGE_BOOKING_ROOT.split('/'), 'checkout'],\n { skipLocationChange: true }\n );\n this.scrollService.scrollTop();\n return;\n }\n case MmbStage.CONFIRMATION: {\n if (!isPlatformServer(this.platform)) {\n this.router.navigate([\n '/',\n this.lang.langValue || 'en',\n ...RootPaths.MANAGE_BOOKING_ROOT.split('/'),\n 'confirmation',\n ]);\n this.scrollService.scrollTop();\n }\n return;\n }\n default: {\n return;\n }\n }\n })\n ),\n { dispatch: false }\n );\n\n constructor(\n private readonly actions$: Actions,\n private router: Router,\n private lang: LanguageService,\n private scrollService: ScrollService,\n @Inject(PLATFORM_ID) private platform: Record\n ) {}\n\n private hasParam(param: string) {\n return this.router.parseUrl(this.router.url).queryParamMap.has(param);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { StoreModule } from '@ngrx/store';\nimport { EffectsModule } from '@ngrx/effects';\n\nimport { PaymentService } from '@fcom/common-booking/services/payment.service';\nimport { RedirectServiceModule } from '@fcom/common-booking/modules/redirect-service/';\nimport { UiTranslateModule } from '@fcom/ui-translate';\nimport { UiComponentsModule } from '@fcom/ui-components';\nimport { ComponentsModule } from '@fcom/common/components';\nimport { CmsModule } from '@fcom/cms';\nimport { CmsPageService, ImagesModule, NavigationModule, PipesModule } from '@fcom/common';\nimport { DirectiveModule } from '@fcom/common/directives';\nimport { LoginModule } from '@fcom/common/login';\nimport { LocalizationProvider } from '@fcom/core/services/language/localization.provider';\nimport { LocationsModule } from '@fcom/locations';\nimport { MmbOrderModule } from '@fcom/manage-booking-common';\nimport { CommonBookingComponentsModule } from '@fcom/common-booking';\nimport { GtmModule } from '@fcom/common/gtm';\nimport { CommonBookingAncillaryService } from '@fcom/common-booking/modules/ancillaries/services';\nimport { I18nKey } from '@fcom/core';\nimport { UtilsService } from '@fcom/common-booking/services/utils.service';\n\nimport { ManageBookingRoutesModule } from './manage-booking.routes';\nimport { ManageBookingSideNavigationComponent } from './components';\nimport { MANAGE_BOOKING_FEATURE_KEY } from './constants';\nimport { reducers } from './store';\nimport { ManageBookingService, OffersService } from './services';\nimport { StageEffects } from './store/effects/stage.effects';\nimport { NotificationsService } from './services/notifications.service';\nimport { ManageBookingRoutingComponent } from './components/manage-booking-routing/manage-booking-routing.component';\nimport { PnrFormService } from './services/pnr-form-service';\nimport { CarTrawlerWidgetService } from './services/cartrawler-widget/cartrawler-widget.service';\nimport { CheckInService } from './services/check-in.service';\n\n@NgModule({\n imports: [\n CommonModule,\n ComponentsModule,\n CommonBookingComponentsModule,\n NavigationModule,\n ManageBookingRoutesModule,\n LocationsModule,\n FormsModule.withConfig({\n callSetDisabledState: 'whenDisabledForLegacyCode',\n }),\n ReactiveFormsModule.withConfig({\n callSetDisabledState: 'whenDisabledForLegacyCode',\n }),\n UiComponentsModule,\n UiTranslateModule,\n StoreModule.forFeature(MANAGE_BOOKING_FEATURE_KEY, reducers),\n EffectsModule.forFeature([StageEffects]),\n CmsModule,\n GtmModule,\n ImagesModule,\n PipesModule,\n DirectiveModule,\n LoginModule,\n MmbOrderModule,\n RedirectServiceModule,\n ],\n providers: [\n CmsPageService,\n ManageBookingService,\n UtilsService,\n NotificationsService,\n CommonBookingAncillaryService,\n PaymentService,\n OffersService,\n PnrFormService,\n CarTrawlerWidgetService,\n CheckInService,\n ],\n declarations: [ManageBookingRoutingComponent, ManageBookingSideNavigationComponent],\n exports: [],\n})\nexport class ManageBookingModule {\n constructor(private localizationProvider: LocalizationProvider) {\n this.localizationProvider.triggerLazyLocalizations(I18nKey.MMB);\n }\n}\n"],"x_google_ignoreList":[]}