{"version":3,"file":"src_modules_service-forms-lazy_index_ts.6eb1990450674a8f.js","mappings":"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","names":["i0","ctx_r1","NotificationLayout","BLOCK","NotificationTheme","ALERT","reactiveForm","minDate","maxDate","datepickerThemes","WEB_2","toMinDate","parentItenerary_r3","index_r4","parentbBagItem_r5","index_r6","itemOwnerOptions$","_r1","onSubmit","BaggageTracingFormComponent_form_2_fcom_notification_1_Template","BaggageTracingFormComponent_form_2_fin_datepicker_23_Template","BaggageTracingFormComponent_form_2_fin_datepicker_24_Template","BaggageTracingFormComponent_form_2_ng_template_33_Template","BaggageTracingFormComponent_form_2_fcom_text_input_54_Template","BaggageTracingFormComponent_form_2_ng_template_67_Template","formStatus","FormStatus","ERROR","phonePrefixes$","TextInputType","TEXTAREA","get","value","length","finnairPlusTierOptions","iteneraryFormGroupConfig","_c3","_c1","_c2","bagOptionsControls","enabled","bagItemsFormGroupConfig","ButtonType","SUBMIT","LoaderType","INLINE","BaggageTracingFormComponent","constructor","fb","scrollService","gtmService","languageService","phonePrefixService","baggageTracingService","store$","this","destinationLoading$","Subject","departureLoading$","destinationLocations$","departureLocations$","INITIAL","completedServiceRequestNumber","itemName","itemDescription","itemBelongsTo","origin","Validators","required","destination","flightNumber","pattern","FLIGHT_NUMBER_PATTERN","flightDate","dateValidator","subscriptions","Subscription","ngOnInit","setupPhonePrefixes","add","pipe","profileOrUndefinedIfNotLoggedIn","take","subscribe","profile","createForm","addFormWatchers","translateItemOwnerOptions","next","LocalDate","now","forDate","localYear","ngOnDestroy","unsubscribe","controls","map","UntypedFormControl","primaryAddress","addresses","find","address","primary","group","baggageReferenceNumber","WORLDTRACER_PATTERN","firstName","firstname","NAME_PATTERN","maxLength","lastName","lastname","phonePrefix","parseCountryCode","parsedMobilePhone","regionCodes","countryCode","phoneNumber","nationalNumber","PHONE_PATTERN","email","EMAIL_REGEX","homeAddress","buildAddress","temporaryAddress","temporaryAddressValidFrom","disabled","temporaryAddressValidTo","cardNumber","memberNumber","frequentFlyerValidator","finnairPlusTier","mapProfileTier","tier","itenerary","array","baggageLastSeen","numberOfPiecesChecked","baggageIdentificationTagNumbers","whenAndWhereLossReported","anythingParticularAtCheckIn","color","brand","typeOfBag","bagWasHard","bagOptions","UntypedFormArray","combinationLockCode","baggageNameTagDescription","baggageIdentifiableFeatures","bagItems","itemsToIdentifyBaggage","valid","markAllAsTouched","updateValueAndValidity","LOADING","scrollToImmediate","formContainer","baggageTracing","COMPLETE","trackFormState","error","watchFieldChanges","updateConditionalFields","bind","updateTemporaryAddressFields","updateTemporaryAddressToMinDate","statusChanges","filter","status","distinctUntilChanged","inputValue","parseFormArrayOptions","enableConditionalFields","disableConditionalFields","form","callback","field","valueChanges","val","translate","options","Object","keys","name","DatepickerTheme","static","__ngFactoryType__","i1","i2","i3","i4","i5","i6","core","VBU","selectors","viewQuery","rf","ctx","BaggageTracingFormComponent_form_2_Template","BaggageTracingFormComponent_div_3_Template","BaggageTracingFormComponent_div_4_Template","CancellationCoverClaimFormComponent_form_2_fcom_notification_1_Template","CancellationCoverClaimFormComponent_form_2_cms_unstyled_fragment_31_Template","_c4","allowedFileTypes","maxSizeInBytes","CANCELLATION_FORM","CancellationCoverClaimFormComponent","submitService","ATTACHMENT_ALLOWED_FILE_EXTENSIONS","ATTACHMENT_MAX_SIZE_IN_BYTES","FormInputType","attachment","fileUploader","attachments","bookingReference","pnrFormatValidator","ticketNumber","softTicketNumberValidator","familyName","EMAIL_PATTERN","parsePhoneNumber","PHONE_NUMBER_PATTERN","refundFor","file","attachmentConsent","requiredTrue","AnalyticsFormStatus","SEND_ATTEMPT","reset","sendCancellationCoverClaimRequest","onSuccess","onError","SUCCESS","ReactiveFormStatus","INVALID","START","CancellationCoverClaimFormComponent_form_2_Template","CancellationCoverClaimFormComponent_div_3_Template","CancellationCoverClaimFormComponent_div_4_Template","CaseAttachmentsFormComponent_form_2_fcom_notification_12_Template","REQUEST_CASE_ATTACHMENT","CaseAttachmentsFormComponent","claimAndFeedbackService","configService","caseNumber","CASE_NUMBER_PATTERN","submitToSalesforce","caseId","cfg","enableNewUploadAttachmentFlow","uploadFile","FileOrigin","CASE","undefined","fetchCase","res","caseSFId","RetrieveFields","FAMILY_NAME","CASE_NUMBER","UntypedFormGroup","setControl","RETRIEVE_FORM","getRawValue","salesforceCaseId","CaseAttachmentsFormComponent_form_2_Template","CaseAttachmentsFormComponent_div_3_Template","CaseAttachmentsFormComponent_div_4_Template","CertificatesForInsuranceCompanyField","CONFIRM_SELF_CANCELLED_BOOKING","FLIGHT_DATE","parentFlightNumber_r3","FLIGHT_NUMBER","CertificatesForInsuranceCompanyFormComponent_form_2_fin_form_array_15_ng_template_1_Template","FLIGHTS","formGroupConfig","WORLD_TRACER_NUMBER","CertificatesForInsuranceCompanyFormComponent_form_2_fcom_notification_1_Template","CertificatesForInsuranceCompanyFormComponent_form_2_div_14_Template","CertificatesForInsuranceCompanyFormComponent_form_2_fin_form_array_15_Template","CertificatesForInsuranceCompanyFormComponent_form_2_fcom_text_input_17_Template","REASON_FOR_CERTIFICATE","formInputGroupOptions","FIRST_NAME","LAST_NAME","EMAIL","PHONE","BOOKING_REFERENCE","TICKET_NUMBER","CERTIFICATES_FOR_INSURANCE_COMPANY_FORM","CertificatesForInsuranceCompanyFormComponent","formConditionalControls","CertificatesForInsuranceCompanyReason","BAGGAGE_DELAYED_OR_DAMAGED","SELF_CANCELLED_BOOKING","FLIGHT_DELAYED_OR_CANCELLED","NO_SHOW","ONBOARD","INITIALIZING","allConditionalFields","Array","from","Set","flatMap","control","fields","minusMonths","plusMonths","certificatesForInsuranceCompany","formControl","toggleConditionalFields","selectedOption","option","CertificatesForInsuranceCompanyFormComponent_form_2_Template","CertificatesForInsuranceCompanyFormComponent_div_3_Template","CertificatesForInsuranceCompanyFormComponent_div_4_Template","translationPrefix","group_r4","controlName","field_r3","placeHolder","wordCount","textarea_r5","defaultAllowedFileTypes","customAttachLabel","customRequiredLabel","id","i18n","defaultMaxSizeInBytes","multiple","uploadService","values","note","FormBuilderComponent_form_2_div_5_ng_container_1_fcom_text_input_2_Template","FormBuilderComponent_form_2_div_5_ng_container_1_div_3_Template","FormBuilderComponent_form_2_div_5_ng_container_1_div_4_Template","FormBuilderComponent_form_2_div_5_ng_container_1_fin_select_input_5_Template","FormBuilderComponent_form_2_div_5_ng_container_1_fcom_radio_item_group_6_Template","FormBuilderComponent_form_2_div_5_ng_container_1_div_7_Template","type","FormBuilderInput","TEXT","FILE_UPLOADER","SELECT","RADIO","FormBuilderComponent_form_2_div_5_ng_container_1_Template","FormBuilderComponent_form_2_fcom_notification_1_Template","FormBuilderComponent_form_2_div_5_Template","translationNamespace","controlConfig","FormBuilderComponent_div_4_p_4_Template","hasSuccessMessage","FormBuilderComponent","prefillService","files","prefillFields","reduce","groups","prefillFromProfile","prefillForm","formName","ctrlField","submitHandler","isEmptyObjectOrHasEmptyValues","groupControlName","targetForm","forEach","FormBuilderComponent_form_2_Template","FormBuilderComponent_div_3_Template","FormBuilderComponent_div_4_Template","ClaimMissingPartnerPointsFormComponent","missingPointsService","textareaLimit3000","TEXTAREA_LIMIT_3000","ClaimMissingPartnerPointsFormField","MEMBER_NAME","PrefillProfileData","FIRST_LAST_NAME","MEMBER_NUMBER","finnairPlusNumberValidator","ATTACHMENT","ADDITIONAL_INFORMATION","enableNewClaimMissingPointFlow","claimPartnerMissingAvios","claimMissingPartnerPoints","ctx_r2","LoggedOutMissingPointsFormField","AIRLINE","airlines","parentFlightNumber_r4","index_r5","parentCompanion_r6","COMPANION_NAME","index_r7","COMPANION_MEMBER_NUMBER","_r2","LoggedOutMissingPointsFormComponent_form_2_div_1_Template","LoggedOutMissingPointsFormComponent_form_2_fin_select_input_15_Template","$event","showHelp","LoggedOutMissingPointsFormComponent_form_2_ng_template_25_Template","LoggedOutMissingPointsFormComponent_form_2_ng_template_31_Template","PASSENGER_NAME","selectedAirlineCode","BOOKING_CLASS","bookingClasses","FLIGHT_FROM","AutocompleteTheme","FLIGHT_TO","DEPARTURE_DATE","RETURN_DATE","FLIGHT_NUMBERS","flightNumberFormGroupConfig","COMPANIONS","companionFormGroupConfig","MESSAGE","characterCount","CLAIM_MISSING_POINTS","LoggedOutMissingPointsFormComponent","locationRouteCffService","Airline","ModalButtons","formComplete","EventEmitter","ticketNumberHelpModalOpen","bookingClassSelectOptions","message","ngOnChanges","changes","setValue","currentValue","PARTNER_AIRLINES","airline","code","sort","a","b","onDestinationChanges","onDepartureChanges","onAirlineChange","minusDays","trim","locationFormatValidator","validator","memberNumberDuplicate","claimFlightsMissingAvios","response","onFormSubmitFailed","loggedOutMissingPointsRequest","emit","event","preventDefault","queryLocations","queryString","locations$","loading$","locale","localeValue","locationMatchesFor","LocationMatchOnline","ALL","matchedLocations","items","inputField","FINNAIR","setValidators","debounceTime","AUTOCOMPLETE_DEBOUNCE_TIME","formFieldStatus","formGroup","member","companionMember","companionControl","isArray","input","index","at","isDuplicate","companionMemberNumber","errors","duplicate","setErrors","LoggedOutMissingPointsFormComponent_form_2_Template","LoggedOutMissingPointsFormComponent_div_3_Template","LoggedOutMissingPointsFormComponent_div_4_Template","LoggedOutMissingPointsFormComponent_cms_unstyled_fragment_8_Template","CLOSE","errorLocalizationKey","_r4","LoggedInMissingPointsFormField","SEQUENCE_NUMBER","LoggedInMissingPointsFormComponent_ng_container_2_form_1_ng_container_10_div_1_fcom_text_input_6_Template","DEPARTURE_AIRPORT","ARRIVAL_AIRPORT","LoggedInMissingPointsFormComponent_ng_container_2_form_1_ng_container_10_div_1_Template","LoggedInMissingPointsFormComponent_ng_container_2_form_1_div_1_Template","LoggedInMissingPointsFormComponent_ng_container_2_form_1_fcom_text_input_7_Template","LoggedInMissingPointsFormComponent_ng_container_2_form_1_ng_container_10_Template","NO_TICKET_NUMBER","LoggedInMissingPointsFormComponent_ng_container_2_form_1_Template","LoggedInMissingPointsFormComponent_ng_container_2_div_2_Template","LoggedInMissingPointsFormComponent_ng_container_2_div_3_Template","_r5","onLoggedOutMissingPointsFormComplete","profile$","LoggedInMissingPointsFormComponent","LoggedInMissingPointsErrorCode","loggedOutMissingPointsFormSuccess","otherAirlinesFields","japanAirlinesFields","finShare","loggedInMissingPointsRequest","onFormSubmitSuccess","returnValue","JAPAN_AIRLINES","errorCode","loggedInMissingPointsErrorCodeToLocalizationKeyMap","localizationKeyGenericError","PASSENGER_IS_AN_ID_PASSENGER","i7","LoggedInMissingPointsFormComponent_ng_container_2_Template","LoggedInMissingPointsFormComponent_fin_logged_out_missing_points_form_3_Template","LoggedInMissingPointsFormComponent_cms_unstyled_fragment_7_Template","ClaimMissingPointsFormComponent_ng_container_6_ng_container_3_Template","modalLink_r2","ClaimMissingPointsFormComponent_ng_container_8_ng_container_3_Template","ClaimMissingPointsFormComponent_ng_container_8_ng_container_4_Template","requireLoginToClaimPoints","login_r4","openHelpModal","ClaimMissingPointsFormComponent","LoginStatus","helpModalOpen","loginStatus$","loginStatus","enableClaimMissingPointsLoggedIn","stopPropagation","blurHelpModal","openHelpModalButton","nativeElement","focus","ClaimMissingPointsFormComponent_ng_container_6_Template","ClaimMissingPointsFormComponent_ng_container_8_Template","ClaimMissingPointsFormComponent_cms_unstyled_fragment_18_Template","ClaimMissingPointsFormComponent_ng_template_20_Template","ClaimMissingPointsFormComponent_ng_template_22_Template","LOGGED_IN","NOT_LOGGED_IN","fileUploaderDisabled","THREE_MEGABYTES","ALLOWED_FILETYPES","countryCodes_r4","_r3","ngIf","countryChanged","countries$","CorporateContactFormComponent_form_1_ng_container_21_ng_container_5_Template","countryCodes$","salutations$","profile_r5","corporate","selectedCountryCode","mobilePhone","clientId","CorporateContactFormComponent_form_1_ng_template_23_ng_container_0_Template","CorporateContactFormComponent_form_1_fcom_notification_1_Template","CorporateContactFormComponent_form_1_fcom_file_uploader_15_Template","CorporateContactFormComponent_form_1_ng_container_21_Template","CorporateContactFormComponent_form_1_ng_template_23_Template","CorporateContactFormComponent_form_1_fcom_notification_28_Template","CorporateContactFormComponent_form_1_fcom_notification_29_Template","CorporateContactFormComponent_form_1_fcom_notification_30_Template","topics","message_r6","loggedInUser_r7","tmp_26_0","isUploading","ButtonTheme","LIGHT_PRIMARY_CTA_HEATHER","PRECONDITION_REQUIRED","returnLink$","CORPORATE_CONTACT_FORM_NAME","CorporateContactFormComponent","elementRef","corporateService","sentryLogger","MAX_ATTACHMENTS","reasonMap","additionalInfo","changeInformation","technicalIssue","feedback","subjectMap","startWith","getReturnLink","setInputOptions","prefill","countryCodes","cc","handleError","err","HttpErrorResponse","HttpStatusCode","PreconditionRequired","warn","combineLatest","getPostPayload","switchMap","sfPayload","emailPayload","sendContactCaseToSalesForce","postContactRequest","setTimeout","smoothScroll","thankYouTitle","scrollToInvalidField","stripPhoneNumber","replace","postFile","getRequiredControl","isCorporate","topicKey","subject","reason","attachmentIds","mapAttachmentIds","companyName","customerNumber","country","salutation","phone","AttachmentStatus","READY","fileId","getCountryInputOptions","getSalutationOptions","getPhonePrefixes","withLatestFrom","topic","getNameControl","getEmailControl","String","translations","entries","_key","translation","key","sortBy","CorporateContactFormComponent_form_1_Template","CorporateContactFormComponent_div_2_Template","ETicketReceiptFormComponent","ETicketReceiptFormField","RESERVATION_NUMBER","eTicketReceipt","decls","vars","consts","template","countrySelection","nextPage","countryOptions$","companyDetails","languageOptions$","currencyOptions","pageNavigator_r4","page","secondaryContactDetails","JoinCorporateFormComponent_div_4_div_24_Template","contactDetails","travelAgencyDetails","asTypedFormGroup","bookingSystems","JoinCorporateFormComponent_div_5_div_8_Template","summaryField_r6","getFormattedPhoneNumber","SvgLibraryIcon","CHECKMARK","i_r7","label","JoinCorporateFormComponent_div_6_div_52_ng_container_17_div_1_Template","bookingSystem_r8","JoinCorporateFormComponent_div_6_div_52_ng_container_17_Template","modifyPage","Page","CompanyInformation","JoinCorporateFormComponent_div_6_div_43_Template","ContactDetails","JoinCorporateFormComponent_div_6_div_52_Template","TravelAgencyDetails","JoinCorporateFormComponent_div_6_span_59_Template","submitForm","JoinCorporateFormComponent_div_6_fcom_notification_66_Template","JoinCorporateFormComponent_div_6_fcom_notification_67_Template","termsLink$","loading","submitIcon","header_r10","value_r11","_r13","previousPage","LIGHT_SECONDARY_OUTLINE","JoinCorporateFormComponent_ng_template_10_ng_container_1_fcom_button_1_Template","_r12","currentPage_r14","_r15","cancel","changePage","Summary","JoinCorporateFormComponent_ng_template_10_ng_container_1_Template","JoinCorporateFormComponent_ng_template_10_ng_container_2_Template","editMode","JOIN_CORPORATE_FORM_NAME","CountrySelection","ThankYou","JoinCorporateFormComponent","hotjarService","changeDetectionRef","capitalize","hasRetried","BehaviorSubject","addFormListeners","startCapture","HotjarCaptureEvent","CORPORATE_ENROLLMENT","skipValidation","pageForms","getPageForms","every","top","trackState","currentPageNum","findIndex","formBackup","patchValue","setLoading","markForCheck","invalid","enrollNewCorporate","buildPayload","complete","TERMS_AND_CONDITIONS_PREFIX","getCountryListForTerms","toggleOptionalForm","excludedKey","enable","disable","prefix","number","split","pop","isLoading","category","IconLibrary","SVG_LIBRARY","TRANSFER_LOADER","position","IconPosition","RIGHT","elementType","ElementTypes","FORM","trackElement","GaContext","SERVICE_FORMS","ElementActions","CLICK","bookingSystemControls","noTravelAgency","compose","LATIN_ADDRESS_PATTERN","businessId","postalCode","ZIP_CODE_PATTERN","city","language","budget","currency","title","LATIN_ALPHA_PATTERN","fillSecondaryContact","fillTravelAgency","iataNumber","officeCodes","pricingCode","termsAndConditions","getBookingSystems","previousCustomerNumber","payload","companyTaxId","street","zipCode","agreementStart","toISO8601","startOf","Date","TimeUnit","month","travelBudget","primaryContact","buildContactPayload","agreements","termsAndCond","secondaryContact","travelAgents","buildTravelAgencyPayload","mobile","jobTitle","selectedBookingSystems","_val","s","join","iata","officeCode","previousCorporateCodeFares","bookingSystem","checked","CHECKBOX","getCountryOptions","getLanguageOptions","getCurrencyOptions","countries","locationA","locationB","corporateCountryKeys","filteredCodes","includes","of","selectedCountry","tap","JoinCorporateFormComponent_div_2_Template","JoinCorporateFormComponent_div_3_Template","JoinCorporateFormComponent_div_4_Template","JoinCorporateFormComponent_div_5_Template","JoinCorporateFormComponent_div_6_Template","JoinCorporateFormComponent_div_7_Template","JoinCorporateFormComponent_ng_template_8_Template","JoinCorporateFormComponent_ng_template_10_Template","ctx_r0","availableRefundTypes","refundType","RefundTypes","EXTRAS","refundReasonsExtras","refundReasonsFlight","minDateFlight","maxDateFlight","minDateBooking","maxDateBooking","parentTravelExtra_r6","index2_r7","travelExtraTypeOptions$","RefundFormComponent_form_3_ng_container_7_ng_template_23_div_5_ng_template_2_Template","parentPassenger_r4","travelExtrasFormGroupConfig","selectedRefundType","RefundFormComponent_form_3_ng_container_7_ng_template_23_fcom_text_input_4_Template","RefundFormComponent_form_3_ng_container_7_ng_template_23_div_5_Template","requestContainsFlight","requestContainsExtras","RefundPaymentTypes","ONLINE_BANK","OTHER","_r8","stripSpaces","_r9","_r10","_r11","RefundFormComponent_form_3_ng_container_7_ng_container_28_fcom_text_input_3_Template","RefundFormComponent_form_3_ng_container_7_ng_container_28_fcom_text_input_4_Template","RefundFormComponent_form_3_ng_container_7_ng_container_28_fcom_text_input_5_Template","RefundFormComponent_form_3_ng_container_7_ng_container_28_fcom_text_input_6_Template","RefundFormComponent_form_3_ng_container_7_ng_container_28_fcom_text_input_7_Template","RefundFormComponent_form_3_ng_container_7_ng_container_28_fcom_text_input_8_Template","RefundFormComponent_form_3_ng_container_7_ng_container_28_fcom_text_input_9_Template","RefundFormComponent_form_3_ng_container_7_ng_container_28_fcom_text_input_10_Template","RefundFormComponent_form_3_ng_container_7_ng_container_28_fcom_text_input_11_Template","RefundFormComponent_form_3_ng_container_7_ng_container_28_fcom_text_input_12_Template","RefundFormComponent_form_3_ng_container_7_ng_container_28_fcom_text_input_13_Template","RefundFormComponent_form_3_ng_container_7_ng_container_28_fcom_text_input_14_Template","RefundFormComponent_form_3_ng_container_7_ng_container_28_fcom_text_input_15_Template","RefundFormComponent_form_3_ng_container_7_ng_container_28_fcom_text_input_16_Template","RefundFormComponent_form_3_ng_container_7_fin_datepicker_15_Template","RefundFormComponent_form_3_ng_container_7_fin_datepicker_16_Template","RefundFormComponent_form_3_ng_container_7_fin_datepicker_17_Template","RefundFormComponent_form_3_ng_container_7_ng_template_23_Template","RefundFormComponent_form_3_ng_container_7_ng_container_27_Template","RefundFormComponent_form_3_ng_container_7_ng_container_28_Template","selectedRefundReason","RefundFormRefundReasons","CANCELLED_WITHIN_24_HOURS","passengerFormGroupConfig","selectedPaymentMethod","RefundPaymentMethods","MONEY_BACK","selectedPaymentType","additionalInformationCharacterLimit","RefundFormComponent_form_3_fcom_notification_1_Template","RefundFormComponent_form_3_fcom_notification_4_Template","RefundFormComponent_form_3_div_5_Template","RefundFormComponent_form_3_div_6_Template","RefundFormComponent_form_3_ng_container_7_Template","RefundFormPurchaseChannels","selectedPurchaseChannel","REFUND_FORM","RefundFormComponent","FLIGHT_CANCELLED_BY_FINNAIR","CANCELLED_BY_TICKET_RULES","paymentMethods","GIFT_VOUCHER","EXTRA_NOT_DELIVERED","CHANGED_FLIGHT_OR_SEAT","FLIGHT","FLIGHT_AND_EXTRAS","additionalInformation","allCountries","countryName","countryValues","enumValues","RefundFormCountries","RUSSIA","localeCompare","OTHER_COUNTRIES","initFormSubscriptions","translateTravelExtraTypeOptions","getFullYear","requestRefund","finnairPlusNumber","travelExtras","preorderBagNumber","emdNumber","refundItemType","purchaseChannel","refundReason","paymentMethod","paymentType","passengersData","passengers","reservationNumber","bookingDate","cancellationDate","iban","ibanValidator","bic","bicValidator","accountHolder","accountHolderAddress","bankName","bankAddress","ddsLocaleValue","countrySite","accountNumber","ncc","ifsc","PAYMENT_IFSC_BIK_PATTERN","bik","correspondentBankData","kpp","PAYMENT_KPP_PATTERN","inn","PAYMENT_INN_PATTERN","patronymicName","prefillContactDetails","prefillPassengerDetails","resetInputs","updateBookingDetailValidators","resetPaymentMethod","resetBankDetails","updatePaymentTypeValidators","enableBankFieldsForCountry","firstPassenger","resetPassengers","removeAt","updateBankDetailValidators","bankingFields","RefundFormOnlineBankFields","BANK_COUNTRY","fieldsToSkip","fieldRef","formField","enabledFields","disabledFields","EnabledOnlineBankFields","bankField","enabledCountries","push","RefundFormComponent_fin_loader_2_Template","RefundFormComponent_form_3_Template","RefundFormComponent_div_4_Template","RefundFormComponent_fcom_notification_5_Template","RefundStatusCheckerFormComponent","cdr","router","refundsService","platform","activatedRoute","checkFailed","subscription","isPlatformBrowser","touched","queryParams","params","recLoc","handleFormSubmission","navigate","markAsDirty","fetchRefunds","langValue","minLength","PNR_PATTERN","PLATFORM_ID","RefundStatusCheckerFormComponent_fcom_notification_14_Template","_c0","ARROW_RIGHT","wheelchairTypeOptions","_c5","_c6","textareaLimit100","otherMobilityAidDescription_r3","reasonForWheelchair_r4","_c7","_c8","_c12","_c9","_c10","_c11","_c13","_c14","textareaLimit1000","addMedicalEquipment_r5","medicalConditionOptions","_c15","_c16","_c17","otherReasonForAssistanceOptions","additionalInformation_r6","SpecialAssistanceFormComponent_form_2_fcom_notification_1_Template","SpecialAssistanceFormComponent_form_2_fcom_radio_item_group_21_Template","SpecialAssistanceFormComponent_form_2_fcom_radio_item_group_23_Template","SpecialAssistanceFormComponent_form_2_fcom_radio_item_group_25_Template","SpecialAssistanceFormComponent_form_2_fcom_text_input_27_Template","SpecialAssistanceFormComponent_form_2_fcom_text_input_29_Template","SpecialAssistanceFormComponent_form_2_fcom_text_input_30_Template","SpecialAssistanceFormComponent_form_2_span_32_Template","SpecialAssistanceFormComponent_form_2_fcom_text_input_34_Template","SpecialAssistanceFormComponent_form_2_fcom_text_input_35_Template","SpecialAssistanceFormComponent_form_2_fcom_text_input_36_Template","SpecialAssistanceFormComponent_form_2_fcom_text_input_37_Template","SpecialAssistanceFormComponent_form_2_fcom_text_input_38_Template","SpecialAssistanceFormComponent_form_2_fcom_radio_item_group_40_Template","SpecialAssistanceFormComponent_form_2_fcom_radio_item_group_42_Template","SpecialAssistanceFormComponent_form_2_fcom_radio_item_group_44_Template","SpecialAssistanceFormComponent_form_2_fcom_text_input_46_Template","SpecialAssistanceFormComponent_form_2_fcom_text_input_48_Template","SpecialAssistanceFormComponent_form_2_fcom_radio_item_group_50_Template","SpecialAssistanceFormComponent_form_2_fcom_radio_item_group_51_Template","SpecialAssistanceFormComponent_form_2_span_52_Template","SpecialAssistanceFormComponent_form_2_fcom_text_input_54_Template","SpecialAssistanceFormComponent_form_2_fcom_text_input_55_Template","SpecialAssistanceFormComponent_form_2_fcom_text_input_56_Template","SpecialAssistanceFormComponent_form_2_fcom_text_input_57_Template","SpecialAssistanceFormComponent_form_2_fcom_radio_item_group_59_Template","SpecialAssistanceFormComponent_form_2_fcom_text_input_61_Template","autocompleteThemes","specialAttentionReasonOptions","SpecialAssistanceFormFields","MEDA_ATTACHMENT","attachmentMaxSize","formDisabled","_c18","duplicateServiceRequestNumber","SpecialAssistanceFormComponent_div_4_p_4_Template","SpecialAssistanceFormComponent_div_4_p_5_Template","REQUEST_SPECIAL_ASSISTANCE","SpecialAssistanceFormComponent","TEXTAREA_LIMIT_1000","TEXTAREA_LIMIT_100","specialAttentionFields","OWN_WHEELCHAIR","NEED_ASSISTANCE_WHERE","TRAVELING_WITH_ASSISTANT","ASSISTANT_NAME","MEDICAL_CONDITION","MEDICAL_EQUIPMENT","ADD_MEDICAL_EQUIPMENT","wheelchairFields","WHEELCHAIR_TYPE","WHEELCHAIR_DEPTH","WHEELCHAIR_HEIGHT","WHEELCHAIR_WEIGHT","WHEELCHAIR_WIDTH","ABLE_TO_SIT_WITH_KNEES_BENT","noWheelchairFields","REASON_FOR_WHEELCHAIR","otherMobilityFields","OTHER_MOBILITY_AID_DESCRIPTION","medicalFields","CAPAP_DEVICE_MODEL","PORTABLE_OXYGEN_CONCENTRATOR_MODEL","OTHER_MEDICAL_EQUIPMENT_TYPE","OTHER_MEDICAL_EQUIPMENT_MODEL","otherReasonFields","OTHER_REASON","nonRequired","some","UPLOADING","reasonForSpecialAttention","ownWheelchair","wheelchairType","wheelchairDepth","wheelchairHeight","wheelchairWeight","wheelchairWidth","addMedicalEquipment","reasonForWheelchair","ableToSitWithKneesBent","needAssistanceWhere","travelingWithAssistant","assistantName","medicalCondition","medicalEquipment","CAPAPDeviceModel","portableOxygenConcentratorModel","otherMedicalEquipmentType","otherMedicalEquipmentModel","otherReasonForAssistance","lithiumBatteries","lithiumBattery1Power","lithiumBattery2Power","otherMobilityAidDescription","removeFile","fieldsToEnable","fieldsToDisable","concat","REASON_FOR_SPECIAL_ATTENTION","updateWheelChairFields","updateMedicalEquipmentFields","updateWheelChairType","updateLithiumBatteriesPowerFields","LITHIUM_BATTERIES","LITHIUM_BATTERY_1_POWER","LITHIUM_BATTERY_2_POWER","oldData","createCase","formType","FormType","MEDA","customerFields","toString","formCategory","formSubCategory","bookingInformation","addPassengers","mainPassenger","toLocaleLowerCase","companions","optionalFeedback","additionalComments","specialAssistance","additionalMedicalEquipment","assistanceType","capapDeviceModel","travellingWithAssistant","typeOfMedicalEquipment","typeOfCondition","parseFloat","amountOfLithiumIonBatteries","amountOfLithiumIonBatteriesSwitch","battery1Power","battery2Power","result","data","SpecialAssistanceFormComponent_form_2_Template","SpecialAssistanceFormComponent_div_3_Template","SpecialAssistanceFormComponent_div_4_Template","last_r3","i_r2","info_r1","expandInfoAcc_r4","isOpen$","ctx_r4","CHEVRON_DOWN","content","SpecialAssistanceWizardComponent","ButtonMode","SpecialAssistanceWizardComponent_fin_expand_1_Template","FILL","checkPnr","VatReceiptFormComponent_form_0_fcom_notification_17_Template","VatReceiptFormComponent_form_0_fcom_notification_19_Template","pnrForm","loadingIcon","pnrNotFound$","validatedPnrData_r4","pnr","VatReceiptFormComponent_form_2_ng_container_3_ng_container_3_fcom_notification_7_Template","contactDetailsForm","VatReceiptFormComponent_form_2_ng_container_3_ng_container_3_Template","zipcode","VatReceiptFormComponent_form_2_ng_container_5_div_1_Template","VatReceiptFormComponent_form_2_div_1_Template","VatReceiptFormComponent_form_2_ng_container_3_Template","VatReceiptFormComponent_form_2_ng_container_5_Template","startOver","downloadReceipt","validatedPnrData$","showCompanyDetailsForm$","EXTERNAL_TAB","CORPORATE_VAT_FORM_NAME","VatReceiptFormComponent","windowRef","createForms","prefillForms","bookingRef","eTicket","validators","atLeastOneRequired","addCompanyDetails","addControlListeners","markAsTouched","validatePnrForm","getVatReceipt","catchError","Booking","getPayload","search","getReceiptUrl","throwError","url","nativeWindow","open","showForm","getContactDetailsForPayload","snapshot","c","companyBusinessId","companyAddress","companyPostalCode","companyCity","companyCountry","VatReceiptFormComponent_form_0_Template","VatReceiptFormComponent_form_2_Template","SafDownloadFormComponent","PDF_URL","FormGroup","FormControl","company","handleDownload","scrollToFirstInvalidInput","userProfile","Boolean","ARROW_DOWN"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/modules/service-forms-lazy/components/baggage-tracing-form.component.html","./src/modules/service-forms-lazy/components/baggage-tracing-form.component.ts","./src/modules/service-forms-lazy/components/cancellation-cover-claim-form.component.html","./src/modules/service-forms-lazy/components/cancellation-cover-claim-form.component.ts","./src/modules/service-forms-lazy/components/case-attachments-form.component.html","./src/modules/service-forms-lazy/components/case-attachments-form.component.ts","./src/modules/service-forms-lazy/components/certificates-for-insurance-company-form.component.html","./src/modules/service-forms-lazy/components/certificates-for-insurance-company-form.component.ts","./src/modules/service-forms-lazy/components/form-builder.component.html","./src/modules/service-forms-lazy/components/form-builder.component.ts","./src/modules/service-forms-lazy/components/claim-missing-partner-points-form.component.ts","./src/modules/service-forms-lazy/components/logged-out-missing-points-form.component.html","./src/modules/service-forms-lazy/components/logged-out-missing-points-form.component.ts","./src/modules/service-forms-lazy/components/logged-in-missing-points-form.component.html","./src/modules/service-forms-lazy/components/logged-in-missing-points-form.component.ts","./src/modules/service-forms-lazy/components/claim-missing-points-form.component.html","./src/modules/service-forms-lazy/components/claim-missing-points-form.component.ts","./src/modules/service-forms-lazy/components/corporate-contact-form.component.html","./src/modules/service-forms-lazy/components/corporate-contact-form.component.ts","./src/modules/service-forms-lazy/components/e-ticket-receipt-form.component.ts","./src/modules/service-forms-lazy/components/join-corporate-form/join-corporate-form.component.html","./src/modules/service-forms-lazy/components/join-corporate-form/join-corporate-form.component.ts","./src/modules/service-forms-lazy/components/refund-form.component.html","./src/modules/service-forms-lazy/components/refund-form.component.ts","./src/modules/service-forms-lazy/components/refund-status-checker-form/refund-status-checker-form.component.html","./src/modules/service-forms-lazy/components/refund-status-checker-form/refund-status-checker-form.component.ts","./src/modules/service-forms-lazy/components/special-assistance-form.component.html","./src/modules/service-forms-lazy/components/special-assistance-form.component.ts","./src/modules/service-forms-lazy/components/special-assistance-wizard/special-assistance-wizard.component.html","./src/modules/service-forms-lazy/components/special-assistance-wizard/special-assistance-wizard.component.ts","./src/modules/service-forms-lazy/components/vat-receipt-form.component.html","./src/modules/service-forms-lazy/components/vat-receipt-form.component.ts","./src/modules/service-forms-lazy/components/saf-download-form/saf-download-form.component.ts","./src/modules/service-forms-lazy/components/saf-download-form/saf-download-form.component.html"],"sourcesContent":["
\n \n \n \n \n {{ 'SERVICE_FORMS.NTServiceForms.error.title' | finLocalization }}\n \n

\n {{ 'SERVICE_FORMS.NTServiceForms.mandatoryFields' | finLocalization }}\n

\n

{{ 'SERVICE_FORMS.NTServiceForms.baggageTrackingForm.pirHeading' | finLocalization }}

\n
\n \n
\n

{{ 'SERVICE_FORMS.NTServiceForms.baggageTrackingForm.passengerHeading' | finLocalization }}

\n
\n \n \n \n \n \n
\n
\n \n \n 0\"\n [parentForm]=\"reactiveForm\"\n [controlName]=\"'temporaryAddressValidFrom'\"\n [placeHolder]=\"'SERVICE_FORMS.NTServiceForms.fields.temporaryAddressValidFrom.placeholder'\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [translationPrefix]=\"'SERVICE_FORMS.NTServiceForms.fields.temporaryAddressValidFrom'\"\n [theme]=\"datepickerThemes.WEB_2\"\n >\n 0\"\n [parentForm]=\"reactiveForm\"\n [controlName]=\"'temporaryAddressValidTo'\"\n [placeHolder]=\"'SERVICE_FORMS.NTServiceForms.fields.temporaryAddressValidTo.placeholder'\"\n [minDate]=\"toMinDate\"\n [maxDate]=\"maxDate\"\n [translationPrefix]=\"'SERVICE_FORMS.NTServiceForms.fields.temporaryAddressValidTo'\"\n [theme]=\"datepickerThemes.WEB_2\"\n >\n \n
\n
\n \n \n
\n

{{ 'SERVICE_FORMS.NTServiceForms.baggageTrackingForm.iteneraryHeading' | finLocalization }}

\n
\n \n \n
\n \n \n \n \n
\n
\n \n
\n
\n \n \n \n \n
\n
\n \n
\n

{{ 'SERVICE_FORMS.NTServiceForms.baggageTrackingForm.descriptionOfBagHeading' | finLocalization }}

\n
\n \n \n \n
\n
\n \n \n \n \n \n
\n

{{ 'SERVICE_FORMS.NTServiceForms.baggageTrackingForm.descriptionOfContentHeading' | finLocalization }}

\n
\n \n \n
\n
\n

{{ 'SERVICE_FORMS.NTServiceForms.baggageTrackingForm.descriptionOfContentText' | 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

{{ 'SERVICE_FORMS.NTServiceForms.success.title' | finLocalization }}

\n
\n
\n","import { Component, ElementRef, ViewChild, ViewEncapsulation, type OnDestroy, type OnInit } from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormControl,\n Validators,\n type UntypedFormGroup,\n} from '@angular/forms';\n\nimport { Store } from '@ngrx/store';\nimport { Subject, Subscription, type Observable } from 'rxjs';\nimport { distinctUntilChanged, filter, map, take } from 'rxjs/operators';\n\nimport { LoaderType } from '@fcom/common/';\nimport { GtmService } from '@fcom/common/gtm';\nimport { type SelectOption } from '@fcom/common/interfaces';\nimport { PhonePrefixService, ScrollService } from '@fcom/common/services';\nimport { type Location } from '@fcom/core-api';\nimport { type LoginAddress, type Profile } from '@fcom/core-api/login';\nimport { type AppState } from '@fcom/core/interfaces';\nimport { profileOrUndefinedIfNotLoggedIn } from '@fcom/core/selectors';\nimport {\n EMAIL_REGEX,\n LocalDate,\n NAME_PATTERN,\n PHONE_PATTERN,\n unsubscribe,\n WORLDTRACER_PATTERN,\n} from '@fcom/core/utils';\nimport {\n dateValidator,\n disableConditionalFields,\n enableConditionalFields,\n FormStatus,\n frequentFlyerValidator,\n trackFormState,\n type CheckboxOptionList,\n type TypedFormGroup,\n} from '@fcom/service-forms';\nimport { DatepickerTheme } from '@fcom/service-forms/components/common/datepicker.component';\nimport {\n ButtonType,\n NotificationLayout,\n NotificationTheme,\n RadioItemGroupOption,\n TextInputType,\n} from '@fcom/ui-components';\nimport { LanguageService } from '@fcom/ui-translate';\n\nimport { BaggageTracingService } from '../services/baggage-tracing.service';\nimport { buildAddress, FLIGHT_NUMBER_PATTERN, mapProfileTier, parseCountryCode } from '../utils';\n\n@Component({\n selector: 'fin-baggage-tracing-form',\n templateUrl: 'baggage-tracing-form.component.html',\n styleUrls: ['./special-assistance-form.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class BaggageTracingFormComponent implements OnInit, OnDestroy {\n public readonly LoaderType = LoaderType;\n public readonly FormStatus = FormStatus;\n public readonly TextInputType = TextInputType;\n public readonly ButtonType = ButtonType;\n\n readonly NotificationLayout = NotificationLayout;\n readonly NotificationTheme = NotificationTheme;\n\n @ViewChild('formContainer', { static: true })\n formContainer: ElementRef;\n\n destinationLoading$: Subject = new Subject();\n departureLoading$: Subject = new Subject();\n destinationLocations$: Subject = new Subject();\n departureLocations$: Subject = new Subject();\n minDate: LocalDate;\n maxDate: LocalDate;\n toMinDate: LocalDate;\n reactiveForm: TypedFormGroup;\n formStatus: FormStatus = FormStatus.INITIAL;\n completedServiceRequestNumber = '\"ERROR, not found\"';\n itemOwnerOptions$: Observable;\n bagOptionsControls: CheckboxOptionList;\n phonePrefixes$: Observable;\n finnairPlusTierOptions: RadioItemGroupOption[] = [\n { value: 'platinumLumo' },\n { value: 'platinum' },\n { value: 'gold' },\n { value: 'silver' },\n { value: 'basic' },\n { value: 'none' },\n ];\n\n bagItemsFormGroupConfig: { [key: string]: any } = {\n itemName: [''],\n itemDescription: [''],\n itemBelongsTo: [''],\n };\n\n iteneraryFormGroupConfig: { [key: string]: any } = {\n origin: ['', [Validators.required]],\n destination: ['', [Validators.required]],\n flightNumber: ['', [Validators.required, Validators.pattern(FLIGHT_NUMBER_PATTERN)]],\n flightDate: ['', [Validators.required, dateValidator()]],\n };\n\n private subscriptions: Subscription = new Subscription();\n\n constructor(\n private fb: UntypedFormBuilder,\n private scrollService: ScrollService,\n private gtmService: GtmService,\n private languageService: LanguageService,\n private phonePrefixService: PhonePrefixService,\n private baggageTracingService: BaggageTracingService,\n private store$: Store\n ) {}\n\n ngOnInit(): void {\n this.phonePrefixes$ = this.phonePrefixService.setupPhonePrefixes();\n this.bagOptionsControls = this.baggageTracingService.bagOptionsControls;\n\n this.subscriptions.add(\n this.store$.pipe(profileOrUndefinedIfNotLoggedIn(), take(1)).subscribe((profile) => {\n this.createForm(profile);\n this.addFormWatchers();\n })\n );\n\n this.translateItemOwnerOptions();\n this.destinationLoading$.next(false);\n this.departureLoading$.next(false);\n\n this.minDate = LocalDate.now();\n this.maxDate = LocalDate.forDate(this.minDate.localYear + 2, 1, 1);\n this.toMinDate = LocalDate.now();\n }\n\n ngOnDestroy(): void {\n this.subscriptions = unsubscribe(this.subscriptions);\n }\n\n createForm(profile: Profile): void {\n // Create a new array with a form control for each order\n const controls: UntypedFormControl[] = this.bagOptionsControls.map(() => new UntypedFormControl(false));\n const primaryAddress: LoginAddress = profile?.addresses?.find((address) => address.primary);\n\n this.reactiveForm = this.fb.group({\n baggageReferenceNumber: ['', Validators.pattern(WORLDTRACER_PATTERN)],\n firstName: [\n profile?.firstname ?? '',\n [Validators.required, Validators.pattern(NAME_PATTERN), Validators.maxLength(50)],\n ],\n lastName: [\n profile?.lastname ?? '',\n [Validators.required, Validators.pattern(NAME_PATTERN), Validators.maxLength(50)],\n ],\n phonePrefix: [\n parseCountryCode(profile?.parsedMobilePhone?.regionCodes, profile?.parsedMobilePhone?.countryCode),\n [Validators.required],\n ],\n phoneNumber: [\n profile?.parsedMobilePhone?.nationalNumber ?? '',\n [Validators.required, Validators.pattern(PHONE_PATTERN)],\n ],\n email: [profile?.email ?? '', [Validators.required, Validators.pattern(EMAIL_REGEX)]],\n homeAddress: [buildAddress(primaryAddress), [Validators.required]],\n temporaryAddress: [''],\n temporaryAddressValidFrom: [{ value: '', disabled: true }, [Validators.required, dateValidator()]],\n temporaryAddressValidTo: [{ value: '', disabled: true }, [Validators.required, dateValidator()]],\n cardNumber: [profile?.memberNumber ?? '', [frequentFlyerValidator()]],\n finnairPlusTier: [mapProfileTier(profile?.tier)],\n itenerary: this.fb.array([]),\n baggageLastSeen: ['', [Validators.required]],\n numberOfPiecesChecked: ['', [Validators.required, Validators.pattern(/^\\d+$/)]],\n baggageIdentificationTagNumbers: [''],\n whenAndWhereLossReported: [''],\n anythingParticularAtCheckIn: [''],\n color: ['', [Validators.required]],\n brand: [''],\n typeOfBag: ['', [Validators.required]],\n bagWasHard: ['', [Validators.required]],\n bagOptions: new UntypedFormArray(controls),\n combinationLockCode: [{ value: '', disabled: true }],\n baggageNameTagDescription: [''],\n baggageIdentifiableFeatures: [''],\n bagItems: this.fb.array([]),\n itemsToIdentifyBaggage: [''],\n }) as TypedFormGroup;\n }\n\n onSubmit(): void {\n if (!this.reactiveForm.valid) {\n this.reactiveForm.markAllAsTouched();\n this.reactiveForm.updateValueAndValidity();\n\n return;\n }\n\n this.formStatus = FormStatus.LOADING;\n this.scrollService.scrollToImmediate(this.formContainer);\n\n this.subscriptions.add(\n this.baggageTracingService\n .baggageTracing(this.reactiveForm.value)\n .pipe(take(1))\n .subscribe({\n next: () => {\n this.formStatus = FormStatus.COMPLETE;\n trackFormState('baggage-tracing', 'success', this.gtmService);\n },\n error: () => {\n this.formStatus = FormStatus.ERROR;\n trackFormState('baggage-tracing', 'error', this.gtmService);\n },\n })\n );\n }\n\n private addFormWatchers(): void {\n this.watchFieldChanges(this.reactiveForm, this.updateConditionalFields.bind(this), 'bagOptions');\n\n this.watchFieldChanges(this.reactiveForm, this.updateTemporaryAddressFields.bind(this), 'temporaryAddress');\n\n this.watchFieldChanges(\n this.reactiveForm,\n this.updateTemporaryAddressToMinDate.bind(this),\n 'temporaryAddressValidFrom'\n );\n\n this.subscriptions.add(\n this.reactiveForm.statusChanges\n .pipe(\n filter((status) => status === 'INVALID'),\n distinctUntilChanged(),\n take(1)\n )\n .subscribe(() => {\n trackFormState('request-special-assistance', 'start', this.gtmService);\n })\n );\n }\n\n private updateTemporaryAddressToMinDate(inputValue: LocalDate): void {\n if (inputValue) {\n this.toMinDate = inputValue;\n }\n }\n\n private updateConditionalFields(inputValue: boolean[]): void {\n const selected = this.baggageTracingService.parseFormArrayOptions(inputValue, this.bagOptionsControls);\n if (selected['Combination lock']) {\n enableConditionalFields(['combinationLockCode'], this.reactiveForm);\n } else {\n disableConditionalFields(['combinationLockCode'], this.reactiveForm);\n }\n }\n\n private updateTemporaryAddressFields(inputValue: string): void {\n if (inputValue.length > 0) {\n enableConditionalFields(['temporaryAddressValidFrom', 'temporaryAddressValidTo'], this.reactiveForm);\n } else {\n disableConditionalFields(['temporaryAddressValidFrom', 'temporaryAddressValidTo'], this.reactiveForm);\n }\n }\n\n private watchFieldChanges(\n form: UntypedFormGroup,\n callback: (value: boolean[] | LocalDate | string) => void,\n field: string\n ): void {\n this.subscriptions.add(\n form.get(field).valueChanges.subscribe((val) => {\n callback(val);\n })\n );\n }\n\n private translateItemOwnerOptions(): void {\n this.itemOwnerOptions$ = this.languageService\n .translate('SERVICE_FORMS.NTServiceForms.fields.itemBelongsTo.options')\n .pipe(\n map((options: Record) =>\n Object.keys(options).map(\n (value) =>\n ({\n value: value,\n name: options[value],\n }) as SelectOption\n )\n )\n );\n }\n\n get datepickerThemes(): typeof DatepickerTheme {\n return DatepickerTheme;\n }\n}\n","
\n \n \n \n \n {{ 'SERVICE_FORMS.serviceForms.error.title' | finLocalization }}\n \n \n {{ 'SERVICE_FORMS.serviceForms.mandatoryFields' | finLocalization }}\n \n

{{ 'SERVICE_FORMS.serviceForms.cancellationCoverClaim.bookingDetailsTitle' | finLocalization }}

\n
\n \n \n
\n\n

{{ 'SERVICE_FORMS.serviceForms.cancellationCoverClaim.yourDetailsTitle' | finLocalization }}

\n
\n \n \n \n \n
\n\n

{{ 'SERVICE_FORMS.serviceForms.cancellationCoverClaim.claimTitle' | 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

{{ 'SERVICE_FORMS.serviceForms.success.title' | finLocalization }}

\n

\n
\n
\n","import { Component, ElementRef, type OnDestroy, type OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { type FormControlStatus, UntypedFormBuilder, type UntypedFormGroup, Validators } from '@angular/forms';\n\nimport { Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\nimport { distinctUntilChanged, filter, take } from 'rxjs/operators';\n\nimport { LoaderType } from '@fcom/common';\nimport { GtmService } from '@fcom/common/gtm';\nimport { ScrollService } from '@fcom/common/services/scroll/scroll.service';\nimport type { Profile } from '@fcom/core-api/login';\nimport type { AppState } from '@fcom/core/interfaces';\nimport { profileOrUndefinedIfNotLoggedIn } from '@fcom/core/selectors';\nimport { EMAIL_PATTERN, NAME_PATTERN, unsubscribe } from '@fcom/core/utils';\nimport {\n AnalyticsFormStatus,\n FormInputType,\n FormStatus,\n pnrFormatValidator,\n ReactiveFormStatus,\n softTicketNumberValidator,\n trackFormState,\n} from '@fcom/service-forms';\nimport {\n ATTACHMENT_ALLOWED_FILE_EXTENSIONS,\n ATTACHMENT_MAX_SIZE_IN_BYTES,\n ButtonType,\n NotificationLayout,\n NotificationTheme,\n} from '@fcom/ui-components';\nimport { FileUploaderComponent } from '@fcom/ui-components/components/forms/file-uploader/file-uploader.component';\nimport type { Attachment } from '@fcom/ui-components/components/interfaces';\n\nimport { SubmitService } from '../services/submit.service';\nimport { parsePhoneNumber, PHONE_NUMBER_PATTERN } from '../utils';\n\nconst CANCELLATION_FORM = 'cancellation-cover-claim';\n\n@Component({\n selector: 'fin-cancellation-cover-claim-form',\n templateUrl: 'cancellation-cover-claim-form.component.html',\n styleUrls: ['./cancellation-cover-claim-form.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class CancellationCoverClaimFormComponent implements OnInit, OnDestroy {\n readonly allowedFileTypes = ATTACHMENT_ALLOWED_FILE_EXTENSIONS;\n readonly maxSizeInBytes = ATTACHMENT_MAX_SIZE_IN_BYTES;\n\n readonly ButtonType = ButtonType;\n readonly FormInputType = FormInputType;\n readonly FormStatus = FormStatus;\n readonly LoaderType = LoaderType;\n readonly NotificationLayout = NotificationLayout;\n readonly NotificationTheme = NotificationTheme;\n\n @ViewChild('fileUploader') fileUploader: FileUploaderComponent;\n @ViewChild('formContainer', { static: true }) formContainer: ElementRef;\n\n formStatus: FormStatus = FormStatus.INITIAL;\n reactiveForm: UntypedFormGroup;\n\n private subscriptions: Subscription = new Subscription();\n\n constructor(\n private fb: UntypedFormBuilder,\n private gtmService: GtmService,\n private scrollService: ScrollService,\n private store$: Store,\n private submitService: SubmitService\n ) {}\n\n get attachment(): Attachment | undefined {\n return this.fileUploader?.attachments[0];\n }\n\n ngOnInit(): void {\n this.subscriptions.add(\n this.store$.pipe(profileOrUndefinedIfNotLoggedIn(), take(1)).subscribe((profile: Profile): void => {\n this.createForm(profile);\n this.addFormWatchers();\n })\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions = unsubscribe(this.subscriptions);\n }\n\n createForm(profile?: Profile): void {\n this.reactiveForm = this.fb.group({\n bookingReference: ['', [Validators.required, pnrFormatValidator()]],\n ticketNumber: ['', [Validators.required, softTicketNumberValidator()]],\n firstName: [profile?.firstname ?? '', [Validators.required, Validators.pattern(NAME_PATTERN)]],\n familyName: [profile?.lastname ?? '', [Validators.required, Validators.pattern(NAME_PATTERN)]],\n email: [profile?.email ?? '', [Validators.required, Validators.pattern(EMAIL_PATTERN)]],\n phoneNumber: [parsePhoneNumber(profile), [Validators.required, Validators.pattern(PHONE_NUMBER_PATTERN)]],\n refundFor: ['departureAndReturnFlights', [Validators.required]],\n file: [[], Validators.required],\n attachmentConsent: [false, [Validators.requiredTrue]],\n });\n }\n\n onSubmit(): void {\n if (!this.reactiveForm.valid) {\n this.reactiveForm.markAllAsTouched();\n this.reactiveForm.updateValueAndValidity();\n\n return;\n }\n\n this.formStatus = FormStatus.LOADING;\n this.scrollService.scrollToImmediate(this.formContainer);\n trackFormState(CANCELLATION_FORM, AnalyticsFormStatus.SEND_ATTEMPT, this.gtmService);\n\n // Angular fills the form with original values if submit fails\n // but setting file input value to anything else than empty string throws an error\n const file: File = this.attachment?.file;\n this.reactiveForm.get('file').reset();\n this.subscriptions.add(\n this.submitService\n .sendCancellationCoverClaimRequest(this.reactiveForm.value, file)\n .pipe(take(1))\n .subscribe({\n next: (): void => {\n this.onSuccess();\n },\n error: (): void => {\n this.onError();\n },\n })\n );\n }\n\n private onSuccess(): void {\n this.formStatus = FormStatus.COMPLETE;\n trackFormState(CANCELLATION_FORM, AnalyticsFormStatus.SUCCESS, this.gtmService);\n }\n\n private onError(): void {\n this.formStatus = FormStatus.ERROR;\n trackFormState(CANCELLATION_FORM, AnalyticsFormStatus.ERROR, this.gtmService);\n }\n\n private addFormWatchers(): void {\n this.subscriptions.add(\n this.reactiveForm.statusChanges\n .pipe(\n filter((status: FormControlStatus): boolean => status === ReactiveFormStatus.INVALID),\n distinctUntilChanged(),\n take(1)\n )\n .subscribe((): void => {\n trackFormState(CANCELLATION_FORM, AnalyticsFormStatus.START, this.gtmService);\n })\n );\n }\n}\n","
\n \n
\n \n \n
\n
\n \n
\n
\n \n
\n
\n \n {{ 'SERVICE_FORMS.serviceForms.error.title' | finLocalization }}\n \n
\n \n \n
\n

{{ 'SERVICE_FORMS.serviceForms.loading.title' | finLocalization }}

\n \n
\n
\n

{{ 'SERVICE_FORMS.serviceForms.success.title' | finLocalization }}

\n
\n
\n","import { Component, ElementRef, ViewChild, ViewEncapsulation, type OnDestroy, type OnInit } from '@angular/core';\nimport { FormGroup, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\n\nimport { Store } from '@ngrx/store';\nimport { Subscription, type Observable } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { LoaderType } from '@fcom/common/';\nimport { GtmService } from '@fcom/common/gtm';\nimport { ScrollService } from '@fcom/common/services';\nimport { ConfigService } from '@fcom/core';\nimport type { Profile } from '@fcom/core-api/login';\nimport type { AppState } from '@fcom/core/interfaces';\nimport { profileOrUndefinedIfNotLoggedIn } from '@fcom/core/selectors';\nimport { NAME_PATTERN, unsubscribe } from '@fcom/core/utils';\nimport { FormStatus } from '@fcom/service-forms/interfaces';\nimport { trackFormState } from '@fcom/service-forms/services';\nimport {\n ATTACHMENT_ALLOWED_FILE_EXTENSIONS,\n ATTACHMENT_MAX_SIZE_IN_BYTES,\n ButtonType,\n NotificationLayout,\n NotificationTheme,\n} from '@fcom/ui-components';\nimport { FileUploaderComponent } from '@fcom/ui-components/components/forms/file-uploader/file-uploader.component';\nimport type { Attachment } from '@fcom/ui-components/components/interfaces';\n\nimport { FileOrigin, RetrieveFields, type CaseAttachmentFormGroup, type RetrieveCase } from '../interfaces';\nimport { ClaimOrFeedbackService } from '../services/claim-or-feedback.service';\nimport { CASE_NUMBER_PATTERN } from '../utils';\n\nexport const REQUEST_CASE_ATTACHMENT = 'request-case-attachment';\n\n@Component({\n selector: 'fin-case-attachments-form',\n templateUrl: 'case-attachments-form.component.html',\n styleUrls: ['./case-attachments-form.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class CaseAttachmentsFormComponent implements OnInit, OnDestroy {\n readonly allowedFileTypes = ATTACHMENT_ALLOWED_FILE_EXTENSIONS;\n readonly maxSizeInBytes = ATTACHMENT_MAX_SIZE_IN_BYTES;\n\n readonly ButtonType = ButtonType;\n readonly FormStatus = FormStatus;\n readonly LoaderType = LoaderType;\n readonly NotificationLayout = NotificationLayout;\n readonly NotificationTheme = NotificationTheme;\n\n private subscriptions: Subscription = new Subscription();\n\n reactiveForm: FormGroup;\n formStatus: FormStatus = FormStatus.INITIAL;\n\n @ViewChild('fileUploader') fileUploader: FileUploaderComponent;\n @ViewChild('formContainer', { static: true }) formContainer: ElementRef;\n\n constructor(\n private store$: Store,\n private fb: UntypedFormBuilder,\n private scrollService: ScrollService,\n private claimAndFeedbackService: ClaimOrFeedbackService,\n private gtmService: GtmService,\n private configService: ConfigService\n ) {}\n\n get attachment(): Attachment | undefined {\n return this.fileUploader?.attachments[0];\n }\n\n ngOnInit(): void {\n this.formStatus = FormStatus.INITIAL;\n this.subscriptions.add(\n this.store$.pipe(profileOrUndefinedIfNotLoggedIn(), take(1)).subscribe((profile: Profile): void => {\n this.createForm(profile);\n })\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions = unsubscribe(this.subscriptions);\n }\n\n createForm(profile?: Profile): void {\n this.reactiveForm = this.fb.group({\n lastName: [\n profile?.lastname ?? '',\n [Validators.required, Validators.pattern(NAME_PATTERN), Validators.maxLength(50)],\n ],\n caseNumber: ['', [Validators.pattern(CASE_NUMBER_PATTERN), Validators.required]],\n file: [[], Validators.required],\n });\n }\n\n onSubmit(): void {\n if (!this.reactiveForm.valid) {\n this.reactiveForm.markAllAsTouched();\n this.reactiveForm.updateValueAndValidity();\n\n return;\n }\n\n this.formStatus = FormStatus.LOADING;\n this.scrollService.scrollToImmediate(this.formContainer);\n trackFormState(REQUEST_CASE_ATTACHMENT, 'send-attempt', this.gtmService);\n this.submitToSalesforce();\n }\n\n private submitToSalesforce(): void {\n const file = this.fileUploader?.attachments[0]?.file;\n const caseId = this.reactiveForm.value?.caseNumber;\n const lastName = this.reactiveForm.value?.lastName;\n if (this.configService.cfg.enableNewUploadAttachmentFlow) {\n this.uploadFile(file, FileOrigin.CASE, undefined, caseId, lastName);\n } else {\n this.subscriptions.add(\n this.fetchCase(caseId, lastName).subscribe({\n next: (res) => {\n if (!res) {\n this.formStatus = FormStatus.ERROR;\n trackFormState(REQUEST_CASE_ATTACHMENT, 'error', this.gtmService);\n return;\n }\n this.uploadFile(file, FileOrigin.CASE, res.caseSFId);\n },\n error: () => {\n this.formStatus = FormStatus.ERROR;\n trackFormState(REQUEST_CASE_ATTACHMENT, 'error', this.gtmService);\n },\n })\n );\n }\n }\n\n fetchCase(caseId: string, lastName: string): Observable {\n const group = this.fb.group({\n [RetrieveFields.FAMILY_NAME]: lastName,\n [RetrieveFields.CASE_NUMBER]: caseId,\n });\n const form: UntypedFormGroup = new UntypedFormGroup({});\n form.setControl(RetrieveFields.RETRIEVE_FORM, group);\n return this.claimAndFeedbackService.fetchCase(form.getRawValue()).pipe(take(1));\n }\n\n uploadFile(file: File, origin: FileOrigin, salesforceCaseId?: string, caseId?: string, lastName?: string): void {\n this.subscriptions.add(\n this.claimAndFeedbackService\n .uploadFile<{ results: string }>(file, origin, salesforceCaseId, caseId, lastName)\n .pipe(take(1))\n .subscribe({\n next: () => {\n trackFormState(REQUEST_CASE_ATTACHMENT, 'success', this.gtmService);\n this.formStatus = FormStatus.COMPLETE;\n },\n error: () => {\n this.formStatus = FormStatus.ERROR;\n trackFormState(REQUEST_CASE_ATTACHMENT, 'error', this.gtmService);\n },\n })\n );\n }\n}\n","
\n \n \n {{ 'SERVICE_FORMS.NTServiceForms.error.title' | finLocalization }}\n \n

\n {{ 'SERVICE_FORMS.NTServiceForms.mandatoryFields' | finLocalization }}\n

\n
\n \n \n
\n
\n \n \n \n \n \n \n \n

\n {{ 'SERVICE_FORMS.NTServiceForms.certificatesForInsuranceCompany.disclaimer' | 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

{{ 'SERVICE_FORMS.NTServiceForms.success.title' | finLocalization }}

\n

\n
\n\n","import { Component, ElementRef, ViewChild, ViewEncapsulation, type OnDestroy, type OnInit } from '@angular/core';\nimport { UntypedFormBuilder, Validators, type FormControlStatus, type UntypedFormGroup } from '@angular/forms';\n\nimport { Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\nimport { distinctUntilChanged, filter, take } from 'rxjs/operators';\n\nimport { LoaderType } from '@fcom/common/';\nimport { GtmService } from '@fcom/common/gtm';\nimport { ScrollService } from '@fcom/common/services/scroll/scroll.service';\nimport { type Profile } from '@fcom/core-api/login';\nimport { type AppState } from '@fcom/core/interfaces';\nimport { profileOrUndefinedIfNotLoggedIn } from '@fcom/core/selectors';\nimport { EMAIL_PATTERN, LocalDate, NAME_PATTERN, unsubscribe, WORLDTRACER_PATTERN } from '@fcom/core/utils';\nimport {\n dateValidator,\n disableConditionalFields,\n enableConditionalFields,\n FormInputType,\n FormStatus,\n pnrFormatValidator,\n ReactiveFormStatus,\n trackFormState,\n} from '@fcom/service-forms';\nimport { DatepickerTheme } from '@fcom/service-forms/components/common/datepicker.component';\nimport { ButtonType, NotificationLayout, NotificationTheme, RadioItemGroupOption } from '@fcom/ui-components';\n\nimport { CertificatesForInsuranceCompanyField, CertificatesForInsuranceCompanyReason } from '../interfaces';\nimport { SubmitService } from '../services/submit.service';\nimport { FLIGHT_NUMBER_PATTERN, parsePhoneNumber, PHONE_NUMBER_PATTERN } from '../utils';\n\nconst CERTIFICATES_FOR_INSURANCE_COMPANY_FORM = 'certificates-for-insurance-company-form';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n selector: 'fin-certificates-for-insurance-company-form',\n styleUrls: ['./certificates-for-insurance-company-form.component.scss'],\n templateUrl: 'certificates-for-insurance-company-form.component.html',\n})\nexport class CertificatesForInsuranceCompanyFormComponent implements OnInit, OnDestroy {\n readonly ButtonType = ButtonType;\n readonly CertificatesForInsuranceCompanyField = CertificatesForInsuranceCompanyField;\n readonly DatepickerTheme = DatepickerTheme;\n readonly FormInputType = FormInputType;\n readonly FormStatus = FormStatus;\n readonly LoaderType = LoaderType;\n readonly NotificationLayout = NotificationLayout;\n readonly NotificationTheme = NotificationTheme;\n\n @ViewChild('formContainer', { static: true }) formContainer: ElementRef;\n\n /**\n * Conditional form controls that enable one or several other fields\n * depending on what option has been selected.\n *\n * The first key refers to the control triggering the changes,\n * while the first value of each of its descendant arrays determine\n * the value of the option selected and the fields it should enable.\n */\n formConditionalControls: Record = {\n [CertificatesForInsuranceCompanyField.REASON_FOR_CERTIFICATE]: [\n [\n CertificatesForInsuranceCompanyReason.BAGGAGE_DELAYED_OR_DAMAGED,\n [CertificatesForInsuranceCompanyField.FLIGHTS, CertificatesForInsuranceCompanyField.WORLD_TRACER_NUMBER],\n ],\n [\n CertificatesForInsuranceCompanyReason.SELF_CANCELLED_BOOKING,\n [CertificatesForInsuranceCompanyField.CONFIRM_SELF_CANCELLED_BOOKING],\n ],\n [\n CertificatesForInsuranceCompanyReason.FLIGHT_DELAYED_OR_CANCELLED,\n [CertificatesForInsuranceCompanyField.FLIGHTS],\n ],\n ],\n };\n /**\n * Group configurations for form arrays that contain the name\n * of the group as its key and a record of repeatable fields\n * with their default values and validation patterns.\n */\n formGroupConfig: Record> = {\n [CertificatesForInsuranceCompanyField.FLIGHTS]: {\n [CertificatesForInsuranceCompanyField.FLIGHT_DATE]: ['', [Validators.required, dateValidator()]],\n [CertificatesForInsuranceCompanyField.FLIGHT_NUMBER]: [\n '',\n [Validators.required, Validators.pattern(FLIGHT_NUMBER_PATTERN)],\n ],\n },\n };\n /**\n * Groups of checkbox and radio input groups containing the\n * name of the group as its key and an array of options that\n * will be looped over to create the inputs to set its value.\n *\n * Translation keys for the options should be stored in the\n * same place as the translations for the group fields.\n */\n formInputGroupOptions: Record = {\n [CertificatesForInsuranceCompanyField.REASON_FOR_CERTIFICATE]: [\n { value: CertificatesForInsuranceCompanyReason.BAGGAGE_DELAYED_OR_DAMAGED },\n { value: CertificatesForInsuranceCompanyReason.FLIGHT_DELAYED_OR_CANCELLED },\n { value: CertificatesForInsuranceCompanyReason.NO_SHOW },\n { value: CertificatesForInsuranceCompanyReason.ONBOARD },\n { value: CertificatesForInsuranceCompanyReason.SELF_CANCELLED_BOOKING },\n ],\n };\n formStatus: FormStatus = FormStatus.INITIALIZING;\n minDate: LocalDate;\n maxDate: LocalDate;\n reactiveForm: UntypedFormGroup;\n\n private subscriptions: Subscription = new Subscription();\n\n constructor(\n private fb: UntypedFormBuilder,\n private gtmService: GtmService,\n private scrollService: ScrollService,\n private store$: Store,\n private submitService: SubmitService\n ) {}\n\n get allConditionalFields(): CertificatesForInsuranceCompanyField[] {\n return Array.from(\n new Set(\n Object.keys(this.formConditionalControls).flatMap(\n (control: CertificatesForInsuranceCompanyField): CertificatesForInsuranceCompanyField[] =>\n this.formConditionalControls[control].flatMap(\n ([, fields]: [\n CertificatesForInsuranceCompanyField,\n CertificatesForInsuranceCompanyField[],\n ]): CertificatesForInsuranceCompanyField[] => fields\n )\n )\n )\n );\n }\n\n get datepickerThemes(): typeof DatepickerTheme {\n return DatepickerTheme;\n }\n\n ngOnInit(): void {\n this.minDate = LocalDate.now().minusMonths(6);\n this.maxDate = LocalDate.now().plusMonths(24);\n\n this.subscriptions.add(\n this.store$\n .pipe(profileOrUndefinedIfNotLoggedIn(), distinctUntilChanged())\n .subscribe((profile: Profile): void => {\n this.createForm(profile);\n this.formStatus = FormStatus.INITIAL;\n disableConditionalFields(this.allConditionalFields, this.reactiveForm);\n this.addFormWatchers();\n })\n );\n }\n\n ngOnDestroy(): void {\n unsubscribe(this.subscriptions);\n }\n\n onSubmit(): void {\n if (!this.reactiveForm.valid) {\n this.reactiveForm.markAllAsTouched();\n this.reactiveForm.updateValueAndValidity();\n\n return;\n }\n\n this.formStatus = FormStatus.LOADING;\n this.scrollService.scrollToImmediate(this.formContainer);\n trackFormState(CERTIFICATES_FOR_INSURANCE_COMPANY_FORM, 'send-attempt', this.gtmService);\n this.subscriptions.add(\n this.submitService\n .certificatesForInsuranceCompany(this.reactiveForm.value)\n .pipe(take(1))\n .subscribe({\n next: () => {\n this.formStatus = FormStatus.COMPLETE;\n trackFormState(CERTIFICATES_FOR_INSURANCE_COMPANY_FORM, 'success', this.gtmService);\n },\n error: () => {\n this.formStatus = FormStatus.ERROR;\n trackFormState(CERTIFICATES_FOR_INSURANCE_COMPANY_FORM, 'error', this.gtmService);\n },\n })\n );\n }\n\n private addFormWatchers(): void {\n this.subscriptions.add(\n this.reactiveForm.statusChanges\n .pipe(\n filter((status: FormControlStatus): boolean => status === ReactiveFormStatus.INVALID),\n distinctUntilChanged(),\n take(1)\n )\n .subscribe((): void => {\n trackFormState(CERTIFICATES_FOR_INSURANCE_COMPANY_FORM, 'start', this.gtmService);\n })\n );\n for (const formControl of Object.keys(this.formConditionalControls)) {\n this.subscriptions.add(\n this.reactiveForm.controls[formControl].valueChanges.subscribe(\n (value: CertificatesForInsuranceCompanyReason): void => this.toggleConditionalFields(formControl, value)\n )\n );\n }\n }\n\n private createForm(profile?: Profile): void {\n this.reactiveForm = this.fb.group({\n [CertificatesForInsuranceCompanyField.REASON_FOR_CERTIFICATE]: ['', Validators.required],\n [CertificatesForInsuranceCompanyField.FIRST_NAME]: [\n profile?.firstname ?? '',\n [Validators.required, Validators.pattern(NAME_PATTERN)],\n ],\n [CertificatesForInsuranceCompanyField.LAST_NAME]: [\n profile?.lastname ?? '',\n [Validators.required, Validators.pattern(NAME_PATTERN)],\n ],\n [CertificatesForInsuranceCompanyField.EMAIL]: [\n profile?.email ?? '',\n [Validators.required, Validators.pattern(EMAIL_PATTERN)],\n ],\n [CertificatesForInsuranceCompanyField.PHONE]: [\n parsePhoneNumber(profile),\n [Validators.required, Validators.pattern(PHONE_NUMBER_PATTERN)],\n ],\n [CertificatesForInsuranceCompanyField.BOOKING_REFERENCE]: ['', [Validators.required, pnrFormatValidator()]],\n [CertificatesForInsuranceCompanyField.TICKET_NUMBER]: ['', [Validators.required]],\n [CertificatesForInsuranceCompanyField.CONFIRM_SELF_CANCELLED_BOOKING]: [null, Validators.required],\n [CertificatesForInsuranceCompanyField.FLIGHTS]: this.fb.array([]),\n [CertificatesForInsuranceCompanyField.WORLD_TRACER_NUMBER]: [\n '',\n [Validators.required, Validators.pattern(WORLDTRACER_PATTERN)],\n ],\n });\n }\n\n private toggleConditionalFields(formControl: string, selectedOption: string): void {\n disableConditionalFields(this.allConditionalFields, this.reactiveForm);\n for (const [option, fields] of this.formConditionalControls[formControl]) {\n if (option !== selectedOption) {\n continue;\n }\n enableConditionalFields(fields, this.reactiveForm);\n }\n this.reactiveForm.updateValueAndValidity();\n }\n}\n","
\n \n \n \n \n {{ translationPrefix + '.error.title' | finLocalization }}\n \n

\n {{ translationNamespace + '.mandatoryFields' | finLocalization }}\n

\n \n \n \n \n \n
\n \n \n
\n
\n \n
\n \n \n \n \n
\n
\n \n {{ field.note | finLocalization }}\n \n
\n
\n
\n\n
\n \n
\n \n \n
\n \n
\n \n
\n

{{ translationPrefix + '.success.title' | finLocalization }}

\n

{{ translationPrefix + '.success.message' | finLocalization }}

\n
\n\n","import { Component, ElementRef, Input, ViewChild, ViewEncapsulation, type OnDestroy, type OnInit } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\n\nimport { Subscription } from 'rxjs';\nimport { distinctUntilChanged, filter, take } from 'rxjs/operators';\n\nimport { LoaderType } from '@fcom/common/';\nimport { GtmService } from '@fcom/common/gtm';\nimport { isEmptyObjectOrHasEmptyValues, unsubscribe } from '@fcom/core/utils';\nimport { FormStatus, PrefillService, trackFormState, TypedFormGroup } from '@fcom/service-forms';\nimport {\n ATTACHMENT_ALLOWED_FILE_EXTENSIONS,\n ATTACHMENT_MAX_SIZE_IN_BYTES,\n ButtonType,\n NotificationLayout,\n NotificationTheme,\n TextInputType,\n} from '@fcom/ui-components';\nimport { FileUploaderComponent } from '@fcom/ui-components/components/forms/file-uploader/file-uploader.component';\n\nimport {\n FormBuilderInput,\n type FormBuilderField,\n type FormBuilderGroup,\n type FormBuilderSubmitHandler,\n} from '../interfaces';\n\n@Component({\n selector: 'fin-form-builder',\n templateUrl: 'form-builder.component.html',\n styleUrls: ['./form-builder.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class FormBuilderComponent implements OnInit, OnDestroy {\n readonly defaultAllowedFileTypes: FileUploaderComponent['allowedFileTypes'] = ATTACHMENT_ALLOWED_FILE_EXTENSIONS;\n readonly defaultMaxSizeInBytes: FileUploaderComponent['maxSizeInBytes'] = ATTACHMENT_MAX_SIZE_IN_BYTES;\n\n readonly ButtonType = ButtonType;\n readonly FormBuilderInput = FormBuilderInput;\n readonly FormStatus = FormStatus;\n readonly LoaderType = LoaderType;\n readonly NotificationLayout = NotificationLayout;\n readonly NotificationTheme = NotificationTheme;\n readonly TextInputType = TextInputType;\n\n @Input()\n controlConfig: FormBuilderGroup[];\n\n @Input()\n formName: string;\n\n @Input()\n translationNamespace = 'SERVICE_FORMS.serviceForms';\n\n @Input()\n translationPrefix: string;\n\n @Input({ required: true })\n submitHandler: FormBuilderSubmitHandler;\n\n @Input()\n hasSuccessMessage = true;\n\n @ViewChild('fileUploader') fileUploader: FileUploaderComponent;\n\n @ViewChild('formContainer', { static: true })\n formContainer: ElementRef;\n\n reactiveForm: TypedFormGroup;\n formStatus: FormStatus = FormStatus.INITIAL;\n files: { [groupControlName: string]: { [fieldControlName: string]: FileList } } = {};\n prefillFields = {};\n\n private subscriptions: Subscription = new Subscription();\n\n constructor(\n private fb: UntypedFormBuilder,\n private gtmService: GtmService,\n private prefillService: PrefillService\n ) {}\n\n ngOnInit(): void {\n this.reactiveForm = this.fb.group(\n this.controlConfig.reduce((groups, group: FormBuilderGroup): object => {\n groups[group.controlName] = new UntypedFormGroup(\n group.fields.reduce((fields, field: FormBuilderField) => {\n fields[field.controlName] = new UntypedFormControl(...field.controlConfig);\n if (field.prefillFromProfile) {\n this.prefillFields[field.prefillFromProfile] = field.controlName;\n }\n return fields;\n }, {})\n );\n return groups;\n }, {})\n ) as TypedFormGroup;\n\n this.prefillForm(this.reactiveForm);\n\n this.subscriptions.add(\n this.reactiveForm.statusChanges\n .pipe(\n filter((status) => status === 'INVALID'),\n distinctUntilChanged(),\n take(1)\n )\n .subscribe(() => {\n trackFormState(this.formName, 'start', this.gtmService);\n })\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions = unsubscribe(this.subscriptions);\n }\n\n onSubmit(): void {\n if (this.formStatus === FormStatus.LOADING) {\n return;\n }\n\n if (!this.reactiveForm.valid) {\n this.reactiveForm.markAllAsTouched();\n this.reactiveForm.updateValueAndValidity();\n this.fileUploader?.ctrlField?.updateValueAndValidity();\n\n return;\n }\n\n this.formStatus = FormStatus.LOADING;\n this.subscriptions.add(\n this.submitHandler(this.reactiveForm.value)\n .pipe(take(1))\n .subscribe({\n next: () => {\n this.formStatus = FormStatus.COMPLETE;\n trackFormState(this.formName, 'success', this.gtmService);\n },\n error: () => {\n this.formStatus = FormStatus.ERROR;\n trackFormState(this.formName, 'error', this.gtmService);\n },\n })\n );\n }\n\n private prefillForm(form: UntypedFormGroup) {\n if (!isEmptyObjectOrHasEmptyValues(this.prefillFields)) {\n const groupControlName = Object.keys(form.controls)[0];\n const targetForm = form.controls[groupControlName] as UntypedFormGroup;\n\n Object.keys(this.prefillFields).forEach((field) => {\n this.prefillFields[field] = targetForm.get(this.prefillFields[field]);\n });\n\n this.subscriptions.add(this.prefillService.prefillFromProfile(targetForm, this.prefillFields).subscribe());\n }\n }\n}\n","import { Component, ViewChild } from '@angular/core';\nimport { Validators } from '@angular/forms';\n\nimport { type Observable } from 'rxjs';\n\nimport { ConfigService } from '@fcom/core';\nimport { EMAIL_REGEX, NAME_PATTERN } from '@fcom/core/utils';\nimport { finnairPlusNumberValidator, PrefillProfileData } from '@fcom/service-forms';\nimport {\n ATTACHMENT_ALLOWED_FILE_EXTENSIONS,\n ATTACHMENT_MAX_SIZE_IN_BYTES,\n TEXTAREA_LIMIT_3000,\n} from '@fcom/ui-components';\n\nimport {\n ClaimMissingPartnerPointsFormData,\n ClaimMissingPartnerPointsFormField,\n ClaimMissingPartnerPointsResponseData,\n FormBuilderGroup,\n FormBuilderInput,\n} from '../interfaces';\nimport { MissingPointsService } from '../services/missing-points.service';\nimport { SubmitService } from '../services/submit.service';\nimport { type FormBuilderComponent } from './form-builder.component';\n\n@Component({\n selector: 'fin-claim-missing-partner-points-form',\n template: `\n \n \n `,\n})\nexport class ClaimMissingPartnerPointsFormComponent {\n readonly allowedFileTypes: string[] = ATTACHMENT_ALLOWED_FILE_EXTENSIONS;\n readonly maxSizeInBytes: number = ATTACHMENT_MAX_SIZE_IN_BYTES;\n readonly textareaLimit3000: number = TEXTAREA_LIMIT_3000;\n\n controlConfig: FormBuilderGroup[] = [\n {\n controlName: 'claimMissingPartnerPoints',\n fields: [\n {\n type: FormBuilderInput.TEXT,\n controlName: ClaimMissingPartnerPointsFormField.MEMBER_NAME,\n translationPrefix: 'SERVICE_FORMS.serviceForms.fields.name',\n controlConfig: ['', [Validators.required, Validators.pattern(NAME_PATTERN)]],\n prefillFromProfile: PrefillProfileData.FIRST_LAST_NAME,\n },\n {\n type: FormBuilderInput.TEXT,\n controlName: ClaimMissingPartnerPointsFormField.MEMBER_NUMBER,\n translationPrefix: 'SERVICE_FORMS.serviceForms.fields.memberNumber',\n placeHolder: 'SERVICE_FORMS.serviceForms.fields.memberNumber.placeholder',\n controlConfig: ['', [Validators.required, finnairPlusNumberValidator()]],\n prefillFromProfile: PrefillProfileData.MEMBER_NUMBER,\n },\n {\n type: FormBuilderInput.TEXT,\n controlName: ClaimMissingPartnerPointsFormField.EMAIL,\n translationPrefix: 'SERVICE_FORMS.serviceForms.fields.email',\n controlConfig: ['', [Validators.required, Validators.pattern(EMAIL_REGEX)]],\n prefillFromProfile: PrefillProfileData.EMAIL,\n },\n {\n type: FormBuilderInput.FILE_UPLOADER,\n allowedFileTypes: this.allowedFileTypes,\n controlConfig: [[], Validators.required],\n controlName: ClaimMissingPartnerPointsFormField.ATTACHMENT,\n maxSizeInBytes: this.maxSizeInBytes,\n },\n {\n type: FormBuilderInput.TEXTAREA,\n controlName: ClaimMissingPartnerPointsFormField.ADDITIONAL_INFORMATION,\n translationPrefix: 'SERVICE_FORMS.serviceForms.fields.additionalInformation',\n controlConfig: ['', [Validators.maxLength(this.textareaLimit3000)]],\n wordCount: this.textareaLimit3000,\n },\n ],\n },\n ];\n\n @ViewChild('formBuilder', { static: false }) formBuilder: FormBuilderComponent;\n\n constructor(\n private submitService: SubmitService,\n private configService: ConfigService,\n private missingPointsService: MissingPointsService\n ) {\n this.submitHandler = this.submitHandler.bind(this);\n }\n\n submitHandler(values: ClaimMissingPartnerPointsFormData): Observable {\n if (this.configService.cfg.enableNewClaimMissingPointFlow) {\n return this.missingPointsService.claimPartnerMissingAvios(values);\n } else {\n return this.submitService.claimMissingPartnerPoints(values);\n }\n }\n}\n","
\n \n \n
\n \n
\n

\n {{ 'SERVICE_FORMS.serviceForms.mandatoryFields' | finLocalization }}\n

\n

{{ 'SERVICE_FORMS.serviceForms.titles.yourPersonalDetails' | finLocalization }}

\n
\n \n \n
\n

{{ 'SERVICE_FORMS.serviceForms.titles.flightDetails' | 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

{{ 'SERVICE_FORMS.serviceForms.titles.travelCompanions' | finLocalization }}

\n
\n \n \n \n
\n \n \n
\n
\n \n
\n\n

{{ 'SERVICE_FORMS.serviceForms.titles.yourMessage' | finLocalization }}

\n
\n \n
\n
\n \n \n
\n\n
\n \n
\n\n
\n \n
\n \n \n
\n \n
\n \n
\n

{{ 'SERVICE_FORMS.serviceForms.success.title' | finLocalization }}

\n
\n
\n\n\n
\n \n \n
\n\n","import { HttpErrorResponse } from '@angular/common/http';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n type OnChanges,\n type OnDestroy,\n type OnInit,\n} from '@angular/core';\nimport { UntypedFormBuilder, Validators, type UntypedFormArray, type UntypedFormGroup } from '@angular/forms';\n\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime, filter, take } from 'rxjs/operators';\n\nimport { LoaderType } from '@fcom/common/';\nimport { GtmService } from '@fcom/common/gtm';\nimport type { SelectOption } from '@fcom/common/interfaces';\nimport { Airline } from '@fcom/common/interfaces/airlines';\nimport { ScrollService } from '@fcom/common/services/scroll/scroll.service';\nimport type { Location } from '@fcom/core-api';\nimport type { Profile } from '@fcom/core-api/login';\nimport { ConfigService, LocationMatchOnline, LocationRouteCffService } from '@fcom/core/services';\nimport { EMAIL_PATTERN, LocalDate, NAME_PATTERN, PARTNER_AIRLINES, unsubscribe } from '@fcom/core/utils';\nimport {\n AUTOCOMPLETE_DEBOUNCE_TIME,\n dateValidator,\n FormStatus,\n frequentFlyerValidator,\n locationFormatValidator,\n softTicketNumberValidator,\n trackFormState,\n} from '@fcom/service-forms';\nimport { DatepickerTheme } from '@fcom/service-forms/components/common/datepicker.component';\nimport { AutocompleteTheme } from '@fcom/service-forms/components/common/locations-autocomplete.component';\nimport {\n ATTACHMENT_ALLOWED_FILE_EXTENSIONS,\n ATTACHMENT_MAX_SIZE_IN_BYTES,\n ButtonType,\n ModalButtons,\n TEXTAREA_LIMIT_3000,\n TextInputComponent,\n TextInputType,\n} from '@fcom/ui-components';\nimport type { FileUploaderComponent } from '@fcom/ui-components/components/forms/file-uploader/file-uploader.component';\nimport { LanguageService } from '@fcom/ui-translate';\n\nimport {\n LoggedOutMissingPointsFormField,\n type ClaimMissingAviosResponseData,\n type PortalServicesMailerResponseData,\n} from '../interfaces';\nimport { MissingPointsService } from '../services/missing-points.service';\nimport { bookingClassSelectOptions, parsePhoneNumber, PHONE_NUMBER_PATTERN } from '../utils';\n\nconst CLAIM_MISSING_POINTS = 'claim-missing-points';\n\n@Component({\n selector: 'fin-logged-out-missing-points-form',\n templateUrl: 'logged-out-missing-points-form.component.html',\n styleUrls: ['./logged-out-missing-points-form.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class LoggedOutMissingPointsFormComponent implements OnInit, OnDestroy, OnChanges {\n readonly allowedFileTypes: string[] = ATTACHMENT_ALLOWED_FILE_EXTENSIONS;\n readonly maxSizeInBytes: number = ATTACHMENT_MAX_SIZE_IN_BYTES;\n readonly textareaLimit3000: number = TEXTAREA_LIMIT_3000;\n\n readonly Airline = Airline;\n readonly AutocompleteTheme = AutocompleteTheme;\n readonly ButtonType = ButtonType;\n readonly DatepickerTheme = DatepickerTheme;\n readonly FormStatus = FormStatus;\n readonly LoaderType = LoaderType;\n readonly LoggedOutMissingPointsFormField = LoggedOutMissingPointsFormField;\n readonly ModalButtons = ModalButtons;\n readonly TextInputType = TextInputType;\n\n @ViewChild('fileUploader') fileUploader: FileUploaderComponent;\n\n @ViewChild('formContainer', { static: true })\n formContainer: ElementRef;\n\n @ViewChild('message') message: TextInputComponent;\n\n @Input()\n selectedAirlineCode: Airline;\n\n @Input()\n profile: Profile;\n\n @Output()\n formComplete: EventEmitter = new EventEmitter();\n\n destinationLoading$: Subject = new Subject();\n departureLoading$: Subject = new Subject();\n destinationLocations$: Subject = new Subject();\n departureLocations$: Subject = new Subject();\n reactiveForm: UntypedFormGroup;\n formStatus: FormStatus = FormStatus.INITIAL;\n ticketNumberHelpModalOpen = false;\n /* eslint-disable @typescript-eslint/no-explicit-any */\n // The type matches what Angular expects\n flightNumberFormGroupConfig: { [key: string]: any } = {\n [LoggedOutMissingPointsFormField.FLIGHT_NUMBER]: [\n '',\n [Validators.required, Validators.pattern(/^([A-Za-z]{2})?([0-9]{1,4})$/)],\n ], // any 2 alphabets, any 1-4 numbers\n };\n companionFormGroupConfig: { [key: string]: any } = {\n [LoggedOutMissingPointsFormField.COMPANION_NAME]: ['', [Validators.required, Validators.pattern(NAME_PATTERN)]],\n [LoggedOutMissingPointsFormField.COMPANION_MEMBER_NUMBER]: ['', [Validators.required, frequentFlyerValidator()]],\n };\n minDate: LocalDate;\n maxDate: LocalDate;\n airlines: SelectOption[];\n bookingClasses = bookingClassSelectOptions;\n\n private subscriptions: Subscription = new Subscription();\n\n constructor(\n private fb: UntypedFormBuilder,\n private locationRouteCffService: LocationRouteCffService,\n private languageService: LanguageService,\n private scrollService: ScrollService,\n private gtmService: GtmService,\n private missingPointsService: MissingPointsService,\n private configService: ConfigService\n ) {}\n\n get characterCount(): number {\n return this.message?.control?.value?.length || 0;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.selectedAirlineCode && this.reactiveForm) {\n this.reactiveForm.get(LoggedOutMissingPointsFormField.AIRLINE).setValue(changes.selectedAirlineCode.currentValue);\n }\n }\n\n ngOnInit(): void {\n this.airlines = [\n ...PARTNER_AIRLINES.map((airline) => ({\n name: airline.name,\n value: airline.code,\n })),\n // Alaska is added here as a special case since it is not a partner airline but it is possible to claim points from them\n {\n value: 'AS',\n name: 'Alaska (AS)',\n },\n ].sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0));\n\n this.createForm();\n\n this.destinationLoading$.next(false);\n this.departureLoading$.next(false);\n\n this.onDestinationChanges();\n this.onDepartureChanges();\n\n this.watchFieldChanges(this.reactiveForm, this.onAirlineChange.bind(this), LoggedOutMissingPointsFormField.AIRLINE);\n\n this.minDate = LocalDate.now().minusMonths(6);\n this.maxDate = LocalDate.now().minusDays(14);\n }\n\n ngOnDestroy(): void {\n this.subscriptions = unsubscribe(this.subscriptions);\n }\n\n createForm(): void {\n this.reactiveForm = this.fb.group(\n {\n [LoggedOutMissingPointsFormField.AIRLINE]: [this.selectedAirlineCode, [Validators.required]],\n [LoggedOutMissingPointsFormField.PASSENGER_NAME]: [\n `${this.profile?.firstname || ''} ${this.profile?.lastname || ''}`.trim(),\n [Validators.required, Validators.pattern(NAME_PATTERN)],\n ],\n [LoggedOutMissingPointsFormField.MEMBER_NUMBER]: [\n this.profile?.memberNumber || '',\n [Validators.required, frequentFlyerValidator()],\n ],\n [LoggedOutMissingPointsFormField.TICKET_NUMBER]: ['', [softTicketNumberValidator()]],\n [LoggedOutMissingPointsFormField.BOOKING_CLASS]: [''],\n [LoggedOutMissingPointsFormField.FLIGHT_FROM]: ['', [Validators.required, locationFormatValidator()]],\n [LoggedOutMissingPointsFormField.FLIGHT_TO]: ['', [Validators.required, locationFormatValidator()]],\n [LoggedOutMissingPointsFormField.DEPARTURE_DATE]: ['', [Validators.required, dateValidator()]],\n [LoggedOutMissingPointsFormField.RETURN_DATE]: ['', [dateValidator()]],\n [LoggedOutMissingPointsFormField.FLIGHT_NUMBERS]: this.fb.array([]),\n [LoggedOutMissingPointsFormField.COMPANIONS]: this.fb.array([]),\n [LoggedOutMissingPointsFormField.MESSAGE]: ['', [Validators.maxLength(this.textareaLimit3000)]],\n [LoggedOutMissingPointsFormField.EMAIL]: [\n this.profile?.email || '',\n [Validators.required, Validators.pattern(EMAIL_PATTERN)],\n ],\n [LoggedOutMissingPointsFormField.PHONE]: [\n parsePhoneNumber(this.profile),\n [Validators.required, Validators.pattern(PHONE_NUMBER_PATTERN)],\n ],\n [LoggedOutMissingPointsFormField.ATTACHMENT]: [[]],\n },\n {\n validator: this.memberNumberDuplicate(),\n }\n );\n }\n\n onSubmit(): void {\n if (this.formStatus === FormStatus.LOADING) {\n return;\n }\n\n if (!this.reactiveForm.valid) {\n this.reactiveForm.markAllAsTouched();\n this.reactiveForm.updateValueAndValidity();\n\n return;\n }\n\n this.formStatus = FormStatus.LOADING;\n this.scrollService.scrollToImmediate(this.formContainer);\n trackFormState(CLAIM_MISSING_POINTS, 'send-attempt', this.gtmService);\n\n if (this.configService.cfg.enableNewClaimMissingPointFlow) {\n this.subscriptions.add(\n this.missingPointsService\n .claimFlightsMissingAvios(this.reactiveForm.value)\n .pipe(take(1))\n .subscribe({\n next: (response): void => {\n this.onSuccess(response);\n },\n error: (response: HttpErrorResponse): void => {\n this.onFormSubmitFailed(response);\n },\n })\n );\n } else {\n this.subscriptions.add(\n this.missingPointsService\n .loggedOutMissingPointsRequest(this.reactiveForm.value)\n .pipe(take(1))\n .subscribe({\n next: (response): void => {\n this.onSuccess(response as ClaimMissingAviosResponseData);\n },\n error: (error: unknown): void => {\n this.onFormSubmitFailed(error as HttpErrorResponse);\n },\n })\n );\n }\n }\n\n private onSuccess(response: ClaimMissingAviosResponseData): void {\n this.formComplete.emit(response);\n trackFormState(CLAIM_MISSING_POINTS, 'success', this.gtmService);\n this.formStatus = FormStatus.COMPLETE;\n }\n\n private onFormSubmitFailed(response: HttpErrorResponse) {\n this.formComplete.emit(response.error);\n this.formStatus = FormStatus.ERROR;\n trackFormState(CLAIM_MISSING_POINTS, 'error', this.gtmService);\n }\n\n showHelp(event: Event): void {\n event.preventDefault();\n this.ticketNumberHelpModalOpen = true;\n }\n\n private queryLocations(queryString: string, locations$: Subject, loading$: Subject) {\n const locale = this.languageService.localeValue;\n\n loading$.next(true);\n\n this.subscriptions.add(\n this.locationRouteCffService\n .locationMatchesFor(queryString, locale, LocationMatchOnline.ALL)\n .subscribe((matchedLocations): void => {\n loading$.next(false);\n locations$.next(matchedLocations.items);\n })\n );\n }\n\n private onAirlineChange(airline: string): void {\n const inputField = this.reactiveForm.get(LoggedOutMissingPointsFormField.BOOKING_CLASS);\n\n if (airline === Airline.FINNAIR) {\n inputField.setValidators(null);\n inputField.updateValueAndValidity();\n } else {\n inputField.setValidators(Validators.required);\n inputField.updateValueAndValidity();\n }\n }\n\n private onDepartureChanges(): void {\n this.subscriptions.add(\n this.reactiveForm\n .get(LoggedOutMissingPointsFormField.FLIGHT_FROM)\n .valueChanges.pipe(\n debounceTime(AUTOCOMPLETE_DEBOUNCE_TIME),\n filter((val): boolean => {\n const formFieldStatus = this.reactiveForm.get(LoggedOutMissingPointsFormField.FLIGHT_FROM).status;\n return !!val && formFieldStatus === 'INVALID';\n })\n )\n .subscribe((val): void => {\n this.queryLocations(val, this.departureLocations$, this.departureLoading$);\n })\n );\n }\n\n private onDestinationChanges(): void {\n this.subscriptions.add(\n this.reactiveForm\n .get(LoggedOutMissingPointsFormField.FLIGHT_TO)\n .valueChanges.pipe(\n debounceTime(AUTOCOMPLETE_DEBOUNCE_TIME),\n filter((val): boolean => {\n const formFieldStatus = this.reactiveForm.get(LoggedOutMissingPointsFormField.FLIGHT_TO).status;\n return !!val && formFieldStatus === 'INVALID';\n })\n )\n .subscribe((val): void => {\n this.queryLocations(val, this.destinationLocations$, this.destinationLoading$);\n })\n );\n }\n\n private memberNumberDuplicate() {\n return (formGroup: UntypedFormGroup): void => {\n const { value: member } = formGroup.get([LoggedOutMissingPointsFormField.MEMBER_NUMBER]);\n const { value: companionMember } = formGroup.get([\n LoggedOutMissingPointsFormField.COMPANIONS,\n ]) as UntypedFormArray;\n const companionControl = formGroup.get('companions') as UntypedFormArray;\n\n if (Array.isArray(companionMember) && companionMember.length > 0) {\n companionMember.forEach((input, index): void => {\n if (member) {\n const control = companionControl.at(index).get('companionMemberNumber');\n const isDuplicate = input.companionMemberNumber === member;\n if (control?.errors?.duplicate && !isDuplicate) {\n control.setErrors(null);\n } else if (!control?.errors && isDuplicate) {\n control.setErrors({ duplicate: true });\n }\n }\n });\n }\n };\n }\n\n private watchFieldChanges(form: UntypedFormGroup, callback: (value: unknown) => void, field: string): void {\n this.subscriptions.add(\n form.get(field).valueChanges.subscribe((val): void => {\n callback(val);\n })\n );\n }\n}\n","
\n \n \n \n
\n \n
\n

\n {{ 'SERVICE_FORMS.serviceForms.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

{{ 'SERVICE_FORMS.serviceForms.success.title' | finLocalization }}

\n
\n \n \n\n\n\n
\n \n \n
\n\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Component, ElementRef, type OnDestroy, type OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\n\nimport { Store } from '@ngrx/store';\nimport { type Observable, Subject, Subscription } from 'rxjs';\nimport { debounceTime, take } from 'rxjs/operators';\n\nimport { LoaderType } from '@fcom/common/';\nimport { GtmService } from '@fcom/common/gtm';\nimport type { SelectOption } from '@fcom/common/interfaces';\nimport { Airline } from '@fcom/common/interfaces/airlines';\nimport { ScrollService } from '@fcom/common/services/scroll/scroll.service';\nimport type { Location } from '@fcom/core-api';\nimport type { Profile } from '@fcom/core-api/login';\nimport type { AppState } from '@fcom/core/interfaces';\nimport { profile } from '@fcom/core/selectors';\nimport { LocationMatchOnline, LocationRouteCffService } from '@fcom/core/services';\nimport { LocalDate, PARTNER_AIRLINES, unsubscribe } from '@fcom/core/utils';\nimport { finShare } from '@fcom/rx';\nimport {\n AUTOCOMPLETE_DEBOUNCE_TIME,\n dateValidator,\n disableConditionalFields,\n enableConditionalFields,\n FormStatus,\n locationFormatValidator,\n softTicketNumberValidator,\n trackFormState,\n} from '@fcom/service-forms';\nimport { DatepickerTheme } from '@fcom/service-forms/components/common/datepicker.component';\nimport { AutocompleteTheme } from '@fcom/service-forms/components/common/locations-autocomplete.component';\nimport { ButtonType, ModalButtons } from '@fcom/ui-components';\nimport { LanguageService } from '@fcom/ui-translate';\n\nimport {\n localizationKeyGenericError,\n LoggedInMissingPointsErrorCode,\n loggedInMissingPointsErrorCodeToLocalizationKeyMap,\n LoggedInMissingPointsFormField,\n PortalServicesMailerResponseData,\n} from '../interfaces';\nimport { MissingPointsService } from '../services/missing-points.service';\nimport { bookingClassSelectOptions } from '../utils/utils';\n\nconst CLAIM_MISSING_POINTS = 'claim-missing-points';\n\n@Component({\n selector: 'fin-logged-in-missing-points-form',\n templateUrl: 'logged-in-missing-points-form.component.html',\n styleUrls: ['./logged-in-missing-points-form.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class LoggedInMissingPointsFormComponent implements OnInit, OnDestroy {\n public readonly Airline = Airline;\n public readonly AutocompleteTheme = AutocompleteTheme;\n public readonly ButtonType = ButtonType;\n public readonly DatepickerTheme = DatepickerTheme;\n public readonly FormStatus = FormStatus;\n public readonly LoaderType = LoaderType;\n public readonly LoggedInMissingPointsErrorCode = LoggedInMissingPointsErrorCode;\n public readonly LoggedInMissingPointsFormField = LoggedInMissingPointsFormField;\n public readonly ModalButtons = ModalButtons;\n\n @ViewChild('formContainer', { static: true })\n formContainer: ElementRef;\n\n destinationLoading$: Subject = new Subject();\n departureLoading$: Subject = new Subject();\n destinationLocations$: Subject = new Subject();\n departureLocations$: Subject = new Subject();\n profile$: Observable;\n reactiveForm: UntypedFormGroup;\n formStatus: FormStatus = FormStatus.INITIAL;\n loggedOutMissingPointsFormSuccess = false;\n errorLocalizationKey: string;\n // TODO: Get the airline names from some common place when available\n airlines: SelectOption[];\n minDate: LocalDate;\n maxDate: LocalDate;\n bookingClasses = bookingClassSelectOptions;\n ticketNumberHelpModalOpen = false;\n\n private subscriptions: Subscription = new Subscription();\n private readonly otherAirlinesFields: LoggedInMissingPointsFormField[] = [\n LoggedInMissingPointsFormField.ARRIVAL_AIRPORT,\n LoggedInMissingPointsFormField.BOOKING_CLASS,\n LoggedInMissingPointsFormField.DEPARTURE_AIRPORT,\n LoggedInMissingPointsFormField.FLIGHT_DATE,\n LoggedInMissingPointsFormField.FLIGHT_NUMBER,\n ];\n private readonly japanAirlinesFields: LoggedInMissingPointsFormField[] = [\n LoggedInMissingPointsFormField.SEQUENCE_NUMBER,\n ];\n\n constructor(\n private fb: UntypedFormBuilder,\n private locationRouteCffService: LocationRouteCffService,\n private languageService: LanguageService,\n private scrollService: ScrollService,\n private gtmService: GtmService,\n private missingPointsService: MissingPointsService,\n private store$: Store\n ) {\n this.profile$ = this.store$.pipe(profile(), finShare());\n }\n\n ngOnInit(): void {\n this.airlines = [\n ...PARTNER_AIRLINES.map((airline) => ({\n name: airline.name,\n value: airline.code,\n })),\n // Alaska is added here as a special case since it is not a partner airline but it is possible to claim points from them\n {\n value: 'AS',\n name: 'Alaska (AS)',\n },\n ].sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0));\n\n this.createForm();\n\n this.destinationLoading$.next(false);\n this.departureLoading$.next(false);\n\n this.onDestinationChanges();\n this.onDepartureChanges();\n\n this.watchFieldChanges(this.reactiveForm, this.onAirlineChange.bind(this), LoggedInMissingPointsFormField.AIRLINE);\n\n this.minDate = LocalDate.now().minusMonths(6);\n this.maxDate = LocalDate.now().minusDays(14);\n }\n\n ngOnDestroy(): void {\n this.subscriptions = unsubscribe(this.subscriptions);\n }\n\n createForm(): void {\n this.reactiveForm = this.fb.group({\n [LoggedInMissingPointsFormField.AIRLINE]: [Airline.FINNAIR, [Validators.required]],\n [LoggedInMissingPointsFormField.TICKET_NUMBER]: ['', [Validators.required, softTicketNumberValidator()]],\n [LoggedInMissingPointsFormField.NO_TICKET_NUMBER]: [false],\n [LoggedInMissingPointsFormField.FLIGHT_NUMBER]: [\n { value: '', disabled: true },\n [Validators.required, Validators.pattern(/^[0-9]{1,4}$/)],\n ], // any 2 alphabets, any 1-4 numbers\n [LoggedInMissingPointsFormField.BOOKING_CLASS]: [{ value: '', disabled: true }, [Validators.required]],\n [LoggedInMissingPointsFormField.DEPARTURE_AIRPORT]: [\n { value: '', disabled: true },\n [Validators.required, locationFormatValidator()],\n ],\n [LoggedInMissingPointsFormField.ARRIVAL_AIRPORT]: [\n { value: '', disabled: true },\n [Validators.required, locationFormatValidator()],\n ],\n [LoggedInMissingPointsFormField.FLIGHT_DATE]: [\n { value: '', disabled: true },\n [Validators.required, dateValidator()],\n ],\n [LoggedInMissingPointsFormField.SEQUENCE_NUMBER]: [{ value: '', disabled: true }, [Validators.required]],\n });\n }\n\n onSubmit(): void {\n if (this.formStatus === FormStatus.LOADING) {\n return;\n }\n\n if (!this.reactiveForm.valid) {\n this.reactiveForm.markAllAsTouched();\n this.reactiveForm.updateValueAndValidity();\n\n return;\n }\n\n this.errorLocalizationKey = undefined;\n this.formStatus = FormStatus.LOADING;\n this.scrollService.scrollToImmediate(this.formContainer);\n trackFormState(CLAIM_MISSING_POINTS, 'send-attempt', this.gtmService);\n\n this.subscriptions.add(\n this.missingPointsService\n .loggedInMissingPointsRequest(this.reactiveForm.value)\n .pipe(take(1))\n .subscribe({\n next: () => {\n this.onFormSubmitSuccess();\n },\n // eslint-disable-next-line rxjs/no-implicit-any-catch\n error: (response: HttpErrorResponse) => {\n this.onFormSubmitFailed(response);\n },\n })\n );\n }\n\n onLoggedOutMissingPointsFormComplete(response: PortalServicesMailerResponseData): void {\n if (response?.returnValue === '1') {\n this.loggedOutMissingPointsFormSuccess = true;\n }\n }\n\n showHelp(event: Event): void {\n event.preventDefault();\n this.ticketNumberHelpModalOpen = true;\n }\n\n private onAirlineChange(airline: string): void {\n switch (airline) {\n case Airline.FINNAIR:\n disableConditionalFields(this.otherAirlinesFields, this.reactiveForm);\n disableConditionalFields(this.japanAirlinesFields, this.reactiveForm);\n break;\n case Airline.JAPAN_AIRLINES:\n enableConditionalFields(this.otherAirlinesFields, this.reactiveForm);\n enableConditionalFields(this.japanAirlinesFields, this.reactiveForm);\n break;\n default:\n enableConditionalFields(this.otherAirlinesFields, this.reactiveForm);\n disableConditionalFields(this.japanAirlinesFields, this.reactiveForm);\n }\n }\n\n private queryLocations(queryString: string, locations$: Subject, loading$: Subject) {\n const locale = this.languageService.localeValue;\n\n loading$.next(true);\n\n this.subscriptions.add(\n this.locationRouteCffService\n .locationMatchesFor(queryString, locale, LocationMatchOnline.ALL)\n .subscribe((matchedLocations) => {\n loading$.next(false);\n locations$.next(matchedLocations.items);\n })\n );\n }\n\n private onDepartureChanges(): void {\n this.subscriptions.add(\n this.reactiveForm\n .get(LoggedInMissingPointsFormField.DEPARTURE_AIRPORT)\n .valueChanges.pipe(debounceTime(AUTOCOMPLETE_DEBOUNCE_TIME))\n .subscribe((val) => {\n if (this.reactiveForm.get(LoggedInMissingPointsFormField.DEPARTURE_AIRPORT).status === 'INVALID') {\n this.queryLocations(val, this.departureLocations$, this.departureLoading$);\n }\n })\n );\n }\n\n private onDestinationChanges(): void {\n this.subscriptions.add(\n this.reactiveForm\n .get(LoggedInMissingPointsFormField.ARRIVAL_AIRPORT)\n .valueChanges.pipe(debounceTime(AUTOCOMPLETE_DEBOUNCE_TIME))\n .subscribe((val) => {\n if (this.reactiveForm.get(LoggedInMissingPointsFormField.ARRIVAL_AIRPORT).status === 'INVALID') {\n this.queryLocations(val, this.destinationLocations$, this.destinationLoading$);\n }\n })\n );\n }\n\n private watchFieldChanges(form: UntypedFormGroup, callback: Function, field: string): void {\n this.subscriptions.add(\n form.get(field).valueChanges.subscribe((val) => {\n callback(val);\n })\n );\n }\n\n private onFormSubmitSuccess(): void {\n trackFormState(CLAIM_MISSING_POINTS, 'success', this.gtmService);\n this.formStatus = FormStatus.COMPLETE;\n }\n\n private onFormSubmitFailed(response: HttpErrorResponse): void {\n this.formStatus = FormStatus.ERROR;\n const errorCode: LoggedInMissingPointsErrorCode = response.error.error?.errorCode;\n this.errorLocalizationKey =\n loggedInMissingPointsErrorCodeToLocalizationKeyMap[errorCode] || localizationKeyGenericError;\n\n if (errorCode !== LoggedInMissingPointsErrorCode.PASSENGER_IS_AN_ID_PASSENGER) {\n this.reactiveForm.get(LoggedInMissingPointsFormField.NO_TICKET_NUMBER).setValue(true);\n }\n trackFormState(CLAIM_MISSING_POINTS, 'error', this.gtmService);\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 {{ 'SERVICE_FORMS.serviceForms.missingPoints.helpLink' | finLocalization }}\n \n
\n
\n
\n\n\n \n \n\n","import { Component, ViewChild, ElementRef } from '@angular/core';\n\nimport { Observable } from 'rxjs';\nimport { Store } from '@ngrx/store';\n\nimport { ButtonType, ModalButtons } from '@fcom/ui-components';\nimport { AppState, ConfigService } from '@fcom/core';\nimport { loginStatus } from '@fcom/core/selectors';\nimport { LoginStatus } from '@fcom/core-api/login';\nimport { finShare } from '@fcom/rx';\n\n@Component({\n selector: 'fin-claim-missing-points-form',\n templateUrl: 'claim-missing-points-form.component.html',\n styleUrls: ['./claim-missing-points-form.component.scss'],\n})\nexport class ClaimMissingPointsFormComponent {\n readonly LoginStatus = LoginStatus;\n readonly ModalButtons = ModalButtons;\n readonly loginStatus$: Observable;\n readonly ButtonType = ButtonType;\n\n @ViewChild('openHelpModalButton', { static: false })\n openHelpModalButton: ElementRef;\n\n helpModalOpen = false;\n requireLoginToClaimPoints = false;\n\n constructor(\n private store$: Store,\n private configService: ConfigService\n ) {\n this.loginStatus$ = this.store$.pipe(loginStatus(), finShare());\n this.requireLoginToClaimPoints = this.configService.cfg.enableClaimMissingPointsLoggedIn;\n }\n\n openHelpModal(event: MouseEvent): void {\n event.stopPropagation();\n this.helpModalOpen = true;\n }\n\n blurHelpModal(): void {\n if (this.openHelpModalButton) {\n this.openHelpModalButton.nativeElement.focus();\n }\n }\n}\n","
\n
\n \n {{ 'SERVICE_FORMS.serviceForms.error.title' | finLocalization }}\n \n\n

\n {{ 'SERVICE_FORMS.serviceForms.corporateContactForm.messageToFinnair' | finLocalization }}\n

\n \n {{ 'SERVICE_FORMS.serviceForms.corporateContactForm.mandatoryFields' | finLocalization }}\n \n \n \n
\n \n
\n\n \n {{ 'SERVICE_FORMS.serviceForms.corporateContactForm.languageNotification' | finLocalization }}\n \n\n \n\n

\n {{ 'SERVICE_FORMS.serviceForms.corporateContactForm.contactDetails.title' | finLocalization }}\n

\n\n \n \n {{ 'SERVICE_FORMS.serviceForms.corporateContactForm.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 {{ 'SERVICE_FORMS.serviceForms.corporateContactForm.contactDetails.companyName.label' | finLocalization }}\n \n {{ profile.corporate?.name }}\n
\n\n
\n \n {{ 'SERVICE_FORMS.serviceForms.corporateContactForm.contactDetails.country.label' | finLocalization }}\n \n {{ selectedCountryCode?.name }}\n
\n\n
\n \n {{ 'SERVICE_FORMS.CSServiceForms.fields.name.label' | finLocalization }}\n \n {{ profile.firstname }} {{ profile.lastname }}\n
\n\n
\n \n {{ 'SERVICE_FORMS.serviceForms.corporateContactForm.contactDetails.email.label' | finLocalization }}\n \n {{ profile.email }}\n
\n\n
\n \n {{ 'SERVICE_FORMS.serviceForms.corporateContactForm.contactDetails.phoneNumber.label' | finLocalization }}\n \n \n {{ profile.mobilePhone }}\n \n
\n\n
\n \n {{\n 'SERVICE_FORMS.serviceForms.corporateContactForm.contactDetails.customerNumber.loggedInLabel'\n | finLocalization\n }}\n \n {{ profile.corporate?.clientId }}\n
\n
\n
\n\n
\n \n \n
\n\n \n {{ 'errors.generic.title' | finLocalization }}\n \n\n \n {{ 'SERVICE_FORMS.serviceForms.corporateContactForm.handleRequestNotification' | finLocalization }}\n \n\n \n {{ 'SERVICE_FORMS.serviceForms.preconditionRequired' | finLocalization }}\n \n \n\n
\n

\n {{ 'SERVICE_FORMS.serviceForms.corporateContactForm.thankYou.title' | finLocalization }}\n

\n \n {{ 'SERVICE_FORMS.serviceForms.corporateContactForm.thankYou.message' | finLocalization }}\n \n \n {{ 'SERVICE_FORMS.serviceForms.corporateContactForm.thankYou.regards' | finLocalization }}\n \n \n {{ 'SERVICE_FORMS.serviceForms.corporateContactForm.thankYou.signature' | finLocalization }}\n \n \n
\n
\n","import { HttpErrorResponse, HttpStatusCode } from '@angular/common/http';\nimport { Component, ElementRef, type OnDestroy, type OnInit, ViewChild } from '@angular/core';\nimport { FormGroup, UntypedFormBuilder, Validators } from '@angular/forms';\n\nimport { Store } from '@ngrx/store';\nimport { combineLatest, Observable, Subscription, withLatestFrom } from 'rxjs';\nimport { map, startWith, switchMap } from 'rxjs/operators';\n\nimport { TranslatedCountryCode } from '@fcom/common-booking/components/pax-details/pax-details-form-group.component';\nimport { GtmService } from '@fcom/common/gtm';\nimport { type SelectOption } from '@fcom/common/interfaces';\nimport { CorporateContactUs } from '@fcom/common/interfaces/corporate/corporate-contact-us';\nimport { CorporateContactForm } from '@fcom/common/interfaces/corporate/corporate.interface';\nimport { ScrollService } from '@fcom/common/services';\nimport { CorporateService } from '@fcom/common/services/corporate/corporate.service';\nimport { type Profile } from '@fcom/core-api/login';\nimport { type AppState } from '@fcom/core/interfaces';\nimport { profileOrUndefinedIfNotLoggedIn } from '@fcom/core/selectors';\nimport { SentryLogger } from '@fcom/core/services';\nimport { EMAIL_REGEX, NAME_PATTERN, sortBy, unsubscribe } from '@fcom/core/utils';\nimport { parsePhoneNumber } from '@fcom/corporate/utils/utils';\nimport { finShare } from '@fcom/rx';\nimport { AnalyticsFormStatus, FormStatus, trackFormState } from '@fcom/service-forms';\nimport {\n type AttachmentResponse,\n ButtonTheme,\n ButtonType,\n NotificationLayout,\n NotificationTheme,\n type RadioItemGroupOption,\n TextInputType,\n} from '@fcom/ui-components';\nimport { FileUploaderComponent } from '@fcom/ui-components/components/forms/file-uploader/file-uploader.component';\nimport { type Attachment, AttachmentStatus } from '@fcom/ui-components/components/interfaces';\nimport { LanguageService } from '@fcom/ui-translate';\n\nconst CORPORATE_CONTACT_FORM_NAME = 'corporate-contact-form';\n\n@Component({\n selector: 'fin-corporate-contact-form',\n templateUrl: './corporate-contact-form.component.html',\n styleUrls: ['./corporate-contact-form.component.scss'],\n})\nexport class CorporateContactFormComponent implements OnInit, OnDestroy {\n readonly TextInputType = TextInputType;\n readonly FormStatus = FormStatus;\n readonly ButtonType = ButtonType;\n readonly NotificationLayout = NotificationLayout;\n readonly NotificationTheme = NotificationTheme;\n readonly ButtonTheme = ButtonTheme;\n\n readonly THREE_MEGABYTES = 3145728;\n readonly MAX_ATTACHMENTS = 3;\n readonly ALLOWED_FILETYPES = ['doc', 'docx', 'xls', 'xlsx', 'txt', 'pdf', 'jpg', 'jpeg', 'bmp', 'gif', 'png'];\n\n @ViewChild('thankYouTitle')\n thankYouTitle: ElementRef;\n @ViewChild('contactDetailsTitle')\n contactDetailsTitle: ElementRef;\n @ViewChild('fileUploader')\n fileUploader: FileUploaderComponent;\n\n reactiveForm: FormGroup;\n formStatus: FormStatus = FormStatus.INITIAL;\n\n topics: RadioItemGroupOption[] = [\n { value: 'additionalInfo' },\n { value: 'changeInformation' },\n { value: 'technicalIssue' },\n { value: 'feedback' },\n ];\n reasonMap = {\n additionalInfo: 'Account or User Information',\n changeInformation: 'Travel Agent Information',\n technicalIssue: 'Technical Issue',\n feedback: 'Feedback',\n };\n subjectMap = {\n additionalInfo: 'Request an additional user to be added / delete an existing user / change company information',\n changeInformation: 'Change travel agent information in your current agreement',\n technicalIssue: 'Report a technical issue',\n feedback: 'Give feedback on the Finnair Corporate Programme',\n };\n countryCodes$: Observable;\n selectedCountryCode: TranslatedCountryCode;\n\n returnLink$: Observable;\n countries$: Observable;\n salutations$: Observable;\n phonePrefixes$: Observable;\n profile$: Observable;\n\n private subscriptions: Subscription = new Subscription();\n\n constructor(\n private elementRef: ElementRef,\n private fb: UntypedFormBuilder,\n private gtmService: GtmService,\n private languageService: LanguageService,\n private scrollService: ScrollService,\n private store$: Store,\n public corporateService: CorporateService,\n public sentryLogger: SentryLogger\n ) {}\n\n get fileUploaderDisabled(): boolean {\n return this.fileUploader?.attachments.length >= this.MAX_ATTACHMENTS;\n }\n\n ngOnInit(): void {\n this.profile$ = this.store$.pipe(profileOrUndefinedIfNotLoggedIn(), startWith(undefined), finShare());\n this.returnLink$ = this.corporateService.getReturnLink();\n this.countryCodes$ = this.languageService.translate('countryCodes').pipe(finShare());\n this.setInputOptions();\n this.prefill();\n }\n\n countryChanged(countryCode: string, countryCodes: TranslatedCountryCode[]): void {\n this.selectedCountryCode = countryCodes?.find((cc) => cc.countryCode === countryCode);\n this.reactiveForm\n .get('phonePrefix')\n .setValue(`${this.selectedCountryCode?.countryCode}|${this.selectedCountryCode?.phonePrefix}`);\n }\n\n handleError(err: unknown): void {\n if (err instanceof HttpErrorResponse && err.status === HttpStatusCode.PreconditionRequired) {\n this.formStatus = FormStatus.PRECONDITION_REQUIRED;\n trackFormState(CORPORATE_CONTACT_FORM_NAME, AnalyticsFormStatus.PRECONDITION_REQUIRED, this.gtmService);\n this.sentryLogger.warn('Corporate contact form Akamai Crypto Challenge', {\n err,\n });\n } else {\n this.formStatus = FormStatus.ERROR;\n trackFormState(CORPORATE_CONTACT_FORM_NAME, AnalyticsFormStatus.ERROR, this.gtmService);\n this.sentryLogger.error('Failed to post contact request to corporate api', {\n err,\n });\n }\n }\n\n onSubmit(): void {\n if (!this.reactiveForm.valid) {\n this.corporateService.scrollToInvalidField(this.reactiveForm, this.elementRef);\n return;\n }\n this.formStatus = FormStatus.LOADING;\n trackFormState(CORPORATE_CONTACT_FORM_NAME, AnalyticsFormStatus.SEND_ATTEMPT, this.gtmService);\n this.subscriptions.add(\n combineLatest([this.getPostPayload(), this.getPostPayload(true), this.profile$])\n .pipe(\n switchMap(([sfPayload, emailPayload, profile]) => {\n return combineLatest([\n this.corporateService.sendContactCaseToSalesForce(sfPayload, profile),\n this.corporateService.postContactRequest(emailPayload),\n ]);\n })\n )\n .subscribe({\n next: () => {\n this.formStatus = FormStatus.COMPLETE;\n trackFormState(CORPORATE_CONTACT_FORM_NAME, AnalyticsFormStatus.SUCCESS, this.gtmService);\n setTimeout(() => {\n this.scrollService.smoothScroll(this.thankYouTitle);\n });\n },\n error: (err) => {\n this.handleError(err);\n },\n })\n );\n }\n\n stripPhoneNumber(phoneNumber: string): string {\n return phoneNumber?.replace(`+${this.selectedCountryCode.phonePrefix}`, '') || '';\n }\n\n ngOnDestroy(): void {\n unsubscribe(this.subscriptions);\n }\n\n uploadFile(): (f: File) => Observable {\n return (file: File): Observable => {\n return this.corporateService.postFile(file);\n };\n }\n\n private getRequiredControl(profile: Profile | undefined): {\n [key: string]: any;\n } {\n return profile?.isCorporate === true ? [''] : ['', Validators.required];\n }\n\n private getPostPayload(emailPayload = false): Observable {\n const form = this.reactiveForm;\n const topicKey = form.get('topic').value;\n return this.profile$.pipe(\n map((profile: Profile) => {\n return {\n subject: this.subjectMap[topicKey],\n message: form.get('message').value,\n reason: this.reasonMap[topicKey],\n ...(!emailPayload && { attachmentIds: this.mapAttachmentIds(this.fileUploader?.attachments) }),\n ...((emailPayload || !profile) && {\n companyName: form.get('companyName').value,\n customerNumber: form.get('customerNumber').value,\n country: form.get('country').value,\n salutation: form.get('salutation').value,\n firstname: form.get('firstName').value,\n lastname: form.get('familyName').value,\n phone: parsePhoneNumber(form.get('phonePrefix').value, form.get('phoneNumber').value),\n email: form.get('email').value,\n }),\n };\n })\n );\n }\n\n private mapAttachmentIds(attachments: Attachment[] = []): string[] {\n return attachments\n .filter((attachment: Attachment): boolean => attachment.status === AttachmentStatus.READY)\n .map((attachment: Attachment): string => attachment.fileId);\n }\n\n private setInputOptions(): void {\n this.countries$ = this.corporateService.getCountryInputOptions();\n this.salutations$ = this.getSalutationOptions();\n this.phonePrefixes$ = this.getPhonePrefixes();\n }\n\n private prefill(): void {\n this.subscriptions.add(\n this.profile$.pipe(withLatestFrom(this.countryCodes$)).subscribe(([profile, countryCodes]) => {\n this.reactiveForm = this.fb.group({\n topic: [this.topics[0], Validators.required],\n message: ['', [Validators.required, Validators.maxLength(1000)]],\n attachments: [],\n companyName: this.getRequiredControl(profile),\n country: this.getRequiredControl(profile),\n salutation: [''],\n firstName: this.getNameControl(profile),\n familyName: this.getNameControl(profile),\n email: this.getEmailControl(profile),\n phonePrefix: this.getRequiredControl(profile),\n phoneNumber: this.getRequiredControl(profile),\n customerNumber: ['', Validators.maxLength(8)],\n });\n\n this.reactiveForm.get('companyName').setValue(profile?.corporate?.name);\n this.reactiveForm.get('country').setValue(profile?.corporate?.country);\n if (profile?.corporate?.country) {\n this.countryChanged(profile.corporate.country, countryCodes);\n }\n this.reactiveForm.get('firstName').setValue(profile?.firstname);\n this.reactiveForm.get('familyName').setValue(profile?.lastname);\n this.reactiveForm.get('email').setValue(profile?.email);\n this.reactiveForm\n .get('phoneNumber')\n .setValue(\n profile?.parsedMobilePhone?.nationalNumber\n ? String(profile?.parsedMobilePhone?.nationalNumber)\n : this.stripPhoneNumber(profile?.mobilePhone)\n );\n this.reactiveForm.get('customerNumber').setValue(profile?.corporate?.clientId);\n })\n );\n }\n private getEmailControl(profile: Profile | undefined): {\n [key: string]: any;\n } {\n return profile?.isCorporate === true\n ? ['', Validators.pattern(EMAIL_REGEX)]\n : ['', [Validators.required, Validators.pattern(EMAIL_REGEX)]];\n }\n private getNameControl(profile: Profile | undefined): {\n [key: string]: any;\n } {\n return profile?.isCorporate === true\n ? ['', Validators.pattern(NAME_PATTERN)]\n : ['', [Validators.required, Validators.pattern(NAME_PATTERN)]];\n }\n\n private getSalutationOptions(): Observable {\n return this.languageService\n .translate('SERVICE_FORMS.serviceForms.corporateContactForm.contactDetails.salutation.options')\n .pipe(\n map((translations: { [key: string]: string }) =>\n Object.entries(translations)\n .filter(([_key, translation]) => Boolean(translation))\n .map(([key, val]) => ({\n name: val,\n value: key,\n }))\n )\n );\n }\n\n private getPhonePrefixes(): Observable {\n return this.countryCodes$.pipe(\n map((countryCodes: TranslatedCountryCode[]) => {\n return sortBy(\n countryCodes.map((cc) => ({\n name: `${cc.name} (+${cc.phonePrefix})`,\n value: `${cc.countryCode}|${cc.phonePrefix}`,\n })),\n (option) => option.name\n );\n })\n );\n }\n}\n","import { Component } from '@angular/core';\nimport { Validators } from '@angular/forms';\n\nimport { Observable } from 'rxjs';\n\nimport { NAME_PATTERN } from '@fcom/core/utils';\nimport {\n SubmitService,\n ETicketReceiptFormData,\n pnrFormatValidator,\n PrefillProfileData,\n ETicketReceiptResponseData,\n} from '@fcom/service-forms';\n\nimport { FormBuilderGroup, FormBuilderInput, ETicketReceiptFormField } from '../interfaces';\n\n@Component({\n selector: 'fin-e-ticket-receipt-form',\n template: `\n \n \n `,\n})\nexport class ETicketReceiptFormComponent {\n controlConfig: FormBuilderGroup[] = [\n {\n controlName: 'eTicketReceipt',\n fields: [\n {\n type: FormBuilderInput.TEXT,\n controlName: ETicketReceiptFormField.LAST_NAME,\n translationPrefix: 'SERVICE_FORMS.serviceForms.fields.lastName',\n controlConfig: ['', [Validators.required, Validators.pattern(NAME_PATTERN)]],\n prefillFromProfile: PrefillProfileData.LAST_NAME,\n },\n {\n type: FormBuilderInput.TEXT,\n controlName: ETicketReceiptFormField.RESERVATION_NUMBER,\n translationPrefix: 'SERVICE_FORMS.serviceForms.fields.reservationNumber',\n placeHolder: 'SERVICE_FORMS.serviceForms.fields.reservationNumber.placeholder',\n controlConfig: ['', [Validators.required, pnrFormatValidator()]],\n },\n ],\n },\n ];\n constructor(private submitService: SubmitService) {\n this.submitHandler = this.submitHandler.bind(this);\n }\n\n submitHandler(values: ETicketReceiptFormData): Observable {\n return this.submitService.eTicketReceipt(values);\n }\n}\n","
\n
\n \n \n {{ 'SERVICE_FORMS.serviceForms.joinCorporateForm.notifications.travelAgency' | finLocalization }}\n \n \n \n
\n \n
\n
\n\n
\n

\n {{ 'SERVICE_FORMS.serviceForms.joinCorporateForm.companyInformation.title' | finLocalization }}\n

\n \n {{ 'SERVICE_FORMS.serviceForms.corporateContactForm.mandatoryFields' | finLocalization }}\n \n\n \n\n \n\n \n {{ 'SERVICE_FORMS.serviceForms.joinCorporateForm.fields.companyId.notification' | 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 {{ 'SERVICE_FORMS.serviceForms.joinCorporateForm.contactPerson.title' | finLocalization }}\n

\n \n {{ 'SERVICE_FORMS.serviceForms.corporateContactForm.mandatoryFields' | finLocalization }}\n \n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n \n
\n {{ 'SERVICE_FORMS.serviceForms.joinCorporateForm.contactPerson.secondaryContactText' | finLocalization }}\n
\n \n \n
\n

\n {{ 'SERVICE_FORMS.serviceForms.joinCorporateForm.contactPerson.secondaryContactTitle' | 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 {{ 'SERVICE_FORMS.serviceForms.joinCorporateForm.travelAgency.title' | finLocalization }}\n

\n \n {{ 'SERVICE_FORMS.serviceForms.joinCorporateForm.travelAgency.info' | finLocalization }}\n \n \n \n
\n \n {{ 'SERVICE_FORMS.serviceForms.corporateContactForm.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 {{ 'SERVICE_FORMS.serviceForms.joinCorporateForm.fields.bookingSystem.label' | finLocalization }}\n \n
\n\n \n
\n\n
\n

\n {{ 'SERVICE_FORMS.serviceForms.joinCorporateForm.summary.title' | finLocalization }}\n

\n \n {{ 'SERVICE_FORMS.serviceForms.joinCorporateForm.summary.info' | finLocalization }}\n \n\n

\n {{ 'SERVICE_FORMS.serviceForms.joinCorporateForm.summary.companyInformation' | finLocalization }}\n

\n \n \n \n \n \n \n \n \n \n
\n \n
\n\n

\n {{ 'SERVICE_FORMS.serviceForms.joinCorporateForm.summary.contactDetails' | finLocalization }}\n

\n \n \n \n \n\n
\n

\n {{ 'SERVICE_FORMS.serviceForms.joinCorporateForm.summary.secondaryContactDetails' | finLocalization }}\n

\n \n \n \n \n
\n
\n \n
\n\n

\n {{ 'SERVICE_FORMS.serviceForms.joinCorporateForm.summary.travelAgencyDetails' | finLocalization }}\n

\n \n
\n \n \n \n \n \n \n
\n {{\n 'SERVICE_FORMS.serviceForms.joinCorporateForm.fields.bookingSystem.label' | finLocalization\n }}\n \n
\n \n {{ bookingSystems[i].label + '.label' | finLocalization }}\n
\n
\n
\n
\n
\n \n
\n\n

\n {{ 'SERVICE_FORMS.serviceForms.joinCorporateForm.summary.confirmation' | finLocalization }}\n

\n \n \n \n\n
\n \n
\n\n \n {{ 'errors.generic.title' | finLocalization }}\n \n\n \n {{ 'SERVICE_FORMS.serviceForms.preconditionRequired' | finLocalization }}\n \n
\n\n
\n

\n {{ 'SERVICE_FORMS.serviceForms.joinCorporateForm.thankYouPage.title' | finLocalization }}\n

\n

{{ 'SERVICE_FORMS.serviceForms.joinCorporateForm.thankYouPage.text1' | finLocalization }}

\n

{{ 'SERVICE_FORMS.serviceForms.joinCorporateForm.thankYouPage.text2' | finLocalization }}

\n

{{ 'SERVICE_FORMS.serviceForms.joinCorporateForm.thankYouPage.regards' | finLocalization }}

\n

{{ 'SERVICE_FORMS.serviceForms.joinCorporateForm.thankYouPage.team' | finLocalization }}

\n \n
\n\n\n
\n {{ header }}\n {{ value || '-' }}\n
\n
\n\n\n
\n \n Page.CompanyInformation\"\n class=\"ms-large-r\"\n (clickBtn)=\"previousPage()\"\n [theme]=\"ButtonTheme.LIGHT_SECONDARY_OUTLINE\"\n [text]=\"'carousel.previous' | finLocalization\"\n >\n \n \n \n \n \n \n
\n
\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { FormBuilder, FormGroup, UntypedFormArray, UntypedFormControl, Validators } from '@angular/forms';\nimport { HttpErrorResponse, HttpStatusCode } from '@angular/common/http';\n\nimport { IconLibrary, SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\nimport { BehaviorSubject, combineLatest, Observable, of, Subscription, tap } from 'rxjs';\nimport { map, startWith, switchMap, take } from 'rxjs/operators';\n\nimport { ElementActions, ElementTypes, GaContext, SelectOption } from '@fcom/common/interfaces';\nimport { finShare } from '@fcom/rx';\nimport { LanguageService } from '@fcom/ui-translate';\nimport {\n capitalize,\n EMAIL_REGEX,\n LATIN_ADDRESS_PATTERN,\n LATIN_ALPHA_PATTERN,\n PHONE_PATTERN,\n sortBy,\n startOf,\n TimeUnit,\n toISO8601,\n unsubscribe,\n ZIP_CODE_PATTERN,\n} from '@fcom/core/utils';\nimport { TranslatedCountryCode } from '@fcom/common-booking/components/pax-details/pax-details-form-group.component';\nimport { ButtonIcon, ButtonTheme, ButtonType, IconPosition, NotificationTheme } from '@fcom/ui-components';\nimport { AnalyticsFormStatus, CheckboxOptionList, FormStatus, trackFormState } from '@fcom/service-forms';\nimport { HotjarCaptureEvent, HotjarService, ScrollService } from '@fcom/common/services';\nimport { GtmService } from '@fcom/common/gtm';\nimport {\n CorporateContact,\n EnrollCorporate,\n TravelAgency,\n} from '@fcom/common/interfaces/corporate/enroll-new-corporate';\nimport {\n CorporateService,\n NAME_PATTERN,\n TERMS_AND_CONDITIONS_PREFIX,\n} from '@fcom/common/services/corporate/corporate.service';\nimport { SentryLogger } from '@fcom/core/services';\n\nimport {\n CompanyDetailsForm,\n ContactDetailsForm,\n CountrySelectionForm,\n JoinForm,\n TravelAgencyDetailsForm,\n} from './interfaces/form-interfaces';\nimport { asTypedFormGroup } from '../../utils';\n\nconst JOIN_CORPORATE_FORM_NAME = 'join-corporate-form';\n\nexport enum Page {\n CountrySelection = 'country-selection',\n CompanyInformation = 'company-information',\n ContactDetails = 'contact-persons-details',\n TravelAgencyDetails = 'travel-agency-information',\n Summary = 'review-and-submit',\n ThankYou = 'thank-you',\n}\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'fin-join-corporate-form',\n styleUrls: ['./join-corporate-form.component.scss'],\n templateUrl: './join-corporate-form.component.html',\n})\nexport class JoinCorporateFormComponent implements OnInit, OnDestroy {\n readonly ButtonTheme = ButtonTheme;\n readonly ButtonType = ButtonType;\n readonly NotificationTheme = NotificationTheme;\n readonly FormStatus = FormStatus;\n readonly Page = Page;\n readonly SvgLibraryIcon = SvgLibraryIcon;\n\n readonly capitalize = capitalize;\n readonly asTypedFormGroup = asTypedFormGroup;\n hasRetried = false;\n\n @ViewChild('top')\n top: ElementRef;\n\n reactiveForm: FormGroup;\n countrySelection: FormGroup;\n companyDetails: FormGroup;\n contactDetails: FormGroup;\n secondaryContactDetails: FormGroup;\n travelAgencyDetails: FormGroup;\n\n formBackup: FormGroup;\n formStatus: FormStatus;\n\n page = Page.CountrySelection;\n editMode = false;\n loading = false;\n submitIcon: ButtonIcon;\n\n countries$: Observable;\n countryOptions$: Observable;\n phonePrefixes$: Observable;\n languageOptions$: Observable;\n bookingSystems: CheckboxOptionList;\n currencyOptions: SelectOption[];\n\n countryCodes: TranslatedCountryCode[];\n selectedCountryCode: TranslatedCountryCode;\n\n private subscriptions = new Subscription();\n termsLink$ = new BehaviorSubject(undefined);\n returnLink$: Observable;\n\n constructor(\n private fb: FormBuilder,\n private languageService: LanguageService,\n private corporateService: CorporateService,\n private scrollService: ScrollService,\n private gtmService: GtmService,\n private hotjarService: HotjarService,\n public changeDetectionRef: ChangeDetectorRef,\n private elementRef: ElementRef,\n public sentryLogger: SentryLogger\n ) {}\n\n ngOnInit(): void {\n this.setInputOptions();\n this.reactiveForm = this.createForm();\n this.formStatus = FormStatus.INITIAL;\n this.countrySelection = this.reactiveForm.get('countrySelection') as FormGroup;\n this.companyDetails = this.reactiveForm.get('companyDetails') as FormGroup;\n this.contactDetails = this.reactiveForm.get('contactDetails') as FormGroup;\n this.secondaryContactDetails = this.reactiveForm.get('secondaryContactDetails') as FormGroup;\n this.travelAgencyDetails = this.reactiveForm.get('travelAgencyDetails') as FormGroup;\n this.returnLink$ = this.corporateService.getReturnLink();\n this.addFormListeners();\n this.subscriptions.add(this.hotjarService.startCapture(HotjarCaptureEvent.CORPORATE_ENROLLMENT).subscribe());\n }\n\n ngOnDestroy(): void {\n unsubscribe(this.subscriptions);\n }\n\n changePage(page: Page, skipValidation = false): void {\n const pageForms = this.getPageForms();\n if (skipValidation || pageForms.every((form) => form.valid)) {\n this.page = page;\n this.scrollService.scrollToImmediate(this.top);\n this.trackState(`open-${page}`);\n } else {\n this.corporateService.scrollToInvalidField(pageForms, this.elementRef);\n }\n }\n\n previousPage(): void {\n const keys = Object.keys(Page);\n const currentPageNum = keys.findIndex((key) => Page[key] === this.page);\n const prevPage = keys[currentPageNum - 1];\n this.changePage(Page[prevPage]);\n }\n\n nextPage(): void {\n const keys = Object.keys(Page);\n const currentPageNum = keys.findIndex((key) => Page[key] === this.page);\n const nextPage = keys[currentPageNum + 1];\n this.changePage(Page[nextPage]);\n }\n\n modifyPage(page: Page): void {\n this.editMode = true;\n this.formStatus = FormStatus.INITIAL;\n this.formBackup = this.createForm();\n this.formBackup.patchValue(this.reactiveForm.value);\n this.changePage(page, true);\n this.trackState(`click-modify-${page}`);\n }\n\n cancel(): void {\n this.editMode = false;\n this.reactiveForm.patchValue(this.formBackup.value);\n this.changePage(Page.Summary);\n }\n handleError(err: unknown): void {\n if (err instanceof HttpErrorResponse && err.status === HttpStatusCode.PreconditionRequired) {\n this.formStatus = FormStatus.PRECONDITION_REQUIRED;\n trackFormState(JOIN_CORPORATE_FORM_NAME, AnalyticsFormStatus.PRECONDITION_REQUIRED, this.gtmService);\n this.sentryLogger.warn('Corporate contact form Akamai Crypto Challenge', {\n err,\n });\n this.setLoading(false);\n this.changeDetectionRef.markForCheck();\n } else {\n if (!this.hasRetried) {\n this.submitForm();\n this.hasRetried = true;\n return;\n }\n\n this.formStatus = FormStatus.ERROR;\n trackFormState(JOIN_CORPORATE_FORM_NAME, AnalyticsFormStatus.ERROR, this.gtmService);\n this.setLoading(false);\n this.changeDetectionRef.markForCheck();\n }\n }\n\n submitForm(): void {\n if (this.reactiveForm.invalid) {\n this.corporateService.scrollToInvalidField(this.reactiveForm, this.elementRef);\n return;\n }\n if (this.formStatus === FormStatus.LOADING) {\n return;\n }\n this.setLoading(true);\n this.formStatus = FormStatus.LOADING;\n trackFormState(JOIN_CORPORATE_FORM_NAME, AnalyticsFormStatus.SEND_ATTEMPT, this.gtmService);\n this.subscriptions.add(\n this.corporateService\n .enrollNewCorporate(this.buildPayload())\n .pipe(take(1))\n .subscribe({\n next: () => {\n trackFormState(JOIN_CORPORATE_FORM_NAME, AnalyticsFormStatus.SUCCESS, this.gtmService);\n this.formStatus = FormStatus.COMPLETE;\n this.changePage(Page.ThankYou);\n },\n error: (err: unknown) => {\n this.handleError(err);\n },\n complete: () => {\n this.setLoading(false);\n this.changeDetectionRef.markForCheck();\n },\n })\n );\n }\n\n countryChanged(countryCode: string): void {\n this.selectedCountryCode = this.countryCodes?.find((cc) => cc.countryCode === countryCode);\n const inputValue = `${this.selectedCountryCode?.countryCode}|${this.selectedCountryCode?.phonePrefix}`;\n this.contactDetails.get('phonePrefix').setValue(inputValue);\n this.secondaryContactDetails.get('phonePrefix').setValue(inputValue);\n this.termsLink$.next(TERMS_AND_CONDITIONS_PREFIX + this.corporateService.getCountryListForTerms()[countryCode]);\n }\n\n toggleOptionalForm(form: FormGroup, enabled: boolean, excludedKey: string): void {\n const controls = Object.keys(form.controls);\n controls\n .filter((key) => key !== excludedKey)\n .forEach((key) => {\n const control = form.get(key);\n enabled ? control.enable() : control.disable();\n });\n }\n\n getFormattedPhoneNumber(prefix: string, number: string | undefined): string {\n if (!number) {\n return '-';\n }\n return `+${prefix.split('|').pop()}${number}`;\n }\n\n setLoading(isLoading: boolean): void {\n this.loading = isLoading;\n this.submitIcon = isLoading\n ? {\n category: IconLibrary.SVG_LIBRARY,\n name: SvgLibraryIcon.TRANSFER_LOADER,\n position: IconPosition.RIGHT,\n }\n : null;\n }\n\n private trackState(event: string, elementType = ElementTypes.FORM): void {\n this.gtmService.trackElement(\n `join-corporate-${event}`,\n GaContext.SERVICE_FORMS,\n elementType,\n undefined,\n ElementActions.CLICK\n );\n }\n\n private getPageForms(): FormGroup[] {\n switch (this.page) {\n case Page.CountrySelection:\n return [this.countrySelection];\n case Page.CompanyInformation:\n return [this.companyDetails];\n case Page.ContactDetails:\n return [this.contactDetails, this.secondaryContactDetails];\n case Page.TravelAgencyDetails:\n return [this.travelAgencyDetails];\n case Page.Summary:\n default:\n return [this.reactiveForm];\n }\n }\n\n private createForm(): FormGroup {\n const bookingSystemControls = this.bookingSystems.map(() => new UntypedFormControl(false));\n\n return this.fb.group({\n countrySelection: this.fb.group({\n country: ['', Validators.required],\n noTravelAgency: ['', Validators.requiredTrue],\n }),\n companyDetails: this.fb.group({\n companyName: ['', Validators.compose([Validators.required, Validators.pattern(LATIN_ADDRESS_PATTERN)])],\n businessId: ['', Validators.required],\n address: ['', Validators.compose([Validators.required, Validators.pattern(LATIN_ADDRESS_PATTERN)])],\n postalCode: ['', Validators.compose([Validators.required, Validators.pattern(ZIP_CODE_PATTERN)])],\n city: ['', Validators.compose([Validators.required, Validators.pattern(NAME_PATTERN)])],\n language: ['', Validators.required],\n customerNumber: ['', Validators.pattern(/^[A-Za-z0-9]{8}$/)],\n budget: ['', Validators.pattern(/^[0-9]*$/)],\n currency: [this.currencyOptions[0].value],\n }),\n contactDetails: this.fb.group({\n firstName: ['', Validators.compose([Validators.required, Validators.pattern(NAME_PATTERN)])],\n familyName: ['', Validators.compose([Validators.required, Validators.pattern(NAME_PATTERN)])],\n phonePrefix: ['', Validators.required],\n phoneNumber: ['', Validators.compose([Validators.required, Validators.pattern(PHONE_PATTERN)])],\n email: ['', Validators.compose([Validators.required, Validators.pattern(EMAIL_REGEX)])],\n title: ['', Validators.compose([Validators.required, Validators.pattern(LATIN_ALPHA_PATTERN)])],\n }),\n secondaryContactDetails: this.fb.group({\n fillSecondaryContact: [],\n firstName: [\n { value: '', disabled: true },\n Validators.compose([Validators.required, Validators.pattern(NAME_PATTERN)]),\n ],\n familyName: [\n { value: '', disabled: true },\n Validators.compose([Validators.required, Validators.pattern(NAME_PATTERN)]),\n ],\n phonePrefix: [{ value: '', disabled: true }, Validators.required],\n phoneNumber: [\n { value: '', disabled: true },\n Validators.compose([Validators.required, Validators.pattern(PHONE_PATTERN)]),\n ],\n email: [\n { value: '', disabled: true },\n Validators.compose([Validators.required, Validators.pattern(EMAIL_REGEX)]),\n ],\n title: [\n { value: '', disabled: true },\n Validators.compose([Validators.required, Validators.pattern(LATIN_ALPHA_PATTERN)]),\n ],\n }),\n travelAgencyDetails: this.fb.group({\n fillTravelAgency: [''],\n name: [\n { value: '', disabled: true },\n Validators.compose([Validators.required, Validators.pattern(LATIN_ADDRESS_PATTERN)]),\n ],\n firstName: [\n { value: '', disabled: true },\n Validators.compose([Validators.required, Validators.pattern(NAME_PATTERN)]),\n ],\n familyName: [\n { value: '', disabled: true },\n Validators.compose([Validators.required, Validators.pattern(NAME_PATTERN)]),\n ],\n phonePrefix: [{ value: '', disabled: true }, Validators.required],\n phoneNumber: [\n { value: '', disabled: true },\n Validators.compose([Validators.required, Validators.pattern(PHONE_PATTERN)]),\n ],\n email: [\n { value: '', disabled: true },\n Validators.compose([Validators.required, Validators.pattern(EMAIL_REGEX)]),\n ],\n iataNumber: [{ value: '', disabled: true }, [Validators.required, Validators.pattern(/^[0-9]{7,8}$/)]],\n officeCodes: [{ value: '', disabled: true }, Validators.required],\n pricingCode: [''],\n bookingSystems: new UntypedFormArray(bookingSystemControls),\n }),\n termsAndConditions: ['', Validators.requiredTrue],\n });\n }\n\n private getBookingSystems(): CheckboxOptionList {\n const availableOptions = [\n 'abacus',\n 'apollo',\n 'amadeus',\n 'axess',\n 'eterm',\n 'galileo',\n 'ita',\n 'sabre',\n 'topas',\n 'travelSky',\n 'worldspan',\n ];\n return availableOptions.map((option) => ({\n id: option,\n label: `SERVICE_FORMS.serviceForms.joinCorporateForm.fields.bookingSystem.${option}`,\n }));\n }\n\n buildPayload(): EnrollCorporate {\n const previousCustomerNumber = this.companyDetails.get('customerNumber').value;\n const payload: EnrollCorporate = {\n companyName: this.companyDetails.get('companyName').value,\n companyTaxId: this.companyDetails.get('businessId').value,\n street: this.companyDetails.get('address').value,\n zipCode: this.companyDetails.get('postalCode').value,\n city: this.companyDetails.get('city').value,\n country: this.selectedCountryCode.countryCode,\n language: this.companyDetails.get('language').value,\n agreementStart: toISO8601(startOf(new Date(), TimeUnit.month)),\n travelBudget: this.companyDetails.get('budget').value,\n currency: this.companyDetails.get('currency').value,\n primaryContact: this.buildContactPayload(this.contactDetails),\n agreements: 'Y',\n termsAndCond: 'Y',\n additionalInfo: previousCustomerNumber\n ? `Previous Finnair Corporate number: ${previousCustomerNumber}`\n : undefined,\n };\n if (this.secondaryContactDetails.get('fillSecondaryContact').value) {\n payload.secondaryContact = this.buildContactPayload(this.secondaryContactDetails);\n }\n if (this.travelAgencyDetails.get('fillTravelAgency').value) {\n payload.travelAgents = this.buildTravelAgencyPayload(this.travelAgencyDetails);\n }\n return payload;\n }\n\n private buildContactPayload(form: FormGroup): CorporateContact {\n return {\n firstname: form.get('firstName').value,\n lastname: form.get('familyName').value,\n mobile: this.getFormattedPhoneNumber(form.get('phonePrefix').value, form.get('phoneNumber').value),\n email: form.get('email').value,\n jobTitle: form.get('title')?.value,\n };\n }\n\n private buildTravelAgencyPayload(form: FormGroup): TravelAgency[] {\n const controls = form.get('bookingSystems').value;\n const selectedBookingSystems = this.bookingSystems\n .filter((_val, index) => controls[index])\n .map((s) => s.id)\n .join(', ');\n return [\n {\n name: form.get('name').value,\n iata: form.get('iataNumber').value,\n officeCode: form.get('officeCodes').value,\n previousCorporateCodeFares: form.get('pricingCode').value,\n bookingSystem: selectedBookingSystems,\n firstname: form.get('firstName').value,\n lastName: form.get('familyName').value,\n mobile: this.getFormattedPhoneNumber(form.get('phonePrefix').value, form.get('phoneNumber').value),\n email: form.get('email').value,\n },\n ];\n }\n\n private addFormListeners(): void {\n this.subscriptions.add(\n this.travelAgencyDetails.get('fillTravelAgency').valueChanges.subscribe((checked) => {\n this.toggleOptionalForm(this.travelAgencyDetails, checked, 'fillTravelAgency');\n this.trackState('click-travel-agency-checkbox', ElementTypes.CHECKBOX);\n })\n );\n this.subscriptions.add(\n this.secondaryContactDetails.get('fillSecondaryContact').valueChanges.subscribe((checked) => {\n this.toggleOptionalForm(this.secondaryContactDetails, checked, 'fillSecondaryContact');\n })\n );\n }\n\n private setInputOptions(): void {\n this.countries$ = this.languageService.translate('countryCodes').pipe(finShare());\n this.countryOptions$ = this.getCountryOptions();\n this.phonePrefixes$ = this.getPhonePrefixes();\n this.languageOptions$ = this.getLanguageOptions();\n this.bookingSystems = this.getBookingSystems();\n this.currencyOptions = this.getCurrencyOptions();\n this.subscriptions.add(this.countries$.subscribe((countryCodes) => (this.countryCodes = countryCodes)));\n }\n\n private getCountryOptions(): Observable {\n return this.countries$.pipe(\n map((countries) => {\n const corporateCountryKeys = Object.keys(this.corporateService.getCountryListForTerms());\n return corporateCountryKeys\n .map(\n (countryCode) =>\n ({\n value: countryCode,\n name: countries.find((cc) => cc.countryCode === countryCode)?.name,\n }) as SelectOption\n )\n .sort((locationA, locationB) => {\n return locationA.name > locationB.name ? 1 : -1;\n });\n })\n );\n }\n\n private getPhonePrefixes(): Observable {\n return this.countries$.pipe(\n map((countryCodes: TranslatedCountryCode[]) => {\n const corporateCountryKeys = Object.keys(this.corporateService.getCountryListForTerms());\n const filteredCodes = countryCodes.filter((cc) => corporateCountryKeys.includes(cc.countryCode));\n return sortBy(\n filteredCodes.map((cc) => ({\n name: `${cc.name} (+${cc.phonePrefix})`,\n value: `${cc.countryCode}|${cc.phonePrefix}`,\n })),\n (option) => option.name\n );\n })\n );\n }\n\n private getCurrencyOptions(): SelectOption[] {\n return ['EUR', 'USD', 'SEK', 'NOK', 'DKK', 'GBP', 'CNY', 'HKD', 'JPY', 'KRW'].map((currency) => {\n return {\n name: currency,\n value: currency,\n };\n });\n }\n\n private getLanguageOptions(): Observable {\n return this.languageService.translate('SERVICE_FORMS.serviceForms.joinCorporateForm.fields.language.options').pipe(\n switchMap((translations: { [key: string]: string }) => {\n const control = this.countrySelection.get('country');\n return combineLatest([of(translations), control.valueChanges.pipe(startWith(control.value))]);\n }),\n map(([translations, selectedCountry]) => {\n return Object.entries(translations)\n .filter(([language]) => {\n return language === 'en' || (selectedCountry === 'FI' && language === 'fi');\n })\n .map(([key, val]) => ({\n name: val,\n value: key,\n }));\n }),\n tap((values) => {\n // Preselect language if there is only one option\n if (values.length === 1) {\n this.companyDetails.get('language').setValue(values[0].value);\n }\n })\n );\n }\n}\n","
\n \n \n \n \n \n \n {{ 'SERVICE_FORMS.serviceForms.error.title' | finLocalization }}\n \n\n
\n \n \n
\n \n {{ 'SERVICE_FORMS.serviceForms.refundForm.contactSeller' | finLocalization }}\n \n\n \n \n \n
\n\n \n \n \n \n\n \n {{\n 'SERVICE_FORMS.serviceForms.mandatoryFields' | finLocalization\n }}\n\n

{{ 'SERVICE_FORMS.serviceForms.refundForm.contactDetailsTitle' | finLocalization }}

\n
\n \n \n
\n\n

{{ 'SERVICE_FORMS.serviceForms.refundForm.bookingDetailsTitle' | finLocalization }}

\n
\n \n \n \n \n
\n\n

{{ 'SERVICE_FORMS.serviceForms.refundForm.passengerDetailsTitle' | 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

{{ 'SERVICE_FORMS.serviceForms.fields.refundForm.paymentDetailsTitle' | finLocalization }}

\n\n \n \n {{ 'SERVICE_FORMS.serviceForms.refundForm.paymentDetailsNote' | finLocalization }}\n \n\n \n {{ 'SERVICE_FORMS.serviceForms.refundForm.paymentDetailsNotePartTwo' | finLocalization }}\n \n
\n \n \n
\n
\n\n \n
\n \n \n
\n
\n\n

{{ 'SERVICE_FORMS.serviceForms.fields.additionalInformation.label' | finLocalization }}

\n \n {{ 'SERVICE_FORMS.serviceForms.refundForm.additionalInformationNote' | finLocalization }}\n \n
\n \n
\n
\n\n
\n \n
\n \n \n
\n

{{ 'SERVICE_FORMS.serviceForms.loading.title' | finLocalization }}

\n \n
\n \n \n {{ 'SERVICE_FORMS.serviceForms.success.title' | finLocalization }}\n \n\n","import { Component, ElementRef, type OnDestroy, type OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { type FormArray, FormBuilder, type FormGroup, Validators } from '@angular/forms';\n\nimport { Store } from '@ngrx/store';\nimport { combineLatest, type Observable, Subscription } from 'rxjs';\nimport { distinctUntilChanged, filter, map, take } from 'rxjs/operators';\n\nimport { GtmService } from '@fcom/common/gtm';\nimport { LoaderType, type SelectOption } from '@fcom/common/interfaces';\nimport { ScrollService } from '@fcom/common/services';\nimport { type AppState } from '@fcom/core';\nimport { type Profile } from '@fcom/core-api/login';\nimport { profileOrUndefinedIfNotLoggedIn } from '@fcom/core/selectors';\nimport { EMAIL_REGEX, enumValues, LocalDate, NAME_PATTERN, unsubscribe } from '@fcom/core/utils';\nimport {\n bicValidator,\n dateValidator,\n disableConditionalFields,\n enableConditionalFields,\n FormStatus,\n frequentFlyerValidator,\n getCountryOptions,\n ibanValidator,\n pnrFormatValidator,\n softTicketNumberValidator,\n trackFormState,\n} from '@fcom/service-forms';\nimport { DatepickerTheme } from '@fcom/service-forms/components/common/datepicker.component';\nimport {\n ButtonType,\n NotificationLayout,\n NotificationTheme,\n type RadioItemGroupOption,\n TEXTAREA_LIMIT_3000,\n TextInputComponent,\n TextInputType,\n} from '@fcom/ui-components';\nimport { LanguageService } from '@fcom/ui-translate';\n\nimport {\n EnabledOnlineBankFields,\n type RefundForm,\n RefundFormCountries,\n RefundFormOnlineBankFields,\n type RefundFormPassengers,\n type RefundFormPassengersTravelExtras,\n RefundFormPurchaseChannels,\n RefundFormRefundReasons,\n RefundPaymentMethods,\n RefundPaymentTypes,\n RefundTypes,\n} from '../interfaces/refund-form.interface';\nimport { SubmitService } from '../services/submit.service';\nimport { PAYMENT_IFSC_BIK_PATTERN, PAYMENT_INN_PATTERN, PAYMENT_KPP_PATTERN, PHONE_NUMBER_PATTERN } from '../utils';\n\nconst REFUND_FORM = 'refund-form';\n\n@Component({\n selector: 'fin-refund-form',\n templateUrl: 'refund-form.component.html',\n styleUrls: ['./refund-form.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class RefundFormComponent implements OnInit, OnDestroy {\n protected readonly DatepickerTheme = DatepickerTheme;\n\n readonly ButtonType = ButtonType;\n readonly FormStatus = FormStatus;\n readonly LoaderType = LoaderType;\n readonly NotificationLayout = NotificationLayout;\n readonly NotificationTheme = NotificationTheme;\n readonly RefundFormPurchaseChannels = RefundFormPurchaseChannels;\n readonly RefundFormRefundReasons = RefundFormRefundReasons;\n readonly RefundPaymentMethods = RefundPaymentMethods;\n readonly RefundPaymentTypes = RefundPaymentTypes;\n readonly RefundTypes = RefundTypes;\n readonly TextInputType = TextInputType;\n readonly additionalInformationCharacterLimit = TEXTAREA_LIMIT_3000;\n\n @ViewChild('additionalInformation') additionalInformation: TextInputComponent;\n\n @ViewChild('formContainer', { static: true })\n formContainer: ElementRef;\n\n minDateFlight: LocalDate;\n maxDateFlight: LocalDate;\n minDateBooking: LocalDate;\n maxDateBooking: LocalDate;\n\n profile: Profile;\n reactiveForm: FormGroup;\n\n formStatus: FormStatus = FormStatus.INITIAL;\n countries: SelectOption[];\n travelExtraTypeOptions$: Observable;\n\n refundReasonsFlight: RadioItemGroupOption[] = [\n { value: RefundFormRefundReasons.FLIGHT_CANCELLED_BY_FINNAIR },\n { value: RefundFormRefundReasons.CANCELLED_BY_TICKET_RULES },\n { value: RefundFormRefundReasons.CANCELLED_WITHIN_24_HOURS },\n ];\n\n paymentMethods = [RefundPaymentMethods.MONEY_BACK, RefundPaymentMethods.GIFT_VOUCHER];\n\n refundReasonsExtras: RadioItemGroupOption[] = [\n { value: RefundFormRefundReasons.FLIGHT_CANCELLED_BY_FINNAIR },\n { value: RefundFormRefundReasons.EXTRA_NOT_DELIVERED },\n { value: RefundFormRefundReasons.CHANGED_FLIGHT_OR_SEAT },\n { value: RefundFormRefundReasons.CANCELLED_WITHIN_24_HOURS },\n ];\n\n availableRefundTypes: RadioItemGroupOption[] = [\n { value: RefundTypes.FLIGHT },\n { value: RefundTypes.EXTRAS },\n { value: RefundTypes.FLIGHT_AND_EXTRAS },\n ];\n\n requestContainsExtras = false;\n requestContainsFlight = false;\n\n private subscriptions: Subscription = new Subscription();\n\n constructor(\n private fb: FormBuilder,\n private submitService: SubmitService,\n private scrollService: ScrollService,\n private gtmService: GtmService,\n private languageService: LanguageService,\n private store$: Store\n ) {}\n\n get characterCount(): number {\n return this.additionalInformation?.control?.value?.length || 0;\n }\n\n ngOnInit(): void {\n this.subscriptions.add(\n combineLatest([\n getCountryOptions(this.languageService),\n this.languageService.translate('SERVICE_FORMS.serviceForms.refundForm.otherCountry'),\n ]).subscribe(([allCountries, countryName]) => {\n const countryValues = enumValues(RefundFormCountries);\n\n this.countries = [\n ...allCountries\n /** @todo Enable bank details for Russia. */\n .filter((country) => country.value !== RefundFormCountries.RUSSIA)\n .filter((country) => countryValues.includes(country.value as RefundFormCountries))\n .sort((a, b) => a.name.localeCompare(b.name)),\n { value: RefundFormCountries.OTHER_COUNTRIES, name: countryName },\n ];\n })\n );\n this.createForm();\n this.initFormSubscriptions();\n this.translateTravelExtraTypeOptions();\n this.minDateFlight = LocalDate.forDate(new Date().getFullYear() - 1, 1, 1);\n this.maxDateFlight = LocalDate.forDate(new Date().getFullYear() + 1, 12, 31);\n this.minDateBooking = LocalDate.forDate(new Date().getFullYear() - 1, 1, 1);\n this.maxDateBooking = LocalDate.now();\n }\n\n onSubmit(): void {\n if (this.formStatus === FormStatus.LOADING) {\n return;\n }\n\n if (!this.reactiveForm.valid) {\n this.reactiveForm.markAllAsTouched();\n this.reactiveForm.updateValueAndValidity();\n\n return;\n }\n\n this.formStatus = FormStatus.LOADING;\n this.scrollService.scrollToImmediate(this.formContainer);\n trackFormState(REFUND_FORM, 'send-attempt', this.gtmService);\n this.subscriptions.add(\n this.submitService\n .requestRefund(this.reactiveForm.value)\n .pipe(take(1))\n .subscribe({\n next: () => {\n trackFormState(REFUND_FORM, 'success', this.gtmService);\n this.formStatus = FormStatus.COMPLETE;\n },\n error: () => {\n this.formStatus = FormStatus.ERROR;\n trackFormState(REFUND_FORM, 'error', this.gtmService);\n },\n })\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions = unsubscribe(this.subscriptions);\n }\n\n get passengerFormGroupConfig(): RefundFormPassengers {\n return {\n firstname: this.fb.control('', [Validators.required, Validators.pattern(NAME_PATTERN), Validators.maxLength(50)]),\n lastname: this.fb.control('', [Validators.required, Validators.pattern(NAME_PATTERN), Validators.maxLength(50)]),\n finnairPlusNumber: this.fb.control('', [frequentFlyerValidator()]),\n ticketNumber: this.fb.control(\n '',\n this.requestContainsFlight ? [Validators.required, softTicketNumberValidator()] : []\n ),\n travelExtras: this.fb.array>([]),\n preorderBagNumber: this.fb.control('', []),\n };\n }\n\n get travelExtrasFormGroupConfig(): RefundFormPassengersTravelExtras {\n return {\n emdNumber: this.fb.control('', [Validators.required, softTicketNumberValidator()]),\n refundItemType: this.fb.control('', Validators.required),\n };\n }\n\n get selectedPurchaseChannel(): RefundFormPurchaseChannels {\n return this.reactiveForm.controls.purchaseChannel.value ? this.reactiveForm.controls.purchaseChannel.value : null;\n }\n\n get selectedRefundType(): RefundTypes {\n return this.reactiveForm.controls.refundType.value ? this.reactiveForm.controls.refundType.value : null;\n }\n\n get selectedRefundReason(): RefundFormRefundReasons {\n return this.reactiveForm.controls.refundReason.value ? this.reactiveForm.controls.refundReason.value : null;\n }\n\n get selectedPaymentMethod(): RefundPaymentMethods {\n return this.reactiveForm.controls.paymentMethod.value ? this.reactiveForm.controls.paymentMethod.value : null;\n }\n\n get selectedPaymentType(): RefundPaymentTypes {\n return this.reactiveForm.controls.paymentType.value ? this.reactiveForm.controls.paymentType.value : null;\n }\n\n get passengersData(): FormArray {\n return this.reactiveForm.controls.passengers as FormArray;\n }\n\n createForm(): void {\n this.reactiveForm = this.fb.group({\n purchaseChannel: this.fb.control('' as RefundFormPurchaseChannels, Validators.required),\n refundType: this.fb.control('' as RefundTypes, Validators.required),\n refundReason: this.fb.control('' as RefundFormRefundReasons, Validators.required),\n reservationNumber: this.fb.control('', [Validators.required, pnrFormatValidator()]),\n flightNumber: this.fb.control('', Validators.required),\n flightDate: this.fb.control('', [Validators.required, dateValidator()]),\n bookingDate: this.fb.control('', [Validators.required, dateValidator()]),\n cancellationDate: this.fb.control('', [Validators.required, dateValidator()]),\n phoneNumber: this.fb.control('', [Validators.required, Validators.pattern(PHONE_NUMBER_PATTERN)]), // International format, plus followed by max length string\n email: this.fb.control('', [Validators.required, Validators.pattern(EMAIL_REGEX)]),\n passengers: this.fb.array>([]),\n paymentMethod: this.fb.control('' as RefundPaymentMethods, Validators.required),\n paymentType: this.fb.control('' as RefundPaymentTypes, Validators.required),\n iban: this.fb.control('', [Validators.required, ibanValidator()]),\n bic: this.fb.control('', [Validators.required, bicValidator()]),\n accountHolder: this.fb.control('', [Validators.required, Validators.pattern(NAME_PATTERN)]),\n accountHolderAddress: this.fb.control('', Validators.required),\n bankName: this.fb.control('', Validators.required),\n bankAddress: this.fb.control('', Validators.required),\n additionalInformation: this.fb.control('', Validators.maxLength(this.additionalInformationCharacterLimit)),\n country: [this.languageService.ddsLocaleValue.countrySite, [Validators.required]],\n accountNumber: this.fb.control('', Validators.required),\n ncc: this.fb.control('', Validators.required),\n ifsc: this.fb.control('', [Validators.required, Validators.pattern(PAYMENT_IFSC_BIK_PATTERN)]),\n bik: this.fb.control('', [Validators.required, Validators.pattern(PAYMENT_IFSC_BIK_PATTERN)]),\n correspondentBankData: this.fb.control('', Validators.required),\n kpp: this.fb.control('', [Validators.required, Validators.pattern(PAYMENT_KPP_PATTERN)]),\n inn: this.fb.control('', [Validators.required, Validators.pattern(PAYMENT_INN_PATTERN)]),\n patronymicName: this.fb.control('', Validators.required),\n });\n }\n\n initFormSubscriptions(): void {\n this.subscriptions.add(\n this.reactiveForm.controls.passengers.valueChanges\n .pipe(filter((passengers) => passengers.length && this.profile && !passengers.at(0).firstname))\n .subscribe(() => {\n this.prefillContactDetails();\n this.prefillPassengerDetails();\n })\n );\n this.subscriptions.add(\n this.reactiveForm.controls.purchaseChannel.valueChanges.subscribe(() =>\n this.resetInputs(['purchaseChannel', 'country'])\n )\n );\n this.subscriptions.add(\n this.reactiveForm.controls.refundType.valueChanges.subscribe(() =>\n this.resetInputs(['purchaseChannel', 'refundType', 'country'])\n )\n );\n this.subscriptions.add(\n this.reactiveForm.controls.refundReason.valueChanges.subscribe(() => {\n this.updateBookingDetailValidators();\n this.resetPaymentMethod();\n })\n );\n this.subscriptions.add(\n this.reactiveForm.controls.paymentType.valueChanges.subscribe(() => this.resetBankDetails())\n );\n this.subscriptions.add(\n this.reactiveForm.controls.paymentMethod.valueChanges.subscribe(() => {\n this.updatePaymentTypeValidators();\n this.reactiveForm.controls.paymentType.reset();\n })\n );\n this.subscriptions.add(\n this.reactiveForm.controls.country.valueChanges.subscribe(() => this.enableBankFieldsForCountry())\n );\n this.subscriptions.add(\n this.reactiveForm.statusChanges\n .pipe(\n filter((status) => status === 'INVALID'),\n distinctUntilChanged(),\n take(1)\n )\n .subscribe(() => {\n trackFormState(REFUND_FORM, 'start', this.gtmService);\n })\n );\n this.subscriptions.add(\n this.store$\n .pipe(profileOrUndefinedIfNotLoggedIn(), distinctUntilChanged())\n .pipe(filter((profile) => Boolean(profile)))\n .subscribe((profile) => {\n this.profile = profile;\n this.prefillContactDetails();\n this.prefillPassengerDetails();\n })\n );\n }\n\n prefillContactDetails(): void {\n const email = this.profile?.email ?? '';\n const countryCode = this.profile?.parsedMobilePhone?.countryCode ?? '';\n const nationalNumber = this.profile?.parsedMobilePhone?.nationalNumber ?? '';\n const phoneNumber = countryCode && nationalNumber ? `+${countryCode}${nationalNumber}` : '';\n if (email && !this.reactiveForm.get('email').value) {\n this.reactiveForm.get('email').setValue(email);\n this.reactiveForm.get('phoneNumber').setValue(phoneNumber);\n }\n }\n\n prefillPassengerDetails(): void {\n const firstPassenger = this.reactiveForm.controls.passengers.at(0);\n if (firstPassenger && !firstPassenger.get('firstname').value) {\n firstPassenger.get('firstname').setValue(this.profile.firstname);\n firstPassenger.get('lastname').setValue(this.profile.lastname);\n firstPassenger.get('finnairPlusNumber').setValue(this.profile.memberNumber);\n }\n }\n\n resetPassengers(): void {\n while (0 !== this.passengersData.length) {\n this.passengersData.removeAt(0);\n }\n }\n\n translateTravelExtraTypeOptions(): void {\n this.travelExtraTypeOptions$ = this.languageService\n .translate('SERVICE_FORMS.serviceForms.refundForm.travelExtraType')\n .pipe(\n map((options) =>\n Object.keys(options).map(\n (value) =>\n ({\n value: value,\n name: options[value],\n }) as SelectOption\n )\n )\n );\n }\n\n updateBookingDetailValidators(): void {\n this.reactiveForm.controls.flightNumber.setValidators(null);\n if (this.selectedRefundReason === RefundFormRefundReasons.CANCELLED_WITHIN_24_HOURS) {\n this.reactiveForm.controls.bookingDate.setValidators([Validators.required, dateValidator()]);\n this.reactiveForm.controls.bookingDate.updateValueAndValidity();\n this.reactiveForm.controls.cancellationDate.setValidators([Validators.required, dateValidator()]);\n this.reactiveForm.controls.flightDate.setValidators(null);\n } else {\n this.reactiveForm.controls.bookingDate.setValidators(null);\n this.reactiveForm.controls.cancellationDate.setValidators(null);\n this.reactiveForm.controls.flightDate.setValidators([Validators.required, dateValidator()]);\n this.reactiveForm.controls.flightDate.updateValueAndValidity();\n }\n }\n\n updatePaymentTypeValidators(): void {\n if (this.selectedPaymentMethod !== RefundPaymentMethods.MONEY_BACK) {\n this.reactiveForm.controls.paymentType.setValidators(null);\n } else {\n this.reactiveForm.controls.paymentType.setValidators([Validators.required]);\n }\n }\n\n resetPaymentMethod(): void {\n this.reactiveForm.controls.paymentMethod.setValue(RefundPaymentMethods.MONEY_BACK);\n }\n\n updateBankDetailValidators(): void {\n if (this.selectedPaymentType === RefundPaymentTypes.ONLINE_BANK) {\n this.reactiveForm.controls.country.enable();\n this.enableBankFieldsForCountry();\n } else {\n const bankingFields = Object.values(RefundFormOnlineBankFields).filter(\n (field) => field !== RefundFormOnlineBankFields.BANK_COUNTRY\n );\n disableConditionalFields(bankingFields, this.reactiveForm);\n }\n }\n\n resetInputs(fieldsToSkip: string[]): void {\n for (const field in this.reactiveForm.controls) {\n if (!fieldsToSkip.includes(field)) {\n this.reactiveForm.get(field).reset();\n }\n }\n this.requestContainsExtras = [RefundTypes.EXTRAS, RefundTypes.FLIGHT_AND_EXTRAS].includes(this.selectedRefundType);\n this.requestContainsFlight = [RefundTypes.FLIGHT, RefundTypes.FLIGHT_AND_EXTRAS].includes(this.selectedRefundType);\n this.resetPassengers();\n }\n\n resetBankDetails(): void {\n Object.values(RefundFormOnlineBankFields).forEach((input): void => {\n if (input !== 'country') {\n this.reactiveForm.get(input).reset();\n }\n });\n\n this.updateBankDetailValidators();\n }\n\n stripSpaces(fieldRef: string): void {\n const formField = this.reactiveForm.get(fieldRef);\n formField.setValue(formField.value.replace(/\\s/g, ''));\n }\n\n enableBankFieldsForCountry(): void {\n const enabledFields = [];\n const disabledFields = [];\n const country = this.reactiveForm.controls.country.value;\n\n EnabledOnlineBankFields.forEach((bankField) => {\n if (bankField.enabledCountries.includes(country) || bankField.enabledCountries.includes('ALL')) {\n enabledFields.push(bankField.name);\n } else {\n disabledFields.push(bankField.name);\n }\n });\n\n enableConditionalFields(enabledFields, this.reactiveForm);\n disableConditionalFields(disabledFields, this.reactiveForm);\n }\n}\n","
\n
\n \n\n \n
\n
\n
\n {{ 'SERVICE_FORMS.serviceForms.refundStatusChecker.recloc.text' | finLocalization }}\n
\n\n
\n \n \n
\n
\n \n {{ 'SERVICE_FORMS.serviceForms.refundStatusChecker.notFound' | finLocalization }}\n \n
\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n} from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\nimport { Store } from '@ngrx/store';\nimport { filter, take } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\n\nimport { NAME_PATTERN, PNR_PATTERN, unsubscribe } from '@fcom/core/utils';\nimport { ButtonTheme, ButtonType, IconPosition, NotificationTheme } from '@fcom/ui-components';\nimport { LanguageService } from '@fcom/ui-translate';\nimport { AppState } from '@fcom/core/interfaces';\nimport { profileOrUndefinedIfNotLoggedIn } from '@fcom/core/selectors';\nimport { RefundsService } from '@fcom/refunds-common/services/refunds.service';\n\n@Component({\n selector: 'fin-refund-status-checker-form',\n templateUrl: 'refund-status-checker-form.component.html',\n styleUrls: ['./refund-status-checker-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RefundStatusCheckerFormComponent implements OnInit, OnDestroy {\n readonly ButtonTheme = ButtonTheme;\n readonly ButtonType = ButtonType;\n readonly IconPosition = IconPosition;\n readonly NotificationTheme = NotificationTheme;\n readonly SvgLibraryIcon = SvgLibraryIcon;\n\n form: UntypedFormGroup;\n loading = false;\n checkFailed = false;\n\n private subscription = new Subscription();\n\n constructor(\n private fb: UntypedFormBuilder,\n private cdr: ChangeDetectorRef,\n private router: Router,\n private languageService: LanguageService,\n private store$: Store,\n private refundsService: RefundsService,\n @Inject(PLATFORM_ID) private platform: object,\n private activatedRoute: ActivatedRoute\n ) {}\n\n ngOnInit(): void {\n this.createForm();\n\n if (isPlatformBrowser(this.platform)) {\n this.subscription.add(\n this.store$\n .pipe(\n profileOrUndefinedIfNotLoggedIn(),\n take(1),\n filter((profile) => !!profile?.lastname && !this.form.touched)\n )\n .subscribe((profile) => {\n this.form.get('lastName').setValue(profile?.lastname ?? '');\n this.cdr.markForCheck();\n })\n );\n }\n this.subscription.add(\n this.activatedRoute.queryParams.subscribe((params) => {\n const recLoc = params['recLoc'];\n const lastName = params['lastName'];\n if (recLoc && lastName) {\n this.handleFormSubmission(recLoc, lastName);\n }\n this.router.navigate([], { queryParams: {} });\n })\n );\n }\n\n ngOnDestroy(): void {\n this.subscription = unsubscribe(this.subscription);\n }\n\n onSubmit(): void {\n if (!this.form.valid) {\n this.form.markAsDirty();\n this.form.markAllAsTouched();\n this.form.updateValueAndValidity();\n } else if (!this.form.disabled) {\n this.handleFormSubmission(this.form.get('recLoc').value, this.form.get('lastName').value);\n }\n }\n\n private handleFormSubmission(recLoc: string, lastName: string): void {\n this.form.disable();\n this.loading = true;\n this.checkFailed = false;\n\n this.subscription.add(\n this.refundsService\n .fetchRefunds(recLoc, lastName)\n .pipe(take(1))\n .subscribe({\n next: () => {\n this.router.navigate([this.languageService.langValue, 'refunds']);\n },\n error: () => {\n this.checkFailed = true;\n this.loading = false;\n this.form.enable();\n this.cdr.markForCheck();\n },\n })\n );\n }\n\n private createForm(): void {\n this.form = this.fb.group({\n lastName: [\n '',\n [Validators.required, Validators.minLength(2), Validators.maxLength(50), Validators.pattern(NAME_PATTERN)],\n ],\n recLoc: ['', [Validators.required, Validators.pattern(PNR_PATTERN)]],\n });\n }\n}\n","
\n \n \n \n \n {{ 'SERVICE_FORMS.NTServiceForms.error.title' | finLocalization }}\n \n

\n {{ 'SERVICE_FORMS.NTServiceForms.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 {{ 'SERVICE_FORMS.NTServiceForms.fields.wheelchairType.note' | 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 {{ 'SERVICE_FORMS.NTServiceForms.fields.portableOxygenConcentratorModel.note' | 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

{{ 'SERVICE_FORMS.NTServiceForms.loading.title' | finLocalization }}

\n \n
\n \n
\n

{{ 'SERVICE_FORMS.NTServiceForms.success.title' | finLocalization }}

\n

\n

\n
\n
\n","import { Component, ElementRef, ViewChild, ViewEncapsulation, type OnDestroy, type OnInit } from '@angular/core';\nimport { UntypedFormBuilder, Validators, type FormControlStatus, type UntypedFormGroup } from '@angular/forms';\n\nimport { Store } from '@ngrx/store';\nimport { Subject, Subscription, type Observable } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, take } from 'rxjs/operators';\n\nimport { LoaderType } from '@fcom/common';\nimport { GtmService } from '@fcom/common/gtm';\nimport { ScrollService } from '@fcom/common/services';\nimport { type Location } from '@fcom/core-api';\nimport { type LocationMatchData } from '@fcom/core-api/interfaces';\nimport { type Profile } from '@fcom/core-api/login';\nimport { type AppState } from '@fcom/core/interfaces';\nimport { profileOrUndefinedIfNotLoggedIn } from '@fcom/core/selectors';\nimport { LocationMatchOnline, LocationRouteCffService } from '@fcom/core/services';\nimport { EMAIL_REGEX, LocalDate, NAME_PATTERN, unsubscribe } from '@fcom/core/utils';\nimport {\n AUTOCOMPLETE_DEBOUNCE_TIME,\n FormStatus,\n dateValidator,\n disableConditionalFields,\n enableConditionalFields,\n frequentFlyerValidator,\n locationFormatValidator,\n pnrFormatValidator,\n trackFormState,\n} from '@fcom/service-forms';\nimport { DatepickerTheme } from '@fcom/service-forms/components/common/datepicker.component';\nimport { AutocompleteTheme } from '@fcom/service-forms/components/common/locations-autocomplete.component';\nimport {\n ATTACHMENT_MAX_SIZE_IN_BYTES,\n ButtonType,\n NotificationLayout,\n NotificationTheme,\n RadioItemGroupOption,\n TEXTAREA_LIMIT_100,\n TEXTAREA_LIMIT_1000,\n TEXTAREA_LIMIT_3000,\n TextInputType,\n} from '@fcom/ui-components';\nimport { type FileUploaderComponent } from '@fcom/ui-components/components/forms/file-uploader/file-uploader.component';\nimport { type AttachmentResponse } from '@fcom/ui-components/components/forms/interfaces';\nimport { AttachmentStatus, type Attachment } from '@fcom/ui-components/components/interfaces';\nimport { LanguageService } from '@fcom/ui-translate';\n\nimport {\n FileOrigin,\n FormType,\n SpecialAssistanceFormFields,\n type CasePostMessage,\n type SpecialAssistanceSubmissionData,\n} from '../interfaces';\nimport { ClaimOrFeedbackService } from '../services/claim-or-feedback.service';\nimport { FLIGHT_NUMBER_PATTERN, PHONE_NUMBER_PATTERN, parsePhoneNumber } from '../utils';\n\nconst REQUEST_SPECIAL_ASSISTANCE = 'request-special-assistance';\n\n@Component({\n selector: 'fin-special-assistance-form',\n templateUrl: 'special-assistance-form.component.html',\n styleUrls: ['./special-assistance-form.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SpecialAssistanceFormComponent implements OnInit, OnDestroy {\n readonly ButtonType = ButtonType;\n readonly FormStatus = FormStatus;\n readonly LoaderType = LoaderType;\n readonly NotificationLayout = NotificationLayout;\n readonly NotificationTheme = NotificationTheme;\n readonly SpecialAssistanceFormFields = SpecialAssistanceFormFields;\n readonly TextInputType = TextInputType;\n\n readonly attachmentMaxSize = ATTACHMENT_MAX_SIZE_IN_BYTES;\n readonly textareaLimit1000 = TEXTAREA_LIMIT_1000;\n readonly textareaLimit3000 = TEXTAREA_LIMIT_3000;\n readonly textareaLimit100 = TEXTAREA_LIMIT_100;\n\n @ViewChild('fileUploader') fileUploader: FileUploaderComponent;\n @ViewChild('formContainer', { static: true }) formContainer: ElementRef;\n\n destinationLoading$: Subject = new Subject();\n departureLoading$: Subject = new Subject();\n destinationLocations$: Subject = new Subject();\n departureLocations$: Subject = new Subject();\n minDate: LocalDate;\n maxDate: LocalDate;\n reactiveForm: UntypedFormGroup;\n formStatus: FormStatus = FormStatus.INITIAL;\n completedServiceRequestNumber: string;\n duplicateServiceRequestNumber: string;\n\n specialAttentionReasonOptions: RadioItemGroupOption[] = [\n { value: 'wheelChairOrMobA' },\n { value: 'hearingImpaired' },\n { value: 'visuallyImpaired' },\n { value: 'visuallyImpairedWithGuideDog' },\n { value: 'travelingWithServiceDog' },\n { value: 'pregnant' },\n { value: 'medicalCondition' },\n { value: 'medicalEquipment' },\n { value: 'other' },\n ];\n\n wheelchairTypeOptions: RadioItemGroupOption[] = [\n { value: 'wheelchairTypeElectricDry' },\n { value: 'wheelchairTypeElectricWet' },\n { value: 'wheelchairTypeLithiumIon' },\n { value: 'wheelchairTypeManual' },\n { value: 'otherMobA' },\n ];\n\n medicalConditionOptions: RadioItemGroupOption[] = [\n { value: 'myocardialInfarction' },\n { value: 'cerebralCiculatoryDisorder' },\n { value: 'recentInjury' },\n { value: 'recentSurgery' },\n { value: 'symptomaticCoronaryDisease' },\n { value: 'chronicObstructivePulmanoryDisease' },\n { value: 'psychiatricDisorder' },\n { value: 'infectiousDisease' },\n { value: 'anemia' },\n { value: 'chickenpox' },\n { value: 'otherCondition' },\n ];\n\n otherReasonForAssistanceOptions: RadioItemGroupOption[] = [\n { value: 'alzheimer' },\n { value: 'downSyndrome' },\n { value: 'autism' },\n { value: 'dementia' },\n { value: 'intellectualDisabilities' },\n ];\n\n specialAttentionFields: SpecialAssistanceFormFields[] = [\n SpecialAssistanceFormFields.OWN_WHEELCHAIR,\n SpecialAssistanceFormFields.NEED_ASSISTANCE_WHERE,\n SpecialAssistanceFormFields.TRAVELING_WITH_ASSISTANT,\n SpecialAssistanceFormFields.ASSISTANT_NAME,\n SpecialAssistanceFormFields.MEDICAL_CONDITION,\n SpecialAssistanceFormFields.MEDICAL_EQUIPMENT,\n SpecialAssistanceFormFields.ADD_MEDICAL_EQUIPMENT,\n ];\n\n wheelchairFields: SpecialAssistanceFormFields[] = [\n SpecialAssistanceFormFields.WHEELCHAIR_TYPE,\n SpecialAssistanceFormFields.WHEELCHAIR_DEPTH,\n SpecialAssistanceFormFields.WHEELCHAIR_HEIGHT,\n SpecialAssistanceFormFields.WHEELCHAIR_WEIGHT,\n SpecialAssistanceFormFields.WHEELCHAIR_WIDTH,\n SpecialAssistanceFormFields.ABLE_TO_SIT_WITH_KNEES_BENT,\n ];\n\n noWheelchairFields: SpecialAssistanceFormFields[] = [\n SpecialAssistanceFormFields.REASON_FOR_WHEELCHAIR,\n SpecialAssistanceFormFields.ABLE_TO_SIT_WITH_KNEES_BENT,\n ];\n\n otherMobilityFields: SpecialAssistanceFormFields[] = [SpecialAssistanceFormFields.OTHER_MOBILITY_AID_DESCRIPTION];\n\n medicalFields: SpecialAssistanceFormFields[] = [\n SpecialAssistanceFormFields.CAPAP_DEVICE_MODEL,\n SpecialAssistanceFormFields.PORTABLE_OXYGEN_CONCENTRATOR_MODEL,\n SpecialAssistanceFormFields.OTHER_MEDICAL_EQUIPMENT_TYPE,\n SpecialAssistanceFormFields.OTHER_MEDICAL_EQUIPMENT_MODEL,\n ];\n\n otherReasonFields: SpecialAssistanceFormFields[] = [SpecialAssistanceFormFields.OTHER_REASON];\n\n nonRequired: SpecialAssistanceFormFields[] = [\n SpecialAssistanceFormFields.ASSISTANT_NAME,\n SpecialAssistanceFormFields.ADD_MEDICAL_EQUIPMENT,\n SpecialAssistanceFormFields.CAPAP_DEVICE_MODEL,\n SpecialAssistanceFormFields.PORTABLE_OXYGEN_CONCENTRATOR_MODEL,\n SpecialAssistanceFormFields.OTHER_MEDICAL_EQUIPMENT_TYPE,\n SpecialAssistanceFormFields.OTHER_MEDICAL_EQUIPMENT_MODEL,\n ];\n\n private subscriptions: Subscription = new Subscription();\n\n constructor(\n private fb: UntypedFormBuilder,\n private locationRouteCffService: LocationRouteCffService,\n private languageService: LanguageService,\n private claimAndFeedbackService: ClaimOrFeedbackService,\n private scrollService: ScrollService,\n private gtmService: GtmService,\n private store$: Store\n ) {}\n\n get attachment(): Attachment | undefined {\n return this.fileUploader?.attachments?.filter((a: Attachment): boolean => a?.status === AttachmentStatus.READY)[0];\n }\n\n get formDisabled(): boolean {\n return (\n this.formStatus === FormStatus.LOADING ||\n Boolean(\n this.fileUploader?.attachments?.some((a: Attachment): boolean => a?.status === AttachmentStatus.UPLOADING)\n )\n );\n }\n\n get isLoading(): boolean {\n return this.formStatus === FormStatus.LOADING;\n }\n\n ngOnInit(): void {\n this.subscriptions.add(\n this.store$.pipe(profileOrUndefinedIfNotLoggedIn(), take(1)).subscribe((profile: Profile): void => {\n this.createForm(profile);\n this.addFormWatchers();\n })\n );\n\n this.destinationLoading$.next(false);\n this.departureLoading$.next(false);\n\n this.minDate = LocalDate.now();\n this.maxDate = LocalDate.forDate(new Date().getFullYear() + 1, 12, 31);\n }\n\n ngOnDestroy(): void {\n this.subscriptions = unsubscribe(this.subscriptions);\n }\n\n createForm(profile?: Profile): void {\n this.reactiveForm = this.fb.group({\n firstName: [\n profile?.firstname || '',\n [Validators.required, Validators.pattern(NAME_PATTERN), Validators.maxLength(50)],\n ],\n lastName: [\n profile?.lastname || '',\n [Validators.required, Validators.pattern(NAME_PATTERN), Validators.maxLength(50)],\n ],\n phoneNumber: [parsePhoneNumber(profile), [Validators.required, Validators.pattern(PHONE_NUMBER_PATTERN)]], // International format, plus followed by max length string\n email: [profile?.email ?? '', [Validators.required, Validators.pattern(EMAIL_REGEX)]],\n cardNumber: [profile?.memberNumber ?? '', [frequentFlyerValidator()]],\n flightDate: ['', [Validators.required, dateValidator()]],\n flightNumber: ['', [Validators.required, Validators.pattern(FLIGHT_NUMBER_PATTERN)]], // any 2 alphabets, any 1-4 numbers\n origin: ['', [Validators.required, locationFormatValidator()]],\n destination: ['', [Validators.required, locationFormatValidator()]],\n reservationNumber: ['', [Validators.required, pnrFormatValidator()]],\n reasonForSpecialAttention: ['', Validators.required],\n ownWheelchair: [{ value: '', disabled: true }, [Validators.required]],\n wheelchairType: [{ value: '', disabled: true }, [Validators.required]],\n wheelchairDepth: [{ value: '', disabled: true }, [Validators.required, Validators.pattern(/^\\d+$/)]], // Only numbers\n wheelchairHeight: [{ value: '', disabled: true }, [Validators.required, Validators.pattern(/^\\d+$/)]], // Only numbers\n wheelchairWeight: [{ value: '', disabled: true }, [Validators.required, Validators.pattern(/^\\d+$/)]], // Only numbers\n wheelchairWidth: [{ value: '', disabled: true }, [Validators.required, Validators.pattern(/^\\d+$/)]], // Only numbers\n addMedicalEquipment: [{ value: '', disabled: true }, [Validators.maxLength(this.textareaLimit1000)]], // 1000 is limit set in legacy form\n reasonForWheelchair: [\n { value: '', disabled: true },\n [Validators.required, Validators.maxLength(this.textareaLimit3000)],\n ],\n ableToSitWithKneesBent: [{ value: '', disabled: true }, [Validators.required]],\n needAssistanceWhere: [{ value: '', disabled: true }, [Validators.required]],\n travelingWithAssistant: [{ value: '', disabled: true }, [Validators.required]],\n assistantName: [{ value: '', disabled: true }, [Validators.maxLength(100)]], // magic number 100 just to limit needlessly long answers\n medicalCondition: [{ value: '', disabled: true }, [Validators.required]],\n medicalEquipment: [{ value: '', disabled: true }, [Validators.required]],\n CAPAPDeviceModel: [{ value: '', disabled: true }, [Validators.required]],\n portableOxygenConcentratorModel: [{ value: '', disabled: true }, [Validators.required]],\n otherMedicalEquipmentType: [{ value: '', disabled: true }, [Validators.required]],\n otherMedicalEquipmentModel: [{ value: '', disabled: true }, [Validators.required]],\n otherReasonForAssistance: [{ value: '', disabled: true }, [Validators.required]],\n additionalInformation: ['', [Validators.maxLength(this.textareaLimit1000)]], // 1000 is limit set in legacy form\n [SpecialAssistanceFormFields.MEDA_ATTACHMENT]: [[]],\n lithiumBatteries: [{ value: '', disabled: true }, [Validators.required]],\n lithiumBattery1Power: [{ value: '', disabled: true }, [Validators.required, Validators.maxLength(20)]],\n lithiumBattery2Power: [{ value: '', disabled: true }, [Validators.required, Validators.maxLength(20)]],\n otherMobilityAidDescription: [\n { value: '', disabled: true },\n [Validators.required, Validators.maxLength(this.textareaLimit100)],\n ],\n });\n }\n\n removeFile(): void {\n this.reactiveForm.get(SpecialAssistanceFormFields.MEDA_ATTACHMENT).reset();\n }\n\n updateConditionalFields(inputValue: string): void {\n let fieldsToEnable: SpecialAssistanceFormFields[] = [];\n const fieldsToDisable: SpecialAssistanceFormFields[] = this.wheelchairFields\n .concat(this.noWheelchairFields)\n .concat(this.specialAttentionFields)\n .concat(this.medicalFields)\n .concat(this.otherMobilityFields)\n .concat(this.otherReasonFields);\n switch (inputValue) {\n case 'wheelChairOrMobA':\n fieldsToEnable = [\n SpecialAssistanceFormFields.OWN_WHEELCHAIR,\n SpecialAssistanceFormFields.NEED_ASSISTANCE_WHERE,\n SpecialAssistanceFormFields.TRAVELING_WITH_ASSISTANT,\n SpecialAssistanceFormFields.ASSISTANT_NAME,\n SpecialAssistanceFormFields.ADD_MEDICAL_EQUIPMENT,\n SpecialAssistanceFormFields.ABLE_TO_SIT_WITH_KNEES_BENT,\n ];\n break;\n case 'medicalCondition':\n fieldsToEnable = [SpecialAssistanceFormFields.MEDICAL_CONDITION];\n break;\n case 'medicalEquipment':\n fieldsToEnable = [SpecialAssistanceFormFields.MEDICAL_EQUIPMENT];\n break;\n case 'other':\n fieldsToEnable = [SpecialAssistanceFormFields.OTHER_REASON];\n break;\n default:\n break;\n }\n\n disableConditionalFields(fieldsToDisable, this.reactiveForm);\n enableConditionalFields(fieldsToEnable, this.reactiveForm);\n }\n\n addFormWatchers(): void {\n this.watchFieldChanges(\n this.reactiveForm,\n this.updateConditionalFields.bind(this),\n SpecialAssistanceFormFields.REASON_FOR_SPECIAL_ATTENTION\n );\n this.watchFieldChanges(\n this.reactiveForm,\n this.updateWheelChairFields.bind(this),\n SpecialAssistanceFormFields.OWN_WHEELCHAIR\n );\n this.watchFieldChanges(\n this.reactiveForm,\n this.updateMedicalEquipmentFields.bind(this),\n SpecialAssistanceFormFields.MEDICAL_EQUIPMENT\n );\n this.watchFieldChanges(\n this.reactiveForm,\n this.updateWheelChairType.bind(this),\n SpecialAssistanceFormFields.WHEELCHAIR_TYPE\n );\n this.watchFieldChanges(\n this.reactiveForm,\n this.updateLithiumBatteriesPowerFields.bind(this),\n SpecialAssistanceFormFields.LITHIUM_BATTERIES\n );\n\n this.subscriptions.add(\n this.reactiveForm.statusChanges\n .pipe(\n filter((status: FormControlStatus): boolean => status === 'INVALID'),\n distinctUntilChanged(),\n take(1)\n )\n .subscribe((): void => {\n trackFormState(REQUEST_SPECIAL_ASSISTANCE, 'start', this.gtmService);\n })\n );\n\n this.onDestinationChanges();\n this.onDepartureChanges();\n }\n\n updateWheelChairFields(inputValue: string): void {\n switch (inputValue) {\n case 'ownWheelchairYes':\n disableConditionalFields(this.noWheelchairFields, this.reactiveForm);\n enableConditionalFields(this.wheelchairFields, this.reactiveForm);\n break;\n case 'ownWheelchairNo':\n disableConditionalFields(this.wheelchairFields, this.reactiveForm);\n enableConditionalFields(this.noWheelchairFields, this.reactiveForm);\n break;\n default:\n break;\n }\n }\n\n updateWheelChairType(inputValue: string): void {\n if (inputValue === 'otherMobA') {\n enableConditionalFields(this.otherMobilityFields, this.reactiveForm);\n } else {\n disableConditionalFields(this.otherMobilityFields, this.reactiveForm);\n }\n if ('wheelchairTypeLithiumIon' === inputValue) {\n enableConditionalFields([SpecialAssistanceFormFields.LITHIUM_BATTERIES], this.reactiveForm);\n } else {\n disableConditionalFields([SpecialAssistanceFormFields.LITHIUM_BATTERIES], this.reactiveForm);\n }\n }\n\n updateLithiumBatteriesPowerFields(inputValue: string): void {\n if ('lithiumBattery1' === inputValue) {\n enableConditionalFields([SpecialAssistanceFormFields.LITHIUM_BATTERY_1_POWER], this.reactiveForm);\n } else if ('lithiumBattery2' === inputValue) {\n enableConditionalFields(\n [SpecialAssistanceFormFields.LITHIUM_BATTERY_1_POWER, SpecialAssistanceFormFields.LITHIUM_BATTERY_2_POWER],\n this.reactiveForm\n );\n } else {\n disableConditionalFields(\n [SpecialAssistanceFormFields.LITHIUM_BATTERY_1_POWER, SpecialAssistanceFormFields.LITHIUM_BATTERY_2_POWER],\n this.reactiveForm\n );\n }\n }\n\n uploadFile(): (file: File) => Observable {\n return (file: File): Observable => {\n return this.claimAndFeedbackService.uploadFile(file, FileOrigin.CASE);\n };\n }\n\n updateMedicalEquipmentFields(inputValue: string): void {\n const fieldsToDisable: SpecialAssistanceFormFields[] = this.medicalFields;\n let fieldsToEnable: SpecialAssistanceFormFields[] = [];\n\n switch (inputValue) {\n case 'CAPAPDevice':\n fieldsToEnable = [SpecialAssistanceFormFields.CAPAP_DEVICE_MODEL];\n break;\n case 'portableOxygenConcentrator':\n fieldsToEnable = [SpecialAssistanceFormFields.PORTABLE_OXYGEN_CONCENTRATOR_MODEL];\n break;\n case 'otherMedicalEquipment':\n fieldsToEnable = [\n SpecialAssistanceFormFields.OTHER_MEDICAL_EQUIPMENT_TYPE,\n SpecialAssistanceFormFields.OTHER_MEDICAL_EQUIPMENT_MODEL,\n ];\n break;\n default:\n break;\n }\n\n disableConditionalFields(fieldsToDisable, this.reactiveForm);\n enableConditionalFields(fieldsToEnable, this.reactiveForm);\n }\n\n onSubmit(): void {\n if (this.formStatus === FormStatus.LOADING) {\n return;\n }\n\n if (!this.reactiveForm.valid) {\n this.reactiveForm.markAllAsTouched();\n this.reactiveForm.updateValueAndValidity();\n\n return;\n }\n\n this.formStatus = FormStatus.LOADING;\n this.scrollService.scrollToImmediate(this.formContainer);\n trackFormState(REQUEST_SPECIAL_ASSISTANCE, 'send-attempt', this.gtmService);\n this.submitToSalesforce();\n }\n\n private submitToSalesforce(): void {\n const oldData: SpecialAssistanceSubmissionData = this.reactiveForm.value;\n this.subscriptions.add(\n this.claimAndFeedbackService\n .createCase<{ caseId: string }>({\n formType: FormType.MEDA,\n customerFields: {\n memberNumber: oldData?.cardNumber?.toString(),\n },\n category: {\n formCategory: '',\n formSubCategory: oldData?.reasonForSpecialAttention,\n },\n bookingInformation: {\n flightDate: oldData?.flightDate,\n flightNumber: oldData?.flightNumber,\n destination: oldData?.destination as Location,\n origin: oldData?.origin as Location,\n reservationNumber: oldData?.reservationNumber,\n },\n addPassengers: {\n mainPassenger: {\n firstName: oldData.firstName,\n lastName: oldData.lastName,\n email: oldData.email,\n phone: oldData.phoneNumber,\n country: this.languageService.langValue.toLocaleLowerCase() === 'fi-fi' ? 'FI' : 'GB',\n attachment: undefined,\n },\n companions: [],\n },\n optionalFeedback: {\n additionalComments: oldData?.additionalInformation,\n },\n specialAssistance: {\n ableToSitWithKneesBent: oldData?.ableToSitWithKneesBent === 'ableToSitWithKneesBentYes',\n additionalInformation: oldData?.additionalInformation,\n additionalMedicalEquipment: oldData?.addMedicalEquipment,\n assistantName: oldData?.assistantName,\n assistanceType: oldData?.needAssistanceWhere,\n capapDeviceModel: oldData?.CAPAPDeviceModel,\n reasonForWheelchair: oldData?.reasonForWheelchair,\n travellingWithAssistant: oldData?.travelingWithAssistant === 'travelingWithAssistantYes',\n typeOfMedicalEquipment: oldData?.medicalEquipment,\n typeOfCondition: oldData?.medicalCondition,\n otherReasonForAssistance: oldData?.otherReasonForAssistance,\n ownWheelchair: oldData?.ownWheelchair === 'ownWheelchairYes',\n otherMedicalEquipmentModel: oldData?.otherMedicalEquipmentModel,\n otherMedicalEquipmentType: oldData?.otherMedicalEquipmentType,\n portableOxygenConcentratorModel: oldData?.portableOxygenConcentratorModel,\n wheelchairDepth: oldData?.wheelchairDepth ? parseFloat(oldData?.wheelchairDepth) : undefined,\n wheelchairHeight: oldData?.wheelchairHeight ? parseFloat(oldData?.wheelchairHeight) : undefined,\n wheelchairType: oldData?.wheelchairType,\n wheelchairWidth: oldData?.wheelchairWidth ? parseFloat(oldData?.wheelchairWidth) : undefined,\n wheelchairWeight: oldData?.wheelchairWeight ? parseFloat(oldData?.wheelchairWeight) : undefined,\n [SpecialAssistanceFormFields.MEDA_ATTACHMENT]: this.attachment,\n amountOfLithiumIonBatteries: this.amountOfLithiumIonBatteriesSwitch(oldData?.lithiumBatteries),\n battery1Power: oldData?.lithiumBattery1Power,\n battery2Power: oldData?.lithiumBattery2Power,\n otherMobilityAidDescription: oldData?.otherMobilityAidDescription,\n },\n })\n .pipe(take(1))\n .subscribe({\n next: (result: CasePostMessage): void => {\n if (result.caseId) {\n this.completedServiceRequestNumber = result.caseId;\n trackFormState(REQUEST_SPECIAL_ASSISTANCE, 'success', this.gtmService);\n }\n this.formStatus = FormStatus.COMPLETE;\n },\n error: (): void => {\n this.formStatus = FormStatus.ERROR;\n trackFormState(REQUEST_SPECIAL_ASSISTANCE, 'error', this.gtmService);\n },\n })\n );\n }\n\n private queryLocations(queryString: string, locations$: Subject, loading$: Subject): void {\n const locale: string = this.languageService.localeValue;\n\n loading$.next(true);\n\n this.subscriptions.add(\n this.locationRouteCffService\n .locationMatchesFor(queryString, locale, LocationMatchOnline.ALL)\n .subscribe((matchedLocations: LocationMatchData): void => {\n loading$.next(false);\n locations$.next(matchedLocations.items);\n })\n );\n }\n\n private onDepartureChanges(): void {\n this.subscriptions.add(\n this.reactiveForm\n .get('origin')\n .valueChanges.pipe(debounceTime(AUTOCOMPLETE_DEBOUNCE_TIME))\n .subscribe((val) => {\n if (this.reactiveForm.get('origin').status === 'INVALID') {\n this.queryLocations(val, this.departureLocations$, this.departureLoading$);\n }\n })\n );\n }\n\n private onDestinationChanges(): void {\n this.subscriptions.add(\n this.reactiveForm\n .get('destination')\n .valueChanges.pipe(debounceTime(AUTOCOMPLETE_DEBOUNCE_TIME))\n .subscribe((val) => {\n if (this.reactiveForm.get('destination').status === 'INVALID') {\n this.queryLocations(val, this.destinationLocations$, this.destinationLoading$);\n }\n })\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n private watchFieldChanges(form: UntypedFormGroup, callback: Function, field: string): void {\n this.subscriptions.add(\n form.get(field).valueChanges.subscribe((val) => {\n callback(val);\n })\n );\n }\n\n get datepickerThemes(): typeof DatepickerTheme {\n return DatepickerTheme;\n }\n\n get autocompleteThemes(): typeof AutocompleteTheme {\n return AutocompleteTheme;\n }\n\n amountOfLithiumIonBatteriesSwitch(data: string): 1 | 2 | null {\n switch (data) {\n case 'lithiumBattery1':\n return 1;\n case 'lithiumBattery2':\n return 2;\n default:\n return null;\n }\n }\n}\n","
\n \n
\n
\n {{ info.title }}\n
\n \n
\n
\n {{ info.content }}\n
\n \n
\n\n
\n \n
\n","import { Component } from '@angular/core';\n\nimport { SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\n\nimport { ButtonMode } from '@fcom/ui-components';\n\n@Component({\n selector: 'fin-special-assistance-wizard',\n templateUrl: './special-assistance-wizard.component.html',\n styleUrls: ['./special-assistance-wizard.component.scss'],\n})\nexport class SpecialAssistanceWizardComponent {\n readonly ButtonMode = ButtonMode;\n readonly SvgLibraryIcon = SvgLibraryIcon;\n}\n","
\n

\n {{ 'SERVICE_FORMS.serviceForms.vatReceiptForm.bookingInformation.title' | finLocalization }}\n

\n \n {{ 'SERVICE_FORMS.serviceForms.vatReceiptForm.bookingInformation.enterDetails' | finLocalization }}\n \n\n \n \n\n \n \n\n \n {{ 'SERVICE_FORMS.serviceForms.vatReceiptForm.bookingInformation.or' | finLocalization }}\n \n\n \n \n\n
\n \n
\n\n \n {{ 'SERVICE_FORMS.serviceForms.vatReceiptForm.bookingInformation.notFound' | finLocalization }}\n \n \n {{ 'errors.generic.title' | finLocalization }}\n \n\n
\n
\n

\n {{ 'SERVICE_FORMS.serviceForms.vatReceiptForm.bookingInformation.title' | finLocalization }}\n

\n \n {{ 'loginFields.lastName.label' | finLocalization }}\n \n {{ validatedPnrData.lastName }}\n\n \n {{\n (validatedPnrData.pnr\n ? 'loginFields.recLoc.label'\n : 'SERVICE_FORMS.serviceForms.vatReceiptForm.bookingInformation.eTicket.label'\n ) | finLocalization\n }}\n \n {{ validatedPnrData.pnr || validatedPnrData.ticketNumber }}\n
\n\n \n
\n \n
\n\n \n

\n {{ 'SERVICE_FORMS.serviceForms.vatReceiptForm.companyDetails.title' | finLocalization }}\n

\n \n {{ 'SERVICE_FORMS.serviceForms.vatReceiptForm.companyDetails.includedInformation' | finLocalization }}\n \n \n \n \n \n\n \n {{ 'SERVICE_FORMS.serviceForms.corporateContactForm.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 {{ 'SERVICE_FORMS.serviceForms.vatReceiptForm.companyDetails.title' | finLocalization }}\n

\n \n {{ 'SERVICE_FORMS.serviceForms.vatReceiptForm.companyDetails.includedInformation' | finLocalization }}\n \n
\n\n
\n \n {{ 'SERVICE_FORMS.serviceForms.corporateContactForm.contactDetails.companyName.label' | finLocalization }}\n \n {{ profile.corporate?.name }}\n
\n\n
\n \n {{ 'SERVICE_FORMS.serviceForms.vatReceiptForm.companyDetails.fields.businessId.label' | finLocalization }}\n \n {{ profile.corporate?.businessId }}\n
\n\n
\n \n {{ 'SERVICE_FORMS.serviceForms.vatReceiptForm.companyDetails.fields.address.label' | finLocalization }}\n \n {{ profile.corporate?.street }}\n
\n\n
\n \n {{ 'SERVICE_FORMS.serviceForms.vatReceiptForm.companyDetails.fields.postalCode.label' | finLocalization }}\n \n {{ profile.corporate?.zipcode }}\n
\n\n
\n \n {{ 'SERVICE_FORMS.serviceForms.vatReceiptForm.companyDetails.fields.city.label' | finLocalization }}\n \n {{ profile.corporate?.city }}\n
\n\n
\n \n {{ 'SERVICE_FORMS.serviceForms.vatReceiptForm.companyDetails.fields.country.label' | finLocalization }}\n \n {{ profile.corporate?.country }}\n
\n
\n
\n\n
\n \n\n \n
\n
\n","import { Component, ElementRef, OnDestroy, OnInit } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport { SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, Observable, Subject, Subscription, throwError } from 'rxjs';\nimport { catchError, map, switchMap, take } from 'rxjs/operators';\n\nimport { finShare, snapshot } from '@fcom/rx';\nimport { Profile } from '@fcom/core-api/login';\nimport { SelectOption } from '@fcom/common/interfaces';\nimport { AnalyticsFormStatus, FormStatus, softTicketNumberValidator, trackFormState } from '@fcom/service-forms';\nimport { AppState } from '@fcom/core/interfaces';\nimport { profileOrUndefinedIfNotLoggedIn } from '@fcom/core/selectors';\nimport { LATIN_ADDRESS_PATTERN, LATIN_ALPHA_PATTERN, PNR_PATTERN, unsubscribe } from '@fcom/core/utils';\nimport { ButtonIcon, ButtonTheme, IconPosition, NotificationTheme } from '@fcom/ui-components';\nimport { WindowRef } from '@fcom/core/providers';\nimport { GtmService } from '@fcom/common/gtm';\nimport {\n VatContactDetailsForm,\n VatPnrForm,\n VatReceiptContactDetails,\n VatReceiptSearch,\n} from '@fcom/common/interfaces/corporate/vat-receipt.interface';\nimport { CorporateService, ZIP_CODE_PATTERN } from '@fcom/common/services/corporate/corporate.service';\n\nimport { atLeastOneRequired } from '../utils';\n\nconst CORPORATE_VAT_FORM_NAME = 'corporate-vat-form';\n\n@Component({\n selector: 'fin-vat-receipt-form',\n templateUrl: './vat-receipt-form.component.html',\n})\nexport class VatReceiptFormComponent implements OnInit, OnDestroy {\n readonly ButtonTheme = ButtonTheme;\n readonly FormStatus = FormStatus;\n readonly IconPosition = IconPosition;\n readonly NotificationTheme = NotificationTheme;\n readonly SvgLibraryIcon = SvgLibraryIcon;\n\n pnrForm: FormGroup;\n contactDetailsForm: FormGroup;\n formStatus: FormStatus;\n loadingIcon: ButtonIcon;\n\n countries$: Observable;\n\n private subscriptions = new Subscription();\n profile$: Observable;\n\n validatedPnrData$: Subject = new BehaviorSubject(null);\n pnrNotFound$ = new BehaviorSubject(false);\n showCompanyDetailsForm$ = new BehaviorSubject(true);\n\n constructor(\n private windowRef: WindowRef,\n private elementRef: ElementRef,\n private fb: FormBuilder,\n private store$: Store,\n private corporateService: CorporateService,\n private gtmService: GtmService\n ) {}\n\n ngOnInit(): void {\n this.countries$ = this.corporateService.getCountryInputOptions();\n this.profile$ = this.store$.pipe(profileOrUndefinedIfNotLoggedIn(), take(1), finShare());\n this.formStatus = FormStatus.INITIAL;\n this.createForms();\n this.prefillForms();\n }\n\n ngOnDestroy(): void {\n unsubscribe(this.subscriptions);\n }\n\n createForms(): void {\n this.pnrForm = this.fb.group(\n {\n lastName: ['', [Validators.required, Validators.minLength(2), Validators.maxLength(50)]],\n bookingRef: ['', [Validators.pattern(PNR_PATTERN)]],\n eTicket: ['', [softTicketNumberValidator()]],\n },\n { validators: atLeastOneRequired(['bookingRef', 'eTicket']) }\n );\n this.contactDetailsForm = this.fb.group({\n addCompanyDetails: [false],\n companyName: ['', Validators.required],\n businessId: ['', Validators.required],\n address: ['', [Validators.required, Validators.pattern(LATIN_ADDRESS_PATTERN)]],\n postalCode: ['', [Validators.required, Validators.pattern(ZIP_CODE_PATTERN)]],\n city: ['', [Validators.required, Validators.pattern(LATIN_ALPHA_PATTERN)]],\n country: ['', Validators.required],\n });\n this.addControlListeners();\n }\n\n prefillForms(): void {\n this.subscriptions.add(\n this.profile$.subscribe((profile) => {\n if (profile) {\n this.pnrForm.get('lastName').setValue(profile.lastname);\n this.contactDetailsForm.get('companyName').setValue(profile.corporate?.name);\n this.contactDetailsForm.get('businessId').setValue(profile.corporate?.businessId);\n this.contactDetailsForm.get('address').setValue(profile.corporate?.street);\n this.contactDetailsForm.get('postalCode').setValue(profile.corporate?.zipcode);\n this.contactDetailsForm.get('city').setValue(profile.corporate?.city);\n this.contactDetailsForm.get('country').setValue(profile.corporate?.country);\n // Mark filled fields as touched\n const controls = Object.values(this.contactDetailsForm.controls);\n controls.forEach((control: AbstractControl) => control.value && control.markAsTouched());\n }\n // Show form if some required fields are missing\n this.showCompanyDetailsForm$.next(this.contactDetailsForm.invalid);\n })\n );\n }\n\n checkPnr(): void {\n if (this.pnrForm.invalid) {\n this.validatePnrForm();\n return;\n }\n this.setLoading(true);\n trackFormState(CORPORATE_VAT_FORM_NAME, `phase1-${AnalyticsFormStatus.SEND_ATTEMPT}`, this.gtmService);\n this.formStatus = FormStatus.LOADING;\n this.pnrNotFound$.next(false);\n this.subscriptions.add(\n this.corporateService\n .getVatReceipt({\n lastName: this.pnrForm.get('lastName').value,\n pnr: this.pnrForm.get('bookingRef').value,\n ticketNumber: this.pnrForm.get('eTicket').value,\n })\n .pipe(\n take(1),\n catchError((err: unknown) => {\n this.setLoading(false);\n trackFormState(CORPORATE_VAT_FORM_NAME, `phase1-${AnalyticsFormStatus.ERROR}`, this.gtmService);\n if ((err as HttpErrorResponse).status === 404) {\n this.pnrNotFound$.next(true);\n } else {\n this.formStatus = FormStatus.ERROR;\n }\n throw err;\n })\n )\n .subscribe((result) => {\n this.setLoading(false);\n this.formStatus = FormStatus.INITIAL;\n if (result.Booking) {\n trackFormState(CORPORATE_VAT_FORM_NAME, `phase1-${AnalyticsFormStatus.SUCCESS}`, this.gtmService);\n this.validatedPnrData$.next({\n lastName: this.pnrForm.get('lastName').value,\n pnr: this.pnrForm.get('bookingRef').value,\n ticketNumber: this.pnrForm.get('eTicket').value,\n });\n } else {\n trackFormState(CORPORATE_VAT_FORM_NAME, `phase1-${AnalyticsFormStatus.ERROR}`, this.gtmService);\n this.pnrNotFound$.next(true);\n }\n })\n );\n }\n\n downloadReceipt(): void {\n if (this.contactDetailsForm.get('addCompanyDetails').value && this.contactDetailsForm.invalid) {\n this.corporateService.scrollToInvalidField(this.contactDetailsForm, this.elementRef);\n return;\n }\n trackFormState(CORPORATE_VAT_FORM_NAME, AnalyticsFormStatus.SEND_ATTEMPT, this.gtmService);\n this.setLoading(true);\n this.subscriptions.add(\n this.getPayload()\n .pipe(\n switchMap(({ search, contactDetails }) => {\n return this.corporateService.getReceiptUrl(search, contactDetails).pipe(\n take(1),\n catchError((err: unknown) => {\n this.setLoading(false);\n this.formStatus = FormStatus.ERROR;\n trackFormState(CORPORATE_VAT_FORM_NAME, AnalyticsFormStatus.ERROR, this.gtmService);\n return throwError(() => err);\n })\n );\n })\n )\n .subscribe((url) => {\n this.setLoading(false);\n this.formStatus = FormStatus.COMPLETE;\n trackFormState(CORPORATE_VAT_FORM_NAME, AnalyticsFormStatus.SUCCESS, this.gtmService);\n this.windowRef.nativeWindow.open(url, '_blank');\n })\n );\n }\n\n startOver(): void {\n this.validatedPnrData$.next(null);\n this.pnrForm.get('bookingRef').setValue(null);\n this.pnrForm.get('eTicket').setValue(null);\n }\n\n getPayload(): Observable<{ search: VatReceiptSearch; contactDetails: VatReceiptContactDetails }> {\n return this.showCompanyDetailsForm$.pipe(\n map((showForm) => {\n return {\n search: {\n lastName: this.pnrForm.get('lastName').value,\n pnr: this.pnrForm.get('bookingRef').value,\n ticketNumber: this.pnrForm.get('eTicket').value,\n },\n contactDetails: this.getContactDetailsForPayload(showForm),\n };\n })\n );\n }\n\n private getContactDetailsForPayload(showForm: boolean): VatReceiptContactDetails {\n // Return empty company details if user has left the \"Add company details to receipt\" checkbox unchecked.\n if (showForm && !this.contactDetailsForm.get('addCompanyDetails').value) {\n return {};\n }\n const countries = snapshot(this.countries$);\n const selectedCountry = countries.find((c) => c.value === this.contactDetailsForm.get('country').value);\n return {\n companyName: this.contactDetailsForm.get('companyName').value,\n companyBusinessId: this.contactDetailsForm.get('businessId').value,\n companyAddress: this.contactDetailsForm.get('address').value,\n companyPostalCode: this.contactDetailsForm.get('postalCode').value,\n companyCity: this.contactDetailsForm.get('city').value,\n companyCountry: selectedCountry.name,\n };\n }\n\n private validatePnrForm() {\n // If neither of the pnr or ticket number field is filled, show required error on both of those fields\n if (!this.pnrForm.get('bookingRef').value && !this.pnrForm.get('eTicket').value) {\n this.pnrForm.get('bookingRef').setErrors({ required: true });\n this.pnrForm.get('eTicket').setErrors({ required: true });\n }\n this.corporateService.scrollToInvalidField(this.pnrForm, this.elementRef);\n }\n\n private setLoading(loading: boolean) {\n this.formStatus = loading ? FormStatus.LOADING : FormStatus.INITIAL;\n this.loadingIcon = loading\n ? {\n name: SvgLibraryIcon.TRANSFER_LOADER,\n position: IconPosition.RIGHT,\n }\n : null;\n }\n\n private addControlListeners(): void {\n this.subscriptions.add(\n this.pnrForm.get('bookingRef').valueChanges.subscribe((val) => {\n const eTicket = this.pnrForm.get('eTicket');\n if (val && eTicket.enabled) {\n eTicket.disable();\n }\n if (!val && eTicket.disabled) {\n eTicket.enable();\n }\n })\n );\n this.subscriptions.add(\n this.pnrForm.get('eTicket').valueChanges.subscribe((val) => {\n const bookingRef = this.pnrForm.get('bookingRef');\n if (val && bookingRef.enabled) {\n bookingRef.disable();\n }\n if (!val && bookingRef.disabled) {\n bookingRef.enable();\n }\n })\n );\n }\n}\n","import { Component, ElementRef, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\n\nimport { SvgLibraryIcon } from '@finnairoyj/fcom-ui-styles/enums';\nimport { Store } from '@ngrx/store';\nimport { Observable, Subscription } from 'rxjs';\nimport { filter, switchMap, take } from 'rxjs/operators';\n\nimport { ScrollService } from '@fcom/common/services';\nimport { WindowRef } from '@fcom/core/providers';\nimport { CorporateService } from '@fcom/common/services/corporate/corporate.service';\nimport { AppState } from '@fcom/core/interfaces';\nimport { profileOrUndefinedIfNotLoggedIn } from '@fcom/core/selectors';\nimport { EMAIL_REGEX, NAME_PATTERN, unsubscribe } from '@fcom/core/utils';\nimport { Profile } from '@fcom/core-api/login';\nimport { finShare } from '@fcom/rx';\nimport { IconPosition } from '@fcom/ui-components';\n\ninterface SafDownloadFormData {\n firstName: FormControl;\n lastName: FormControl;\n company: FormControl;\n email: FormControl;\n}\n\n@Component({\n selector: 'fin-saf-download-form',\n templateUrl: './saf-download-form.component.html',\n})\nexport class SafDownloadFormComponent implements OnInit, OnDestroy {\n readonly IconPosition = IconPosition;\n readonly SvgLibraryIcon = SvgLibraryIcon;\n\n readonly PDF_URL =\n 'https://cms.finnair.com/resource/blob/3389664/51a586a8f6734aba4ca0e29ba4b10cad/The%20Quick%20Guide%20to%20SAF-%20Finnair%20May%202024.pdf';\n\n form: FormGroup;\n profile$: Observable;\n subscription = new Subscription();\n\n constructor(\n private corporateService: CorporateService,\n private scrollService: ScrollService,\n private store$: Store,\n private elementRef: ElementRef,\n private windowRef: WindowRef\n ) {}\n\n ngOnInit(): void {\n this.form = new FormGroup({\n firstName: new FormControl('', [Validators.required, Validators.pattern(NAME_PATTERN)]),\n lastName: new FormControl('', [Validators.required, Validators.pattern(NAME_PATTERN)]),\n company: new FormControl('', Validators.required),\n email: new FormControl('', [Validators.required, Validators.pattern(EMAIL_REGEX)]),\n });\n this.profile$ = this.store$.pipe(profileOrUndefinedIfNotLoggedIn(), finShare());\n this.prefillForm();\n }\n\n ngOnDestroy(): void {\n unsubscribe(this.subscription);\n }\n\n handleDownload(): void {\n this.form.markAllAsTouched();\n if (this.form.invalid) {\n this.scrollService.scrollToFirstInvalidInput(this.elementRef);\n return;\n }\n this.windowRef.nativeWindow.open(this.PDF_URL, '_blank');\n this.subscription.add(\n this.profile$\n .pipe(\n switchMap((userProfile) => {\n return this.corporateService.sendContactCaseToSalesForce(\n {\n subject: 'Lead - SAF info package download',\n message: 'For information only',\n reason: 'SAF Download',\n companyName: this.form.controls.company.value,\n email: this.form.controls.email.value,\n firstname: this.form.controls.firstName.value,\n lastname: this.form.controls.lastName.value,\n },\n userProfile\n );\n }),\n take(1)\n )\n .subscribe()\n );\n }\n\n private prefillForm(): void {\n this.subscription.add(\n this.profile$.pipe(filter(Boolean)).subscribe((userProfile) => {\n this.form.controls.firstName.setValue(userProfile.firstname);\n this.form.controls.lastName.setValue(userProfile.lastname);\n this.form.controls.email.setValue(userProfile.email);\n this.form.controls.company.setValue(userProfile.corporate?.name);\n })\n );\n }\n}\n","
\n

{{ 'SERVICE_FORMS.serviceForms.safDownloadableForm.title' | finLocalization }}

\n {{ 'SERVICE_FORMS.serviceForms.safDownloadableForm.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
\n"],"x_google_ignoreList":[]}