{"version":3,"file":"static/js/691.70539ccb.chunk.js","mappings":"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","sources":["constants/emits.js","helpers/emitter.js","shared/flight/flight-signup-module.js"],"sourcesContent":["export const CART_UPDATED = \"CART_UPDATED\"\nexport const REQUEST_ERROR_MODAL_OPEN = \"REQUEST_ERROR_MODAL_OPEN\"\nexport const REQUEST_MAP_MODAL_OPEN = \"REQUEST_MAP_MODAL_OPEN\"\nexport const REQUEST_CONTENT_MODAL_OPEN = \"REQUEST_CONTENT_MODAL_OPEN\"\nexport const REQUEST_DESTINATION_MODAL_OPEN = \"REQUEST_DESTINATION_MODAL_OPEN\"\nexport const REQUEST_QA_MODAL_OPEN = \"REQUEST_QA_MODAL_OPEN\"\nexport const SEARCH_FACETS_UPDATED = \"SEARCH_FACETS_UPDATED\"\nexport const SEARCH_FILTER_ACTIVATED = \"SEARCH_FILTER_ACTIVATED\"\nexport const SEARCH_FILTER_DEACTIVATED = \"SEARCH_FILTER_DEACTIVATED\"\nexport const SEARCH_ACTIVATED = \"SEARCH_ACTIVATED\"\nexport const DESTINATION_UPDATED = \"DESTINATION_UPDATED\"\nexport const COUPON_UPDATED = \"COUPON_UPDATED\"\nexport const REQUEST_MERCHANT_CONTACT_MODAL = \"REQUEST_MERCHANT_CONTACT_MODAL\"\nexport const REQUEST_ITINERARY_SIGNUP_MODAL = \"REQUEST_ITINERARY_SIGNUP_MODAL\"\nexport const REQUEST_FOLLOW_FLIGHT_COMPONENT = \"REQUEST_FOLLOW_FLIGHT_COMPONENT\"\nexport const REQUEST_FLIGHT_SIGNUP_MODAL = \"REQUEST_FLIGHT_SIGNUP_MODAL\"\n","import mitt from \"mitt\"\n\nexport let Emitter = mitt()\n\nexport default Emitter\n","import * as endpoints from \"../../api/endpoints\"\nimport React, { Component } from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { UserProfile } from \"../../hooks/userProfile\"\nimport Emitter from \"../../helpers/emitter\"\nimport * as emits from \"../../constants/emits\"\nimport Spinner from \"../../booking/components/spinner\"\nimport { isValidPhoneNumber } from \"react-phone-number-input\"\n\nconst emailValidatingRegex =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n\nexport default class FlightSignup {\n constructor(elem) {\n const self = this\n self.elem = elem\n self.state = {\n email: \"\",\n flightId: elem.dataset.flightid,\n valid: true,\n }\n this.init()\n }\n\n init() {\n ReactDOM.unmountComponentAtNode(this.elem)\n ReactDOM.render(\n <UserProfile>\n {(profile) => {\n if (profile) {\n return <FlightSignupComponent {...this.elem.dataset} profile={profile} />\n } else {\n return <FlightSignupComponent {...this.elem.dataset} profile={null} />\n }\n }}\n </UserProfile>,\n this.elem,\n )\n }\n}\n\nclass FlightSignupComponent extends Component {\n constructor(props) {\n super(props)\n\n this.state = {\n email: \"\",\n phoneNumber: \"\",\n flightId: props.flightid,\n acceptedTerms: false,\n validEmail: true,\n validPhoneNumber: true,\n validAcceptedTerms: true,\n profile: props.profile,\n ajaxSpinnerActive: false,\n ajaxSpinnerTransparent: false,\n }\n }\n\n getDerivedStateFromProps(nextProps, _prevState) {\n if (nextProps.profile) {\n let newState = {}\n\n if (nextProps.profile.EmailAddress) {\n newState.email = nextProps.profile.EmailAddress\n }\n if (nextProps.profile.ContactDetails && nextProps.profile.ContactDetails.MobilePhone) {\n newState.phoneNumber = nextProps.profile.ContactDetails.MobilePhone\n }\n if (nextProps.profile.ContactDetails && nextProps.profile.ContactDetails.NewsletterSubscription) {\n newState.acceptedTerms = true\n }\n\n return newState\n }\n\n // Return null if no changes to state\n return null\n }\n\n onSubmit = (e) => {\n e.preventDefault()\n this.onEmailSubmit(e)\n this.onSmsSubmit(e)\n }\n\n onEmailSubmit = (e) => {\n e.preventDefault()\n let failedValidation = false\n if (!this.validateEmail(this.state.email)) {\n this.setState({ validEmail: false })\n failedValidation = true\n } else {\n this.setState({ validEmail: true })\n }\n if (!this.state.acceptedTerms) {\n this.setState({ validAcceptedTerms: false })\n failedValidation = true\n } else {\n this.setState({ validAcceptedTerms: true })\n }\n if (failedValidation) {\n return false\n }\n this.setState({ ajaxSpinnerActive: true })\n endpoints\n .subscribeToFlightByEmail(this.state.flightId, this.state.email)\n .then((_res) => {\n Emitter.emit(\"*\", {\n type: emits.REQUEST_CONTENT_MODAL_OPEN,\n modalJson: {\n usePortalStyling: true,\n h3: this.props.successHeadline || \"Success\",\n richText: this.props.successMessage || \"Du bliver nu informeret om ændringer på denne flyvning\",\n },\n })\n })\n .catch((error) => {\n Emitter.emit(\"*\", {\n type: emits.REQUEST_CONTENT_MODAL_OPEN,\n modalJson: {\n usePortalStyling: true,\n h3: error,\n richText: \"\",\n },\n })\n })\n .finally(() => {\n this.setState({ ajaxSpinnerActive: false })\n })\n }\n\n onSmsSubmit = (e) => {\n e.preventDefault()\n let failedValidation = false\n if (!this.validatePhoneNumber(this.state.phoneNumber)) {\n this.setState({ validPhoneNumber: false })\n failedValidation = true\n } else {\n this.setState({ validPhoneNumber: true })\n }\n if (!this.state.acceptedTerms) {\n this.setState({ validAcceptedTerms: false })\n failedValidation = true\n } else {\n this.setState({ validAcceptedTerms: true })\n }\n if (failedValidation) {\n return false\n }\n this.setState({ ajaxSpinnerActive: true })\n endpoints\n .subscribeToFlightBySms(this.state.flightId, this.state.phoneNumber)\n .then((_res) => {\n Emitter.emit(\"*\", {\n type: emits.REQUEST_CONTENT_MODAL_OPEN,\n modalJson: {\n usePortalStyling: true,\n h3: this.props.successHeadline || \"Success\",\n richText: this.props.successMessage || \"Du bliver nu informeret om ændringer på denne flyvning\",\n },\n })\n })\n .catch((error) => {\n Emitter.emit(\"*\", {\n type: emits.REQUEST_CONTENT_MODAL_OPEN,\n modalJson: {\n usePortalStyling: true,\n h3: error,\n richText: \"\",\n },\n })\n })\n .finally(() => {\n this.setState({ ajaxSpinnerActive: false })\n })\n }\n\n handleEmailClick = (e) => {\n this.onEmailSubmit(e)\n // document.querySelector('.js-module-flight-signup').querySelector('.js-email-form').dispatchEvent(new Event('submit'))\n }\n\n handleSmsClick = (e) => {\n this.onSmsSubmit(e)\n // document.querySelector('.js-module-flight-signup').querySelector('.js-sms-form').dispatchEvent(new Event('submit'))\n }\n\n validateEmail = (email) => {\n return emailValidatingRegex.test(String(email).toLowerCase())\n }\n\n validatePhoneNumber = (phoneNumber) => {\n return isValidPhoneNumber(phoneNumber)\n }\n\n createMarkup = (html) => {\n return { __html: html }\n }\n\n render() {\n let emailInput = (\n <div className=\"grid-item col--12 col-xs--9 form__section__inner\">\n <div className=\"form__field form__field--text form__field--text--no-label is-bound is-required\">\n <span className=\"form__valid\"></span>\n <input\n className=\"form__item signup-email\"\n name=\"email\"\n type=\"email\"\n placeholder={this.props.placeholderMail || \"email adress\"}\n onChange={(e) => this.setState({ email: e.target.value })}\n />\n <span className={(this.state.validEmail ? \"d-none\" : \"\") + \" form__notice form__notice--box is-invalid\"}>\n {this.props.emailvalidationerror}\n </span>\n </div>\n </div>\n )\n let smsInput = (\n <div className=\"grid-item col--12 col-xs--9 form__section__inner\">\n <div className=\"form__field form__field--text form__field--text--no-label is-bound is-required\">\n <span className=\"form__valid\"></span>\n <input\n className=\"form__item signup-email\"\n name=\"phoneNumber\"\n type=\"tel\"\n placeholder={this.props.placeholderSms || \"Phone number\"}\n onChange={(e) => this.setState({ phoneNumber: e.target.value })}\n defaultValue={this.props.profile && this.props.profile.ContactDetails && this.props.profile.ContactDetails.MobilePhone}\n />\n <span className={(this.state.validPhoneNumber ? \"d-none\" : \"\") + \" form__notice form__notice--box is-invalid\"}>\n {this.props.smsvalidationerror || \"Error in phone number use full number\"}\n </span>\n </div>\n </div>\n )\n let permissionInput = (\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=\"check-name\"\n type=\"checkbox\"\n onChange={(e) => this.setState({ acceptedTerms: e.target.checked })}\n />\n <span className=\"form__label__text\">\n <p dangerouslySetInnerHTML={this.createMarkup(this.props.terms)}></p>\n </span>\n </label>\n </div>\n <span className={(this.state.validAcceptedTerms ? \"d-none\" : \"\") + \" form__notice form__notice--box is-invalid\"}>\n {this.props.accepttermserror}\n </span>\n </div>\n )\n let emailSubmitClass = \"grid-item col--12 col-xs--3\"\n let smsSubmitClass = \"grid-item col--12 col-xs--3\"\n if (this.props.profile) {\n if (this.props.profile.EmailAddress) {\n emailInput = null\n emailSubmitClass = \"grid-item col--12 col-xs--12\"\n }\n if (this.props.profile.ContactDetails && this.props.profile.ContactDetails.MobilePhone) {\n // validate phone number\n if (this.validatePhoneNumber(this.props.profile.ContactDetails.MobilePhone)) {\n smsInput = null\n smsSubmitClass = \"grid-item col--12 col-xs--12\"\n }\n }\n if (this.props.profile.ContactDetails && this.props.profile.ContactDetails.NewsletterSubscription) {\n permissionInput = null\n }\n }\n\n const emailIsDisabled = this.props.isEmailDisabled && this.props.isEmailDisabled.toLowerCase() === \"true\"\n const smsIsDisabled = this.props.isSmsDisabled && this.props.isSmsDisabled.toLowerCase() === \"true\"\n\n return (\n <React.Fragment>\n <Spinner isActive={this.state.ajaxSpinnerActive} isTransparent={this.state.ajaxSpinnerTransparent} />\n <div className=\"w--wider newsletter-signup__inner\">\n <div className=\"grid\">\n <div className=\"grid-item col--12 col-lg--6\">\n <h3>{this.props.header}</h3>\n </div>\n <form className=\"grid-item col--12 col-lg--6 form\" onSubmit={this.onSubmit}>\n <input className=\"signup-flight-id\" value={this.state.flightId} readOnly hidden />\n {emailIsDisabled ? null : (\n <div className=\"grid form__section form__section--short\">\n {emailInput}\n <div className={emailSubmitClass}>\n <a className=\"button button--medium button--general-inverted\" onClick={this.handleEmailClick}>\n <span className=\"text\">{this.props.followMail || \"Follow on email\"}</span>\n </a>\n </div>\n <div className=\"grid-item d-none d-block--md col-md--2 d-none--lg\"></div>\n </div>\n )}\n {smsIsDisabled ? null : (\n <div className=\"grid form__section form__section--short\">\n {smsInput}\n <div className={smsSubmitClass}>\n <a className=\"button button--medium button--general-inverted\" onClick={this.handleSmsClick}>\n <span className=\"text\">{this.props.followSms || \"Follow on SMS\"}</span>\n </a>\n </div>\n <div className=\"grid-item d-none d-block--md col-md--2 d-none--lg\"></div>\n </div>\n )}\n {permissionInput}\n <input type=\"submit\" hidden />\n </form>\n </div>\n </div>\n </React.Fragment>\n )\n }\n}\n"],"names":["REQUEST_ERROR_MODAL_OPEN","REQUEST_MAP_MODAL_OPEN","REQUEST_CONTENT_MODAL_OPEN","REQUEST_QA_MODAL_OPEN","SEARCH_FACETS_UPDATED","SEARCH_FILTER_ACTIVATED","SEARCH_FILTER_DEACTIVATED","REQUEST_MERCHANT_CONTACT_MODAL","REQUEST_FOLLOW_FLIGHT_COMPONENT","Emitter","mitt","emailValidatingRegex","FlightSignup","_createClass","elem","_classCallCheck","this","state","email","flightId","dataset","flightid","valid","init","key","value","_this","ReactDOM","_jsx","UserProfile","children","profile","FlightSignupComponent","_objectSpread","_Component","props","_this2","_callSuper","onSubmit","e","preventDefault","onEmailSubmit","onSmsSubmit","failedValidation","validateEmail","setState","validEmail","acceptedTerms","validAcceptedTerms","ajaxSpinnerActive","endpoints","then","_res","emit","type","emits","modalJson","usePortalStyling","h3","successHeadline","richText","successMessage","catch","error","finally","validatePhoneNumber","phoneNumber","validPhoneNumber","handleEmailClick","handleSmsClick","test","String","toLowerCase","isValidPhoneNumber","createMarkup","html","__html","ajaxSpinnerTransparent","_inherits","nextProps","_prevState","newState","EmailAddress","ContactDetails","MobilePhone","NewsletterSubscription","_this3","emailInput","className","_jsxs","name","placeholder","placeholderMail","onChange","target","emailvalidationerror","smsInput","placeholderSms","defaultValue","smsvalidationerror","permissionInput","checked","dangerouslySetInnerHTML","terms","accepttermserror","emailSubmitClass","smsSubmitClass","emailIsDisabled","isEmailDisabled","smsIsDisabled","isSmsDisabled","React","Spinner","isActive","isTransparent","header","readOnly","hidden","onClick","followMail","followSms","Component"],"sourceRoot":""}