{"version":3,"file":"static/js/6668.4fe2e82a.chunk.js","mappings":"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","sources":["shared/badge/badge.jsx","shared/shop-button/shop-button.jsx","shared/modal/classicModal.jsx","shared/modal/merchant-contact-us-modal-content.jsx","shared/modal/itinerary-signup-modal-content.jsx","shared/modal/flight-signup-modal-content.jsx","shared/modal/modal-module.js","shared/_svgs/small/Close.js","shared/modal/modal.jsx","shared/modal/simple-error-modal.jsx","shared/utils/js/utils.js"],"sourcesContent":["import React, { Component } from \"react\"\nimport { getCustomColors } from \"../utils/js/utils\"\n// eslint-disable-line no-unused-vars\n\nimport \"./_badge.scss\"\n\nclass Badge extends Component {\n static defaultProps = {\n modifier: \"\",\n content: \"<span>Lorem</span><span>Ipsum</span><strong>Dolor</strong>\",\n backgroundColor: \"\",\n textColor: \"\",\n }\n\n render() {\n const style = getCustomColors(this.props)\n\n return (\n <div className={`badge ${this.props.modifier}`} style={style}>\n <div dangerouslySetInnerHTML={{ __html: this.props.content }} />\n </div>\n )\n }\n}\n\nexport default Badge\n","import React, { PureComponent } from \"react\"\nimport PropTypes from \"prop-types\"\nimport \"./_shop-button.scss\"\n\nclass ShopButton extends PureComponent {\n static defaultProps = {\n modifier: \"\",\n icon: \"\",\n themeClass: \"\",\n disabled: false,\n text: \"Lorem ipsum\",\n datasetBag: {},\n }\n\n static propTypes = {\n link: PropTypes.string,\n }\n\n constructor(props) {\n super(props)\n\n this.triggerHandler = this.triggerHandler.bind(this)\n }\n\n triggerHandler = (event) => {\n console.debug(\"triggerHandler\")\n\n event.preventDefault()\n if (typeof this.props.triggerHandler === \"function\") {\n this.props.triggerHandler(event)\n }\n }\n\n render() {\n const { link } = this.props\n if (link) {\n return (\n <a\n href={link}\n className={`shop-button ${this.props.modifier} ${this.props.themeClass} ${this.props.disabled ? \"is-disabled\" : \"\"}`}\n {...this.props.datasetBag}\n >\n {this.props.icon && this.props.icon}\n {this.props.text && <span>{this.props.text}</span>}\n </a>\n )\n } else {\n return (\n <button\n className={`shop-button ${this.props.modifier} ${this.props.themeClass} ${this.props.disabled ? \"is-disabled\" : \"\"}`}\n onClick={this.triggerHandler}\n {...this.props.datasetBag}\n >\n {this.props.icon && this.props.icon}\n {this.props.text && <span>{this.props.text}</span>}\n </button>\n )\n }\n }\n}\n\nexport default ShopButton\n","import React, { Component } from \"react\"\nimport ReactDOM from \"react-dom\"\nimport OutsideClickTrigger from \"../../booking/components/common/OutsideClickTrigger\"\nimport * as htmlHelper from \"../../helpers/html\"\n\nclass ClassicModal extends Component {\n constructor() {\n super()\n\n this.state = {\n showModal: false,\n }\n\n this.handleCloseClick = this.handleCloseClick.bind(this)\n }\n\n componentDidMount() {\n if (this.props.isOpen) this.setState({ showModal: true })\n }\n\n handleCloseClick() {\n this.setState({ showModal: false })\n ReactDOM.unmountComponentAtNode(this.props.elem)\n }\n\n render() {\n if (!this.state.showModal) return \"\"\n\n const { content } = this.props\n\n return (\n <div className=\"overlay overlay--modal overlay--fixed is-active\">\n <div className=\"modal modal--fat\">\n <OutsideClickTrigger onOutsideClick={this.handleCloseClick}>\n <React.Fragment>\n <button className=\"button button--icon js--close-modal\" onClick={this.handleCloseClick}>\n <span className=\"icon\">\n <svg className=\"svg-icon svg-icon--close-new\">\n <use xmlnsXlink=\"http://www.w3.org/1999/xlink\" xlinkHref=\"/dist/svg/symbols.svg#svg-close-new\">\n \n </use>\n </svg>\n </span>\n </button>\n <div className=\"modal__content__inner\">\n <div className=\"modal__top\">\n <header className=\"a--left\">\n {content.h3 ? <h3 className=\"headline-md\"> {htmlHelper.htmlStringToReactElement(content.h3)}</h3> : null}\n {content.richText ? <div className=\"rich-text\">{htmlHelper.htmlStringToReactElement(content.richText)}</div> : null}\n </header>\n </div>\n <div className=\"modal__middle\"></div>\n <div className=\"modal__bottom\"></div>\n </div>\n </React.Fragment>\n </OutsideClickTrigger>\n </div>\n </div>\n )\n }\n}\n\nexport default ClassicModal\n","import React, { Component, createRef } from \"react\"\nimport Modal from \"./modal\"\nimport * as endpoints from \"../../api/endpoints\"\nimport ReCaptcha from \"react-google-recaptcha\"\n\nexport default class MerchantContactUsModalContent extends Component {\n constructor(props) {\n super(props)\n this.recaptchaRef = createRef()\n this.state = {\n modalOpen: true,\n subject: props.title && props.text ? `${props.title} - ${props.text}` : \"\",\n feedback: \"\",\n fullName: \"\",\n email: \"\",\n status: \"\",\n validEmail: true,\n validSubject: true,\n validName: true,\n validFeedback: true,\n language: (document.body && document.body.dataset.language) || \"da\",\n ipAddress: props.ipAddress,\n recaptchaResponse: null,\n validReCaptcha: true,\n }\n }\n\n componentDidMount() {\n if (this.recaptchaRef.current) {\n this.recaptchaRef.current.execute()\n }\n }\n\n componentWillUnmount() {\n if (this.recaptchaRef.current) {\n this.recaptchaRef.current.reset()\n }\n }\n\n handleSubmit = async (event) => {\n event.preventDefault()\n\n if (!this.state.email || !this.state.subject || !this.state.feedback || !this.state.fullName || !this.state.recaptchaResponse) {\n if (!this.state.email) {\n this.setState({ validEmail: false })\n }\n if (!this.state.subject) {\n this.setState({ validSubject: false })\n }\n if (!this.state.feedback) {\n this.setState({ validFeedback: false })\n }\n if (!this.state.fullName) {\n this.setState({ validName: false })\n }\n if (!this.state.recaptchaResponse) {\n this.setState({ validReCaptcha: false })\n }\n } else {\n const { recaptchaResponse, ipAddress } = this.state\n const res = await endpoints.verifyReCaptcha({ response: recaptchaResponse, remoteip: ipAddress })\n const verified = res.data\n if (!verified) {\n return\n }\n try {\n await endpoints.merchantContact(\n this.props.merchantId,\n this.state.subject,\n this.state.feedback,\n this.state.fullName,\n this.state.email,\n this.state.language,\n )\n this.setState({\n status: this.props.successMessage ?? \"<p>Thank you, we have recieved your message. You will hear from us within 48 hours.</p>\",\n })\n } catch (error) {\n this.setState({ status: this.props.errorMessage ?? \"<p>Ooops, something happened :) Please try again later.</p>\" })\n }\n }\n }\n\n handleRecaptcha = (response) => {\n this.setState({ recaptchaResponse: response, validReCaptcha: true })\n }\n\n handleChange = (event) => {\n const { target } = event\n this.setState({ [target.name]: target.value })\n this.setState({ validEmail: true, validFeedback: true, validName: true, validSubject: true })\n }\n\n handleReVerify = () => {\n this.setState({ verificationFailed: false })\n }\n\n render() {\n return (\n <Modal\n isOpen={this.state.modalOpen}\n noScrollToTop=\"true\"\n modifier=\"modal--wide modal--fixed\"\n overlayModifier=\"ReactModal__Overlay--fixed merchant-contact-us\"\n bodyModifier=\"ReactModal__Body--open ReactModal--no-overflow\"\n >\n <div className=\"main-body contact-us-main-body\">\n <div className=\"page-title py-4 text-center\">\n <h2 className=\"contact-us-title h2-tablet-large m-0 pb-2\">{this.props.shopName}</h2>\n {!this.state.status ? <div className=\"contact-us-subtitle\" dangerouslySetInnerHTML={{ __html: this.props.message }}></div> : \"\"}\n </div>\n {!this.state.status ? (\n <form className=\"contact-us form\" name=\"contact-us\">\n <div className=\"row contact-us-name mx-0\">\n <div className=\"col-sm-12 px-0\">\n <div className=\"form-group required form__field form__field--text form__field--text--no-label is-bound is-required\">\n <input\n type=\"text\"\n name=\"subject\"\n onChange={(e) => this.handleChange(e)}\n defaultValue={this.state.subject}\n className=\"form-control required form__item\"\n placeholder={this.props.subjectLabel || \"Emne\"}\n />\n <span className={`${this.state.validSubject ? \"d-none\" : \"\"} form__notice form__notice--box is-invalid`}>\n {this.props.subjectErrorMessage || \"Indtast et emne\"}\n </span>\n </div>\n </div>\n </div>\n <div className=\"row mx-0 contact-us-comment\">\n <div className=\"col px-0\">\n <div className=\"form-group requiredform__field form__field--textarea form__field--textarea--no-label is-bound is-required \">\n <textarea\n className=\"form-control required py-1 form__item\"\n name=\"feedback\"\n onChange={(e) => this.handleChange(e)}\n rows=\"4\"\n maxLength=\"250\"\n placeholder={this.props.feedbackLabel || \"Besked\"}\n ></textarea>\n <span className={`${this.state.validFeedback ? \"d-none\" : \"\"} form__notice form__notice--box is-invalid`}>\n {this.props.feedbackErrorMessage || \"Indtast en besked\"}\n </span>\n </div>\n </div>\n </div>\n <div className=\"contact-details-title mt-1\">\n <p className=\"font-medium mb-1\">{this.props.yourDetailsLabel || \"Dine detaljer\"}</p>\n </div>\n <div className=\"row contact-us-name mx-0\">\n <div className=\"col-sm-12 px-0\">\n <div className=\"form-group required form__field form__field--text form__field--text--no-label is-bound is-required \">\n <input\n type=\"text\"\n name=\"fullName\"\n onChange={(e) => this.handleChange(e)}\n className=\"form-control required form__item\"\n placeholder={this.props.nameLabel || \"Navn\"}\n />\n <span className={`${this.state.validName ? \"d-none\" : \"\"} form__notice form__notice--box is-invalid`}>\n {this.props.nameErrorMessage || \"Indtast dit navn\"}\n </span>\n </div>\n </div>\n </div>\n <div className=\"row mx-0 contact-us-email\">\n <div className=\"col px-0\">\n <div className=\"form-group required form__field form__field--text form__field--text--no-label is-bound is-required \">\n <input\n type=\"email\"\n name=\"email\"\n onChange={(e) => this.handleChange(e)}\n pattern=\"^(([^<>()\\[\\]\\\\.,;:\\s@\\x22]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\\x22]+)*)|(\\x22.+\\x22))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|([^<>()\\[\\]\\\\.,\\x2D;:\\s@\\x22]([a-zA-Z\\x2D0-9]+\\.)+[a-zA-Z]{2,}))$\"\n className=\"form-control required required form__item\"\n placeholder={this.props.emailLabel || \"Email\"}\n />\n <span className={`${this.state.validEmail ? \"d-none\" : \"\"} form__notice form__notice--box is-invalid`}>\n {this.props.emailErrorMessage || \"Indtast din email\"}\n </span>\n </div>\n </div>\n </div>\n <div className=\"row contact-us-submit mx-0 pt-1\">\n <div className=\"form__field form__field--checkbox is-bound is-required\">\n <ReCaptcha ref={this.recaptchaRef} sitekey={this.props.reCaptchaSiteKey} onChange={this.handleRecaptcha} hl={this.state.language} />\n </div>\n <span className={`${this.state.validReCaptcha ? \"d-none\" : \"\"} form__notice form__notice--box is-invalid`}>\n {this.props.reCaptchaErrorMessage || \"Verificer\"}\n </span>\n </div>\n <br />\n <div className=\"row contact-us-submit mx-0 pt-1\">\n <div className=\"col-12 px-0 text-center\">\n <div className=\"form-group pb-5\">\n <button className=\"button button--small button--general casc-blue-dark\" onClick={(e) => this.handleSubmit(e)}>\n <span>{this.props.sumbitButtonText || \"Send\"}</span>\n </button>\n </div>\n </div>\n </div>\n </form>\n ) : (\n <span dangerouslySetInnerHTML={{ __html: this.state.status }}></span>\n )}\n </div>\n </Modal>\n )\n }\n}\n","import React, { Component } from \"react\"\nimport Modal from \"./modal\"\nimport * as endpoints from \"../../api/endpoints\"\nimport * as endpoint from \"../../booking/constants/Endpoints\"\nimport { emailValidatingRegex, hosts } from \"../itinerary/itinerary-module\"\nimport { isValidPhoneNumber } from \"react-phone-number-input\"\nimport reactStringReplace from \"react-string-replace\"\nimport * as SelectionFactoryHelper from \"../helpers/SelectionFactoryHelper\"\nimport LoginLink from \"../../booking/components/common/loginLink\"\nimport Spinner from \"../../booking/components/spinner\"\nimport SimpleErrorModal from \"./simple-error-modal\"\nimport { isMobile } from \"react-device-detect\"\nimport axios from \"axios\"\nimport { trackTravelPlanner } from \"../../helpers/tracking\"\n\nexport default class ItinerarySignupModalContent extends Component {\n constructor(props) {\n super(props)\n\n this.state = {\n modalOpen: true,\n email: \"\",\n phoneNumber: \"\",\n acceptedTerms: false,\n validEmail: true,\n validPhoneNumber: true,\n validSmsCode: true,\n validAcceptedTerms: true,\n isSuccess: false,\n verifyPhone: false,\n emailSuccess: true,\n smsSuccess: true,\n appSuccess: true,\n travelInformationSuccess: true,\n profile: props.profile,\n flightInfo: props.flightInfo,\n currentPageJson: props.currentPageJson,\n travelType: props.travelType,\n travelInformation: props.travelInformation,\n isLoggedInWithApp: false,\n isLoggedIn: false,\n isLoggedInWithPhone: false,\n emailErrorMsg: \"\",\n smsErrorMsg: \"\",\n appErrorMsg: \"\",\n travelInformationErrorMsg: \"\",\n ajaxSpinnerActive: false,\n ajaxSpinnerTransparent: false,\n appPermission: false,\n showErrorModal: false,\n phoneInputError: \"\",\n }\n }\n\n componentDidMount() {\n if (this.state.profile && this.state.profile !== {}) {\n this.setState({ isLoggedIn: true }, () => {\n this.setProfileState()\n })\n }\n }\n\n componentDidUpdate() {\n if (this.state.profile !== this.props.profile) {\n this.setState({ profile: this.props.profile }, () => {\n this.setProfileState()\n })\n }\n }\n\n setProfileState() {\n const email = this.state.profile.EmailAddress || \"\"\n const isLoggedInWithPhone =\n this.state.profile.ContactDetails &&\n this.state.profile.ContactDetails.MobilePhone &&\n this.state.profile.ContactDetails.MobilePhoneVerified === true\n const acceptedTerms = this.state.profile.ContactDetails && this.state.profile.ContactDetails.NewsletterSubscription\n const phoneNumber = (this.state.profile.ContactDetails && this.state.profile.ContactDetails.MobilePhone) || \"\"\n const isLoggedInWithApp = this.state.profile.ContactDetails && this.state.profile.ContactDetails.MobileOsToken // MobileAppGuid is null in CRM\n this.setState({\n isLoggedIn: true,\n email,\n isLoggedInWithPhone,\n acceptedTerms,\n phoneNumber,\n isLoggedInWithApp,\n })\n }\n\n showErrorModal(error) {\n this.setState({\n showErrorModal: true,\n errorData: {\n h3: error,\n richText: this.state.currentPageJson?.errorMessage,\n },\n })\n }\n\n validateEmail = (email) => {\n return emailValidatingRegex.test(String(email).toLowerCase())\n }\n\n validatePhoneNumber = (phoneNumber) => {\n const allowedCountries = this.state.currentPageJson?.smsServiceSupportedCountryCodes || [\"+45\"]\n const strippedNum = phoneNumber.replaceAll(\" \", \"\")\n const countryCode = strippedNum.substring(0, 3)\n const phoneValid = isValidPhoneNumber(phoneNumber)\n if (phoneValid) {\n if (allowedCountries.includes(countryCode)) {\n this.setState({ phoneInputError: this.state.currentPageJson?.invalidSmsLabel || \"Invalid phone number\" })\n return phoneValid\n } else {\n this.setState({\n phoneInputError: this.state.currentPageJson?.smsServiceNotSupportedText || \"Unfortunately, the SMS service is not valid for your area code\",\n })\n return false\n }\n } else {\n this.setState({ phoneInputError: this.state.currentPageJson?.invalidSmsLabel || \"Invalid phone number\" })\n return phoneValid\n }\n }\n\n handleInput(event) {\n this.setState({\n [event.target.name]: event.target.value,\n })\n this.setState({ validEmail: true })\n this.setState({ validPhoneNumber: true })\n }\n\n handleCheck(event) {\n this.setState({\n [event.target.name]: event.target.checked,\n })\n this.setState({ validAcceptedTerms: true })\n }\n\n createMarkup = (html) => {\n return { __html: html }\n }\n\n validateInputs = () => {\n let validationFailed = false\n\n // terms validation\n if (!this.state.acceptedTerms) {\n this.setState({ validAcceptedTerms: false })\n validationFailed = true\n } else {\n this.setState({ validAcceptedTerms: true })\n }\n\n // email validation\n if (!this.state.email || !this.validateEmail(this.state.email)) {\n this.setState({ validEmail: false })\n validationFailed = true\n } else {\n this.setState({ validEmail: true })\n }\n\n // phone number validation\n if (this.state.phoneNumber) {\n if (!this.validatePhoneNumber(this.state.phoneNumber)) {\n this.setState({ validPhoneNumber: false })\n validationFailed = true\n } else {\n this.setState({ validPhoneNumber: true })\n }\n }\n\n if (validationFailed) {\n return false\n }\n\n return true\n }\n\n onSubmit = async (e) => {\n e.preventDefault()\n\n if (!this.validateInputs()) {\n return\n }\n\n trackTravelPlanner(\"track-event.generic\", \"follow flight - submit\", this.props.trackingEventLabel, this.state.flightInfo.FlightId)\n this.setState({ ajaxSpinnerActive: true })\n let response = await this.subscribe().then((response) => {\n return response\n })\n this.setState({ ajaxSpinnerActive: false })\n if (response.errorMsg || !response.success) {\n this.showErrorModal(this.state.currentPageJson.emailErrorHeadline)\n } else if (this.state.phoneNumber && !this.state.isLoggedInWithPhone && !this.state.verifyPhone) {\n this.setState({ verifyPhone: true })\n } else {\n this.setState({ isSuccess: true })\n }\n }\n\n handleCodeSubmit = (e) => {\n e.preventDefault()\n if (!this.state.smsCode || this.state.smsCode.length !== 6) {\n this.setState({ validSmsCode: false })\n } else {\n trackTravelPlanner(\n \"track-event.travelplanner_follow_flight\",\n \"follow flight - validate\",\n this.props.trackingEventLabel,\n this.state.flightInfo.FlightId,\n )\n this.setState({ ajaxSpinnerActive: true })\n const url = endpoint.VERIFY_PHONE_2(hosts, this.state.smsCode, this.state.email)\n axios\n .post(url)\n .then((res) => {\n if (res && res.data && res.data.item1) {\n this.setState({ isSuccess: true })\n } else {\n this.showErrorModal(this.state.currentPageJson.smsErrorMsg)\n }\n })\n .catch((error) => {\n console.log(error)\n this.showErrorModal(this.state.currentPageJson.smsErrorMsg)\n })\n .finally(() => {\n this.setState({ ajaxSpinnerActive: false })\n })\n }\n }\n\n async subscribe() {\n let success = false\n let errorMsg = \"\"\n try {\n const res = await endpoints.subscribeToFlight(\n this.state.flightInfo?.FlightId,\n this.state.email,\n this.state.phoneNumber,\n this.state.appPermission,\n this.state.travelType,\n isMobile,\n this.state.flightInfo.language,\n )\n success = res && res.data\n } catch (error) {\n console.log(error)\n errorMsg = error.message\n }\n return { success: success, errorMsg: errorMsg }\n }\n\n async onEmailSubmit() {\n let emailSuccess = false\n let emailErrorMsg = \"\"\n try {\n const res = await endpoints.subscribeToFlightByEmail(this.state.flightInfo?.FlightId, this.state.email, this.state.travelType, isMobile)\n emailSuccess = res && res.data\n } catch (error) {\n console.log(error)\n emailErrorMsg = error.message\n }\n return { emailSuccess: emailSuccess, emailErrorMsg: emailErrorMsg }\n }\n\n async onAppSubmit() {\n let appSuccess = false\n let appErrorMsg = \"\"\n try {\n const res = await endpoints.subscribeToFlightByApp(this.state.flightInfo?.FlightId, this.state.travelType, isMobile)\n appSuccess = res && res.data\n } catch (error) {\n console.log(error)\n appErrorMsg = error.message\n }\n return { appSuccess: appSuccess, appErrorMsg: appErrorMsg }\n }\n\n async onSmsSubmit() {\n var smsSuccess = false\n var smsErrorMsg = \"\"\n try {\n const res = await endpoints.subscribeToFlightBySms(this.state.flightInfo?.FlightId, this.state.phoneNumber, this.state.travelType, isMobile)\n smsSuccess = res && res.data\n } catch (error) {\n console.log(error)\n smsErrorMsg = error.message\n }\n return { smsSuccess: smsSuccess, smsErrorMsg: smsErrorMsg }\n }\n\n travelInformationSignup = async () => {\n let travelInformationSuccess = false\n let travelInformationErrorMsg = \"\"\n let departingFlightId = this.state.flightInfo.Direction === \"D\" ? this.state.flightInfo.FlightId : \"\"\n let arrivingFlightId = this.state.flightInfo.Direction === \"A\" ? this.state.flightInfo.FlightId : \"\"\n const data = {\n departingFlightId: departingFlightId,\n arrivingFlightId: arrivingFlightId,\n email: this.state.email,\n phone: this.state.phoneNumber,\n language: this.state.flightInfo?.language,\n hasCheckinLuggage: this.state.travelInformation.twl,\n travelsWithChildren: this.state.travelInformation.twc,\n transportToAirport: this.state.travelInformation.tf,\n travelType: this.state.travelType,\n isMobileRegistration: isMobile,\n }\n try {\n const res = await endpoints.subscribeToTravelGuide(data)\n travelInformationSuccess = res && res.data\n return { travelInformationSuccess: travelInformationSuccess, travelInformationErrorMsg: travelInformationErrorMsg }\n } catch (error) {\n console.log(error)\n travelInformationErrorMsg = error.message\n return { travelInformationSuccess: travelInformationSuccess, travelInformationErrorMsg: travelInformationErrorMsg }\n }\n }\n\n handleSubmitClick(e) {\n this.onSubmit(e)\n }\n\n objectIsNotEmpty = (obj) => {\n return obj !== null && obj !== undefined && obj !== {} && Object.keys(obj).length > 0\n }\n\n render() {\n const title = this.state.isLoggedInWithPhone\n ? this.state.currentPageJson?.titleLoggedInWithPhone\n : this.state.isLoggedIn\n ? this.state.currentPageJson?.titleLoggedInNoPhone\n : this.state.currentPageJson?.titleNotLoggedIn\n const subTitle = this.state.isLoggedInWithPhone\n ? this.state.currentPageJson?.subTitleLoggedInWithPhone\n : this.state.isLoggedIn\n ? this.state.currentPageJson?.subTitleLoggedInNoPhone\n : this.state.currentPageJson?.subTitleNotLoggedIn\n\n const confirmButtonColor = SelectionFactoryHelper.getFromSelectionFactory(this.state.currentPageJson?.confirmButtonColor)\n const flightInformationBoxColor = SelectionFactoryHelper.getFromSelectionFactory(this.state.currentPageJson?.flightInformationBoxColor)\n\n var loginLink =\n this.state.currentPageJson?.alreadyUser &&\n reactStringReplace(this.state.currentPageJson?.alreadyUser, /\\{([^}]+)\\}/g, (match, i) => (\n <LoginLink\n key={i}\n linkClassName={\"follow-flight-login-link\"}\n loginurl={endpoint.ACCOUNT_LOGIN(hosts, this.state.flightInfo?.language)}\n linkText={match.replace(/\\{|\\}/gi, \"\")}\n />\n ))\n\n const permissionInput = (\n <div className=\"departure-info__essentials__acceptcheck\">\n <div className=\"form__section form__section--short\">\n <div className=\"form__field form__field--checkbox is-bound is-required\">\n <label className=\"form__label\">\n <input\n className=\"form__item signup-checkbox \"\n name=\"acceptedTerms\"\n id=\"acceptedTerms\"\n type=\"checkbox\"\n checked={this.state.acceptedTerms}\n onChange={(e) => this.handleCheck(e)}\n />\n <span className=\"form__label__text\">\n <h5>{this.state.currentPageJson?.termsLabel}</h5>\n <span dangerouslySetInnerHTML={this.createMarkup(this.state.currentPageJson?.terms)}></span>\n </span>\n </label>\n </div>\n <span className={`${this.state.validAcceptedTerms ? \"d-none\" : \"\"} form__notice form__notice--box is-invalid`}>\n {this.state.currentPageJson?.invalidAcceptTerms}\n </span>\n </div>\n </div>\n )\n\n if (this.state.showErrorModal) {\n return <SimpleErrorModal errorData={this.state.errorData} modalOpen={this.state.modalOpen} />\n }\n\n if (this.state.isSuccess) {\n return (\n <Modal\n isOpen={this.state.modalOpen}\n noScrollToTop=\"true\"\n modifier=\"modal--wide modal--fixed\"\n overlayModifier=\"ReactModal__Overlay--fixed\"\n bodyModifier=\"ReactModal__Body--open ReactModal--no-overflow\"\n >\n <div className=\"departure-info-modal\">\n <h1>{this.state.currentPageJson?.thankYouTitle}</h1>\n <div className=\"grid\">\n <div className=\"grid-item col--12 col-sm--12\">\n <div className=\"departure-info__essentials__standard-info\">\n <div className=\"rich-text\">\n {`${\n this.state.smsCode\n ? this.state.currentPageJson?.thankYouSmsConfirmationText?.replace(\"{phone}\", this.state.phoneNumber) ||\n `Du er tilmeldt flyinformationer på ${this.state.phoneNumber}`\n : this.state.currentPageJson?.thankYouEmailConfirmationText?.replace(\"{email}\", this.state.email) ||\n `Du er tilmeldt flyinformationer på ${this.state.email}`\n }`}\n </div>\n </div>\n <div className={`infobox ${flightInformationBoxColor ? flightInformationBoxColor : \"\"}`}>\n {`${this.state.flightInfo?.Flight} - ${isMobile ? this.state.flightInfo?.CarrierNameMobile : this.state.flightInfo?.CarrierName}`}\n <br />\n {`${this.state.flightInfo?.DestinationName.split(\"-\")[0]}`}\n </div>\n </div>\n </div>\n <div className=\"departure-info__essentials__dualbuttons\">\n <div className=\"textbuttoncontainer\">\n <div className=\"cta-button\">\n <a className={`button button--small button--general casc-blue-dark`} onClick={() => this.setState({ modalOpen: false })}>\n <span className=\"text\">{this.state.currentPageJson?.thankYouCloseText}</span>\n </a>\n </div>\n </div>\n </div>\n </div>\n </Modal>\n )\n }\n\n if (this.state.verifyPhone) {\n return (\n <Modal\n isOpen={this.state.modalOpen}\n noScrollToTop=\"true\"\n modifier=\"modal--narrow modal--fixed\"\n overlayModifier=\"ReactModal__Overlay--fixed\"\n bodyModifier=\"ReactModal__Body--open ReactModal--no-overflow\"\n >\n <Spinner isActive={this.state.ajaxSpinnerActive} isTransparent={this.state.ajaxSpinnerTransparent} />\n <div className=\"departure-info-modal\">\n <h1>{this.state.currentPageJson?.titleVerifyPhone}</h1>\n <div className={`infobox ${flightInformationBoxColor ? flightInformationBoxColor : \"\"}`}>\n {`${this.state.flightInfo?.Flight} - ${isMobile ? this.state.flightInfo?.CarrierNameMobile : this.state.flightInfo?.CarrierName}`}\n <br />\n {`${this.state.flightInfo?.DestinationName.split(\"-\")[0]}`}\n </div>\n <div className=\"departure-info__essentials__standard-info\">\n <div className=\"rich-text\" dangerouslySetInnerHTML={this.createMarkup(this.state.currentPageJson?.subTitleVerifyPhone)}></div>\n <form className=\"grid-item col--12 col-lg--6 form\" onSubmit={(e) => this.handleCodeSubmit(e)}>\n <div className=\"form__field form__field--text form__field--text--no-label is-bound\">\n <input\n className=\"form__item signup-email\"\n name=\"smsCode\"\n type=\"number\"\n value={this.state.smsCode}\n placeholder={this.state.currentPageJson?.smsCodePlaceholder || \"SMS kode\"}\n onChange={(e) => this.handleInput(e)}\n />\n <span className={`${this.state.validSmsCode ? \"d-none\" : \"\"} form__notice form__notice--box is-invalid`}>\n {this.state.smsCodeInputError}\n </span>\n </div>\n </form>\n </div>\n <div className=\"departure-info__essentials__dualbuttons\">\n <div className=\"textbuttoncontainer\">\n <div className=\"cta-button\">\n <a className={`button button--small button--general ${confirmButtonColor}`} onClick={(e) => this.handleCodeSubmit(e)}>\n <span className=\"text\">{this.state.currentPageJson?.confirmButtonText}</span>\n </a>\n </div>\n <div className=\"back-button\">\n <a className=\"cancellink pointer\" onClick={() => this.setState({ modalOpen: false })}>\n <span className=\"text\">{this.state.currentPageJson.cancelButtonText || \"Annuller\"}</span>\n </a>\n </div>\n </div>\n </div>\n </div>\n </Modal>\n )\n }\n\n return (\n <Modal\n isOpen={this.state.modalOpen}\n noScrollToTop=\"true\"\n modifier=\"modal--narrow modal--fixed\"\n overlayModifier=\"ReactModal__Overlay--fixed\"\n bodyModifier=\"ReactModal__Body--open ReactModal--no-overflow\"\n >\n <Spinner isActive={this.state.ajaxSpinnerActive} isTransparent={this.state.ajaxSpinnerTransparent} />\n <div className=\"departure-info-modal\">\n <h1>{title}</h1>\n <div className={`infobox ${flightInformationBoxColor ? flightInformationBoxColor : \"\"}`}>\n {`${this.state.flightInfo?.Flight} - ${isMobile ? this.state.flightInfo?.CarrierNameMobile : this.state.flightInfo?.CarrierName}`}\n <br />\n {`${this.state.flightInfo?.DestinationName.split(\"-\")[0]}`}\n </div>\n <div className=\"departure-info__essentials__standard-info\">\n <div className=\"rich-text\" dangerouslySetInnerHTML={this.createMarkup(subTitle)}></div>\n <form className=\"grid-item col--12 col-lg--6 form\" onSubmit={(e) => this.handleSubmitClick(e)}>\n <div\n className={`form__field form__field--text form__field--text--no-label is-bound is-required ${\n this.state.validEmail ? \"\" : \"is-invalid\"\n }`}\n >\n <input\n className=\"form__item signup-email\"\n name=\"email\"\n type=\"email\"\n placeholder={this.state.currentPageJson?.emailPlaceholder || \"email adress\"}\n value={this.state.email}\n onChange={(e) => this.handleInput(e)}\n />\n <span className={`${this.state.validEmail ? \"d-none\" : \"\"} form__notice form__notice--box is-invalid`}>\n {this.state.currentPageJson?.invalidEmailLabel}\n </span>\n </div>\n <div className=\"form__field form__field--text form__field--text--no-label is-bound\">\n <input\n className=\"form__item signup-email\"\n name=\"phoneNumber\"\n type=\"tel\"\n value={this.state.phoneNumber}\n placeholder={this.state.currentPageJson?.smsPlaceholder || \"Phone number\"}\n onChange={(e) => this.handleInput(e)}\n />\n <span className={`${this.state.validPhoneNumber ? \"d-none\" : \"\"} form__notice form__notice--box is-invalid`}>\n {this.state.phoneInputError}\n </span>\n </div>\n {this.state.isLoggedInWithApp ? (\n <React.Fragment>\n <div className=\"form__field form__field--checkbox is-bound\">\n <label className=\"form__label\">\n <input\n className=\"form__item signup-checkbox \"\n name=\"appPermission\"\n id=\"appPermission\"\n type=\"checkbox\"\n onChange={(e) => this.handleCheck(e)}\n />\n <span className=\"form__label__text large-text\">\n <p>{this.state.currentPageJson?.appLabel}</p>\n </span>\n </label>\n </div>\n <div className=\"rich-text\">\n <p>{this.state.currentPageJson?.appText}</p>\n </div>\n </React.Fragment>\n ) : (\n \"\"\n )}\n {!this.state.isLoggedIn ? (\n <div className=\"login-text\">\n <p>{loginLink}</p>\n </div>\n ) : (\n \"\"\n )}\n </form>\n </div>\n {permissionInput}\n <div className=\"departure-info__essentials__dualbuttons\">\n <div className=\"textbuttoncontainer\">\n <div className=\"cta-button\">\n <a className={`button button--small button--general ${confirmButtonColor}`} onClick={(e) => this.handleSubmitClick(e)}>\n <span className=\"text\">{this.state.currentPageJson?.confirmButtonText}</span>\n </a>\n </div>\n <div className=\"back-button\">\n <a className=\"cancellink pointer\" onClick={() => this.setState({ modalOpen: false })}>\n <span className=\"text\">{this.state.currentPageJson.cancelButtonText || \"Annuller\"}</span>\n </a>\n </div>\n </div>\n </div>\n </div>\n </Modal>\n )\n }\n}\n","import React, { Component } from \"react\"\nimport Modal from \"./modal\"\nimport * as endpoints from \"../../api/endpoints\"\nimport * as endpoint from \"../../booking/constants/Endpoints\"\nimport { emailValidatingRegex, hosts } from \"../itinerary/itinerary-module\"\nimport { isValidPhoneNumber } from \"react-phone-number-input\"\nimport reactStringReplace from \"react-string-replace\"\nimport * as SelectionFactoryHelper from \"../helpers/SelectionFactoryHelper\"\nimport LoginLink from \"../../booking/components/common/loginLink\"\nimport Spinner from \"../../booking/components/spinner\"\nimport SimpleErrorModal from \"./simple-error-modal\"\nimport { isMobile } from \"react-device-detect\"\nimport axios from \"axios\"\nimport { trackTravelPlanner, trackParkingFlightSignup, trackProfileNewsletterSignup } from \"../../helpers/tracking\"\n\nexport default class FlightSignupModalContent extends Component {\n constructor(props) {\n super(props)\n\n this.state = {\n modalOpen: true,\n email: \"\",\n phoneNumber: \"\",\n acceptedTerms: false,\n validEmail: true,\n validPhoneNumber: true,\n validSmsCode: true,\n validAcceptedTerms: true,\n isSuccess: false,\n verifyPhone: false,\n emailSuccess: true,\n smsSuccess: true,\n appSuccess: true,\n travelInformationSuccess: true,\n profile: props.profile,\n flightInfo: props.flightInfo,\n departureFlight: props.departureFlight,\n arrivalFlight: props.arrivalFlight,\n textKeys: props.textKeys,\n travelType: props.travelType,\n travelInformation: props.travelInformation,\n isLoggedInWithApp: false,\n isLoggedIn: false,\n isLoggedInWithPhone: false,\n emailErrorMsg: \"\",\n smsErrorMsg: \"\",\n appErrorMsg: \"\",\n travelInformationErrorMsg: \"\",\n ajaxSpinnerActive: false,\n ajaxSpinnerTransparent: false,\n appPermission: false,\n showErrorModal: false,\n phoneInputError: \"\",\n noInfo: false,\n bothFilled: false,\n }\n }\n\n componentDidMount() {\n if (this.state.profile && this.state.profile !== {}) {\n this.setState({ isLoggedIn: true }, () => {\n this.setProfileState()\n })\n }\n }\n\n componentDidUpdate() {\n if (this.state.profile !== this.props.profile) {\n this.setState({ profile: this.props.profile }, () => {\n this.setProfileState()\n })\n }\n }\n\n setProfileState() {\n let email = \"\"\n let phoneNumber = \"\"\n let acceptedTerms = false\n if (this.props.source === \"itinerary\") {\n email = this.state.profile.EmailAddress || \"\"\n phoneNumber = (this.state.profile.ContactDetails && this.state.profile.ContactDetails.MobilePhone) || \"\"\n acceptedTerms = this.state.profile.ContactDetails && this.state.profile.ContactDetails.NewsletterSubscription\n }\n const isLoggedInWithPhone =\n this.state.profile.ContactDetails &&\n this.state.profile.ContactDetails.MobilePhone &&\n this.state.profile.ContactDetails.MobilePhoneVerified === true\n const isLoggedInWithApp = this.state.profile.ContactDetails && this.state.profile.ContactDetails.MobileOsToken // MobileAppGuid is null in CRM\n this.setState({\n isLoggedIn: true,\n email,\n isLoggedInWithPhone,\n acceptedTerms,\n phoneNumber,\n isLoggedInWithApp,\n })\n }\n\n showErrorModal(error) {\n this.setState({\n showErrorModal: true,\n errorData: {\n h3: error,\n richText: this.state.textKeys?.errorMessage,\n },\n })\n }\n\n validateEmail = (email) => {\n return emailValidatingRegex.test(String(email).toLowerCase())\n }\n\n validatePhoneNumber = (phoneNumber) => {\n const allowedCountries = this.state.textKeys?.smsServiceSupportedCountryCodes || [\"+45\"]\n const strippedNum = phoneNumber.replaceAll(\" \", \"\")\n const countryCode = strippedNum.substring(0, 3)\n const phoneValid = isValidPhoneNumber(phoneNumber)\n if (phoneValid) {\n if (allowedCountries.includes(countryCode)) {\n this.setState({ phoneInputError: this.state.textKeys?.invalidSmsLabel || \"Invalid phone number\" })\n return phoneValid\n } else {\n this.setState({\n phoneInputError: this.state.textKeys?.smsServiceNotSupportedText || \"Unfortunately, the SMS service is not valid for your area code\",\n })\n return false\n }\n } else {\n this.setState({ phoneInputError: this.state.textKeys?.invalidSmsLabel || \"Invalid phone number\" })\n return phoneValid\n }\n }\n\n handleInput(event) {\n this.setState({\n [event.target.name]: event.target.value,\n })\n this.setState({ validEmail: true, validPhoneNumber: true, noInfo: false, bothFilled: false })\n }\n\n handleCheck(event) {\n this.setState({\n [event.target.name]: event.target.checked,\n })\n this.setState({ validAcceptedTerms: true })\n }\n\n handleTerms(value) {\n this.setState({ acceptedTerms: value, validAcceptedTerms: true })\n }\n\n createMarkup = (html) => {\n return { __html: html }\n }\n\n validateInputs = () => {\n let validationFailed = false\n\n // terms validation\n if (!this.state.acceptedTerms) {\n this.setState({ validAcceptedTerms: false })\n validationFailed = true\n } else {\n this.setState({ validAcceptedTerms: true })\n }\n\n // email validation\n if (!this.state.email || !this.validateEmail(this.state.email)) {\n this.setState({ validEmail: false })\n validationFailed = true\n } else {\n this.setState({ validEmail: true })\n }\n\n // phone number validation\n if (this.state.phoneNumber) {\n if (!this.validatePhoneNumber(this.state.phoneNumber)) {\n this.setState({ validPhoneNumber: false })\n validationFailed = true\n } else {\n this.setState({ validPhoneNumber: true })\n }\n }\n\n if (validationFailed) {\n return false\n }\n\n return true\n }\n\n validateInputsParking = () => {\n let validationFailed = false\n\n if (!this.state.email && !this.state.phoneNumber) {\n this.setState({ noInfo: true })\n return false\n }\n\n if (this.state.email && this.state.phoneNumber) {\n this.setState({ bothFilled: true })\n return false\n }\n\n // email validation\n if (this.state.email) {\n if (!this.validateEmail(this.state.email)) {\n this.setState({ validEmail: false })\n validationFailed = true\n } else {\n this.setState({ validEmail: true })\n }\n }\n\n // phone number validation\n if (this.state.phoneNumber) {\n if (!this.validatePhoneNumber(this.state.phoneNumber)) {\n this.setState({ validPhoneNumber: false })\n validationFailed = true\n } else {\n this.setState({ validPhoneNumber: true })\n }\n }\n\n if (validationFailed) {\n return false\n }\n\n return true\n }\n\n onSubmit = async (e) => {\n e.preventDefault()\n let response\n switch (this.props.source) {\n case \"parking\":\n if (!this.validateInputsParking()) {\n return\n }\n trackParkingFlightSignup(\n \"track-event.generic\",\n \"follow flight - submit\",\n this.props.trackingEventLabel,\n this.state.departureFlight,\n this.state.arrivalFlight,\n )\n this.setState({ ajaxSpinnerActive: true })\n if (this.state.departureFlight && this.state.arrivalFlight) {\n response = await this.subscribeToFlights(\"Parking\").then((response) => {\n return response\n })\n } else {\n let flightId = \"\"\n if (this.state.departureFlight) flightId = this.state.departureFlight.FlightId\n else if (this.state.arrivalFlight) flightId = this.state.departureFlight.FlightId\n response = await this.subscribe(flightId, \"Parking\").then((response) => {\n return response\n })\n }\n break\n case \"itinerary\":\n if (!this.validateInputs()) {\n return\n }\n trackTravelPlanner(\"track-event.generic\", \"follow flight - submit\", this.props.trackingEventLabel, this.state.flightInfo.FlightId)\n this.setState({ ajaxSpinnerActive: true })\n response = await this.subscribe(this.state.flightInfo?.FlightId, \"Travel Planner\").then((response) => {\n return response\n })\n break\n default:\n return\n }\n\n this.setState({ ajaxSpinnerActive: false })\n if (response.errorMsg || !response.success) {\n this.showErrorModal(this.state.textKeys.emailErrorHeadline)\n } else if (this.state.phoneNumber && !this.state.isLoggedInWithPhone && !this.state.verifyPhone) {\n this.setState({ verifyPhone: true })\n } else {\n this.setState({ isSuccess: true }, () => {\n // permission tracking\n if (this.props.source === \"parking\" && this.state.acceptedTerms) {\n trackProfileNewsletterSignup(\"newsletter\", \"parking purchase - follow flight\")\n }\n })\n }\n }\n\n handleCodeSubmit = (e) => {\n e.preventDefault()\n if (!this.state.smsCode || this.state.smsCode.length !== 6) {\n this.setState({ validSmsCode: false })\n } else {\n switch (this.props.source) {\n case \"parking\":\n trackParkingFlightSignup(\n \"track-event.parking_follow_flight\",\n \"follow flight - validate\",\n this.props.trackingEventLabel,\n this.state.departureFlight,\n this.state.arrivalFlight,\n )\n break\n case \"itinerary\":\n trackTravelPlanner(\n \"track-event.travelplanner_follow_flight\",\n \"follow flight - validate\",\n this.props.trackingEventLabel,\n this.state.flightInfo.FlightId,\n )\n break\n default:\n break\n }\n this.setState({ ajaxSpinnerActive: true })\n const url = endpoint.VERIFY_PHONE_3(hosts)\n const data = { EmailAddress: this.state.email, PhoneNumber: this.state.phoneNumber, ActivationCode: this.state.smsCode }\n axios\n .post(url, data)\n .then((res) => {\n if (res && res.data && res.data.item1) {\n this.setState({ isSuccess: true }, () => {\n // permission tracking\n if (this.props.source === \"parking\" && this.state.acceptedTerms) {\n trackProfileNewsletterSignup(\"newsletter\", \"parking purchase - follow flight\")\n }\n })\n } else {\n this.showErrorModal(this.state.textKeys.smsErrorMsg)\n }\n })\n .catch((error) => {\n console.log(error)\n this.showErrorModal(this.state.textKeys.smsErrorMsg)\n })\n .finally(() => {\n this.setState({ ajaxSpinnerActive: false })\n })\n }\n }\n\n async subscribe(flightId, registrationSource) {\n let success = false\n let errorMsg = \"\"\n try {\n const res = await endpoints.subscribeToFlight(\n flightId,\n this.state.email,\n this.state.phoneNumber,\n this.state.appPermission,\n this.state.travelType,\n isMobile,\n this.props.language,\n this.state.acceptedTerms,\n registrationSource,\n )\n success = res && res.data\n } catch (error) {\n console.log(error)\n errorMsg = error.message\n }\n return { success: success, errorMsg: errorMsg }\n }\n\n async subscribeToFlights(registrationSource) {\n let success = false\n let errorMsg = \"\"\n\n const data = {\n departingFlightId: this.state.departureFlight.FlightId,\n arrivingFlightId: this.state.arrivalFlight.FlightId,\n followDepartingFlightSms: this.state.phoneNumber ? true : false,\n followDepartingFlightMail: this.state.email ? true : false,\n followArrivingFlightSms: this.state.phoneNumber ? true : false,\n followArrivingFlightMail: this.state.email ? true : false,\n email: this.state.email,\n phone: this.state.phoneNumber,\n language: this.props.language,\n isMobileRegistration: isMobile,\n newsletterSubscription: this.state.acceptedTerms,\n registrationSource: registrationSource,\n appRegistration: this.state.appPermission,\n hasCheckinLuggage: null,\n travelsWithChildren: null,\n transportToAirport: null,\n travelPurpose: null,\n travelType: null,\n }\n try {\n const res = await endpoints.subscribeToTravelGuide(data)\n success = res && res.data\n } catch (error) {\n console.log(error)\n errorMsg = error.message\n }\n return { success: success, errorMsg: errorMsg }\n }\n\n handleSubmitClick(e) {\n this.onSubmit(e)\n }\n\n getSuccessMessage = () => {\n const { appPermission, phoneNumber, smsCode, email, textKeys, isLoggedIn } = this.state\n if (isLoggedIn) {\n if (appPermission) return textKeys?.thankYouAppConfirmationText || `Du vil modtage alle flyinformationer i din app`\n if (phoneNumber || smsCode)\n return textKeys?.thankYouSmsConfirmationText?.replace(\"{phone}\", phoneNumber) || `Du er tilmeldt flyinformationer på ${phoneNumber}`\n if (email) return textKeys?.thankYouEmailConfirmationText?.replace(\"{email}\", email) || `Du er tilmeldt flyinformationer på ${email}`\n }\n if (smsCode) return textKeys?.thankYouSmsConfirmationText?.replace(\"{phone}\", phoneNumber) || `Du er tilmeldt flyinformationer på ${phoneNumber}`\n else return textKeys?.thankYouEmailConfirmationText?.replace(\"{email}\", email) || `Du er tilmeldt flyinformationer på ${email}`\n }\n\n render() {\n const confirmButtonColor = SelectionFactoryHelper.getFromSelectionFactory(this.state.textKeys?.confirmButtonColor)\n const flightInformationBoxColor = SelectionFactoryHelper.getFromSelectionFactory(this.state.textKeys?.flightInformationBoxColor)\n\n var loginLink =\n this.state.textKeys?.alreadyUser &&\n reactStringReplace(this.state.textKeys?.alreadyUser, /\\{([^}]+)\\}/g, (match, i) => (\n <LoginLink\n key={i}\n linkClassName={\"follow-flight-login-link\"}\n loginurl={endpoint.ACCOUNT_LOGIN(hosts, this.state.flightInfo?.language)}\n linkText={match.replace(/\\{|\\}/gi, \"\")}\n />\n ))\n\n const permissionInput = (\n <div className=\"departure-info__essentials__acceptcheck\">\n <div className=\"form__section form__section--short\">\n <div className=\"form__field form__field--checkbox is-bound is-required\">\n <label className=\"form__label\">\n <input\n className=\"form__item signup-checkbox \"\n name=\"acceptedTerms\"\n id=\"acceptedTerms\"\n type=\"checkbox\"\n checked={this.state.acceptedTerms}\n onChange={(e) => this.handleCheck(e)}\n />\n <span className=\"form__label__text\">\n <h5>{this.state.textKeys?.termsLabel}</h5>\n <span dangerouslySetInnerHTML={this.createMarkup(this.state.textKeys?.terms)}></span>\n </span>\n </label>\n </div>\n <span className={`${this.state.validAcceptedTerms ? \"d-none\" : \"\"} form__notice form__notice--box is-invalid`}>\n {this.state.textKeys?.invalidAcceptTerms}\n </span>\n </div>\n </div>\n )\n\n const permissionInput2 = (\n <div className=\"departure-info__essentials__acceptcheck\">\n <div className=\"form__section form__section--short\">\n <h5>{this.state.textKeys?.termsLabel}</h5>\n <div\n style={{ display: \"flex\", alignItems: \"flex-start\", justifyContent: \"space-between\" }}\n className=\"form__field form__field--checkbox is-bound\"\n >\n <div style={{ display: \"flex\", flexDirection: \"column\", width: \"25%\" }} className=\"term-boxes\">\n <label className=\"form__label\" htmlFor=\"acceptedTermsYes\">\n <input\n className=\"form__item signup-checkbox \"\n readOnly\n name=\"acceptedTermsYes\"\n id=\"acceptedTermsYes\"\n type=\"checkbox\"\n checked={this.state.acceptedTerms}\n onClick={() => this.handleTerms(true)}\n />\n <span className=\"form__label__text\">\n <h5>{this.state.textKeys?.termsYes}</h5>\n </span>\n </label>\n <label className=\"form__label\" htmlFor=\"acceptedTermsNo\">\n <input\n className=\"form__item signup-checkbox \"\n readOnly\n name=\"acceptedTermsNo\"\n id=\"acceptedTermsNo\"\n type=\"checkbox\"\n checked={!this.state.acceptedTerms}\n onClick={() => this.handleTerms(false)}\n />\n <span className=\"form__label__text\">\n <h5>{this.state.textKeys?.termsNo}</h5>\n </span>\n </label>\n </div>\n <span style={{ padding: \"0 10px 0 0\", width: \"80%\" }} className=\"form__label__text\">\n <span dangerouslySetInnerHTML={this.createMarkup(this.state.textKeys?.terms)}></span>\n </span>\n </div>\n </div>\n </div>\n )\n\n const parkingFlights = (\n <div className={`infobox ${flightInformationBoxColor ? flightInformationBoxColor : \"\"}`}>\n {this.state.departureFlight ? (\n <>\n <span style={{ textTransform: \"uppercase\" }}>{this.state.textKeys.departingTripLabel}:</span>\n <br />\n {`${this.state.departureFlight?.Iata} - ${isMobile ? this.state.departureFlight?.AirlineMobile : this.state.departureFlight?.Airline}`}\n <br />\n {`${this.state.departureFlight?.DestinationName.split(\"-\")[0]}`}\n <br />\n </>\n ) : (\n \"\"\n )}\n {this.state.arrivalFlight ? (\n <>\n <br />\n <span style={{ textTransform: \"uppercase\" }}>{this.state.textKeys.homeTripLabel}:</span>\n <br />\n {`${this.state.arrivalFlight?.Iata} - ${isMobile ? this.state.arrivalFlight?.AirlineMobile : this.state.arrivalFlight?.Airline}`}\n <br />\n {`${this.state.arrivalFlight?.DestinationName.split(\"-\")[0]}`}\n <br />\n </>\n ) : (\n \"\"\n )}\n </div>\n )\n\n const itiniraryFlight = (\n <div className={`infobox ${flightInformationBoxColor ? flightInformationBoxColor : \"\"}`}>\n {`${this.state.flightInfo?.Flight} - ${isMobile ? this.state.flightInfo?.CarrierNameMobile : this.state.flightInfo?.CarrierName}`}\n <br />\n {`${this.state.flightInfo?.DestinationName.split(\"-\")[0]}`}\n </div>\n )\n\n let title = \"\"\n let subTitle = \"\"\n let permission = \"\"\n let flights = \"\"\n\n switch (this.props.source) {\n case \"parking\":\n permission = permissionInput2\n title = this.state.isLoggedIn ? this.state.textKeys?.titleLoggedIn : this.state.textKeys?.titleNotLoggedIn\n subTitle = this.state.isLoggedIn ? this.state.textKeys?.subTitleLoggedIn : \"\"\n flights = parkingFlights\n break\n case \"itinerary\":\n permission = permissionInput\n title = this.state.isLoggedInWithPhone\n ? this.state.textKeys?.titleLoggedInWithPhone\n : this.state.isLoggedIn\n ? this.state.textKeys?.titleLoggedInNoPhone\n : this.state.textKeys?.titleNotLoggedIn\n subTitle = this.state.isLoggedInWithPhone\n ? this.state.textKeys?.subTitleLoggedInWithPhone\n : this.state.isLoggedIn\n ? this.state.textKeys?.subTitleLoggedInNoPhone\n : this.state.textKeys?.subTitleNotLoggedIn\n flights = itiniraryFlight\n break\n default:\n break\n }\n\n if (this.state.showErrorModal) {\n return <SimpleErrorModal errorData={this.state.errorData} modalOpen={this.state.modalOpen} />\n }\n\n if (this.state.isSuccess) {\n return (\n <Modal\n isOpen={this.state.modalOpen}\n noScrollToTop=\"true\"\n modifier=\"modal--wide modal--fixed\"\n overlayModifier=\"ReactModal__Overlay--fixed\"\n bodyModifier=\"ReactModal__Body--open ReactModal--no-overflow\"\n >\n <div className=\"departure-info-modal\">\n <h1>{this.state.textKeys?.thankYouTitle}</h1>\n <div className=\"grid\">\n <div className=\"grid-item col--12 col-sm--12\">\n <div className=\"departure-info__essentials__standard-info\">\n <div className=\"rich-text\">{this.getSuccessMessage()}</div>\n </div>\n {flights}\n </div>\n </div>\n <div className=\"departure-info__essentials__dualbuttons\">\n <div className=\"textbuttoncontainer\">\n <div className=\"cta-button\">\n <a className={`button button--small button--general casc-blue-dark`} onClick={() => this.setState({ modalOpen: false })}>\n <span className=\"text\">{this.state.textKeys?.thankYouCloseText}</span>\n </a>\n </div>\n </div>\n </div>\n </div>\n </Modal>\n )\n }\n\n if (this.state.verifyPhone) {\n return (\n <Modal\n isOpen={this.state.modalOpen}\n noScrollToTop=\"true\"\n modifier=\"modal--narrow modal--fixed\"\n overlayModifier=\"ReactModal__Overlay--fixed\"\n bodyModifier=\"ReactModal__Body--open ReactModal--no-overflow\"\n >\n <Spinner isActive={this.state.ajaxSpinnerActive} isTransparent={this.state.ajaxSpinnerTransparent} />\n <div className=\"departure-info-modal\">\n <h1>{this.state.textKeys?.titleVerifyPhone}</h1>\n {flights}\n <div className=\"departure-info__essentials__standard-info\">\n <div className=\"rich-text\" dangerouslySetInnerHTML={this.createMarkup(this.state.textKeys?.subTitleVerifyPhone)}></div>\n <form className=\"grid-item col--12 col-lg--6 form\" onSubmit={(e) => this.handleCodeSubmit(e)}>\n <div className=\"form__field form__field--text form__field--text--no-label is-bound\">\n <input\n className=\"form__item signup-email\"\n name=\"smsCode\"\n type=\"number\"\n value={this.state.smsCode}\n placeholder={this.state.textKeys?.smsCodePlaceholder || \"SMS kode\"}\n onChange={(e) => this.handleInput(e)}\n />\n <span className={`${this.state.validSmsCode ? \"d-none\" : \"\"} form__notice form__notice--box is-invalid`}>\n {this.state.smsCodeInputError}\n </span>\n </div>\n </form>\n </div>\n <div className=\"departure-info__essentials__dualbuttons\">\n <div className=\"textbuttoncontainer\">\n <div className=\"cta-button\">\n <a className={`button button--small button--general ${confirmButtonColor}`} onClick={(e) => this.handleCodeSubmit(e)}>\n <span className=\"text\">{this.state.textKeys?.confirmButtonText}</span>\n </a>\n </div>\n <div className=\"back-button\">\n <a className=\"cancellink pointer\" onClick={() => this.setState({ modalOpen: false })}>\n <span className=\"text\">{this.state.textKeys.cancelButtonText || \"Annuller\"}</span>\n </a>\n </div>\n </div>\n </div>\n </div>\n </Modal>\n )\n }\n\n const emailField = (\n <div className={`form__field form__field--text form__field--text--no-label is-bound is-required ${this.state.validEmail ? \"\" : \"is-invalid\"}`}>\n <input\n className=\"form__item signup-email\"\n name=\"email\"\n type=\"email\"\n placeholder={this.state.textKeys?.emailPlaceholder || \"email adress\"}\n value={this.state.email}\n onChange={(e) => this.handleInput(e)}\n />\n <span className={`${this.state.validEmail ? \"d-none\" : \"\"} form__notice form__notice--box is-invalid`}>\n {this.state.textKeys?.invalidEmailLabel}\n </span>\n </div>\n )\n\n const phoneNumberField = (\n <div className=\"form__field form__field--text form__field--text--no-label is-bound\">\n <input\n className=\"form__item signup-email\"\n name=\"phoneNumber\"\n type=\"tel\"\n value={this.state.phoneNumber}\n placeholder={this.state.textKeys?.smsPlaceholder || \"Phone number\"}\n onChange={(e) => this.handleInput(e)}\n />\n <span className={`${this.state.validPhoneNumber ? \"d-none\" : \"\"} form__notice form__notice--box is-invalid`}>\n {this.state.phoneInputError}\n </span>\n </div>\n )\n\n const appField = (\n <>\n <div className=\"form__field form__field--checkbox is-bound\">\n <label className=\"form__label\">\n <input\n className=\"form__item signup-checkbox \"\n name=\"appPermission\"\n id=\"appPermission\"\n type=\"checkbox\"\n onChange={(e) => this.handleCheck(e)}\n />\n <span className=\"form__label__text large-text\">\n <p>{this.state.textKeys?.appLabel}</p>\n </span>\n </label>\n </div>\n <div className=\"rich-text\">\n <p>{this.state.textKeys?.appText}</p>\n </div>\n </>\n )\n\n const buttons = (\n <div className=\"departure-info__essentials__dualbuttons\">\n <div className=\"textbuttoncontainer\">\n <div className=\"cta-button\">\n <a className={`button button--small button--general ${confirmButtonColor}`} onClick={(e) => this.handleSubmitClick(e)}>\n <span className=\"text\">{this.state.textKeys?.confirmButtonText}</span>\n </a>\n </div>\n <div className=\"back-button\">\n <a className=\"cancellink pointer\" onClick={() => this.setState({ modalOpen: false })}>\n <span className=\"text\">{this.state.textKeys.cancelButtonText || \"Annuller\"}</span>\n </a>\n </div>\n </div>\n </div>\n )\n\n const parkingSourceModal = (\n <Modal\n isOpen={this.state.modalOpen}\n noScrollToTop=\"true\"\n modifier=\"modal--narrow modal--fixed\"\n overlayModifier=\"ReactModal__Overlay--fixed\"\n bodyModifier=\"ReactModal__Body--open ReactModal--no-overflow\"\n >\n <Spinner isActive={this.state.ajaxSpinnerActive} isTransparent={this.state.ajaxSpinnerTransparent} />\n <div className=\"departure-info-modal\">\n <h1>{title}</h1>\n {flights}\n <div className=\"departure-info__essentials__standard-info\">\n <div className=\"rich-text\" dangerouslySetInnerHTML={this.createMarkup(subTitle)}></div>\n <form className=\"grid-item col--12 col-lg--6 form\" onSubmit={(e) => this.handleSubmitClick(e)}>\n {emailField}\n <div style={{ paddingTop: \"15px\", paddingBottom: \"20px\", textAlign: \"center\", color: \"#071143\", fontWeight: \"bold\" }}>\n {this.props.textKeys?.orLabel}\n </div>\n {phoneNumberField}\n <span className={`${!this.state.noInfo ? \"d-none\" : \"\"} form__notice form__notice--box is-invalid`}>\n {this.state.textKeys?.noInfoErrorMessage || \"Du skal indtaste enten email eller mobilnummer før du kan fortsætte.\"}\n </span>\n <span className={`${!this.state.bothFilled ? \"d-none\" : \"\"} form__notice form__notice--box is-invalid`}>\n {this.state.textKeys?.bothFilledErrorMessage || \"Du skal kun indtaste enten email eller mobilnummer.\"}\n </span>\n {!this.state.isLoggedIn ? (\n <div className=\"login-text\">\n <p>{loginLink}</p>\n </div>\n ) : (\n \"\"\n )}\n </form>\n </div>\n {permission}\n {buttons}\n </div>\n </Modal>\n )\n\n const itinerarySourceModal = (\n <Modal\n isOpen={this.state.modalOpen}\n noScrollToTop=\"true\"\n modifier=\"modal--narrow modal--fixed\"\n overlayModifier=\"ReactModal__Overlay--fixed\"\n bodyModifier=\"ReactModal__Body--open ReactModal--no-overflow\"\n >\n <Spinner isActive={this.state.ajaxSpinnerActive} isTransparent={this.state.ajaxSpinnerTransparent} />\n <div className=\"departure-info-modal\">\n <h1>{title}</h1>\n {flights}\n <div className=\"departure-info__essentials__standard-info\">\n <div className=\"rich-text\" dangerouslySetInnerHTML={this.createMarkup(subTitle)}></div>\n <form className=\"grid-item col--12 col-lg--6 form\" onSubmit={(e) => this.handleSubmitClick(e)}>\n {emailField}\n {phoneNumberField}\n {this.state.isLoggedInWithApp ? appField : \"\"}\n {!this.state.isLoggedIn ? (\n <div className=\"login-text\">\n <p>{loginLink}</p>\n </div>\n ) : (\n \"\"\n )}\n </form>\n </div>\n {permission}\n {buttons}\n </div>\n </Modal>\n )\n\n let modalContent = \"\"\n\n switch (this.props.source) {\n case \"parking\":\n modalContent = parkingSourceModal\n break\n case \"itinerary\":\n modalContent = itinerarySourceModal\n break\n default:\n break\n }\n\n return modalContent\n }\n}\n","import React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport Emitter from \"../../helpers/emitter\"\nimport * as emits from \"../../constants/emits\"\nimport * as htmlHelper from \"../../helpers/html\"\nimport Modal from \"./modal\"\nimport MapsPeopleMap from \"../../styleguide/js/components/maps-people-map\"\nimport Badge from \"../badge/badge\"\nimport ShopButton from \"../shop-button/shop-button\"\nimport ClassicModal from \"./classicModal\"\nimport MerchantContactUsModalContent from \"./merchant-contact-us-modal-content\"\nimport ItinerarySignupModalContent from \"./itinerary-signup-modal-content\"\nimport FlightSignupModalContent from \"./flight-signup-modal-content\"\nimport \"../form-elements/_form-elements.scss\"\nimport * as moment from \"moment\"\n\nexport default class ModalModule {\n constructor(elem) {\n const self = this\n self.elem = elem\n self.elem.config = elem.dataset.config && JSON.parse(elem.dataset.config)\n self.elem.contentId = elem.dataset.contentId || document.body.dataset.currentpage\n self.elem.locale = elem.dataset.locale || document.body.dataset.language\n\n self.init()\n return self\n }\n\n init() {\n const self = this\n console.debug(\"modal loaded\")\n self.addEventlisteners()\n }\n\n addEventlisteners() {\n const self = this\n Emitter.on(\"*\", (event) => self.handleEvent(event))\n }\n\n handleEvent(event) {\n const { type } = event\n switch (type) {\n case emits.REQUEST_ERROR_MODAL_OPEN:\n this.handleErrorModalOpen(event)\n break\n case emits.REQUEST_MAP_MODAL_OPEN:\n this.handleMapModalOpen(event)\n break\n case emits.REQUEST_CONTENT_MODAL_OPEN:\n this.handleContentModalOpen(event)\n break\n case emits.REQUEST_QA_MODAL_OPEN:\n this.handleQAModelOpen(event)\n break\n case emits.REQUEST_MERCHANT_CONTACT_MODAL:\n this.mountMerchantContactModal(event)\n break\n case emits.REQUEST_ITINERARY_SIGNUP_MODAL:\n this.mountItinerarySignupModal(event)\n break\n case emits.REQUEST_FLIGHT_SIGNUP_MODAL:\n this.mountFlightSignupModal(event)\n break\n default:\n // ignore\n }\n }\n\n handleErrorModalOpen(event) {\n let message = \"\"\n try {\n const errorObj = JSON.parse(event.message)\n message = errorObj.error.modelErrorMessage\n } catch {\n message = event.message\n }\n this.mountErrorModal(message)\n }\n\n mountErrorModal(message) {\n const self = this\n let modalError = \"Der er sket en fejl\"\n if (document.body.dataset.modalError) {\n modalError = document.body.dataset.modalError\n }\n ReactDOM.unmountComponentAtNode(self.elem)\n ReactDOM.render(\n <Modal\n isOpen={true}\n noScrollToTop=\"true\"\n modifier=\"modal--fixed\"\n overlayModifier=\"ReactModal__Overlay--fixed\"\n bodyModifier=\"ReactModal__Body--open ReactModal--no-overflow\"\n >\n <div className=\"modal__content\">\n <div className=\"rich-text\">\n <h2>{modalError}</h2>\n <p>{String(message)}</p>\n </div>\n </div>\n </Modal>,\n self.elem,\n )\n }\n\n handleMapModalOpen(event) {\n try {\n this.mountMapModal(event.message)\n } catch {\n console.log(\"handleMapModalOpen - failure\")\n }\n }\n\n mountMapModal(content) {\n const self = this\n ReactDOM.unmountComponentAtNode(self.elem)\n if (!content.mapAndTextBool && (content.modalImage || !window.google || !window.mapsindoors)) {\n if (content.modalImage && content.modalImageMobile) {\n ReactDOM.render(\n <Modal\n isOpen={true}\n noScrollToTop=\"true\"\n modifier=\"modal--wide modal--fixed\"\n overlayModifier=\"ReactModal__Overlay--fixed\"\n bodyModifier=\"ReactModal__Body--open ReactModal--no-overflow\"\n >\n <div className=\"modal__bg\">\n <picture>\n <source srcSet={content.modalImageMobile.imageSrc} media=\"(max-width: 767px)\" />\n <source srcSet={content.modalImage.imageSrc} media=\"(min-width: 767px)\" />\n <img src={content.modalImageMobile.imageSrc} alt={content.modalImageMobile.imageAlt} />\n </picture>\n </div>\n </Modal>,\n self.elem,\n )\n }\n } else {\n ReactDOM.render(\n <Modal\n isOpen={true}\n modifier=\"shop-modal pickup-modal modal--xlarge modal--fixed\"\n overlayModifier=\"ReactModal__Overlay--fixed\"\n bodyModifier=\"ReactModal__Body--open ReactModal--no-overflow\"\n >\n <div className=\"pickup-point\">\n <div className=\"pickup-point__image\">\n {content.modalImage && content.modalImageMobile ? (\n <picture>\n <source srcSet={content.modalImageMobile.imageSrc} media=\"(max-width: 767px)\" />\n <source srcSet={content.modalImage.imageSrc} media=\"(min-width: 767px)\" />\n <img src={content.modalImageMobile.imageSrc} alt={content.modalImageMobile.imageAlt} />\n </picture>\n ) : (\n <div className=\"indoors-map js--maps-people-map\" data-id=\"poi\">\n <div className=\"indoors-map__inner js--map\"></div>\n </div>\n )}\n </div>\n <div className=\"pickup-point__content\">\n <h2 className=\"pickup-point__headline\">{content.Name}</h2>\n <p className=\"pickup-point__body\">{content.Location}</p>\n <p className=\"trumpet\">{content.openingHoursLabel}</p>\n <div className=\"opening-hours\">{/* {content.openingHours} */}</div>\n </div>\n </div>\n </Modal>,\n self.elem,\n )\n new MapsPeopleMap({ el: document.querySelector(\".js--maps-people-map\") })\n document.getElementsByClassName(\"opening-hours\")[document.getElementsByClassName(\"opening-hours\").length - 1].innerHTML = content.openingHours\n }\n }\n\n handleContentModalOpen(event) {\n this.mountContentModal(event.modalJson)\n }\n\n mountContentModal(content) {\n const self = this\n ReactDOM.unmountComponentAtNode(self.elem)\n if (content.usePortalStyling) {\n ReactDOM.render(<ClassicModal isOpen={true} content={content} elem={self.elem}></ClassicModal>, self.elem)\n } else\n ReactDOM.render(\n <Modal\n isOpen={true}\n noScrollToTop=\"true\"\n modifier=\"modal--fixed\"\n overlayModifier=\"ReactModal__Overlay--fixed\"\n bodyModifier=\"ReactModal__Body--open ReactModal--no-overflow\"\n >\n {content.image && content.image.imageSrc !== \"/\" ? (\n <div className=\"modal__bg\">\n <picture>\n <source srcSet={content.image.imageSrc} media=\"(max-width: 767px)\" />\n <source srcSet={content.image.imageSrc} media=\"(min-width: 767px)\" />\n <img src={content.image.imageSrc} alt={content.image.imageAlt} />\n </picture>\n {content.badge && content.badge.content && (\n <Badge {...content.badge.theme} modifier={content.badge.theme.themeClass} content={content.badge.content} />\n )}\n </div>\n ) : null}\n <div className=\"modal__content\">\n <div className=\"rich-text\">{htmlHelper.htmlStringToReactElement(content.richText)}</div>\n\n <div className=\"modal__buttons\">\n {content.button && content.button.showCta && <ShopButton text={content.button.link.linkText} link={content.button.link.linkUrl} />}\n </div>\n </div>\n </Modal>,\n self.elem,\n )\n }\n\n renderSubQuestions(questionsJson, answersDict) {\n if (questionsJson && questionsJson.length > 0) {\n return questionsJson.map((question) =>\n answersDict[question?.questionNumber]?.answerText ? (\n <ul key={question?.questionNumber}>\n <li>\n {question?.questionText}\n <br />\n <p\n style={{ fontWeight: \"bold\" }}\n dangerouslySetInnerHTML={{ __html: this.urlify(this.ConvertYorNAnswerToWord(answersDict[question?.questionNumber]?.answerText)) }}\n ></p>\n {this.renderSubQuestions(question?.subQuestions, answersDict)}\n </li>\n </ul>\n ) : (\n \"\"\n ),\n )\n }\n }\n\n handleQAModelOpen(event) {\n try {\n this.mountQAModal(event)\n } catch {\n console.log(\"handleQAModalOpen - failure\")\n }\n }\n\n mountQAModal(event) {\n const self = this\n const parentQuestion = event.modalQuestionsJson\n const subQuestionsJson = event.modalQuestionsJson?.subQuestions\n const answersDict = event.modalAnswers\n const parentAnswer = answersDict[parentQuestion?.questionNumber]?.answerText\n const parentAsnwerDate = moment(answersDict[parentQuestion?.questionNumber]?.datePublished)\n const lang = event.language\n const dateLabel = event.dateLabel\n ReactDOM.unmountComponentAtNode(self.elem)\n ReactDOM.render(\n <Modal\n isOpen={true}\n noScrollToTop=\"true\"\n modifier=\"modal--fixed\"\n overlayModifier=\"ReactModal__Overlay--fixed\"\n bodyModifier=\"ReactModal__Body--open ReactModal--no-overflow\"\n >\n <div className=\"modal__content\">\n <ul className=\"qa-modal\">\n <li>\n {parentQuestion?.questionText}\n <br />\n <p style={{ fontWeight: \"bold\" }} dangerouslySetInnerHTML={{ __html: this.urlify(this.ConvertYorNAnswerToWord(parentAnswer)) }}></p>\n <ul>\n {subQuestionsJson.map((question) =>\n answersDict[question?.questionNumber]?.answerText ? (\n <li key={question?.questionNumber}>\n {question?.questionText}\n <br />\n <p\n style={{ fontWeight: \"bold\" }}\n dangerouslySetInnerHTML={{\n __html: this.urlify(this.ConvertYorNAnswerToWord(answersDict[question?.questionNumber]?.answerText)),\n }}\n ></p>\n {this.renderSubQuestions(question?.subQuestions, answersDict)}\n </li>\n ) : (\n \"\"\n ),\n )}\n </ul>\n </li>\n </ul>\n </div>\n <p className=\"date-label\">{parentAsnwerDate.locale(lang).format(\"[\" + dateLabel + \"] Do MMMM yyyy\")}</p>\n </Modal>,\n self.elem,\n )\n }\n\n mountMerchantContactModal(event) {\n const self = this\n ReactDOM.unmountComponentAtNode(self.elem)\n ReactDOM.render(<MerchantContactUsModalContent {...event.modalJson} />, self.elem)\n }\n\n mountItinerarySignupModal(event) {\n const self = this\n ReactDOM.unmountComponentAtNode(self.elem)\n ReactDOM.render(<ItinerarySignupModalContent {...event.modalJson} />, self.elem)\n }\n\n mountFlightSignupModal(event) {\n const self = this\n ReactDOM.unmountComponentAtNode(self.elem)\n ReactDOM.render(<FlightSignupModalContent {...event.modalJson} />, self.elem)\n }\n\n ConvertYorNAnswerToWord(answer) {\n if (answer === \"Y\") {\n return \"Yes\"\n } else if (answer === \"N\") {\n return \"No\"\n }\n return answer\n }\n\n urlify(text) {\n var urlRegex =\n /(?:(?:https?|ftp|file):\\/\\/|www\\.|ftp\\.)(?:\\([-A-Z0-9+&@#/%=~_|$?!:,.]*\\)|[-A-Z0-9+&@#/%=~_|$?!:,.])*(?:\\([-A-Z0-9+&@#/%=~_|$?!:,.]*\\)|[A-Z0-9+&@#/%=~_|$])/gim\n return text.replace(urlRegex, function (url) {\n if (url.substring(0, 7) === \"http://\" || url.substring(0, 8) === \"https://\") {\n return '<a href=\"' + url + '\">' + url + \"</a>\"\n }\n url = \"https://\" + url\n return '<a href=\"' + url + '\">' + url + \"</a>\"\n })\n }\n}\n","import React from \"react\"\n\nconst SvgClose = (props) => (\n <svg viewBox=\"0 0 18 18\" {...props}>\n <path\n d=\"M16.5.086L17.914 1.5l-7.5 7.5 7.5 7.5-1.414 1.414-7.5-7.5-7.5 7.5L.086 16.5l7.5-7.5-7.5-7.5L1.5.086l7.5 7.5 7.5-7.5z\"\n fillRule=\"evenodd\"\n />\n </svg>\n)\n\nexport default SvgClose\n","import React, { Component } from \"react\"\nimport ReactModal from \"react-modal\"\n// eslint-disable-line no-unused-vars\n\nimport SvgClose from \"../_svgs/small/Close\"\n\nimport \"./_modal.scss\"\n\nclass Modal extends Component {\n static defaultProps = {\n modifier: \"\",\n overlayModifier: \"\",\n bodyModifier: \"\",\n externalState: false,\n closeHandler: null,\n afterOpenHandler: null,\n noScrollToTop: false,\n hideClose: false,\n children: (\n <div className=\"modal__content\">\n <div className=\"rich-text\">\n <h2>Lorem ipsum dolor</h2>\n <p>\n Assets A/B testing <a href=\"/#\">non-disclosure agreement</a> marketing low hanging fruit influencer gamification iteration android\n termsheet accelerator paradigm shift market. Seed money hackathon leverage. Crowdfunding advisor infrastructure influencer freemium\n gamification holy <strong>grail first mover</strong> advantage launch party. Ecosystem MVP alpha partnership angel investor termsheet long\n tail launch party android disruptive. Beta growth hacking partner network MVP buzz product management hypotheses. User experience long\n tail graphical user interface disruptive vesting period infographic mass market virality validation pivot. Mass market direct mailing\n social proof incubator long tail startup interaction design iPad. Pitch MVP crowdsource agile development. Traction facebook mass market\n success innovator entrepreneur business-to-consumer. Mass market A/B testing infographic beta conversion.\n </p>\n <h3>Lorem ipsum dolor</h3>\n <p>\n Assets A/B testing <a href=\"/#\">non-disclosure agreement</a> marketing low hanging fruit influencer gamification iteration android\n termsheet accelerator paradigm shift market. Seed money hackathon leverage. Crowdfunding advisor infrastructure influencer freemium\n gamification holy <strong>grail first mover</strong> advantage launch party. Ecosystem MVP alpha partnership angel investor termsheet long\n tail launch party android disruptive. Beta growth hacking partner network MVP buzz product management hypotheses. User experience long\n tail graphical user interface disruptive vesting period infographic mass market virality validation pivot. Mass market direct mailing\n social proof incubator long tail startup interaction design iPad. Pitch MVP crowdsource agile development. Traction facebook mass market\n success innovator entrepreneur business-to-consumer. Mass market A/B testing infographic beta conversion.\n </p>\n <h4>Lorem ipsum dolor</h4>\n <p>\n Assets A/B testing <a href=\"/#\">non-disclosure agreement</a> marketing low hanging fruit influencer gamification iteration android\n termsheet accelerator paradigm shift market. Seed money hackathon leverage. Crowdfunding advisor infrastructure influencer freemium\n gamification holy <strong>grail first mover</strong> advantage launch party. Ecosystem MVP alpha partnership angel investor termsheet long\n tail launch party android disruptive. Beta growth hacking partner network MVP buzz product management hypotheses. User experience long\n tail graphical user interface disruptive vesting period infographic mass market virality validation pivot. Mass market direct mailing\n social proof incubator long tail startup interaction design iPad. Pitch MVP crowdsource agile development. Traction facebook mass market\n success innovator entrepreneur business-to-consumer. Mass market A/B testing infographic beta conversion.\n </p>\n <h5>Lorem ipsum dolor</h5>\n <p>\n Assets A/B testing <a href=\"/#\">non-disclosure agreement</a> marketing low hanging fruit influencer gamification iteration android\n termsheet accelerator paradigm shift market. Seed money hackathon leverage. Crowdfunding advisor infrastructure influencer freemium\n gamification holy <strong>grail first mover</strong> advantage launch party. Ecosystem MVP alpha partnership angel investor termsheet long\n tail launch party android disruptive. Beta growth hacking partner network MVP buzz product management hypotheses. User experience long\n tail graphical user interface disruptive vesting period infographic mass market virality validation pivot. Mass market direct mailing\n social proof incubator long tail startup interaction design iPad. Pitch MVP crowdsource agile development. Traction facebook mass market\n success innovator entrepreneur business-to-consumer. Mass market A/B testing infographic beta conversion.\n </p>\n </div>\n </div>\n ),\n }\n\n constructor() {\n super()\n this.state = {\n showModal: false,\n }\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n let returnObj = {}\n if (nextProps.externalState && typeof nextProps.isOpen !== \"undefined\" && nextProps.isOpen !== prevState.showModal)\n returnObj.showModal = nextProps.isOpen\n return returnObj\n }\n\n onAfterOpenHandler = (event) => {\n if (!this.props.noScrollToTop) window.scrollTo(0, 0)\n window.dispatchEvent(new CustomEvent(\"modal:render\", { detail: { modal: { el: event.contentEl } } }))\n if (this.props.afterOpenHandler) {\n this.props.afterOpenHandler(this)\n }\n }\n\n handleOpenModal = (event) => {\n this.setState({ showModal: true }, () => console.debug(this.state))\n }\n\n handleCloseModal = (event) => {\n if (this.props.closeHandler) {\n this.props.closeHandler(this)\n } else {\n this.setState({ showModal: false })\n }\n }\n\n componentDidMount() {\n ReactModal.setAppElement(\"body\")\n\n if (this.props.isOpen) this.setState({ showModal: true })\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.isOpen !== this.props.isOpen) this.setState({ showModal: this.props.isOpen })\n }\n\n render() {\n return (\n <div className=\"modal\">\n {!this.props.externalState && <button onClick={this.handleOpenModal}>Trigger Modal</button>}\n\n <ReactModal\n onRequestClose={this.handleCloseModal.bind(this)}\n onAfterOpen={this.onAfterOpenHandler.bind(this)}\n closeTimeoutMS={200}\n isOpen={this.state.showModal}\n contentLabel=\"Minimal Modal Example\"\n className={`modal__box ${this.props.modifier}`}\n overlayClassName={this.props.overlayModifier}\n bodyOpenClassName={this.props.bodyModifier}\n >\n {!this.props.hideClose ? (\n <button className=\"modal__close\" onClick={this.handleCloseModal.bind(this)}>\n <SvgClose />\n </button>\n ) : (\n \"\"\n )}\n {this.props.children}\n </ReactModal>\n </div>\n )\n }\n}\n\nexport default Modal\n","import React, { Component } from \"react\"\nimport Modal from \"./modal\"\nimport * as htmlHelper from \"../../helpers/html\"\n\nexport default class SimpleErrorModal extends Component {\n constructor(props) {\n super(props)\n\n this.state = {\n modalOpen: props.modalOpen,\n errorData: props.errorData,\n }\n }\n\n render() {\n return (\n <Modal\n isOpen={this.state.modalOpen}\n closeHandler={this.props.closeHandler}\n noScrollToTop=\"true\"\n modifier=\"modal--wide modal--fixed\"\n overlayModifier=\"ReactModal__Overlay--fixed\"\n bodyModifier=\"ReactModal__Body--open ReactModal--no-overflow\"\n >\n <div className=\"modal__content__inner\">\n <div className=\"modal__top\">\n <header className=\"a--left\">\n {this.state.errorData.h3 ? <h3 className=\"headline-md\"> {htmlHelper.htmlStringToReactElement(this.state.errorData.h3)}</h3> : null}\n {this.state.errorData.richText ? (\n <div className=\"rich-text\">{htmlHelper.htmlStringToReactElement(this.state.errorData.richText)}</div>\n ) : null}\n </header>\n </div>\n </div>\n </Modal>\n )\n }\n}\n","export function getCASCColors() {\n return [\"mandarin\", \"carnation\", \"seablue\", \"platinum\", \"lagoon\", \"buttercup\", \"lillac\", \"forgetmenot\"]\n}\n\nexport function getCASCThemes() {\n return [\n \"theme-mandarin\",\n \"theme-carnation\",\n \"theme-seablue\",\n \"theme-platinum\",\n \"theme-lagoon\",\n \"theme-buttercup\",\n \"theme-lillac\",\n \"theme-forgetmenot\",\n ]\n}\n\nexport function getCASCThemesInverted() {\n return [\n \"theme-mandarin-inverted\",\n \"theme-carnation-inverted\",\n \"theme-seablue-inverted\",\n \"theme-platinum-inverted\",\n \"theme-lagoon-inverted\",\n \"theme-buttercup-inverted\",\n \"theme-lillac-inverted\",\n \"theme-forgetmenot-inverted\",\n ]\n}\n\nexport function getCASCAllThemes() {\n return [\"\", \"theme-taxfree\", ...getCASCThemes(), \"theme-taxfree-inverted\", ...getCASCThemesInverted()]\n}\n\nexport function getCustomColors(props) {\n const style = {}\n\n if (props.backgroundColor && props.backgroundColor !== \"\") {\n style[\"--bg\"] = props.backgroundColor\n }\n if (props.backgroundHoverColor && props.backgroundHoverColor !== \"\") {\n style[\"--bgh\"] = props.backgroundHoverColor\n }\n if (props.textColor && props.textColor !== \"\") {\n style[\"--c\"] = props.textColor\n }\n if (props.textHoverColor && props.textHoverColor !== \"\") {\n style[\"--ch\"] = props.textHoverColor\n }\n\n return style\n}\n\nexport default { getCustomColors, getCASCColors, getCASCThemes, getCASCThemesInverted, getCASCAllThemes }\n"],"names":["Badge","_Component","_classCallCheck","_callSuper","arguments","_inherits","_createClass","key","value","style","getCustomColors","this","props","_jsx","className","concat","modifier","children","dangerouslySetInnerHTML","__html","content","Component","defaultProps","backgroundColor","textColor","ShopButton","_PureComponent","_this","triggerHandler","event","console","debug","preventDefault","bind","link","_jsxs","_objectSpread","href","themeClass","disabled","datasetBag","icon","text","onClick","PureComponent","ClassicModal","state","showModal","handleCloseClick","isOpen","setState","ReactDOM","elem","OutsideClickTrigger","onOutsideClick","React","xmlnsXlink","xlinkHref","h3","htmlHelper","richText","MerchantContactUsModalContent","handleSubmit","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_this$state","recaptchaResponse","ipAddress","res","_this$props$successMe","_this$props$errorMess","wrap","_context","prev","next","email","subject","feedback","fullName","validEmail","validSubject","validFeedback","validName","validReCaptcha","endpoints","response","remoteip","sent","data","abrupt","merchantId","language","status","successMessage","t0","errorMessage","stop","_x","apply","handleRecaptcha","handleChange","target","_defineProperty","name","handleReVerify","verificationFailed","recaptchaRef","createRef","modalOpen","title","document","body","dataset","current","execute","reset","_this2","Modal","noScrollToTop","overlayModifier","bodyModifier","shopName","message","type","onChange","e","defaultValue","placeholder","subjectLabel","subjectErrorMessage","rows","maxLength","feedbackLabel","feedbackErrorMessage","yourDetailsLabel","nameLabel","nameErrorMessage","pattern","emailLabel","emailErrorMessage","ReCaptcha","ref","sitekey","reCaptchaSiteKey","hl","reCaptchaErrorMessage","sumbitButtonText","ItinerarySignupModalContent","validateEmail","emailValidatingRegex","test","String","toLowerCase","validatePhoneNumber","phoneNumber","_this$state$currentPa","_this$state$currentPa2","_this$state$currentPa3","_this$state$currentPa4","allowedCountries","currentPageJson","smsServiceSupportedCountryCodes","countryCode","replaceAll","substring","phoneValid","isValidPhoneNumber","includes","phoneInputError","invalidSmsLabel","smsServiceNotSupportedText","createMarkup","html","validateInputs","validationFailed","acceptedTerms","validAcceptedTerms","validPhoneNumber","onSubmit","trackTravelPlanner","trackingEventLabel","flightInfo","FlightId","ajaxSpinnerActive","subscribe","then","errorMsg","success","showErrorModal","emailErrorHeadline","isLoggedInWithPhone","verifyPhone","isSuccess","handleCodeSubmit","smsCode","length","url","endpoint","hosts","axios","item1","smsErrorMsg","catch","error","log","finally","validSmsCode","travelInformationSignup","_callee2","_this$state$flightInf","travelInformationSuccess","travelInformationErrorMsg","departingFlightId","arrivingFlightId","_context2","Direction","phone","hasCheckinLuggage","travelInformation","twl","travelsWithChildren","twc","transportToAirport","tf","travelType","isMobileRegistration","isMobile","objectIsNotEmpty","obj","undefined","Object","keys","emailSuccess","smsSuccess","appSuccess","profile","isLoggedInWithApp","isLoggedIn","emailErrorMsg","appErrorMsg","ajaxSpinnerTransparent","appPermission","setProfileState","_this3","EmailAddress","ContactDetails","MobilePhone","MobilePhoneVerified","NewsletterSubscription","MobileOsToken","_this$state$currentPa5","errorData","checked","_subscribe","_callee3","_this$state$flightInf2","_context3","_onEmailSubmit","_callee4","_this$state$flightInf3","_context4","_onAppSubmit","_callee5","_this$state$flightInf4","_context5","_onSmsSubmit","_callee6","_this$state$flightInf5","_context6","_this$state$currentPa6","_this$state$currentPa7","_this$state$currentPa8","_this$state$currentPa9","_this$state$currentPa10","_this$state$currentPa11","_this$state$currentPa12","_this$state$currentPa13","_this$state$currentPa14","_this$state$currentPa15","_this$state$currentPa16","_this$state$currentPa17","_this$state$currentPa18","_this$state$flightInf14","_this$state$flightInf15","_this$state$flightInf16","_this$state$flightInf17","_this$state$currentPa29","_this$state$currentPa30","_this$state$currentPa31","_this$state$currentPa32","_this$state$currentPa33","_this$state$currentPa34","_this$state$currentPa19","_this$state$currentPa20","_this$state$currentPa21","_this$state$currentPa22","_this$state$currentPa23","_this$state$flightInf6","_this$state$flightInf7","_this$state$flightInf8","_this$state$flightInf9","_this$state$currentPa24","_this$state$currentPa25","_this$state$flightInf10","_this$state$flightInf11","_this$state$flightInf12","_this$state$flightInf13","_this$state$currentPa26","_this$state$currentPa27","_this$state$currentPa28","_this4","titleLoggedInWithPhone","titleLoggedInNoPhone","titleNotLoggedIn","subTitle","subTitleLoggedInWithPhone","subTitleLoggedInNoPhone","subTitleNotLoggedIn","confirmButtonColor","SelectionFactoryHelper","flightInformationBoxColor","loginLink","alreadyUser","reactStringReplace","match","i","_this4$state$flightIn","LoginLink","linkClassName","loginurl","linkText","replace","permissionInput","id","handleCheck","termsLabel","terms","invalidAcceptTerms","SimpleErrorModal","thankYouTitle","thankYouSmsConfirmationText","thankYouEmailConfirmationText","Flight","CarrierNameMobile","CarrierName","DestinationName","split","thankYouCloseText","Spinner","isActive","isTransparent","titleVerifyPhone","subTitleVerifyPhone","smsCodePlaceholder","handleInput","smsCodeInputError","confirmButtonText","cancelButtonText","handleSubmitClick","emailPlaceholder","invalidEmailLabel","smsPlaceholder","appLabel","appText","FlightSignupModalContent","_this$state$textKeys","_this$state$textKeys2","_this$state$textKeys3","_this$state$textKeys4","textKeys","validateInputsParking","bothFilled","noInfo","flightId","source","trackParkingFlightSignup","departureFlight","arrivalFlight","subscribeToFlights","trackProfileNewsletterSignup","PhoneNumber","ActivationCode","getSuccessMessage","_textKeys$thankYouSms2","_textKeys$thankYouEma2","_textKeys$thankYouSms","_textKeys$thankYouEma","thankYouAppConfirmationText","_this$state$textKeys5","registrationSource","_x2","_x3","_subscribeToFlights","followDepartingFlightSms","followDepartingFlightMail","followArrivingFlightSms","followArrivingFlightMail","newsletterSubscription","appRegistration","travelPurpose","_x4","_this$state$textKeys6","_this$state$textKeys7","_this$state$textKeys8","_this$state$textKeys9","_this$state$textKeys10","_this$state$textKeys11","_this$state$textKeys12","_this$state$textKeys13","_this$state$textKeys14","_this$state$textKeys15","_this$state$textKeys16","_this$state$departure","_this$state$departure2","_this$state$departure3","_this$state$departure4","_this$state$arrivalFl","_this$state$arrivalFl2","_this$state$arrivalFl3","_this$state$arrivalFl4","_this$state$textKeys17","_this$state$textKeys18","_this$state$textKeys19","_this$state$textKeys20","_this$state$textKeys21","_this$state$textKeys22","_this$state$textKeys23","_this$state$textKeys24","_this$state$textKeys25","_this$state$textKeys32","_this$state$textKeys33","_this$state$textKeys34","_this$state$textKeys35","_this$state$textKeys36","_this$state$textKeys37","_this$props$textKeys","_this$state$textKeys38","_this$state$textKeys39","_this$state$textKeys26","_this$state$textKeys27","_this$state$textKeys28","_this$state$textKeys29","_this$state$textKeys30","_this$state$textKeys31","permissionInput2","display","alignItems","justifyContent","flexDirection","width","htmlFor","readOnly","handleTerms","termsYes","termsNo","padding","parkingFlights","_Fragment","textTransform","departingTripLabel","Iata","AirlineMobile","Airline","homeTripLabel","itiniraryFlight","permission","flights","titleLoggedIn","subTitleLoggedIn","emailField","phoneNumberField","appField","buttons","parkingSourceModal","paddingTop","paddingBottom","textAlign","color","fontWeight","orLabel","noInfoErrorMessage","bothFilledErrorMessage","itinerarySourceModal","modalContent","ModalModule","self","config","JSON","parse","contentId","currentpage","locale","init","addEventlisteners","Emitter","on","handleEvent","emits","handleErrorModalOpen","handleMapModalOpen","handleContentModalOpen","handleQAModelOpen","mountMerchantContactModal","mountItinerarySignupModal","mountFlightSignupModal","modelErrorMessage","_unused","mountErrorModal","modalError","mountMapModal","_unused2","mapAndTextBool","modalImage","window","google","mapsindoors","modalImageMobile","srcSet","imageSrc","media","src","alt","imageAlt","Name","Location","openingHoursLabel","MapsPeopleMap","el","querySelector","getElementsByClassName","innerHTML","openingHours","mountContentModal","modalJson","usePortalStyling","image","badge","theme","button","showCta","linkUrl","questionsJson","answersDict","map","question","_answersDict$question","_answersDict$question2","questionNumber","answerText","questionText","urlify","ConvertYorNAnswerToWord","renderSubQuestions","subQuestions","mountQAModal","_unused3","_event$modalQuestions","_answersDict$parentQu","_answersDict$parentQu2","parentQuestion","modalQuestionsJson","subQuestionsJson","modalAnswers","parentAnswer","parentAsnwerDate","moment","datePublished","lang","dateLabel","_answersDict$question3","_answersDict$question4","format","answer","viewBox","d","fillRule","onAfterOpenHandler","scrollTo","dispatchEvent","CustomEvent","detail","modal","contentEl","afterOpenHandler","handleOpenModal","handleCloseModal","closeHandler","ReactModal","prevProps","externalState","onRequestClose","onAfterOpen","closeTimeoutMS","contentLabel","overlayClassName","bodyOpenClassName","hideClose","SvgClose","nextProps","prevState","returnObj","backgroundHoverColor","textHoverColor"],"sourceRoot":""}