{"version":3,"file":"default-src_modules_manage-booking_modules_common_booking-common_module_ts.1970aaf95a3f8a9c.js","mappings":"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","names":["ManageBookingSelectMatrixComponent","constructor","store$","router","lang","gtmService","voluntaryChangeService","this","ButtonLayout","ButtonMode","ButtonPosition","ButtonSize","ButtonTheme","IconPosition","LoaderTheme","ModalButtons","NotificationLayout","SvgLibraryIcon","newDates$","BehaviorSubject","subscriptions","Subscription","ngOnInit","booking$","pipe","orderData","changeableBoundIds$","getChangeableBoundIds","selectedBoundsForChange$","getChangeBoundIds","calendarChangeList$","getChangeList","ngOnDestroy","unsubscribe","selectDatesStep","setStep","step","VOLUNTARY_CHANGE_STEPS","SELECT_DATES","closeModal","add","combineLatest","take","subscribe","booking","changeableBoundIds","trackElement","GaContext","MANAGE_BOOKING","ElementTypes","MODAL","id","ElementActions","CLOSE","length","goToViewPNR","SELECT_BOUNDS","redirectToChangeFlow","newDates","selectedBoundsForChange","getTrackingDescription","BUTTON","undefined","CLICK","otherInformation","analyticsToken","FLIGHT_SELECTION","skipRouteChange","navigate","langValue","RootPaths","VOLUNTARY_CHANGE_ROOT","split","path","queryParams","createChangeFlowTicketSelectionQueryParams","boundsWithDates","filter","Boolean","map","bound","index","date","datesSelected","dates","next","ticketSelectionPhase","departureBoundId","departureNewDate","returnBoundId","returnNewDate","directFlights","indexOfFirstBound","bounds","findIndex","toString","static","__ngFactoryType__","i0","i1","i2","i3","i4","i5","_angular_core__WEBPACK_IMPORTED_MODULE_21__","VBU","selectors","decls","vars","consts","template","rf","ctx","$event","CUSTOM","CLOSE_DELETE","LIGHT_SECONDARY_OUTLINE","_c0","LIGHT_PRIMARY_CTA_HEATHER","getStepLink","params","join","toQueryParamString","VoluntaryChangeService","languageService","currentStepIndex","goToStep","dispatch","VOLUNTARY_CHANGE_STEPS_ARRAY","s","isCurrentStep","stepFrom","url","mapStep","find","includes","prevStep","nextStep","indexOf","PURCHASE_SUCCESS","isFirstStep","of","_angular_core__WEBPACK_IMPORTED_MODULE_6__","jDH","factory","ɵfac","CheckInTriggerComponent_div_0_ng_container_1_div_2_p_4_Template","ctx_r0","order","locations","arrival","locationCode","cityName","isBoundApisRequired","_r2","redirectToBoardingPass","MEDIUM","_c1","QRCODE","RIGHT","FILL_MOBILE","_r3","redirectToCheckIn","checkInModalClosed$","isLegacyVersion","EXTERNAL_TAB","CHECK_IN","CheckInTriggerComponent_div_0_ng_container_1_div_2_Template","CheckInTriggerComponent_div_0_ng_container_1_div_3_Template","CheckInTriggerComponent_div_0_ng_container_1_fcom_button_5_Template","CheckInTriggerComponent_div_0_ng_container_1_fcom_button_6_Template","allCustomersHasCheckedIn","showBoardingPassButton","_r4","_r5","_r6","redirectToModifyCheckIn","TICKET_REFUND","_r7","redirectToCancelCheckIn","cancelCheckInModalClosed$","ARROW_RIGHT","cancelCheckInInProgress","CheckInTriggerComponent_div_0_ng_container_2_fcom_button_2_Template","CheckInTriggerComponent_div_0_ng_container_2_fcom_button_3_Template","CheckInTriggerComponent_div_0_ng_container_2_fcom_button_4_Template","CheckInTriggerComponent_div_0_ng_container_2_fcom_button_5_Template","canUseCheckIn","hasCheckedInCustomers","CheckInTriggerComponent_div_0_ng_container_1_Template","CheckInTriggerComponent_div_0_ng_container_2_Template","mode","CheckInTriggerComponent_ng_container_1_ng_container_9_ng_container_2_Template","passenger_r9","passengerInfo_r10","_c3","isCheckedIn","isAllowedToUseCheckIn","_c4","passenger_r11","withInfant","CheckInTriggerComponent_ng_container_1_ng_template_16_ng_container_3_div_1_Template","CheckInTriggerComponent_ng_container_1_ng_template_16_ng_container_3_div_2_Template","CheckInTriggerComponent_ng_container_1_ng_template_16_ng_container_3_div_3_Template","CheckInTriggerComponent_ng_container_1_ng_template_16_div_2_Template","CheckInTriggerComponent_ng_container_1_ng_template_16_ng_container_3_Template","firstName","lastName","showAllFields_r12","_r8","cancelCheckInPassengerModalOpen","CheckInTriggerComponent_ng_container_1_ng_container_9_Template","closeCancelModal","cancelCheckIn","CheckInTriggerComponent_ng_container_1_ng_template_16_Template","cancelCheckinForm","passengersWithCheckinInfo","_c2","valid","CheckInTriggerComponent","mmbOrderService","toasterService","redirectService","cdr","checkInService","autoOpenCheckIn","clearSeatsBeforeCheckIn","skipTravelReady","Subject","initializeComponent","isBoundAPISRequired","ngOnChanges","changes","firstChange","markForCheck","isEligibleForTravelReady","navigateByUrl","TRAVEL_READY","redirectToCheckInFunnel","setClearPendingSeatsOnEntry","setModifyCheckIn","CheckInActions","setBoundId","boundId","initializeCheckIn","navigateToModifyCheckInFunnel","setPassengers","passengers","getPassengerIdsWithInfants","p","isAllowedToUseBoardingPass","disable","passengerIds","Object","entries","get","value","key","cancelCheckInForPassengers","elementNameSuffix","elementType","eligibilities","travelReady","e","isAllowedToUse","checkInEligibilityForBound","checkIn","eligibility","version","FinnairCheckInVersion","NEXTGEN","checkinFlightEligibilities","flightTravelerEligibility","values","some","flightCheckinEligibility","every","eligibleFlightIds","reduce","all","flightId","flightEligibility","push","passenger","passengerEligibility","flatMap","travelerIds","getInfantAssociation","passengerTypeCode","FinnairPassengerCode","INF","checkinForm","createForm","FormControl","disabled","modifyCheckinForm","hash","flightIds","enable","OrderActions","addMessageToQueue","theme","NotificationTheme","SUCCESS","iconName","CHECKMARK_BLOCK","contentKey","error","ALERT","ALERT_TRIANGLE","infant","accompanyingTravelerId","passengerId","createFormControl","FormGroup","control","isTruthy","custom","i6","i7","i8","_angular_core__WEBPACK_IMPORTED_MODULE_18__","inputs","features","CheckInTriggerComponent_div_0_Template","CheckInTriggerComponent_ng_container_1_Template","defaultVoluntaryChangeQueryParams","title","subtitle","info","cta","ctaAction","showButton","noGrid","navigateToError","skipLocationChange","ManageBookingSelectDateComponent","utilsService","offersService","mediaQueryService","modalClosed","EventEmitter","currentDate","LocalDate","now","datepickerErrorStatuses","selectableDatesRange","plusDays","loading$","showError$","isMobile$","isBreakpoint$","getChangeBounds","isDateRange$","initialSelectedDates$","getChangeDates","distinctUntilChanged","TzDate","toLocalDate","disabledDateRanges$","getDisabledDateRange","selectedDates$","selectedBounds$","selectedBoundsWithDates$","selectedBounds","selectedDates","canContinue$","onSelectedDatesChange","ChangeActions","setDates","loadCalendarMatrix","selectedBoundsWithDates","searchParams","calendarSearchParams","mergeMap","findAirCalendarChange","list","calendarTrackingEventName","setChangeList","SELECT_MATRIX","status","dateOptions","numberOfDates","changedBoundsCount","allDatesInMatrixHaveFlights","calendarChangeList","searchParameters","itinerary","toChange","airCalendars","departure","dateTime","departureDate","snapshot","getDate","_angular_core__WEBPACK_IMPORTED_MODULE_20__","outputs","ManageBookingSelectDateComponent_div_8_Template","LARGE","setLoading","createAction","props","setShowDatepickerError","clearState","setOrderChangeData","clearOrderChangeData","setTicketSelectionPhase","setDirectFlights","setDepartureBoundSelection","setReturnBoundSelection","setBoundChange","clearBoundChange","clearDepartureBoundSelection","clearReturnBoundSelection","setNewDeparture","setNewReturn","setStopsCount","resetStopsCount","setCabin","resetCabin","setDepartureTime","resetDepartureTime","setArrivalTime","resetArrivalTime","setAllFilters","resetAllFilters","setTempDeparture","setTempReturn","union","CarTrawlerWidgetModule","_angular_core__WEBPACK_IMPORTED_MODULE_5__","$C","G2t","CommonModule","PipesModule","UiTranslateModule","UiComponentsModule","ComponentsModule","DirectiveModule","ctx_r1","_r1","bound_r3","$implicit","isLast_r4","last","ctx_r4","toggleInbound","toggleOutbound","isFirst_r7","i_r6","getTails","boundNotifications$","ManageBookingSelectBoundComponent","notificationsService","finShare","getChangeNotAllowedReasonsByBound","getLocation","leg","continue","_angular_core__WEBPACK_IMPORTED_MODULE_17__","ManageBookingSelectBoundComponent_div_2_Template","tmp_2_0","GRID_FULL","COLUMN","ManageBookingEmergencyContactModule","core","GtmModule","ReactiveFormsModule","withConfig","callSetDisabledState","FinFormsModule","IconsModule","ManageBookingCommonModule","UtilsService","OffersService","NotificationsService","imports","CmsModule","ModalModule","CommonBookingComponentsModule","ManageBookingFlightComponent","ManageBookingNotificationsComponent","i9","i10","i11","i12"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/modules/manage-booking/modules/common/components/select-matrix/select-matrix.component.ts","./src/modules/manage-booking/modules/common/components/select-matrix/select-matrix.component.html","./src/modules/voluntary-change/services/voluntary-change.service.ts","./src/modules/manage-booking/modules/common/components/check-in-trigger/check-in-trigger.component.html","./src/modules/manage-booking/modules/common/components/check-in-trigger/check-in-trigger.component.ts","./src/modules/voluntary-change/utils/error-routing.utils.ts","./src/modules/manage-booking/modules/common/components/select-date/select-date.component.html","./src/modules/manage-booking/modules/common/components/select-date/select-date.component.ts","./src/modules/voluntary-change/store/actions/state.actions.ts","./src/modules/manage-booking/modules/common/components/cartrawler-widget/cartrawler-widget.module.ts","./src/modules/manage-booking/modules/common/components/select-bound/select-bound.component.html","./src/modules/manage-booking/modules/common/components/select-bound/select-bound.component.ts","./src/modules/manage-booking/modules/common/components/emergency-contact/emergency-contact.module.ts","./src/modules/manage-booking/modules/common/booking-common.module.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\nimport { Params, Router } from '@angular/router';\n\nimport { SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\nimport { BehaviorSubject, combineLatest, Observable, Subscription } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { Store } from '@ngrx/store';\n\nimport { RootPaths } from '@fcom/core';\nimport { LanguageService } from '@fcom/ui-translate';\nimport { FinnairAirCalendarChangeListResponse, FinnairOrder } from '@fcom/dapi/api/models';\nimport {\n ButtonLayout,\n ButtonMode,\n ButtonPosition,\n ButtonSize,\n ButtonTheme,\n IconPosition,\n LoaderTheme,\n ModalButtons,\n NotificationLayout,\n} from '@fcom/ui-components';\nimport { unsubscribe } from '@fcom/core/utils';\nimport { GtmService } from '@fcom/common/gtm';\nimport { ElementActions, ElementTypes, GaContext } from '@fcom/common';\nimport { VoluntaryChangeService } from '@fcom/voluntary-change/services/voluntary-change.service';\nimport { VOLUNTARY_CHANGE_STEPS } from '@fcom/voluntary-change/voluntary-change-config';\nimport { orderData, getChangeableBoundIds } from '@fcom/common-booking';\nimport { AppState } from '@fcom/core/interfaces/app-state.interface';\nimport { Amount } from '@fcom/dapi';\n\nimport { getChangeList, getChangeBoundIds } from '../../../../store/selectors/change.selector';\nimport { getTrackingDescription } from '../../../../utils';\n\ninterface BoundAndDate {\n bound: string;\n date: string;\n}\n\n@Component({\n selector: 'fin-mmb-select-matrix',\n templateUrl: './select-matrix.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ManageBookingSelectMatrixComponent implements OnInit, OnDestroy {\n readonly ButtonLayout = ButtonLayout;\n readonly ButtonMode = ButtonMode;\n readonly ButtonPosition = ButtonPosition;\n readonly ButtonSize = ButtonSize;\n readonly ButtonTheme = ButtonTheme;\n readonly IconPosition = IconPosition;\n readonly LoaderTheme = LoaderTheme;\n readonly ModalButtons: typeof ModalButtons = ModalButtons;\n readonly NotificationLayout = NotificationLayout;\n readonly SvgLibraryIcon = SvgLibraryIcon;\n\n booking$: Observable;\n\n changeableBoundIds$: Observable;\n selectedBoundsForChange$: Observable;\n\n calendarChangeList$: Observable;\n newDates$: BehaviorSubject<[string, string]> = new BehaviorSubject<[string, string]>(null);\n subscriptions: Subscription = new Subscription();\n\n constructor(\n private store$: Store,\n private router: Router,\n private lang: LanguageService,\n private gtmService: GtmService,\n private voluntaryChangeService: VoluntaryChangeService\n ) {}\n\n ngOnInit(): void {\n this.booking$ = this.store$.pipe(orderData());\n this.changeableBoundIds$ = this.store$.pipe(getChangeableBoundIds());\n\n this.selectedBoundsForChange$ = this.store$.pipe(getChangeBoundIds());\n\n this.calendarChangeList$ = this.store$.pipe(getChangeList());\n }\n\n ngOnDestroy(): void {\n this.subscriptions = unsubscribe(this.subscriptions);\n }\n\n selectDatesStep(): void {\n this.voluntaryChangeService.setStep({ step: VOLUNTARY_CHANGE_STEPS.SELECT_DATES });\n }\n\n closeModal(): void {\n this.subscriptions.add(\n combineLatest([this.booking$, this.changeableBoundIds$])\n .pipe(take(1))\n .subscribe(([booking, changeableBoundIds]) => {\n this.gtmService.trackElement(\n 'view-pnr_change_abort-selectmatrix',\n GaContext.MANAGE_BOOKING,\n ElementTypes.MODAL,\n `recLoc-${booking.id}`,\n ElementActions.CLOSE\n );\n if (changeableBoundIds.length === 1) {\n this.voluntaryChangeService.goToViewPNR();\n } else {\n this.voluntaryChangeService.setStep({ step: VOLUNTARY_CHANGE_STEPS.SELECT_BOUNDS });\n }\n })\n );\n }\n\n redirectToChangeFlow(): void {\n this.subscriptions.add(\n combineLatest([this.booking$, this.newDates$, this.changeableBoundIds$, this.selectedBoundsForChange$])\n .pipe(take(1))\n .subscribe(([booking, newDates, changeableBoundIds, selectedBoundsForChange]) => {\n this.gtmService.trackElement(\n `view-pnr_change_matrix-${getTrackingDescription(changeableBoundIds, selectedBoundsForChange)}`,\n GaContext.MANAGE_BOOKING,\n ElementTypes.BUTTON,\n undefined,\n ElementActions.CLICK,\n `recLoc-${booking?.otherInformation.analyticsToken}`\n );\n\n this.voluntaryChangeService.setStep({ step: VOLUNTARY_CHANGE_STEPS.FLIGHT_SELECTION, skipRouteChange: true });\n this.router.navigate(\n [\n '/',\n this.lang.langValue || 'en',\n ...RootPaths.VOLUNTARY_CHANGE_ROOT.split('/'),\n VOLUNTARY_CHANGE_STEPS.FLIGHT_SELECTION.path,\n ],\n {\n queryParams: this.createChangeFlowTicketSelectionQueryParams(\n booking,\n this.boundsWithDates(newDates, selectedBoundsForChange)\n ),\n }\n );\n })\n );\n }\n\n boundsWithDates(newDates: [string, string], selectedBoundsForChange: string[]): BoundAndDate[] {\n return selectedBoundsForChange\n .filter(Boolean)\n .map((bound, index) => ({ bound, date: newDates.filter(Boolean)[index] }));\n }\n\n datesSelected({ dates }: { dates: [string, string]; price?: Amount }): void {\n this.newDates$.next(dates);\n }\n\n private createChangeFlowTicketSelectionQueryParams(booking: FinnairOrder, boundsWithDates: BoundAndDate[]): Params {\n if (boundsWithDates.length === 2) {\n return {\n ticketSelectionPhase: '0',\n departureBoundId: boundsWithDates[0].bound,\n departureNewDate: boundsWithDates[0].date,\n returnBoundId: boundsWithDates[1].bound,\n returnNewDate: boundsWithDates[1].date,\n directFlights: false,\n };\n }\n const indexOfFirstBound = booking.bounds.findIndex((bound) => bound.id === boundsWithDates[0].bound);\n return {\n directFlights: false,\n ticketSelectionPhase: indexOfFirstBound.toString(),\n ...(indexOfFirstBound === 0\n ? {\n departureBoundId: boundsWithDates[0].bound,\n departureNewDate: boundsWithDates[0].date,\n }\n : {\n returnBoundId: boundsWithDates[0].bound,\n returnNewDate: boundsWithDates[0].date,\n }),\n };\n }\n}\n","\n
\n

\n {{ 'MMB.view.changeFlightsModal.matrixTitle' | finLocalization }}\n

\n\n
\n \n \n \n
\n
\n\n \n
\n \n \n \n
\n\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { Store } from '@ngrx/store';\nimport { Observable, of } from 'rxjs';\n\nimport { StringNumberBooleanMap } from '@fcom/core-api';\nimport { RootPaths } from '@fcom/core';\nimport { toQueryParamString } from '@fcom/common/utils/booking-common.utils';\nimport { Step } from '@fcom/common';\nimport { LanguageService } from '@fcom/ui-translate';\n\nimport { VoluntaryChangeFeatureState } from '../interfaces/store.interface';\nimport { VOLUNTARY_CHANGE_STEPS, VOLUNTARY_CHANGE_STEPS_ARRAY } from '../voluntary-change-config';\nimport { setStep } from '../store/actions/state.actions';\n\nexport interface StepChangeSignature {\n onSuccessPost?: (step: Step) => void;\n skipRouteChange?: boolean;\n}\n\nexport interface SetStepSignature extends StepChangeSignature {\n step: Step;\n}\n\nexport const getStepLink = (lang: string, step: Step, params?: StringNumberBooleanMap): string =>\n `/${[lang, RootPaths.VOLUNTARY_CHANGE_ROOT, step.path].filter(Boolean).join('/')}${toQueryParamString(params)}`;\n\n@Injectable()\nexport class VoluntaryChangeService {\n currentStepIndex = 0;\n\n constructor(\n private store$: Store,\n private router: Router,\n private languageService: LanguageService\n ) {}\n\n goToViewPNR(): void {\n this.router.navigate([this.languageService.langValue, 'manage', 'view']);\n }\n\n private goToStep({ step, skipRouteChange }: SetStepSignature): void {\n this.store$.dispatch(setStep({ step, skipRouteChange }));\n this.currentStepIndex = VOLUNTARY_CHANGE_STEPS_ARRAY.findIndex((s) => s.id === step.id);\n }\n\n isCurrentStep(step: Step): boolean {\n return this.currentStepIndex === VOLUNTARY_CHANGE_STEPS_ARRAY.findIndex((s) => s.id === step.id);\n }\n\n stepFrom(url: string): void {\n this.goToStep({ step: this.mapStep(url) });\n }\n\n mapStep(url: string): Step {\n return VOLUNTARY_CHANGE_STEPS_ARRAY.find((step) => url.includes(step.path)) ?? VOLUNTARY_CHANGE_STEPS.SELECT_BOUNDS;\n }\n\n setStep({ step, skipRouteChange }: SetStepSignature): void {\n this.goToStep({ step, skipRouteChange });\n }\n\n prevStep(): void {\n const nextStep = this.currentStepIndex - 1;\n if (\n nextStep >= 0 &&\n this.currentStepIndex !== VOLUNTARY_CHANGE_STEPS_ARRAY.indexOf(VOLUNTARY_CHANGE_STEPS.PURCHASE_SUCCESS)\n ) {\n this.setStep({\n step: VOLUNTARY_CHANGE_STEPS_ARRAY[nextStep],\n });\n }\n }\n\n nextStep(): void {\n const nextStep = this.currentStepIndex + 1;\n\n if (nextStep < VOLUNTARY_CHANGE_STEPS_ARRAY.length) {\n this.setStep({\n step: VOLUNTARY_CHANGE_STEPS_ARRAY[nextStep],\n });\n }\n }\n\n isFirstStep(): Observable {\n return of(this.currentStepIndex === 0);\n }\n}\n","
\n \n
\n
\n

\n {{\n 'MMB.checkIn.state.open.title'\n | finLocalization: { destination: order.locations[bound.arrival.locationCode]?.cityName }\n }}\n

\n

\n {{ 'MMB.checkIn.state.open.text' | finLocalization }}\n

\n
\n
\n

\n {{\n 'MMB.checkIn.state.allCheckedIn.title'\n | finLocalization: { destination: order.locations[bound.arrival.locationCode]?.cityName }\n }}\n

\n
\n {{ 'MMB.checkIn.state.allCheckedIn.description' | 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 {{ 'MMB.checkIn.passengerSelection.modal.titles.cancel.description' | finLocalization }}\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 'passenger.withInfant' | finLocalization: { withInfantFullName: passenger.withInfant } | finToLowerCase: ''\n }})\n
\n \n
\n {{ 'MMB.checkIn.state.checkedIn' | finLocalization }}\n
\n
\n {{ 'MMB.checkIn.state.notCheckedIn' | finLocalization }}\n
\n
\n {{ 'MMB.checkIn.state.notEligible' | finLocalization }}\n
\n
\n
\n
\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup } from '@angular/forms';\nimport { Router } from '@angular/router';\n\nimport { SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\nimport { Store } from '@ngrx/store';\nimport { Subject, Subscription } from 'rxjs';\n\nimport {\n FinnairBoundItem,\n FinnairCheckInVersion,\n FinnairOrder,\n FinnairPassengerCode,\n FinnairPassengerItem,\n} from '@fcom/dapi/api/models';\nimport {\n ButtonMode,\n ButtonSize,\n ButtonTheme,\n IconPosition,\n ModalButtons,\n NotificationTheme,\n} from '@fcom/ui-components';\nimport { isTruthy, unsubscribe } from '@fcom/core/utils';\nimport { MmbOrderService } from '@fcom/manage-booking-common';\nimport { OrderActions } from '@fcom/common-booking';\nimport { ElementActions, ElementTypes, GaContext, ToasterService } from '@fcom/common';\nimport { LanguageService } from '@fcom/ui-translate';\nimport { RedirectService } from '@fcom/common-booking/modules/redirect-service/services/redirect.service';\nimport { GtmService } from '@fcom/common/gtm';\nimport { RootPaths } from '@fcom/core';\nimport { isBoundAPISRequired } from '@fcom/common-booking/utils/common-booking.utils';\n\nimport { ManageBookingState } from '../../../../interfaces';\nimport { CheckInActions } from '../../../../store';\nimport { CheckInService } from '../../../../services/check-in.service';\n\ntype PassengerForm = FormGroup<{ passengers: FormGroup>> }>;\n\ntype TriggerMode = 'block' | 'buttons';\n\n@Component({\n selector: 'fin-check-in-trigger',\n templateUrl: 'check-in-trigger.component.html',\n styleUrls: ['./check-in-trigger.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckInTriggerComponent implements OnInit, OnDestroy, OnChanges {\n readonly ButtonMode = ButtonMode;\n readonly ButtonSize = ButtonSize;\n readonly ButtonTheme = ButtonTheme;\n readonly IconPosition = IconPosition;\n readonly ModalButtons = ModalButtons;\n readonly SvgLibraryIcon = SvgLibraryIcon;\n\n @Input()\n order: FinnairOrder;\n\n @Input()\n bound: FinnairBoundItem;\n\n @Input()\n autoOpenCheckIn = false;\n\n @Input()\n clearSeatsBeforeCheckIn = false;\n\n @Input()\n skipTravelReady = false;\n\n @Input()\n mode: TriggerMode = 'buttons';\n\n canUseCheckIn = false;\n hasCheckedInCustomers = false;\n showBoardingPassButton = false;\n allCustomersHasCheckedIn = false;\n isBoundApisRequired = false;\n checkinForm: PassengerForm;\n checkInModalClosed$: Subject = new Subject();\n cancelCheckinForm: PassengerForm;\n cancelCheckInPassengerModalOpen = false;\n cancelCheckInModalClosed$: Subject = new Subject();\n modifyCheckinForm: PassengerForm;\n passengersWithCheckinInfo: (FinnairPassengerItem & {\n isCheckedIn: boolean;\n isAllowedToUseCheckIn: boolean;\n isAllowedToUseBoardingPass: boolean;\n withInfant: string | null;\n })[];\n eligibleFlightIds: string[];\n cancelCheckInInProgress = false;\n isLegacyVersion: boolean;\n\n private subscriptions: Subscription = new Subscription();\n\n constructor(\n private store$: Store,\n private router: Router,\n private mmbOrderService: MmbOrderService,\n private toasterService: ToasterService,\n private languageService: LanguageService,\n private redirectService: RedirectService,\n private gtmService: GtmService,\n private cdr: ChangeDetectorRef,\n private checkInService: CheckInService\n ) {}\n\n ngOnInit(): void {\n this.initializeComponent();\n\n if (this.autoOpenCheckIn) {\n this.redirectToCheckIn();\n }\n this.isBoundApisRequired = isBoundAPISRequired(this.order, this.bound);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['order']?.firstChange === false || changes['mode']?.firstChange === false) {\n this.initializeComponent();\n this.cdr.markForCheck();\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions = unsubscribe(this.subscriptions);\n }\n\n redirectToCheckIn(): void {\n if (!this.skipTravelReady && this.isEligibleForTravelReady()) {\n this.router.navigateByUrl(`${this.languageService.langValue}/${RootPaths.TRAVEL_READY}`);\n } else if (this.isLegacyVersion) {\n this.trackElement('check-in-legacy');\n this.redirectService.redirectToCheckIn(this.order, this.bound);\n } else {\n this.trackElement('check-in-nextgen-funnel');\n this.redirectToCheckInFunnel();\n }\n }\n\n private redirectToCheckInFunnel(): void {\n if (this.clearSeatsBeforeCheckIn) {\n this.checkInService.setClearPendingSeatsOnEntry(true);\n }\n this.checkInService.setModifyCheckIn(false);\n this.store$.dispatch(CheckInActions.setBoundId({ boundId: this.bound.id }));\n this.initializeCheckIn();\n }\n\n redirectToModifyCheckIn(): void {\n this.trackElement('modify');\n this.navigateToModifyCheckInFunnel(\n this.passengersWithCheckinInfo.map(({ id }) => id),\n this.bound.id\n );\n }\n\n redirectToBoardingPass(): void {\n this.store$.dispatch(CheckInActions.setBoundId({ boundId: this.bound.id }));\n this.store$.dispatch(\n CheckInActions.setPassengers({\n passengers: this.getPassengerIdsWithInfants(\n this.passengersWithCheckinInfo\n .filter((p) => p.isCheckedIn || p.isAllowedToUseBoardingPass)\n .map(({ id }) => id)\n ),\n })\n );\n this.trackElement('boarding-pass');\n this.router.navigateByUrl(`${this.languageService.langValue}/manage/check-in/boarding-pass`);\n }\n\n redirectToCancelCheckIn(): void {\n this.trackElement('cancel-check-in');\n this.cancelCheckInPassengerModalOpen = true;\n }\n\n cancelCheckIn(): void {\n this.trackElement('cancel-check-in-modal_cancel-check-in', ElementTypes.MODAL);\n this.cancelCheckinForm.disable();\n const passengerIds = Object.entries(this.cancelCheckinForm.get('passengers').value)\n .filter(([, value]) => value)\n .map(([key]) => key);\n this.cancelCheckInForPassengers(passengerIds);\n }\n\n closeCancelModal(): void {\n this.cancelCheckInPassengerModalOpen = false;\n this.trackElement('cancel-check-in-modal_cancel', ElementTypes.MODAL);\n }\n\n private trackElement(elementNameSuffix: string, elementType: ElementTypes = ElementTypes.BUTTON): void {\n this.gtmService.trackElement(\n `check-in-trigger_${elementNameSuffix}`,\n GaContext.CHECK_IN,\n elementType,\n undefined,\n ElementActions.CLICK\n );\n }\n\n private isEligibleForTravelReady(): boolean {\n return this.order.eligibilities?.travelReady?.find((e) => e.id === this.bound.id)?.isAllowedToUse ?? false;\n }\n\n private initializeComponent(): void {\n const checkInEligibilityForBound = this.order?.eligibilities?.checkIn?.find(\n (eligibility) => eligibility.id === this.bound?.id\n );\n\n this.canUseCheckIn = checkInEligibilityForBound?.isAllowedToUseCheckIn ?? false;\n this.isLegacyVersion = checkInEligibilityForBound?.version !== FinnairCheckInVersion.NEXTGEN;\n\n const checkinFlightEligibilities = checkInEligibilityForBound?.flightTravelerEligibility ?? {};\n\n this.hasCheckedInCustomers = Object.values(checkinFlightEligibilities).some((flightCheckinEligibility) =>\n flightCheckinEligibility.some((eligibility) => eligibility.isCheckedIn)\n );\n\n this.showBoardingPassButton =\n this.hasCheckedInCustomers ||\n Object.values(checkinFlightEligibilities).some((flightCheckinEligibility) =>\n flightCheckinEligibility.some((eligibility) => eligibility.isAllowedToUseBoardingPass)\n );\n\n this.allCustomersHasCheckedIn = Object.values(checkinFlightEligibilities).some((flightCheckinEligibility) =>\n flightCheckinEligibility.every((eligibility) => eligibility.isCheckedIn)\n );\n\n this.eligibleFlightIds = Object.entries(checkinFlightEligibilities).reduce((all, [flightId, flightEligibility]) => {\n if (flightEligibility.some((e) => e.isAllowedToUseCheckIn)) {\n all.push(flightId);\n }\n return all;\n }, []);\n\n this.passengersWithCheckinInfo = this.order.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\n return {\n ...passenger,\n withInfant: this.getInfantAssociation(this.order.passengers, passenger),\n isCheckedIn: passengerEligibility?.isCheckedIn ?? false,\n isAllowedToUseCheckIn: passengerEligibility?.isAllowedToUseCheckIn ?? false,\n isAllowedToUseBoardingPass: passengerEligibility?.isAllowedToUseBoardingPass ?? false,\n };\n })\n .filter(({ passengerTypeCode }) => passengerTypeCode !== FinnairPassengerCode.INF);\n\n this.checkinForm = this.createForm(this.passengersWithCheckinInfo, (passenger) => {\n return new FormControl({\n value: !passenger.isCheckedIn,\n disabled: passenger.isCheckedIn || !passenger.isAllowedToUseCheckIn,\n });\n });\n\n this.cancelCheckinForm = this.createForm(this.passengersWithCheckinInfo, (passenger) => {\n return new FormControl({ value: false, disabled: !passenger.isCheckedIn || !passenger.isAllowedToUseCheckIn });\n });\n\n this.modifyCheckinForm = this.createForm(this.passengersWithCheckinInfo, (passenger) => {\n return new FormControl({ value: true, disabled: !passenger.isAllowedToUseCheckIn });\n });\n }\n\n private cancelCheckInForPassengers(passengerIds: string[]): void {\n this.cancelCheckInInProgress = true;\n this.subscriptions.add(\n this.mmbOrderService\n .cancelCheckIn(this.order.id, this.order.hash, {\n flightIds: this.eligibleFlightIds,\n travelerIds: this.getPassengerIdsWithInfants(passengerIds),\n })\n .subscribe({\n next: (order) => {\n this.cancelCheckinForm.enable();\n this.store$.dispatch(OrderActions.setOrderData({ order }));\n this.cancelCheckInPassengerModalOpen = false;\n this.cancelCheckInInProgress = false;\n this.toasterService.addMessageToQueue({\n id: 'cancelCheckIn',\n theme: NotificationTheme.SUCCESS,\n iconName: SvgLibraryIcon.CHECKMARK_BLOCK,\n contentKey: 'MMB.checkIn.passengerSelection.cancel.notification.success',\n });\n },\n error: () => {\n this.toasterService.addMessageToQueue({\n id: 'cancelCheckIn',\n theme: NotificationTheme.ALERT,\n iconName: SvgLibraryIcon.ALERT_TRIANGLE,\n contentKey: 'MMB.checkIn.passengerSelection.cancel.notification.error',\n });\n this.cancelCheckinForm.enable();\n this.cancelCheckInPassengerModalOpen = false;\n this.cancelCheckInInProgress = false;\n },\n })\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 getPassengerIdsWithInfants(passengerIds: string[]): string[] {\n return this.order.passengers\n .filter((passenger) =>\n passengerIds.some(\n (passengerId) => passenger.id === passengerId || passenger.accompanyingTravelerId === passengerId\n )\n )\n .map(({ id }) => id);\n }\n\n private navigateToModifyCheckInFunnel(passengerIds: string[], boundId: string): void {\n this.store$.dispatch(CheckInActions.setBoundId({ boundId }));\n this.store$.dispatch(CheckInActions.setPassengers({ passengers: this.getPassengerIdsWithInfants(passengerIds) }));\n this.checkInService.setModifyCheckIn(true);\n this.initializeCheckIn();\n }\n\n private initializeCheckIn(): void {\n this.mmbOrderService.initializeCheckIn(this.order.id, this.order.hash, { flightIds: this.eligibleFlightIds });\n this.router.navigateByUrl(`${this.languageService.langValue}/manage/check-in/step/passengers`);\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.get('passengers').value).some(isTruthy)) {\n return { custom: true };\n }\n return null;\n };\n\n return new FormGroup(\n {\n passengers: new FormGroup(\n passengers.reduce(\n (all, passenger) => {\n all[passenger.id] = createFormControl(passenger);\n return all;\n },\n {} as Record\n )\n ),\n },\n hasPassengersSelected\n );\n }\n}\n","import { Params, Router } from '@angular/router';\n\nimport { ERROR_CTA_ACTIONS } from '@fcom/common/components';\nimport { RootPaths } from '@fcom/core';\n\nexport const defaultVoluntaryChangeQueryParams: Params = {\n title: 'MMB.error.title',\n subtitle: 'MMB.error.subtitle',\n info: 'MMB.error.info',\n cta: 'MMB.error.cta',\n ctaAction: ERROR_CTA_ACTIONS.NAVIGATE_TO_MANAGE_BOOKING_VIEW_PNR,\n showButton: true,\n noGrid: true,\n};\n\nexport const navigateToError = (router: Router, lang: string, error: string): void => {\n router.navigate([lang, ...RootPaths.VOLUNTARY_CHANGE_ROOT.split('/'), 'error', error], {\n skipLocationChange: false,\n queryParams: defaultVoluntaryChangeQueryParams,\n });\n};\n","\n \n
\n \n {{\n 'MMB.reaccommodation.selectDates.noOffersForDate'\n | finLocalization\n : {\n date:\n (dates[0] ? (dates[0] | finDateFormat: 'DATE') : '') +\n (dates[1] ? ', ' + (dates[1] | finDateFormat: 'DATE') : ''),\n }\n }}\n \n
\n\n
\n
\n \n
\n
\n\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport { BehaviorSubject, combineLatest, mergeMap, Observable, of, Subscription } from 'rxjs';\nimport { distinctUntilChanged, filter, map, take } from 'rxjs/operators';\nimport { Store } from '@ngrx/store';\n\nimport { AppState } from '@fcom/core';\nimport { LanguageService } from '@fcom/ui-translate';\nimport {\n FinnairAirCalendarChangeListResponse,\n FinnairBoundItem,\n FinnairCalendarChangeRequest,\n FinnairOrder,\n} from '@fcom/dapi/api/models';\nimport {\n ButtonLayout,\n ButtonMode,\n ButtonPosition,\n ButtonSize,\n ButtonTheme,\n IconPosition,\n LoaderTheme,\n ModalButtons,\n NotificationLayout,\n NotificationTheme,\n DateRange,\n} from '@fcom/ui-components';\nimport { snapshot } from '@fcom/rx';\nimport { LocalDate, TzDate, unsubscribe } from '@fcom/core/utils';\nimport { GtmService } from '@fcom/common/gtm';\nimport { ElementActions, ElementTypes, GaContext, MediaQueryService } from '@fcom/common';\nimport { navigateToError } from '@fcom/voluntary-change/utils/error-routing.utils';\nimport { VoluntaryChangeService } from '@fcom/voluntary-change/services/voluntary-change.service';\nimport { VOLUNTARY_CHANGE_STEPS } from '@fcom/voluntary-change/voluntary-change-config';\nimport { orderData, getChangeableBoundIds } from '@fcom/common-booking';\nimport { UtilsService } from '@fcom/common-booking/services/utils.service';\n\nimport { OffersService } from '../../../../services';\nimport { getChangeBounds, getChangeDates } from '../../../../store/selectors/change.selector';\nimport { ChangeActions } from '../../../../store/actions/change.actions';\n\nconst DATE_MATRIX_MAX_DAYS_PER_BOUND = 7;\n\n@Component({\n selector: 'fin-mmb-select-date',\n templateUrl: './select-date.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ManageBookingSelectDateComponent implements OnInit, OnDestroy {\n readonly NotificationTheme = NotificationTheme;\n\n @Input() booking$: Observable;\n @Input() changeableBoundIds$: Observable;\n @Output() modalClosed = new EventEmitter();\n\n readonly ButtonMode = ButtonMode;\n readonly ButtonSize = ButtonSize;\n readonly ButtonTheme = ButtonTheme;\n readonly IconPosition = IconPosition;\n readonly NotificationLayout = NotificationLayout;\n readonly ModalButtons: typeof ModalButtons = ModalButtons;\n readonly LoaderTheme = LoaderTheme;\n readonly ButtonPosition = ButtonPosition;\n readonly ButtonLayout = ButtonLayout;\n\n private currentDate: LocalDate = LocalDate.now();\n datepickerErrorStatuses = [400, 404];\n selectedBoundsForChange$: Observable>;\n\n selectableDatesRange: DateRange = [this.currentDate, this.currentDate.plusDays(361)];\n disabledDateRanges$?: Observable;\n initialSelectedDates$: Observable<[LocalDate] | DateRange>;\n selectedBoundsWithDates$: Observable<{ [key: string]: string }>;\n loading$: BehaviorSubject = new BehaviorSubject(false);\n canContinue$: Observable;\n isDateRange$: Observable;\n subscriptions: Subscription = new Subscription();\n dates: [string, string] | [string];\n isMobile$: Observable;\n showError$: BehaviorSubject = new BehaviorSubject(false);\n\n constructor(\n private store$: Store,\n private utilsService: UtilsService,\n private offersService: OffersService,\n private router: Router,\n private lang: LanguageService,\n private gtmService: GtmService,\n private voluntaryChangeService: VoluntaryChangeService,\n private mediaQueryService: MediaQueryService\n ) {}\n\n ngOnInit(): void {\n this.isMobile$ = this.mediaQueryService.isBreakpoint$('mobile');\n this.booking$ = this.store$.pipe(orderData());\n this.changeableBoundIds$ = this.store$.pipe(getChangeableBoundIds());\n\n this.selectedBoundsForChange$ = this.store$.pipe(getChangeBounds());\n\n this.isDateRange$ = this.selectedBoundsForChange$.pipe(map((bounds) => bounds.filter(Boolean).length === 2));\n\n this.initialSelectedDates$ = this.store$.pipe(\n getChangeDates(),\n distinctUntilChanged(),\n map((dates) => dates ?? []),\n map((dates) => dates.filter(Boolean).map((date) => new TzDate(date).toLocalDate())),\n map((dates) => dates as [LocalDate] | DateRange)\n );\n\n this.disabledDateRanges$ = combineLatest([this.selectedBoundsForChange$, this.booking$]).pipe(\n map(([selectedBoundsForChange, booking]) => [\n this.utilsService.getDisabledDateRange(selectedBoundsForChange, booking),\n ])\n );\n\n const selectedDates$ = this.store$.pipe(getChangeDates(), distinctUntilChanged());\n const selectedBounds$: Observable = this.store$.pipe(getChangeBounds());\n\n this.selectedBoundsWithDates$ = combineLatest([selectedBounds$, selectedDates$]).pipe(\n filter(([selectedBounds, selectedDates]) => selectedBounds !== null && selectedDates !== null),\n map(([selectedBounds, selectedDates]) =>\n selectedBounds.filter(Boolean).reduce((boundsWithDates, bound, index) => {\n const dateIndex = selectedDates[index] ? index : 0;\n boundsWithDates[bound.id] = selectedDates[dateIndex];\n return boundsWithDates;\n }, {})\n )\n );\n\n this.canContinue$ = combineLatest([this.selectedBoundsForChange$, selectedDates$]).pipe(\n map(([bounds, selectedDates]) => bounds.filter(Boolean).length === selectedDates.filter(Boolean).length)\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions = unsubscribe(this.subscriptions);\n }\n\n onSelectedDatesChange(dates: [string, string] | [string]): void {\n if (this.dates == null || !this.dates.every((date, index) => date === dates[index])) {\n this.showError$.next(false);\n this.dates = dates;\n this.store$.dispatch(ChangeActions.setDates({ dates }));\n }\n }\n\n closeModal(): void {\n this.subscriptions.add(\n combineLatest([this.booking$, this.changeableBoundIds$])\n .pipe(take(1))\n .subscribe(([booking, changeableBoundIds]) => {\n this.modalClosed.next(true);\n this.loading$.next(false);\n this.gtmService.trackElement(\n 'view-pnr_change_abort-selectdate',\n GaContext.MANAGE_BOOKING,\n ElementTypes.MODAL,\n undefined,\n ElementActions.CLOSE,\n `recLoc-${booking?.otherInformation.analyticsToken}`\n );\n\n if (changeableBoundIds.length === 1) {\n this.voluntaryChangeService.goToViewPNR();\n } else {\n this.voluntaryChangeService.setStep({ step: VOLUNTARY_CHANGE_STEPS.SELECT_BOUNDS });\n }\n })\n );\n }\n\n loadCalendarMatrix(): void {\n this.loading$.next(true);\n this.subscriptions.add(\n combineLatest([this.booking$, this.selectedBoundsWithDates$])\n .pipe(\n take(1),\n map(([booking, selectedBoundsWithDates]) => {\n return {\n booking,\n searchParams: this.calendarSearchParams(booking, selectedBoundsWithDates),\n };\n }),\n mergeMap(({ booking, searchParams }) =>\n combineLatest([\n of(booking),\n this.offersService.findAirCalendarChange(booking.id, booking.hash, searchParams),\n ])\n )\n )\n .subscribe({\n next: ([booking, list]) => {\n this.gtmService.trackElement(\n this.calendarTrackingEventName(list),\n GaContext.MANAGE_BOOKING,\n ElementTypes.BUTTON,\n undefined,\n ElementActions.CLICK,\n `recLoc-${booking?.otherInformation.analyticsToken}`\n );\n this.store$.dispatch(ChangeActions.setChangeList({ list }));\n\n this.voluntaryChangeService.setStep({ step: VOLUNTARY_CHANGE_STEPS.SELECT_MATRIX });\n this.loading$.next(false);\n },\n error: (error: unknown) => {\n this.loading$.next(false);\n if (this.datepickerErrorStatuses.includes((error as HttpErrorResponse)?.status)) {\n this.showError$.next(true);\n } else {\n navigateToError(this.router, this.lang.langValue, 'VOLUNTARY_CHANGE_ERROR_GETTING_OFFERS');\n }\n },\n })\n );\n }\n\n private dateOptions(numberOfDates: number, changedBoundsCount: number) {\n if (numberOfDates === 0) {\n return 'none';\n }\n return this.allDatesInMatrixHaveFlights(numberOfDates, changedBoundsCount) ? 'all' : 'some';\n }\n\n private allDatesInMatrixHaveFlights(numberOfDates: number, changedBoundsCount: number): boolean {\n return numberOfDates === DATE_MATRIX_MAX_DAYS_PER_BOUND ** changedBoundsCount;\n }\n\n private calendarTrackingEventName(calendarChangeList: FinnairAirCalendarChangeListResponse): string {\n const changedBoundsCount = calendarChangeList.searchParameters.itinerary.filter(({ toChange }) => toChange).length;\n const numberOfDates = calendarChangeList.airCalendars.length;\n return `view-pnr_change_dates_all-flights_change-${\n changedBoundsCount === 1 ? 'one' : 'both'\n }_date-options-${this.dateOptions(numberOfDates, changedBoundsCount)}`;\n }\n\n private calendarSearchParams(\n booking: FinnairOrder,\n selectedBoundsWithDates: { [key: string]: string }\n ): FinnairCalendarChangeRequest {\n return {\n directFlights: false, // explicitly set to false to decrease 'no offers found'-cases\n itinerary: booking.bounds.map(({ id, departure: { dateTime } }) => {\n return {\n toChange: Boolean(selectedBoundsWithDates[id]),\n boundId: id,\n departureDate: selectedBoundsWithDates[id] || snapshot(this.utilsService.getDate(dateTime, 'yyyy-MM-dd')),\n };\n }),\n };\n }\n}\n","import { RouterNavigationAction } from '@ngrx/router-store';\nimport { createAction, props, union } from '@ngrx/store';\n\nimport { Step } from '@fcom/common';\nimport { Cabin, FinnairAirBoundsChangeResponse, FinnairBoundItem, FinnairOrder } from '@fcom/dapi/api/models';\nimport { FlightTimeOption, FlightFilters } from '@fcom/common-booking/interfaces/flight-filters.interface';\n\nimport { TicketSelectionPhase } from '../../enums';\nimport { BoundSelection, NewBoundSelection } from '../../interfaces';\n\nexport const setLoading = createAction('[VoluntaryChange] setLoading', props<{ loading: boolean }>());\nexport const setShowDatepickerError = createAction(\n '[VoluntaryChange] setShowDatepickerError',\n props<{ showDatepickerError: boolean }>()\n);\nexport const clearState = createAction('[VoluntaryChange] clearState');\n\nexport const setOrderChangeData = createAction(\n '[VoluntaryChange] SetOrderChangeData',\n props<{ orderChange: FinnairOrder }>()\n);\nexport const clearOrderChangeData = createAction('[VoluntaryChange] clearOrderChangeData');\n\nexport const setTicketSelectionPhase = createAction(\n '[VoluntaryChange] setTicketSelectionPhase',\n props<{ phase: TicketSelectionPhase }>()\n);\nexport const setDirectFlights = createAction('[VoluntaryChange] setDirectFlights', props<{ directFlights: boolean }>());\nexport const setDepartureBoundSelection = createAction(\n '[VoluntaryChange] setDepartureBoundSelection',\n props<{ departureBound: BoundSelection }>()\n);\nexport const setReturnBoundSelection = createAction(\n '[VoluntaryChange] setReturnBoundSelection',\n props<{ returnBound: BoundSelection }>()\n);\nexport const setBoundChange = createAction(\n '[VoluntaryChange] setBoundChange',\n props<{ boundId: string; boundChange: FinnairAirBoundsChangeResponse }>()\n);\nexport const clearBoundChange = createAction('[VoluntaryChange] clearBoundChange', props<{ boundId: string }>());\nexport const clearDepartureBoundSelection = createAction('[VoluntaryChange] clearDepartureBoundSelection');\nexport const clearReturnBoundSelection = createAction('[VoluntaryChange] clearReturnBoundSelection');\nexport const setNewDeparture = createAction(\n '[VoluntaryChange] setNewDeparture',\n props<{ newDeparture: NewBoundSelection }>()\n);\nexport const setNewReturn = createAction(\n '[VoluntaryChange] setNewReturnBoundId',\n props<{ newReturn: NewBoundSelection }>()\n);\n\nexport const setStopsCount = createAction('[VoluntaryChange] setStopsCount', props<{ stopsCount: number }>());\nexport const resetStopsCount = createAction('[VoluntaryChange], resetStopsCount');\n\nexport const setCabin = createAction('[VoluntaryChange], setCabin', props<{ cabin: Cabin }>());\nexport const resetCabin = createAction('[VoluntaryChange], resetCabin');\n\nexport const setDepartureTime = createAction(\n '[VoluntaryChange], SetDepartureTime',\n props<{ departureTime: FlightTimeOption[] }>()\n);\nexport const resetDepartureTime = createAction('[VoluntaryChange], ResetDepartureTime');\n\nexport const setArrivalTime = createAction(\n '[VoluntaryChange], SetArrivalTime',\n props<{ arrivalTime: FlightTimeOption[] }>()\n);\nexport const resetArrivalTime = createAction('[VoluntaryChange], ResetArrivalTime');\n\nexport const setAllFilters = createAction('[VoluntaryChange], SetAllFilters', props<{ filters: FlightFilters }>());\nexport const resetAllFilters = createAction('[VoluntaryChange], ResetAllFilters');\n\nexport const setTempDeparture = createAction(\n '[VoluntaryChange] setTempDeparture',\n props<{ tempDeparture: FinnairBoundItem }>()\n);\nexport const setTempReturn = createAction('[VoluntaryChange] setTempReturn', props<{ tempReturn: FinnairBoundItem }>());\n\nexport const setStep = createAction('[VoluntaryChange] setStep', props<{ step: Step; skipRouteChange?: boolean }>());\n\nconst all = union({\n setLoading,\n setShowDatepickerError,\n clearState,\n setTicketSelectionPhase,\n setDirectFlights,\n setDepartureBoundSelection,\n setReturnBoundSelection,\n setBoundChange,\n setStep,\n setNewDeparture,\n setNewReturn,\n setTempDeparture,\n setTempReturn,\n clearBoundChange,\n clearDepartureBoundSelection,\n clearReturnBoundSelection,\n setOrderChangeData,\n clearOrderChangeData,\n setStopsCount,\n resetStopsCount,\n setCabin,\n resetCabin,\n setDepartureTime,\n resetDepartureTime,\n setArrivalTime,\n resetArrivalTime,\n resetAllFilters,\n});\n\nexport type StateActionsUnion = typeof all | RouterNavigationAction;\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 { CarTrawlerWidgetComponent } from './cartrawler-widget.component';\n\n@NgModule({\n imports: [CommonModule, PipesModule, UiTranslateModule, UiComponentsModule, ComponentsModule, DirectiveModule],\n declarations: [CarTrawlerWidgetComponent],\n exports: [CarTrawlerWidgetComponent],\n providers: [],\n})\nexport class CarTrawlerWidgetModule {}\n","\n\n\n \n\n
\n 0 === false\"\n [title]=\"'actions.continue' | finLocalization\"\n (click)=\"continue()\"\n [position]=\"ButtonPosition.GRID_FULL\"\n [layout]=\"ButtonLayout.COLUMN\"\n >\n
\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\n\nimport { combineLatest, Observable, Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { take } from 'rxjs/operators';\n\nimport { FinnairBoundItem, FinnairOrder, FinnairTravelEndpoint } from '@fcom/dapi/api/models';\nimport { ButtonLayout, ButtonPosition } from '@fcom/ui-components';\nimport { finShare } from '@fcom/rx';\nimport { GtmService } from '@fcom/common/gtm';\nimport { ElementActions, ElementTypes, GaContext } from '@fcom/common';\nimport { getTails } from '@fcom/common-booking/utils/common-booking.utils';\nimport { VoluntaryChangeService } from '@fcom/voluntary-change/services/voluntary-change.service';\nimport { VOLUNTARY_CHANGE_STEPS } from '@fcom/voluntary-change/voluntary-change-config';\nimport { NotificationsService } from '@fcom/manage-booking/services';\nimport { AppState } from '@fcom/core/interfaces/app-state.interface';\nimport { orderData, getChangeableBoundIds } from '@fcom/common-booking';\nimport { UtilsService } from '@fcom/common-booking/services/utils.service';\nimport { Airport } from '@fcom/common/interfaces/booking';\n\nimport { ChangeActions } from '../../../../store/actions/change.actions';\nimport { getChangeBoundIds } from '../../../../store/selectors/change.selector';\nimport { getTrackingDescription } from '../../../../utils';\n\n@Component({\n selector: 'fin-mmb-select-bound',\n templateUrl: './select-bound.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ManageBookingSelectBoundComponent implements OnInit, OnDestroy {\n readonly ButtonPosition = ButtonPosition;\n readonly ButtonLayout = ButtonLayout;\n readonly getTails = getTails;\n\n changeableBoundIds$: Observable;\n boundNotifications$: Observable<{ [flightId: string]: string }>;\n\n selectedBoundsForChange$: Observable;\n booking$: Observable;\n subscriptions = new Subscription();\n\n constructor(\n private store$: Store,\n private utilsService: UtilsService,\n private gtmService: GtmService,\n private voluntaryChangeService: VoluntaryChangeService,\n private notificationsService: NotificationsService\n ) {}\n\n ngOnInit(): void {\n this.booking$ = this.store$.pipe(orderData(), finShare());\n this.changeableBoundIds$ = this.store$.pipe(getChangeableBoundIds());\n this.boundNotifications$ = this.notificationsService.getChangeNotAllowedReasonsByBound();\n this.selectedBoundsForChange$ = this.store$.pipe(getChangeBoundIds());\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n getLocation(leg: FinnairTravelEndpoint): Observable {\n return this.utilsService.getLocation(leg.locationCode, leg.dateTime);\n }\n\n toggleOutbound(bound: FinnairBoundItem): void {\n this.store$.dispatch(ChangeActions.toggleOutbound({ bound }));\n }\n\n toggleInbound(bound: FinnairBoundItem): void {\n this.store$.dispatch(ChangeActions.toggleInbound({ bound }));\n }\n\n continue(): void {\n this.subscriptions.add(\n combineLatest([this.booking$, this.changeableBoundIds$, this.selectedBoundsForChange$])\n .pipe(take(1))\n .subscribe(([booking, changeableBoundIds, selectedBoundsForChange]) => {\n this.gtmService.trackElement(\n `view-pnr_change_select-${getTrackingDescription(changeableBoundIds, selectedBoundsForChange)}`,\n GaContext.MANAGE_BOOKING,\n ElementTypes.BUTTON,\n undefined,\n ElementActions.CLICK,\n `recLoc-${booking?.otherInformation.analyticsToken}`\n );\n this.voluntaryChangeService.setStep({ step: VOLUNTARY_CHANGE_STEPS.SELECT_DATES });\n })\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { IconsModule, UiComponentsModule } from '@fcom/ui-components';\nimport { UiTranslateModule } from '@fcom/ui-translate';\nimport { ComponentsModule } from '@fcom/common/components';\nimport { GtmModule } from '@fcom/common/gtm/gtm.module';\nimport { PipesModule } from '@fcom/common/pipes/pipes.module';\nimport { DirectiveModule, FinFormsModule } from '@fcom/common';\n\nimport { ManageBookingEmergencyContactComponent } from './emergency-contact.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ComponentsModule,\n PipesModule,\n GtmModule,\n ReactiveFormsModule.withConfig({\n callSetDisabledState: 'whenDisabledForLegacyCode',\n }),\n FinFormsModule,\n UiTranslateModule,\n UiComponentsModule,\n IconsModule,\n DirectiveModule,\n ],\n declarations: [ManageBookingEmergencyContactComponent],\n exports: [ManageBookingEmergencyContactComponent],\n providers: [],\n})\nexport class ManageBookingEmergencyContactModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { IconsModule, ModalModule, UiComponentsModule } from '@fcom/ui-components';\nimport { UiTranslateModule } from '@fcom/ui-translate';\nimport { CmsModule } from '@fcom/cms';\nimport { ComponentsModule } from '@fcom/common/components';\nimport { GtmModule } from '@fcom/common/gtm/gtm.module';\nimport { PipesModule } from '@fcom/common/pipes/pipes.module';\nimport { CommonBookingComponentsModule } from '@fcom/common-booking';\nimport { UtilsService } from '@fcom/common-booking/services/utils.service';\n\nimport { ManageBookingNotificationsComponent } from './components/notifications/notifications.component';\nimport { ManageBookingTripComponent } from './components/trip/trip.component';\nimport { ManageBookingFlightComponent } from './components/flight/flight.component';\nimport { ManageBookingEmergencyContactModule } from './components/emergency-contact/emergency-contact.module';\nimport { ManageBookingUnsavedChangesComponent } from './components/unsaved-changes/unsaved-changes.component';\nimport { InterimCancelBookingModalComponent } from './components/interim-cancel-booking-modal/interim-cancel-booking-modal-component';\nimport { CancelBookingModalComponent } from './components/cancel-booking-modal/cancel-booking-modal-component';\nimport { ManageBookingModifyTripComponent } from './components/modify-trip/modify-trip.component';\nimport { ManageBookingChangeFlightGeneralInfoModalComponent } from './components/change-flight-general-info/change-flight-general-info-modal.component';\nimport { ManageBookingSelectMatrixComponent } from './components/select-matrix/select-matrix.component';\nimport { ManageBookingSelectDateComponent } from './components/select-date/select-date.component';\nimport { ManageBookingSelectBoundComponent } from './components/select-bound/select-bound.component';\nimport { NotificationsService, OffersService } from '../../services';\nimport { ThirdPartyLinksComponent } from './components/third-party-links/third-party-links.component';\nimport { CheckInTriggerComponent } from './components/check-in-trigger/check-in-trigger.component';\nimport { CarTrawlerWidgetModule } from './components/cartrawler-widget/cartrawler-widget.module';\n\nconst COMPONENTS = [\n ThirdPartyLinksComponent,\n ManageBookingNotificationsComponent,\n ManageBookingTripComponent,\n ManageBookingModifyTripComponent,\n ManageBookingFlightComponent,\n ManageBookingUnsavedChangesComponent,\n InterimCancelBookingModalComponent,\n CancelBookingModalComponent,\n ManageBookingChangeFlightGeneralInfoModalComponent,\n ManageBookingSelectMatrixComponent,\n ManageBookingSelectDateComponent,\n ManageBookingSelectBoundComponent,\n CheckInTriggerComponent,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n ComponentsModule,\n PipesModule,\n GtmModule,\n CmsModule,\n UiTranslateModule,\n UiComponentsModule,\n IconsModule,\n ModalModule,\n CommonBookingComponentsModule,\n ManageBookingEmergencyContactModule,\n ReactiveFormsModule,\n CarTrawlerWidgetModule,\n ],\n declarations: [...COMPONENTS],\n exports: [...COMPONENTS, ManageBookingEmergencyContactModule],\n providers: [UtilsService, OffersService, NotificationsService],\n})\nexport class ManageBookingCommonModule {}\n"],"x_google_ignoreList":[]}