{"version":3,"file":"static/js/476.c39be3d6.chunk.js","mappings":"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","sources":["shared/_svgs/small/Search.js","shared/flight/flight-search-form.jsx","shared/flight/flight-search-result.jsx","shared/travel-guide/travel-guide-step1.jsx","shared/travel-guide/travel-guide-step2.jsx","shared/form-elements/form-text.jsx","shared/phone-number-validation-field/phone-number-validation-field.jsx","shared/travel-guide/travel-guide-step3.jsx","shared/travel-guide/travel-guide-step4.jsx","constants/keys.js","shared/hero/hero-overlap.jsx","shared/travel-guide/travel-guide.jsx","shared/travel-guide/travel-guide-module.js"],"sourcesContent":["import React from \"react\"\n\nconst SvgSearch = (props) => (\n <svg viewBox=\"0 0 18 18\" {...props}>\n <path\n d=\"M7.5 0A7.5 7.5 0 0115 7.5c0 1.7-.572 3.287-1.536 4.548l4.45 4.452-1.414 1.414-4.452-4.45A7.485 7.485 0 017.5 15a7.5 7.5 0 110-15zm0 2a5.5 5.5 0 100 11 5.5 5.5 0 100-11z\"\n fillRule=\"evenodd\"\n />\n </svg>\n)\n\nexport default SvgSearch\n","import React, { Component } from \"react\"\nimport { Forms } from \"../../styleguide/js/components/forms\"\nimport DatePickerPikaday from \"../../styleguide/js/components/datepicker-pikaday\"\nimport * as dateHelper from \"../../booking/helpers/date\"\nimport { isMobile } from \"react-device-detect\"\n\nclass FlightSearchForm extends Component {\n constructor(props) {\n super(props)\n this.dateTextBoxRef = React.createRef()\n this.formRef = React.createRef()\n this.datePicker = undefined\n }\n\n componentDidMount() {\n // const queryString = QueryString.parse(window.location.search)\n // if (queryString.q) this.setState({ query: queryString.q })\n if (this.dateTextBoxRef.current && !this.datePicker) {\n this.datePicker = new DatePickerPikaday({ el: this.dateTextBoxRef.current })\n this.setDateInDatePicker = this.datePicker.getPicker().setDate\n }\n if (this.formRef.current) new Forms({ el: this.formRef.current })\n }\n\n componentWillUnmount() {\n delete this.formRef.current\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.activeTab !== this.props.activeTab) {\n this.datePicker.getPicker().destroy()\n delete this.datePicker\n this.dateTextBoxRef.current.classList.remove(\"is-bound\") // forces datepicker re-initialization\n this.datePicker = new DatePickerPikaday({ el: this.dateTextBoxRef.current })\n }\n }\n\n render() {\n const { config, minDate, query, time, activeTab, selectedDate, departingFlightId } = this.props\n if (this.setDateInDatePicker && selectedDate) {\n try {\n this.datePicker.selectedDate = new Date(Date.parse(selectedDate))\n } catch {\n console.log(\"Error parsing date\")\n }\n }\n const formattedDate = dateHelper.formatDate(selectedDate, \"DD / MM / YYYY\", \"da\")\n\n const showSkipStep = activeTab !== 1 && departingFlightId?.length > 0\n return (\n <div className=\"form flights__header__form js--form\" ref={this.formRef}>\n <div className=\"w--wider\">\n {showSkipStep ? (\n <div className=\"form__section align-right v--mobile-only\">\n <div>\n <button className=\"simple-link \" onClick={() => this.props.writeToState(activeTab === 2 ? { activeStep: 2 } : { activeTab: 2 })}>\n Spring over\n </button>\n </div>\n </div>\n ) : null}\n <div className=\"form__section\">\n <div className=\"form__section__inner\">\n <div className=\"form__field form__field--text form__field--text-search form__field--text--no-label\">\n <span className=\"form__valid\" />\n <input\n className=\"form__item \"\n id=\"searchTextbox\"\n type=\"text\"\n value={query}\n placeholder={config.searchPlaceholderText || \"Søg på by, flyselskab eller flynummer... \"}\n onChange={(e) => this.props.queryChangeHandler(e.currentTarget.value, activeTab)}\n onFocus={(e) =>\n isMobile && e.currentTarget.scrollIntoView && e.currentTarget.scrollIntoView({ behavior: \"smooth\", block: \"start\" })\n }\n />\n <button onClick={(e) => this.props.searchClickHandler(e)}>\n <span className=\"icon\">\n <svg className=\"svg-icon svg-icon--search\">\n <use xmlnsXlink=\"http://www.w3.org/1999/xlink\" xlinkHref=\"/dist/svg/symbols.svg#svg-search\">\n \n </use>\n </svg>\n </span>\n </button>\n </div>\n </div>\n </div>\n <div className=\"form__section form__section--split\">\n <div className=\"form__section__inner\">\n <div\n ref={this.dateTextBoxRef}\n className=\"form__field form__field--date form__field--date--pikaday rm-this-class-hide-default is-filled\"\n >\n <input\n className=\"form__item\"\n id=\"DateTextBox\"\n min={minDate}\n value={formattedDate}\n readOnly\n type=\"text\"\n onBlur={(e) => this.props.dateChangeHandler(e.currentTarget.value)}\n />\n </div>\n </div>\n <div className=\"form__section__inner\">\n <div className=\"form__field form__field--select is-filled\">\n <div className=\"form__container\">\n <span className=\"form__valid\" />\n <select\n id=\"select\"\n className=\"form__item \"\n aria-label=\"Select menu\"\n value={time}\n onChange={(e) => this.props.timeChangeHandler(e.currentTarget.value)}\n >\n {config.timeSelectList.map((item, index) => (\n <option key={index} value={item.value}>\n {item.text}\n </option>\n ))}\n </select>\n </div>\n </div>\n </div>\n </div>\n <div className=\"form__section v--desktop-only\">\n {/* <button className=\"button button--medium button--general rm-this-class rm-this-class-hide-default\" >\n <span className=\"icon\">\n <svg className=\"svg-icon svg-icon--planeduo\">\n <use xmlnsXlink=\"http://www.w3.org/1999/xlink\" xlinkHref=\"/dist/svg/symbols.svg#svg-planeduo\"> </use>\n </svg>\n </span>\n <span className=\"text\">{config.searchButtonText || 'Søg'}</span>\n </button> */}\n </div>\n </div>\n </div>\n )\n }\n}\nexport default FlightSearchForm\n","import React, { Component } from \"react\"\nimport * as dateHelper from \"../../booking/helpers/date\"\nimport * as htmlHelper from \"../../helpers/html\"\nimport StylishTable from \"../../styleguide/js/components/stylish-table\"\n\nclass FlightSearchResult extends Component {\n constructor(props) {\n super(props)\n this.tableRef = React.createRef()\n }\n componentDidMount() {\n if (this.tableRef.current) {\n new StylishTable({ el: this.tableRef.current })\n }\n }\n\n renderTableHeaders() {\n const { config, activeTab } = this.props\n return (\n <React.Fragment>\n <div className=\"stylish-table__cell travelguide-flights__table__col--destination\">\n <div>\n <span>{(activeTab === 1 ? config.flightTableDepartureDestinationText : config.flightTableArrivalDestinationText) || \"Destination\"}</span>\n </div>\n </div>\n <div className=\"stylish-table__cell travelguide-flights__table__col--time\">\n <div>\n <span>{config.flightTableTimeText || \"Tid\"}</span>\n </div>\n </div>\n <div className=\"stylish-table__cell travelguide-flights__table__col--carrier \">\n <div>\n <span>\n <span>{config.flightTableAirlineText || \"Operatør\"}</span>\n </span>\n </div>\n </div>\n <div className=\"stylish-table__cell travelguide-flights__table__col--carrier v--desktop-only\">\n <div> </div>\n </div>\n </React.Fragment>\n )\n }\n\n renderFlight(flight, index) {\n const { config } = this.props\n // const time = isMobile ? dateHelper.formatDate(flight.ScheduledTime, 'HH:mm', 'da') :dateHelper.formatDate(flight.ScheduledTime, 'DD / MM / YYYY HH:mm', 'da')\n const time = dateHelper.formatDate(flight.ScheduledTime, \"HH:mm\", \"da\")\n const isChosen = this.props.chosenFlightId === flight.RecordId\n const rowBgStyle = isChosen ? { backgroundColor: \"#eff1f2\" } : {}\n const colStyle = isChosen ? { borderRight: 0 } : {}\n return (\n <div\n key={index}\n className={`stylish-table__row stylish-table__row--body pointer ${\n !this.props.chosenFlightId || (this.props.chosenFlightId && isChosen) ? `` : `hide`\n } `}\n style={rowBgStyle}\n onClick={() => this.props.buttonClickHandler(flight.RecordId)}\n >\n <div className=\"stylish-table__cell travelguide-flights__table__col--destination\" style={colStyle}>\n <div>\n <span>\n <strong>\n <span>{flight.DestinationName}</span>\n </strong>\n </span>\n <span>\n <small>{flight.Flight}</small>\n </span>\n </div>\n </div>\n <div className=\"stylish-table__cell travelguide-flights__table__col--time\" style={colStyle}>\n <div>\n <span>\n <em>{time}</em>\n </span>\n </div>\n </div>\n <div className=\"stylish-table__cell travelguide-flights__table__col--carrier\">\n <div>\n <span>\n <span>{flight.CarrierName}</span>\n </span>\n </div>\n <div className=\"v--mobile-only\">\n <span>\n <button\n className={`button button--small no-shadow ${isChosen ? `button--general` : config.flightTableChooseButtonBackgroundColor}`}\n onClick={() => this.props.buttonClickHandler(flight.RecordId)}\n >\n {isChosen ? config.flightTableChosenText || \"Valgt\" : config.flightTableChooseText || \"Vælg\"}\n </button>\n </span>\n </div>\n </div>\n <div className=\"stylish-table__cell v--desktop-only\">\n <div>\n <span>\n <button\n className={`button button--small no-shadow ${isChosen ? `button--general` : config.flightTableChooseButtonBackgroundColor}`}\n onClick={() => this.props.buttonClickHandler(flight.RecordId)}\n >\n {isChosen ? config.flightTableChosenText || \"Valgt\" : config.flightTableChooseText || \"Vælg\"}\n </button>\n </span>\n </div>\n </div>\n </div>\n )\n }\n\n render() {\n const { flights, query, config } = this.props\n\n if (query === \"\" && (!flights || flights.length === 0)) return null\n\n return (\n <React.Fragment>\n <div className=\"travelguide-flights__table stylish-table js--stylish-table\" ref={this.tableRef}>\n <div className=\"stylish-table__row stylish-table__row--head is-grey\">{this.renderTableHeaders()}</div>\n {flights.map((flight, index) => this.renderFlight(flight, index))}\n </div>\n\n {flights.length === 0 && (\n <div className=\"flights__no-results\">\n <div className=\"section-header section-header--small\">\n <div>\n {(config.flightNoResult && htmlHelper.htmlStringToReactElement(config.flightNoResult)) || (\n <React.Fragment>\n <h2>Der er ikke noget information om den valgte dato eller afgang</h2>\n <p>Tjek om du har stavet rigtigt eller valgt den korrekte dato</p>\n </React.Fragment>\n )}\n </div>\n </div>\n </div>\n )}\n </React.Fragment>\n )\n }\n}\nexport default FlightSearchResult\n","import React, { Component } from \"react\"\nimport FlightSearchForm from \"../flight/flight-search-form\"\nimport FlightSearchResult from \"../flight/flight-search-result\"\n\nclass TravelGuideStep1 extends Component {\n state = {\n invalidData: false,\n }\n\n componentDidUpdate(prevPros) {\n const { departingFlightId, arrivingFlightId } = this.props\n if (prevPros.departingFlightId !== departingFlightId || prevPros.arrivingFlightId !== arrivingFlightId) this.setState({ invalidData: false })\n }\n\n handleLeaveStep1() {\n const { departingFlightId } = this.props\n if (departingFlightId?.length > 0) {\n this.props.stepButtonClickHandler({ activeStep: 2 })\n } else {\n this.setState({ invalidData: true })\n }\n }\n render() {\n const { config, activeTab, departureDate, arrivalDate, query, time, departingFlightId, arrivingFlightId } = this.props\n return (\n <React.Fragment>\n <div className=\"flights js--flights\">\n <header className=\"flights__header js--flights__header\">\n <div className=\"tab-panes tab-panes--two-tabs\">\n <nav className=\"tab-panes__navigation\">\n <div className={`tab-panes__navigation__primary ${config.tabsPaneBackgroundColor}`}>\n <div className=\"w--wider\">\n <div className=\"tab-panes__navigation__primary__inner\">\n <button className={`button button--toggle ${activeTab === 1 && \"is-active\"}`} onClick={() => this.props.tabClickHandler(1)}>\n <span className=\"icon\">\n <svg className=\"svg-icon svg-icon--planetakeoff\">\n <use xmlnsXlink=\"http://www.w3.org/1999/xlink\" xlinkHref=\"/dist/svg/symbols.svg#svg-planetakeoff\">\n \n </use>\n </svg>\n </span>\n <span className=\"text\">{config.firstTabName || \"Afrejse\"}</span>\n </button>\n <button className={`button button--toggle ${activeTab === 2 && \"is-active\"}`} onClick={() => this.props.tabClickHandler(2)}>\n <span className=\"icon\">\n <svg className=\"svg-icon svg-icon--planelanding\">\n <use xmlnsXlink=\"http://www.w3.org/1999/xlink\" xlinkHref=\"/dist/svg/symbols.svg#svg-planelanding\">\n \n </use>\n </svg>\n </span>\n <span className=\"text\">{config.secondTabName || \"Hjemkomst\"}</span>\n </button>\n </div>\n </div>\n </div>\n </nav>\n </div>\n\n <FlightSearchForm\n header={activeTab === 1 ? config.firstTabSearchHeader : config.secondTabSearchHeader}\n query={query}\n config={config}\n minDate={activeTab === 1 ? departureDate : arrivalDate}\n selectedDate={activeTab === 1 ? departureDate : arrivalDate}\n time={time}\n activeTab={activeTab}\n departingFlightId={departingFlightId}\n arrivingFlightId={arrivingFlightId}\n dateChangeHandler={this.props.dateChangeHandler.bind(this)}\n timeChangeHandler={this.props.timeChangeHandler.bind(this)}\n queryChangeHandler={this.props.queryChangeHandler.bind(this)}\n searchClickHandler={this.props.searchClickHandler.bind(this)}\n writeToState={this.props.writeToState.bind(this)}\n />\n </header>\n\n <FlightSearchResult\n query={query}\n config={config}\n flights={activeTab === 1 ? this.props.departingFlights : this.props.arrivingFlights}\n chosenFlightId={activeTab === 1 ? this.props.departingFlightId : this.props.arrivingFlightId}\n activeTab={activeTab}\n buttonClickHandler={this.props.buttonClickHandler.bind(this)}\n stepButtonClickHandler={this.props.stepButtonClickHandler.bind(this)}\n />\n </div>\n\n <div className=\"w--wider\">\n {this.state.invalidData && (\n <div className=\"form\">\n <div className=\"form__section \">\n <div className=\"form__section__inner is-invalid \">\n <span className=\"form__notice align-center\">\n {config.noFlightChosenErrorText || \"Du skal mindst vælge én afrejse eller hjemrejse\"}\n </span>\n </div>\n </div>\n </div>\n )}\n <div className=\"button-container\">\n {this.props.activeTab === 2 ? (\n <React.Fragment>\n <button\n className={`button button--small rm-this-class rm-this-class-hide-default no-shadow ${\n config.goBackButtonBackgroundColor || \"button--general is-grey-text\"\n }`}\n onClick={() => this.props.stepButtonClickHandler({ activeTab: 1 })}\n >\n <span className=\"text strong\">{config.goBackButtonText || \"Tilbage\"}</span>\n </button>\n\n <button\n className={`button button--small rm-this-class rm-this-class-hide-default no-shadow ${\n config.nextButtonBackgroundColor || \"button--general is-blue-text\"\n }`}\n onClick={() => this.handleLeaveStep1()}\n >\n <span className=\"text strong\">{config.nextButtonText || \"Fortsæt\"}</span>\n </button>\n </React.Fragment>\n ) : (\n <button\n className={`button button--small rm-this-class rm-this-class-hide-default no-shadow ${\n config.nextButtonBackgroundColor || \"button--general is-blue-text\"\n }`}\n onClick={() => this.props.stepButtonClickHandler({ activeTab: 2 })}\n >\n <span className=\"text strong\">{config.nextButtonText || \"Fortsæt\"}</span>\n </button>\n )}\n </div>\n </div>\n </React.Fragment>\n )\n }\n}\nexport default TravelGuideStep1\n","import React, { Component } from \"react\"\nimport { Forms } from \"../../styleguide/js/components/forms\"\nclass TravelGuideStep2 extends Component {\n constructor(props) {\n super(props)\n this.formRef = React.createRef()\n this.state = {\n invalidData: false,\n travelsWithLuggage: undefined,\n travelsWithChildren: undefined,\n travelForm: undefined,\n doScrollToTop: true,\n }\n }\n componentDidMount() {\n const { travelsWithChildren, travelsWithLuggage, travelForm } = this.props\n if (travelsWithChildren || travelsWithChildren === false || travelsWithChildren === null) this.setState({ travelsWithChildren })\n if (travelsWithLuggage || travelsWithLuggage === false || travelsWithLuggage === null) this.setState({ travelsWithLuggage })\n if (travelForm || travelForm === null) this.setState({ travelForm })\n if (this.formRef.current) new Forms({ el: this.formRef.current })\n if (this.formRef.current) setTimeout(this.formRef.current.scrollIntoView({ behavior: \"smooth\", block: \"start\" }))\n }\n componentDidUpdate(prevPros) {\n const { travelsWithChildren, travelsWithLuggage, travelForm } = this.props\n if (prevPros.travelsWithChildren !== travelsWithChildren) this.setState({ travelsWithChildren })\n if (prevPros.travelsWithLuggage !== travelsWithLuggage) this.setState({ travelsWithLuggage })\n if (prevPros.travelForm !== travelForm) this.setState({ travelForm })\n if (this.formRef.current) new Forms({ el: this.formRef.current })\n if (this.formRef.current && this.state.doScrollToTop)\n this.setState({ doScrollToTop: false }, () => setTimeout(this.formRef.current.scrollIntoView({ behavior: \"smooth\", block: \"center\" })))\n }\n\n render() {\n const { config } = this.props\n const { invalidData, travelsWithChildren, travelsWithLuggage, travelForm } = this.state\n\n return (\n <React.Fragment>\n <div className=\"w--wider\">\n <div className=\"form form-padding-top\" ref={this.formRef}>\n <div className=\"w--wider\">\n <div className=\"form__section form__section--light\">\n <h4>{config.travelWithLuggageText || \"Rejser du med indchecket bagage\"}</h4>\n <div className=\"form__section__inner\">\n <div className=\"form__field form__field--radio is-bound\">\n <label className=\"form__label no-text-transform\">\n <input\n className=\"form__item \"\n name=\"travelsWithLuggage\"\n type=\"radio\"\n defaultChecked={travelsWithLuggage}\n onChange={() => this.props.writeToState({ travelsWithLuggage: true })}\n />\n <span className=\"form__label__text\">\n <span>{config.yesText || \"Ja\"}</span>\n </span>\n </label>\n </div>\n <div className=\"form__field form__field--radio is-bound\">\n <label className=\"form__label no-text-transform\">\n <input\n className=\"form__item \"\n name=\"travelsWithLuggage\"\n type=\"radio\"\n defaultChecked={travelsWithLuggage === false ? true : null}\n onChange={() => this.props.writeToState({ travelsWithLuggage: false })}\n />\n <span className=\"form__label__text \">\n <span>{config.noText || \"Nej\"}</span>\n </span>\n </label>\n </div>\n <div className=\"form__field form__field--radio is-bound\">\n <label className=\"form__label no-text-transform\">\n <input\n className=\"form__item \"\n name=\"travelsWithLuggage\"\n type=\"radio\"\n defaultChecked={travelsWithLuggage === null ? true : null}\n onChange={() => this.props.writeToState({ travelsWithLuggage: null })}\n />\n <span className=\"form__label__text \">\n <span>{config.doNotKnowText || \"Ved det ikke endnu\"}</span>\n </span>\n </label>\n </div>\n </div>\n </div>\n <div className=\"form__section form__section--light\">\n <h4>{config.transportToAirportText || \"Transport til lufhavnen\"}</h4>\n\n <div className={`form__field form__field--select is-bound ${travelForm && \"is-filled\"} ${invalidData && \"is-invalid\"}`}>\n <div className=\"form__container\">\n <span className=\"form__valid\" />\n <select\n id=\"travelForm\"\n className=\"form__item \"\n aria-label=\"Select menu\"\n value={travelForm}\n onChange={(e) => this.props.writeToState({ travelForm: e.currentTarget.value === null ? null : e.currentTarget.value })}\n >\n <option value=\"Bus\">{config.transportToAirportBusOptionText || \"Bus\"}</option>\n <option value=\"Driven by another\">{config.transportToAirportDriveOptionText || \"Kørt\"}</option>\n <option value=\"Private car (or motorcycle, scooter)\">{config.transportToAirportPrivateCarOptionText || \"Bil\"}</option>\n <option value=\"Flight (transit)\">{config.transportToAirportPlaneOptionText || \"Fly (transit)\"}</option>\n <option value=\"Metro\">{config.transportToAirportMetroOptionText || \"Metro\"}</option>\n <option value=\"Taxi\">{config.transportToAirportTaxiOptionText || \"Taxi\"}</option>\n <option value=\"Train\">{config.transportToAirportTrainOptionText || \"Tog\"}</option>\n <option value=\"Other\">{config.transportToAirportOtherOptionText || \"Anden\"}</option>\n <option value=\"null\">{config.doNotKnowText || \"Ved det ikke endnu\"}</option>\n </select>\n <label htmlFor=\"travelForm\" className=\"form__label\">\n <span className=\"form__label__text\">\n {config.transportToAirportDropdownLabel || \"Vælg transportform\"} <strong> </strong>\n </span>\n </label>\n </div>\n </div>\n </div>\n\n <div className=\"form__section form__section--light\">\n <h4>{config.travelWithChildrenText || \"Rejser du med børn\"}</h4>\n <div className=\"form__section__inner\">\n <div className=\"form__field form__field--radio is-bound\">\n <label className=\"form__label no-text-transform\">\n <input\n className=\"form__item \"\n name=\"travelsWithChildren\"\n type=\"radio\"\n defaultChecked={travelsWithChildren}\n onChange={() => this.props.writeToState({ travelsWithChildren: true })}\n />\n <span className=\"form__label__text\">\n <span>{config.yesText || \"Ja\"}</span>\n </span>\n </label>\n </div>\n <div className=\"form__field form__field--radio is-bound\">\n <label className=\"form__label no-text-transform\">\n <input\n className=\"form__item \"\n name=\"travelsWithChildren\"\n type=\"radio\"\n defaultChecked={travelsWithChildren === false ? true : null}\n onChange={() => this.props.writeToState({ travelsWithChildren: false })}\n />\n <span className=\"form__label__text\">\n <span>{config.noText || \"Nej\"}</span>\n </span>\n </label>\n </div>\n <div className=\"form__field form__field--radio is-bound\">\n <label className=\"form__label no-text-transform\">\n <input\n className=\"form__item \"\n name=\"travelsWithChildren\"\n type=\"radio\"\n defaultChecked={travelsWithChildren === null ? true : null}\n onChange={() => this.props.writeToState({ travelsWithChildren: null })}\n />\n <span className=\"form__label__text \">\n <span>{config.doNotKnowText || \"Ved det ikke endnu\"}</span>\n </span>\n </label>\n </div>\n </div>\n </div>\n <div className=\"button-container\">\n <button\n className={`button button--small rm-this-class rm-this-class-hide-default no-shadow ${\n config.goBackButtonBackgroundColor || \"button--general is-grey-text\"\n }`}\n onClick={() => this.props.stepButtonClickHandler({ activeStep: 1, activeTab: 2 })}\n >\n <span className=\"icon\">\n <svg className=\"svg-icon svg-icon--planeduo\">\n <use xmlnsXlink=\"http://www.w3.org/1999/xlink\" xlinkHref=\"/svg/symbols.svg#svg-planeduo\">\n \n </use>\n </svg>\n </span>\n <span className=\"text strong\">{config.goBackButtonText || \"Tilbage\"}</span>\n </button>\n <button\n className={`button button--small rm-this-class rm-this-class-hide-default no-shadow ${\n config.nextButtonBackgroundColor || \"button--general is-blue-text\"\n }`}\n onClick={() => this.props.stepButtonClickHandler({ activeStep: 3 })}\n >\n <span className=\"icon\">\n <svg className=\"svg-icon svg-icon--planeduo\">\n <use xmlnsXlink=\"http://www.w3.org/1999/xlink\" xlinkHref=\"/svg/symbols.svg#svg-planeduo\">\n \n </use>\n </svg>\n </span>\n <span className=\"text strong\">{config.nextButtonText || \"Fortsæt\"}</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n </React.Fragment>\n )\n }\n}\nexport default TravelGuideStep2\n","import React, { PureComponent } from \"react\"\n// eslint-disable-line no-unused-vars\n\nimport SvgSearch from \"../_svgs/small/Search\"\n\nimport \"./_form-elements.scss\"\nimport { Text } from \"../../styleguide/js/components/forms\"\n\nexport default class FormText extends PureComponent {\n constructor(props) {\n super(props)\n this.containerRef = React.createRef()\n this.textInput = React.createRef()\n }\n static defaultProps = {\n modifier: \"\",\n name: \"\",\n id: \"formText001\",\n formNotice: \"\",\n disabled: false,\n type: \"text\",\n placeholder: \"\",\n onChange: null,\n selected: 0,\n label: \"\",\n noLabel: false,\n isSearch: false,\n isInvalid: false,\n labelPositionTop: true,\n showFormNotice: false,\n }\n componentDidMount() {\n if (this.containerRef.current) new Text({ el: this.containerRef.current })\n }\n componentDidUpdate() {\n if (this.props.isInvalid) this.scrollToTextInput()\n }\n\n scrollToTextInput() {\n this.textInput.current.scrollIntoView({ behavior: \"smooth\", block: \"center\" })\n }\n\n render() {\n return (\n <div className={this.props.modifier} ref={this.containerRef}>\n {!this.props.noLabel && this.props.labelPositionTop && (\n <label className={this.props.labelModifier} htmlFor={this.props.id}>\n {this.props.label}\n </label>\n )}\n <input\n id={this.props.id}\n className={this.props.inputModifier}\n ref={this.textInput}\n name={this.props.name}\n disabled={this.props.disabled}\n type={this.props.type}\n value={this.props.value}\n placeholder={this.props.placeholder}\n onChange={this.props.onChange}\n />\n {!this.props.noLabel && !this.props.labelPositionTop && (\n <label className={this.props.labelModifier} htmlFor={this.props.id}>\n <span className=\"form__label__text\">{this.props.label}</span>\n </label>\n )}\n\n {this.props.isSearch && (\n <button>\n <SvgSearch />\n </button>\n )}\n\n {this.props.formNotice && this.props.showFormNotice && <p className=\"form-notice\">{this.props.formNotice}</p>}\n </div>\n )\n }\n}\n","import React, { Component } from \"react\"\nimport { isValidPhoneNumber } from \"react-phone-number-input\"\nimport * as endpoint from \"../../booking/constants/Endpoints\"\nimport axios from \"axios\"\nimport Spinner from \"../../booking/components/spinner\"\nimport Emitter from \"../../helpers/emitter\"\nimport * as emits from \"../../constants/emits\"\n\nexport default class PhoneNumberValidationField extends Component {\n constructor(props) {\n super(props)\n\n this.state = {\n phoneNumber: props.profile?.ContactDetails?.MobilePhone,\n isValid: true,\n profile: props.profile,\n mobilePhoneVerified: props.profile?.ContactDetails?.MobilePhoneVerified,\n verficationCodeSent: undefined,\n smsCodeValid: true,\n smsCode: undefined,\n hosts: document.body && document.body.dataset.hosts && JSON.parse(document.body.dataset.hosts),\n ajaxSpinnerActive: false,\n ajaxSpinnerTransparent: false,\n textKeys: props.textKeys,\n }\n }\n\n validatePhoneNumber = (phoneNumber) => {\n return isValidPhoneNumber(phoneNumber)\n }\n\n handlePhoneSubmit = () => {\n if (this.state.isValid) {\n this.setState({ ajaxSpinnerActive: true })\n const url = endpoint.UPDATE_PHONE(this.state.hosts, this.state.phoneNumber)\n axios\n .post(url)\n .then((res) => {\n this.setState({ verficationCodeSent: res.data.item1 })\n if (!res.data.item1) {\n // res.data.item2 is exception from endpoint\n throw this.state.textKeys?.phoneVerificationErrorHeadline || \"Der skete en fejl..\"\n }\n })\n .catch((error) => {\n this.setState({\n error,\n verficationCodeSent: false,\n })\n Emitter.emit(\"*\", {\n type: emits.REQUEST_CONTENT_MODAL_OPEN,\n modalJson: {\n usePortalStyling: true,\n h3: error || \"Der skete en fejl..\",\n richText: this.state.textKeys?.phoneVerificationErrorMessage || \"<p>Der skete en fejl med verificeringen af dit mobilnummer</p>\",\n },\n })\n })\n .finally(() => {\n this.setState({ ajaxSpinnerActive: false })\n })\n }\n }\n\n handleCodeSubmit = () => {\n if (this.state.smsCode.length !== 6) {\n this.setState({ smsCodeValid: false })\n } else {\n this.setState({ ajaxSpinnerActive: true })\n const url = endpoint.VERIFY_PHONE(this.state.hosts, this.state.smsCode)\n axios\n .post(url)\n .then((res) => {\n this.setState({ smsCodeValid: res.data.item1, mobilePhoneVerified: res.data.item1 })\n if (!res.data.item1) {\n // res.data.item2 is exception from endpoint\n throw this.state.textKeys?.smsCodeVerificationErrorHeadline || \"Der skete en fejl..\"\n }\n })\n .catch((error) => {\n this.setState({\n error,\n smsCodeValid: false,\n mobilePhoneVerified: false,\n })\n Emitter.emit(\"*\", {\n type: emits.REQUEST_CONTENT_MODAL_OPEN,\n modalJson: {\n usePortalStyling: true,\n h3: error || \"Der skete en fejl..\",\n richText: this.state.textKeys?.smsCodeVerificationErrorMessage || \"<p>Der skete en fejl med verificeringen af din SMS kode</p>\",\n },\n })\n })\n .finally(() => {\n this.setState({ ajaxSpinnerActive: false })\n })\n }\n }\n\n changePhoneNumberClick = () => {\n this.setState({ verficationCodeSent: false, smsCodeValid: true })\n }\n\n render() {\n const { textKeys } = this.props\n const codeSent =\n textKeys?.smsCodeSentMessage.replace(\"{phone}\", this.state.phoneNumber) || `Vi har sendt en SMS kode til ${this.state.phoneNumber}`\n const phoneValidated =\n textKeys?.verifiedPhoneMessage.replace(\"{phone}\", this.state.phoneNumber) ||\n `Telefon ${this.state.phoneNumber} valideret. Ret telefonnummer på `\n return !this.state.mobilePhoneVerified ? (\n <React.Fragment>\n <Spinner isActive={this.state.ajaxSpinnerActive} isTransparent={this.state.ajaxSpinnerTransparent} />\n {!this.state.verficationCodeSent ? (\n <React.Fragment>\n <div\n className={`form__field form__field--text is-filled ${\n this.state.isValid && this.state.phoneNumber ? \"is-valid\" : this.state.isValid ? \"\" : \"is-invalid\"\n } is-bound`}\n >\n <span className=\"form__valid\"></span>\n <input\n className=\"form__item \"\n type=\"text\"\n value={this.state.phoneNumber ? this.state.phoneNumber : \"\"}\n placeholder={this.props.placeholder}\n onChange={(e) => this.setState({ phoneNumber: e.target.value, isValid: this.validatePhoneNumber(e.target.value) })}\n />\n <label className=\"form__label\">\n <span className=\"form__label__text\">\n {textKeys?.phoneNumberLabel || \"Telefonnummer\"} <strong> </strong>\n </span>\n </label>\n <span className={`form__notice ${this.state.isValid && this.state.phoneNumber ? \"form__notice--box\" : \"\"}`}>\n {this.state.isValid && this.state.phoneNumber\n ? textKeys?.validPhoneMessage || \"Telefonnummeret er korrekt, bekræft med SMS kode\"\n : this.state.isValid\n ? textKeys?.inputPhoneMessage || \"Skriv mobilnummer med landekode og valider vis SMS\"\n : textKeys?.invalidPhoneMessage || \"Ugyldigt mobilnummer, husk landekode\"}\n </span>\n </div>\n {this.state.isValid && this.state.phoneNumber ? (\n <div className={\"cta-button\"}>\n <a className=\"button button--small button--general\" onClick={() => this.handlePhoneSubmit()}>\n <span className=\"text\">{textKeys?.confirmButton || \"Send SMS\"}</span>\n </a>\n </div>\n ) : (\n \"\"\n )}\n </React.Fragment>\n ) : (\n <React.Fragment>\n <div className={`form__field`}>\n <p>\n {codeSent} -{\" \"}\n <a className={\"link-style\"} onClick={() => this.changePhoneNumberClick()}>\n {textKeys?.editNumberLabel || \"Ret Telefonnummer\"}\n </a>\n </p>\n </div>\n <div\n className={`form__field form__field--text is-filled ${\n this.state.smsCodeValid && this.state.smsCode ? \"is-valid\" : this.state.smsCodeValid ? \"\" : \"is-invalid\"\n } is-bound`}\n >\n <span className=\"form__valid\"></span>\n <input className=\"form__item \" type=\"text\" placeholder={\"123456\"} onChange={(e) => this.setState({ smsCode: e.target.value })} />\n <label className=\"form__label\">\n <span className=\"form__label__text\">\n {textKeys?.smsCodeLabel || \"SMS Kode\"} <strong> </strong>\n </span>\n </label>\n {!this.state.smsCodeValid ? (\n <span className={`form__notice form__notice--box`}>{textKeys?.smsCodeWrongMessage || \"FORKERT SMS KODE\"}</span>\n ) : (\n \"\"\n )}\n </div>\n <div className={\"cta-button\"}>\n <a className=\"button button--small button--general\" onClick={() => this.handleCodeSubmit()}>\n <span className=\"text\">{textKeys?.confirmSMSCodeLabel || \"Bekræft\"}</span>\n </a>\n \n {!this.state.smsCodeValid ? (\n <a className=\"button button--small button--general\" onClick={() => this.handlePhoneSubmit()}>\n <span className=\"text\">{textKeys?.sendNewSMS || \"Send ny SMS\"}</span>\n </a>\n ) : (\n \"\"\n )}\n </div>\n </React.Fragment>\n )}\n </React.Fragment>\n ) : (\n <React.Fragment>\n <div className={`form__field`}>\n <p>\n {phoneValidated}\n <a className={\"link-style\"} href={textKeys?.profilePageLink || \"/min-side/profilside\"}>\n {textKeys?.profilePageLabel || \"min profilside\"}\n </a>\n </p>\n </div>\n </React.Fragment>\n )\n }\n}\n","import React, { Component } from \"react\"\nimport FormText from \"../form-elements/form-text\"\nimport * as htmlHelper from \"../../helpers/html\"\nimport { isValidPhoneNumber } from \"react-phone-number-input\"\nimport * as dateHelper from \"../../booking/helpers/date\"\nimport PhoneNumberValidationField from \"../phone-number-validation-field/phone-number-validation-field\"\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\nclass TravelGuideStep3 extends Component {\n constructor(props) {\n super(props)\n this.checkboxRef = React.createRef()\n this.state = {\n invalidData: false,\n termsCondition: false,\n inputElementIdInFocus: \"\",\n }\n }\n componentDidMount() {\n if (this.props.profile && Object.keys(this.props.profile).length > 0) {\n this.props.writeToState({ email: this.props.profile.EmailAddress })\n this.props.writeToState({ mobile: this.props.profile.ContactDetails?.MobilePhone })\n this.props.writeToState({ mobilePhoneVerified: this.props.profile.ContactDetails?.MobilePhoneVerified })\n this.setState({ termsCondition: this.props.profile.ContactDetails?.NewsletterSubscription })\n }\n }\n componentDidUpdate(prevPros, prevState) {\n if (prevPros.profile !== this.props.profile) {\n this.props.writeToState({ email: this.props.profile.EmailAddress })\n this.props.writeToState({ mobile: this.props.profile.ContactDetails?.MobilePhone })\n this.setState({ termsCondition: this.props.profile.ContactDetails?.NewsletterSubscription })\n }\n\n if (prevState.inputElementIdInFocus !== this.state.inputElementIdInFocus) {\n if (this.state.inputElementIdInFocus === \"checkbox\") this.checkboxRef.current.scrollIntoView({ behavior: \"smooth\", block: \"center\" })\n }\n }\n\n handleInputChange(data) {\n this.setState({ invalidData: false }, () => this.props.writeToState(data))\n }\n\n handleSubmit() {\n const { email, mobile, arrivingFlightId, departingFlightId } = this.props\n const { termsCondition } = this.state\n const validEmail = email && emailValidatingRegex.test(email)\n let data = {\n invalidData: true,\n }\n if (termsCondition && email && email.length > 0 && validEmail) {\n if (arrivingFlightId?.length > 0 || departingFlightId?.length > 0) {\n if (mobile && mobile.length > 3) {\n if (isValidPhoneNumber(mobile)) {\n this.props.submitHandler()\n return\n } else {\n data.inputElementIdInFocus = \"phoneNumber\"\n }\n } else {\n this.props.submitHandler()\n return\n }\n }\n } else {\n if (!termsCondition) data.inputElementIdInFocus = \"checkbox\"\n if (!mobile || (mobile?.length > 3 && !isValidPhoneNumber(mobile))) data.inputElementIdInFocus = \"mobile\"\n if (!email || email?.length === 0 || (email?.length > 0 && !validEmail)) data.inputElementIdInFocus = \"email\"\n }\n this.setState({ ...data })\n }\n\n handleTermsConditionClick(checked) {\n this.setState({ termsCondition: checked })\n }\n\n getTravelFormTranslation(option) {\n const { config } = this.props\n let translation = \"\"\n const formattedOption = option.toLowerCase().replace(/\\s/g, \"\")\n switch (formattedOption) {\n case \"bus\":\n translation = config.transportToAirportBusOptionText || \"Bus\"\n break\n case \"drivenbyanother\":\n translation = config.transportToAirportDriveOptionText || \"Kørt\"\n break\n case \"privatecar(ormotorcycle,scooter)\":\n translation = config.transportToAirportPrivateCarOptionText || \"Privat bil (eller motorcykel, knallert)\"\n break\n case \"flight(transit)\":\n translation = config.transportToAirportPlaneOptionText || \"Fly (transit)\"\n break\n case \"metro\":\n translation = config.transportToAirportMetroOptionText || \"Metro\"\n break\n case \"taxi\":\n translation = config.transportToAirportTaxiOptionText || \"Taxi\"\n break\n case \"train\":\n translation = config.transportToAirportTrainOptionText || \"Tog\"\n break\n case \"other\":\n translation = config.transportToAirportOtherOptionText || \"Anden\"\n break\n case \"null\":\n case null:\n translation = config.doNotKnowText || \"Ved det ikke endnu\"\n break\n }\n return translation\n }\n render() {\n const { invalidData, termsCondition, inputElementIdInFocus } = this.state\n const { departingFlight, arrivingFlight } = this.props\n const { travelsWithChildren, travelsWithLuggage, travelForm, config, email, mobile } = this.props\n const departingTime = departingFlight && dateHelper.formatDate(departingFlight.ScheduledTime, \"HH.mm\", \"da\")\n const departingDate = departingFlight && dateHelper.formatDate(departingFlight.ScheduledTime, \"DD.MM.YYYY\", \"da\")\n const arrivingTime = arrivingFlight && dateHelper.formatDate(arrivingFlight.ScheduledTime, \"HH.mm\", \"da\")\n const arrivingDate = arrivingFlight && dateHelper.formatDate(arrivingFlight.ScheduledTime, \"DD.MM.YYYY\", \"da\")\n const validEmail = email && emailValidatingRegex.test(email)\n\n return (\n <React.Fragment>\n <div className=\"w--wider\">\n <div className=\"form form-padding-top\">\n {this.props.profile && this.props.email ? (\n \"\"\n ) : (\n <div className=\"form__section\">\n <h4>{config.emailText || \"Email\"}</h4>\n <div className=\"form__section__inner\">\n <FormText\n id=\"emailInput\"\n name=\"email\"\n type=\"email\"\n modifier={`form__field form__field--text ${email?.length > 0 && \"is-filled\"} ${\n (!email && invalidData) || (invalidData && !validEmail) ? \"is-invalid\" : \"\"\n }`}\n onChange={(e) => this.handleInputChange({ email: e.currentTarget.value })}\n label={config.emailPlaceholderText || \"Indtast e-mail\"}\n labelModifier={\"form__label\"}\n inputModifier={\"form__item\"}\n formNotice={config.emailErrorText || \"Ugyldig email\"}\n isInvalid={(!email && invalidData) || (invalidData && !validEmail)}\n showFormNotice={(!email && invalidData) || (invalidData && !validEmail)}\n labelPositionTop={false}\n isFocus={inputElementIdInFocus === \"email\"}\n />\n </div>\n </div>\n )}\n\n {this.props.profile ? (\n <div className=\"form__section\">\n <h4>{config.mobileText || \"Mobilnummer\"}</h4>\n <div className=\"form__section__inner\">\n <PhoneNumberValidationField placeholder={\"+45\"} profile={this.props.profile} textKeys={config.phoneValidationField} />\n </div>\n </div>\n ) : (\n <div className=\"form__section\">\n <h4>{config.mobileText || \"Mobilnummer\"}</h4>\n <div className=\"form__section__inner\">\n <FormText\n id=\"phoneNumberInput\"\n name=\"phoneNumber\"\n type=\"tel\"\n placeholder={\"+45\"}\n modifier={`form__field form__field--text is-filled ${mobile && invalidData && !isValidPhoneNumber(mobile) ? \"is-invalid\" : \"\"}`}\n onChange={(e) => this.handleInputChange({ mobile: e.currentTarget.value })}\n label={config.mobilePlaceholderText || \"Indtast mobilnummer\"}\n labelModifier={\"form__label\"}\n inputModifier={\"form__item\"}\n formNotice={config.mobileErrorText || \"Mobilnummeret ugyldigt, husk det skal indeholde en landekode (+45)\"}\n isInvalid={mobile && invalidData && !isValidPhoneNumber(mobile)}\n showFormNotice={mobile && invalidData && !isValidPhoneNumber(mobile)}\n labelPositionTop={false}\n isFocus={inputElementIdInFocus === \"phoneNumber\"}\n />\n </div>\n </div>\n )}\n\n {this.props.profile && this.state.termsCondition ? (\n \"\"\n ) : (\n <div className=\"form__section\">\n <div className=\"form__section__inner\">\n <div ref={this.checkboxRef} className={`form__field form__field--checkbox ${!termsCondition && invalidData ? \"is-invalid\" : \"\"}`}>\n <label className=\"form__label\">\n <input\n className=\"form__item \"\n id=\"terms_conditions\"\n name=\"check-name\"\n type=\"checkbox\"\n defaultChecked={false}\n onClick={(e) => this.handleTermsConditionClick(e.currentTarget.checked)}\n />\n <span className=\"form__label__text\">\n {(config.termsConditionText && htmlHelper.htmlStringToReactElement(config.termsConditionText)) || (\n <React.Fragment>\n <h5>\n Vi guider dig trygt gennem lufthavnen og på din rejse <strong> </strong>\n </h5>\n <p>\n Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem\n ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum\n dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet...\n </p>\n </React.Fragment>\n )}\n </span>\n </label>\n </div>\n </div>\n </div>\n )}\n </div>\n <div className=\"flights-block deck--grey_v2 style_v2\">\n {departingFlight && (\n <div className=\"flight-tile\">\n <div className=\"title\">\n {config.firstTabName || \"Afrejse\"} {departingFlight.Flight}\n </div>\n <span className=\"small-text strong\">{departingFlight.DestinationName}</span>\n <span className=\"small-text\">\n {departingFlight.CarrierName}, {departingDate} kl. {departingTime}\n </span>\n </div>\n )}\n {arrivingFlight && (\n <div className=\"flight-tile\">\n <div className=\"title\">\n {config.secondTabName || \"Hjemrejse\"} {arrivingFlight.Flight}\n </div>\n <span className=\"small-text strong\">{arrivingFlight.DestinationName}</span>\n <span className=\"small-text\">\n {arrivingFlight.CarrierName}, {arrivingDate} kl. {arrivingTime}\n </span>\n </div>\n )}\n {(travelsWithLuggage !== undefined || travelForm !== undefined || travelsWithChildren !== undefined) && (\n <div className=\"flight-options small-text\">\n {travelsWithLuggage !== undefined && (\n <div className=\"flight-option\">\n <span className=\"left\">{config.travelWithLuggageText || \"Rejser du med indchecket bagage\"}:</span>\n <span className=\"right strong\">\n {travelsWithLuggage\n ? config.yesText || \"Ja\"\n : travelsWithLuggage === null\n ? config.doNotKnowText || \"Ved det ikke endnu\"\n : config.noText || \"Nej\"}{\" \"}\n </span>\n </div>\n )}\n {travelForm !== undefined && (\n <div className=\"flight-option\">\n <span className=\"left\">{config.transportToAirportText || \"Transport til lufhavnen\"}:</span>\n <span className=\"right strong\">{this.getTravelFormTranslation(travelForm)}</span>\n </div>\n )}\n {travelsWithChildren !== undefined && (\n <div className=\"flight-option\">\n <span className=\"left\">{config.travelWithChildrenText || \"Rejser du med børn\"}:</span>\n <span className=\"right strong\">\n {travelsWithChildren\n ? config.yesText || \"Ja\"\n : travelsWithChildren === null\n ? config.doNotKnowText || \"Ved det ikke endnu\"\n : config.noText || \"Nej\"}\n </span>\n </div>\n )}\n </div>\n )}\n </div>\n <div className=\"button-container\">\n <button\n className={`button button--small rm-this-class rm-this-class-hide-default no-shadow ${\n config.goBackButtonBackgroundColor || \"button--general is-grey-text\"\n }`}\n onClick={() => this.props.stepButtonClickHandler({ activeStep: 2 })}\n >\n <span className=\"icon\">\n <svg className=\"svg-icon svg-icon--planeduo\">\n <use xmlnsXlink=\"http://www.w3.org/1999/xlink\" xlinkHref=\"/svg/symbols.svg#svg-planeduo\">\n \n </use>\n </svg>\n </span>\n <span className=\"text strong\">{config.goBackButtonText || \"Tilbage\"}</span>\n </button>\n <button\n className={`button button--small rm-this-class rm-this-class-hide-default no-shadow ${\n config.subscribeSubmitButtonBackgroundColor || \"button--general is-blue-text\"\n }`}\n onClick={() => this.handleSubmit()}\n >\n <span className=\"icon\">\n <svg className=\"svg-icon svg-icon--planeduo\">\n <use xmlnsXlink=\"http://www.w3.org/1999/xlink\" xlinkHref=\"/svg/symbols.svg#svg-planeduo\">\n \n </use>\n </svg>\n </span>\n <span className=\"text strong\">{config.subscribeSubmitButtonText || \"Bekræft meldning\"}</span>\n </button>\n </div>\n </div>\n </React.Fragment>\n )\n }\n}\nexport default TravelGuideStep3\n","import React, { Component } from \"react\"\nimport * as dateHelper from \"../../booking/helpers/date\"\nimport * as htmlHelper from \"../../helpers/html\"\n\nclass TravelGuideStep4 extends Component {\n getTravelFormTranslation(option) {\n const { config } = this.props\n let translation = \"\"\n const formattedOption = option.toLowerCase().replace(/\\s/g, \"\")\n switch (formattedOption) {\n case \"bus\":\n translation = config.transportToAirportBusOptionText || \"Bus\"\n break\n case \"drivenbyanother\":\n translation = config.transportToAirportDriveOptionText || \"Kørt\"\n break\n case \"privatecar(ormotercycle,scooter)\":\n translation = config.transportToAirportPrivateCarOptionText || \"Privat bil (eller motorcykel, knallert)\"\n break\n case \"flight(transit)\":\n translation = config.transportToAirportPlaneOptionText || \"Fly (transit)\"\n break\n case \"metro\":\n translation = config.transportToAirportMetroOptionText || \"Metro\"\n break\n case \"taxi\":\n translation = config.transportToAirportTaxiOptionText || \"Taxi\"\n break\n case \"train\":\n translation = config.transportToAirportTrainOptionText || \"Tog\"\n break\n case \"other\":\n translation = config.transportToAirportOtherOptionText || \"Anden\"\n break\n default:\n translation = config.doNotKnowText || \"Ved det ikke endnu\"\n break\n }\n return translation\n }\n render() {\n const { departingFlight, arrivingFlight } = this.props\n const { travelsWithChildren, travelsWithLuggage, travelForm, config } = this.props\n const departingTime = departingFlight && dateHelper.formatDate(departingFlight.ScheduledTime, \"HH.mm\", \"da\")\n const departingDate = departingFlight && dateHelper.formatDate(departingFlight.ScheduledTime, \"DD.MM.YYYY\", \"da\")\n const arrivingTime = arrivingFlight && dateHelper.formatDate(arrivingFlight.ScheduledTime, \"HH.mm\", \"da\")\n const arrivingDate = arrivingFlight && dateHelper.formatDate(arrivingFlight.ScheduledTime, \"DD.MM.YYYY\", \"da\")\n return (\n <React.Fragment>\n <div className=\"flight-header w--narrow style_v2\">\n {(config.confirmationSubHeaderText && htmlHelper.htmlStringToReactElement(config.confirmationSubHeaderText)) || (\n <React.Fragment>\n <h3>Din rejse</h3>\n <p className=\"rich-text\">\n Her kan du se din rejse. Vil du ændre i dine rejser eller informationer, kan du gøre det nu. Vi glæder os til at sende dig godt og\n trygt afsted.\n </p>\n </React.Fragment>\n )}\n </div>\n <div className=\"flights-block deck--grey_v2 style_v2\">\n {departingFlight && (\n <div className=\"flight-tile\">\n <div className=\"title\">\n {config.firstTabName || \"Afrejse\"} {departingFlight.Flight}\n </div>\n <span className=\"small-text strong\">{departingFlight.DestinationName}</span>\n <span className=\"small-text\">\n {departingFlight.CarrierName}, {departingDate} kl. {departingTime}\n </span>\n </div>\n )}\n {arrivingFlight && (\n <div className=\"flight-tile\">\n <div className=\"title\">\n {config.secondTabName || \"Hjemrejse\"} {arrivingFlight.Flight}\n </div>\n <span className=\"small-text strong\">{arrivingFlight.DestinationName}</span>\n <span className=\"small-text\">\n {arrivingFlight.CarrierName}, {arrivingDate} kl. {arrivingTime}\n </span>\n </div>\n )}\n <div className=\"flight-options small-text\">\n {travelsWithLuggage !== undefined && (\n <div className=\"flight-option\">\n <span className=\"left\">{config.travelWithLuggageText || \"Rejser du med indchecket bagage\"}:</span>\n <span className=\"right strong\">\n {travelsWithLuggage\n ? config.yesText || \"Ja\"\n : travelsWithLuggage === null\n ? config.doNotKnowText || \"Ved det ikke endnu\"\n : config.noText || \"Nej\"}{\" \"}\n </span>\n </div>\n )}\n {travelForm !== undefined && (\n <div className=\"flight-option\">\n <span className=\"left\">{config.transportToAirportText || \"Transport til lufhavnen\"}:</span>\n <span className=\"right strong\">{this.getTravelFormTranslation(travelForm)}</span>\n </div>\n )}\n {travelsWithChildren !== undefined && (\n <div className=\"flight-option\">\n <span className=\"left\">{config.travelWithChildrenText || \"Rejser du med børn\"}:</span>\n <span className=\"right strong\">\n {travelsWithChildren\n ? config.yesText || \"Ja\"\n : travelsWithChildren === null\n ? config.doNotKnowText || \"Ved det ikke endnu\"\n : config.noText || \"Nej\"}\n </span>\n </div>\n )}\n </div>\n </div>\n <div className=\"button-container\">\n <a\n className={`button button--small rm-this-class rm-this-class-hide-default no-shadow ${\n config.confirmationCompleteButtonBackgroundColor || \"button--general is-blue-text\"\n }`}\n href={config.confirmationCompleteButtonUrl}\n >\n <span className=\"icon\">\n <svg className=\"svg-icon svg-icon--planeduo\">\n <use xmlnsXlink=\"http://www.w3.org/1999/xlink\" xlinkHref=\"/svg/symbols.svg#svg-planeduo\">\n \n </use>\n </svg>\n </span>\n <span className=\"text strong\">{config.confirmationCompleteButtonText || \"Forbered dig til rejsen\"}</span>\n </a>\n </div>\n </React.Fragment>\n )\n }\n}\nexport default TravelGuideStep4\n","export const SESSION_STORAGE_CLICK_PRODUCTS = \"CPH:SESSION_STORAGE_CLICK_PRODUCTS\"\nexport const SESSION_STORAGE_CLOSED_DESTINATION_MODAL = \"CPH:CLOSED_DESTINATION_MODAL\"\nexport const SESSION_STORAGE_DEPARTING_FLIGHTS = \"CPH:DEPARTING_FLIGHTS\"\nexport const SESSION_STORAGE_ARRIVING_FLIGHTS = \"CPH:ARRIVING_FLIGHTS\"\n","import React, { Component } from \"react\"\nimport * as htmlHelper from \"../../helpers/html\"\n\nclass HeroOverlap extends Component {\n render() {\n const { heroOverlap } = this.props\n return (\n <section className={`deck deck--top ${heroOverlap.bottomPadding || \"\"} ${heroOverlap.sectionBackgroundColor || \"\"}`}>\n <div className=\"hero hero__overlap style_v2\">\n <span className=\"hero__image\" style={{ backgroundImage: `url(${heroOverlap.backgroundImageUrl})` }}>\n <img src={heroOverlap.backgroundImageUrl} alt=\"\" />\n </span>\n <div className=\"rich-text hero__text__overlap\">\n {heroOverlap.imageHeading && htmlHelper.htmlStringToReactElement(heroOverlap.imageHeading)}\n </div>\n\n {!heroOverlap.label && !heroOverlap.heading && !heroOverlap.body ? null : (\n <div className={`hero__content hero__content__overlap ${heroOverlap.backgroundColor}`}>\n <h6>{heroOverlap.label && htmlHelper.htmlStringToReactElement(heroOverlap.label)}</h6>\n <div>{heroOverlap.heading && htmlHelper.htmlStringToReactElement(heroOverlap.heading)}</div>\n <div className=\"rich-text\">{heroOverlap.body && htmlHelper.htmlStringToReactElement(heroOverlap.body)}</div>\n </div>\n )}\n </div>\n </section>\n )\n }\n}\nexport default HeroOverlap\n","import React, { Component } from \"react\"\nimport * as dateHelper from \"../../booking/helpers/date\"\nimport * as endpoints from \"../../api/endpoints\"\nimport TravelGuideStep1 from \"./travel-guide-step1\"\nimport { getQueryStringValue, setQueryStringValue, setQueryStringValueWithPushState } from \"../../api/queryStringHelper\"\nimport TravelGuideStep2 from \"./travel-guide-step2\"\nimport TravelGuideStep3 from \"./travel-guide-step3\"\nimport TravelGuideStep4 from \"./travel-guide-step4\"\nimport * as keys from \"../../constants/keys\"\nimport HeroOverlap from \"../hero/hero-overlap\"\nimport { UserProfile } from \"../../hooks/userProfile\"\nimport Spinner from \"../../booking/components/spinner\"\nimport Emitter from \"../../helpers/emitter\"\nimport * as emits from \"../../constants/emits\"\nimport * as trackingHelper from \"../../helpers/tracking\"\n\nclass TravelGuide extends Component {\n constructor(props) {\n super(props)\n this.containerRef = React.createRef()\n this.state = {\n activeTab: parseInt(getQueryStringValue(\"at\")) || 1,\n activeStep: parseInt(getQueryStringValue(\"as\")) || 1,\n departureDate: getQueryStringValue(\"dd\") || \"\",\n arrivalDate: getQueryStringValue(\"ad\") || \"\",\n departureQuery: getQueryStringValue(\"dq\") || \"\",\n arrivalQuery: getQueryStringValue(\"aq\") || \"\",\n query: getQueryStringValue(\"q\") || \"\",\n time: \"00:00\",\n arrivingFlights: [],\n departingFlights: [],\n departingFlightId: getQueryStringValue(\"df\") || \"\",\n arrivingFlightId: getQueryStringValue(\"af\") || \"\",\n travelForm: getQueryStringValue(\"tf\") || undefined,\n travelsWithChildren:\n getQueryStringValue(\"twc\") === \"true\"\n ? true\n : getQueryStringValue(\"twc\") === \"false\"\n ? false\n : getQueryStringValue(\"twc\") === \"null\"\n ? null\n : undefined,\n travelsWithLuggage:\n getQueryStringValue(\"twl\") === \"true\"\n ? true\n : getQueryStringValue(\"twl\") === \"false\"\n ? false\n : getQueryStringValue(\"twl\") === \"null\"\n ? null\n : undefined,\n heroOverlap: undefined,\n ajaxSpinnerActive: false,\n }\n }\n normalizeDate = (dateString) => dateHelper.formatDate(dateHelper.getDateFromFormat(dateString, \"DD / MM / YYYY\"), \"YYYY-MM-DD\", \"da\")\n\n componentDidMount() {\n const { config } = this.props\n let { departureDate } = this.state\n if (!departureDate) {\n const date = new Date()\n departureDate = dateHelper.formatDate(date, \"YYYY-MM-DD\", \"da\")\n this.setState({ departureDate })\n } else {\n // prefilled from querystring\n this.handleSearchClick()\n }\n if (this.state.activeStep === 1 && this.state.activeTab === 1) {\n this.handleSearchClick()\n }\n if (config && this.state.activeStep) {\n switch (this.state.activeStep) {\n case 1:\n this.setState({ heroOverlap: config?.heroOverlapBlockStep1ViewModel })\n break\n case 2:\n this.setState({ heroOverlap: config?.heroOverlapBlockStep2ViewModel })\n break\n case 3:\n this.setState({ heroOverlap: config?.heroOverlapBlockStep3ViewModel })\n break\n case 4:\n this.setState({ heroOverlap: config?.heroOverlapBlockStep4ViewModel })\n break\n }\n }\n const { departingFlightId, arrivingFlightId } = this.state\n if (departingFlightId) {\n const departingFlights =\n sessionStorage.getItem(keys.SESSION_STORAGE_DEPARTING_FLIGHTS) && JSON.parse(sessionStorage.getItem(keys.SESSION_STORAGE_DEPARTING_FLIGHTS))\n const departingFlight = departingFlights?.find((x) => x.RecordId === departingFlightId)\n this.setState({ departingFlight })\n }\n if (arrivingFlightId) {\n const arrivingFlights =\n sessionStorage.getItem(keys.SESSION_STORAGE_ARRIVING_FLIGHTS) && JSON.parse(sessionStorage.getItem(keys.SESSION_STORAGE_ARRIVING_FLIGHTS))\n const arrivingFlight = arrivingFlights?.find((x) => x.RecordId === arrivingFlightId)\n this.setState({ arrivingFlight })\n }\n\n window.addEventListener(\"popstate\", () => {\n this.setState({\n departureDate: getQueryStringValue(\"dd\") || \"\",\n arrivalDate: getQueryStringValue(\"ad\") || \"\",\n departureQuery: getQueryStringValue(\"dq\") || \"\",\n arrivalQuery: getQueryStringValue(\"aq\") || \"\",\n activeTab: parseInt(getQueryStringValue(\"at\")) || 1,\n activeStep: parseInt(getQueryStringValue(\"as\")) || 1,\n query: getQueryStringValue(\"q\") || \"\",\n departingFlightId: getQueryStringValue(\"df\") || \"\",\n arrivingFlightId: getQueryStringValue(\"af\") || \"\",\n travelForm: getQueryStringValue(\"tf\") || null,\n travelsWithChildren:\n getQueryStringValue(\"twc\") === \"true\"\n ? true\n : getQueryStringValue(\"twc\") === \"false\"\n ? false\n : getQueryStringValue(\"twc\") === \"null\"\n ? null\n : undefined,\n travelsWithLuggage:\n getQueryStringValue(\"twl\") === \"true\"\n ? true\n : getQueryStringValue(\"twl\") === \"false\"\n ? false\n : getQueryStringValue(\"twl\") === \"null\"\n ? null\n : undefined,\n })\n })\n }\n componentDidUpdate(prevProps, prevState) {\n const newState = { ...this.state }\n if (prevState.activeTab !== this.state.activeTab) {\n if (this.state.activeTab === 2) {\n let arrivalDate = this.state.arrivalDate\n if (!arrivalDate) {\n arrivalDate = dateHelper.formatDate(dateHelper.AddDays(this.state.departureDate, 7), \"YYYY-MM-DD\", \"da\")\n }\n let arrivalQuery = this.state.arrivalQuery\n if (!arrivalQuery || arrivalQuery === \"\") {\n if (this.state.departingFlight) {\n arrivalQuery = this.state.departingFlight.Destination.split(/[^a-zA-Z0-9 ]/)[0]\n } else {\n arrivalQuery = this.state.query\n }\n }\n newState.arrivalDate = arrivalDate\n newState.arrivalQuery = arrivalQuery\n newState.query = arrivalQuery\n\n const arrivingFlightId = this.state.arrivingFlightId\n if (arrivingFlightId) {\n const arrivingFlights =\n sessionStorage.getItem(keys.SESSION_STORAGE_ARRIVING_FLIGHTS) && JSON.parse(sessionStorage.getItem(keys.SESSION_STORAGE_ARRIVING_FLIGHTS))\n const arrivingFlight = arrivingFlights?.find((x) => x.RecordId === arrivingFlightId)\n if (arrivingFlight) newState.arrivingFlight = arrivingFlight\n }\n this.setState(newState, () => this.handleSearchClick())\n } else {\n if (this.state.departureDate) newState.date = this.state.departureDate\n let departureQuery = this.state.departureQuery\n if (!departureQuery) {\n departureQuery = this.state.query\n }\n newState.departureQuery = departureQuery\n newState.departureQuery = departureQuery\n newState.query = departureQuery\n\n this.setState(newState, () => this.handleSearchClick())\n }\n }\n if (prevState.activeStep !== this.state.activeStep) {\n this.scrollToContainer()\n }\n this.applyStateToQueryParams(prevState, newState)\n }\n\n applyStateToQueryParams(prevState, newState) {\n if (prevState.departureDate !== newState.departureDate) setQueryStringValue(\"dd\", newState.departureDate)\n if (prevState.arrivalDate !== newState.arrivalDate) setQueryStringValue(\"ad\", newState.arrivalDate)\n if (prevState.departureQuery !== newState.departureQuery) setQueryStringValue(\"dq\", newState.departureQuery)\n if (prevState.arrivalQuery !== newState.arrivalQuery) setQueryStringValue(\"aq\", newState.arrivalQuery)\n if (prevState.activeTab !== newState.activeTab) setQueryStringValueWithPushState(\"at\", newState.activeTab)\n if (prevState.activeStep !== newState.activeStep) setQueryStringValueWithPushState(\"as\", newState.activeStep)\n if (prevState.query !== newState.query) setQueryStringValue(\"q\", newState.query)\n if (prevState.arrivingFlightId !== newState.arrivingFlightId) setQueryStringValue(\"af\", newState.arrivingFlightId)\n if (prevState.departingFlightId !== newState.departingFlightId) setQueryStringValue(\"df\", newState.departingFlightId)\n if (prevState.travelForm !== newState.travelForm) setQueryStringValue(\"tf\", newState.travelForm)\n if (prevState.travelsWithChildren !== newState.travelsWithChildren)\n setQueryStringValue(\"twc\", newState.travelsWithChildren === null ? \"null\" : newState.travelsWithChildren)\n if (prevState.travelsWithLuggage !== newState.travelsWithLuggage)\n setQueryStringValue(\"twl\", newState.travelsWithLuggage === null ? \"null\" : newState.travelsWithLuggage)\n if (prevState.activeStep !== newState.activeStep) {\n switch (newState.activeStep) {\n case 1:\n this.setState({ heroOverlap: this.props.config?.heroOverlapBlockStep1ViewModel })\n break\n case 2:\n this.setState({ heroOverlap: this.props.config?.heroOverlapBlockStep2ViewModel })\n break\n case 3:\n this.setState({ heroOverlap: this.props.config?.heroOverlapBlockStep3ViewModel })\n break\n case 4:\n this.setState({ heroOverlap: this.props.config?.heroOverlapBlockStep4ViewModel })\n break\n }\n }\n }\n\n scrollToContainer() {\n this.containerRef.current?.scrollIntoView()\n }\n\n handleDateChange(date) {\n const normalizedDate = this.normalizeDate(date)\n switch (this.state.activeTab) {\n case 1:\n this.setState({ departureDate: normalizedDate }, () => this.handleSearchClick())\n break\n case 2:\n this.setState({ arrivalDate: normalizedDate }, () => this.handleSearchClick())\n }\n }\n handleTimeChange(time) {\n this.setState({ time }, () => this.handleSearchClick())\n }\n\n handleQueryChange(query, activeTab) {\n if (activeTab === 1) {\n this.setState({ query, departureQuery: query }, () => this.handleSearchClick())\n } else {\n this.setState({ query, arrivalQuery: query }, () => this.handleSearchClick())\n }\n }\n\n handleTabClick(tabNumb) {\n this.setState({ activeTab: tabNumb })\n }\n\n handleSearchClick(_e, _callBack) {\n clearTimeout(this.search)\n\n this.search = setTimeout(() => {\n const { query, activeTab, departureDate, arrivalDate, time } = this.state\n const { config, language } = this.props\n const contentLink = activeTab === 1 ? config.departureContentLink : config.arrivalContentLink\n let data = {\n contentLink: contentLink,\n date: activeTab === 1 ? departureDate : arrivalDate,\n query: query.trim(),\n sort: \"\",\n time: time,\n language: language,\n }\n endpoints\n .getFlights(data)\n .then((res) => res.data)\n .then((data) => {\n if (data.docs) {\n if (activeTab === 1) {\n this.setState(\n {\n departingFlights: data.docs,\n },\n () => sessionStorage.setItem(keys.SESSION_STORAGE_DEPARTING_FLIGHTS, JSON.stringify(data.docs)),\n )\n } else {\n this.setState(\n {\n arrivingFlights: data.docs,\n },\n () => sessionStorage.setItem(keys.SESSION_STORAGE_ARRIVING_FLIGHTS, JSON.stringify(data.docs)),\n )\n }\n }\n })\n }, 600)\n }\n\n handleFlightButtonClick(flightId) {\n const { activeTab, departingFlightId, arrivingFlightId } = this.state\n switch (activeTab) {\n case 1:\n if (departingFlightId === flightId) {\n this.setState({ departingFlightId: \"\", departingFlight: undefined })\n } else {\n const departingFlights =\n sessionStorage.getItem(keys.SESSION_STORAGE_DEPARTING_FLIGHTS) &&\n JSON.parse(sessionStorage.getItem(keys.SESSION_STORAGE_DEPARTING_FLIGHTS))\n const departingFlight = departingFlights?.find((x) => x.RecordId === flightId)\n this.setState({ departingFlightId: flightId, departingFlight })\n }\n break\n case 2:\n if (arrivingFlightId === flightId) {\n this.setState({ arrivingFlightId: \"\", arrivingFlight: undefined })\n } else {\n const arrivingFlights =\n sessionStorage.getItem(keys.SESSION_STORAGE_ARRIVING_FLIGHTS) && JSON.parse(sessionStorage.getItem(keys.SESSION_STORAGE_ARRIVING_FLIGHTS))\n const arrivingFlight = arrivingFlights?.find((x) => x.RecordId === flightId)\n this.setState({ arrivingFlightId: flightId, arrivingFlight })\n }\n break\n }\n }\n\n handleStateChange(state) {\n this.setState({ ...state })\n }\n\n handleProgressButtonClick(state) {\n this.setState({ ...state })\n }\n\n handleSubmit() {\n const { config, language } = this.props\n const data = {\n departingFlightId: this.state.departingFlightId,\n arrivingFlightId: this.state.arrivingFlightId,\n email: this.state.email,\n phone: this.state.mobile,\n language: language,\n hasCheckinLuggage: this.state.travelsWithLuggage || null,\n travelsWithChildren: this.state.travelsWithChildren || null,\n transportToAirport: this.state.travelForm === \"null\" ? null : this.state.travelForm || null,\n }\n\n this.setState({ ajaxSpinnerActive: true })\n endpoints\n .subscribeToTravelGuide(data)\n .then((res) => {\n if (res) {\n trackingHelper.trackProfileNewsletterSignup(\"newsletter\", \"cph profile signup - din rejseguide\")\n this.setState({ activeStep: 4 })\n }\n })\n .catch((_error) => {\n Emitter.emit(\"*\", {\n type: emits.REQUEST_CONTENT_MODAL_OPEN,\n modalJson: {\n usePortalStyling: true,\n h3: config.errorModalHeader || \"Der er sket en fejl\",\n richText: config.errorModalRichText || \"Prøv igen senere\",\n },\n })\n })\n .finally(() => {\n this.setState({ ajaxSpinnerActive: false })\n })\n }\n\n render() {\n const { config } = this.props\n const { travelsWithChildren, travelsWithLuggage, travelForm, activeStep } = this.state\n //if(true) return null //remove when text keys exists\n return (\n <React.Fragment>\n <Spinner isActive={this.state.ajaxSpinnerActive} isTransparent={this.state.ajaxSpinnerTransparent} />\n {this.state.heroOverlap && <HeroOverlap heroOverlap={this.state.heroOverlap} />}\n <div ref={this.containerRef}>\n {activeStep === 1 && (\n <TravelGuideStep1\n {...this.state}\n config={config}\n tabClickHandler={this.handleTabClick.bind(this)}\n dateChangeHandler={this.handleDateChange.bind(this)}\n timeChangeHandler={this.handleTimeChange.bind(this)}\n queryChangeHandler={this.handleQueryChange.bind(this)}\n searchClickHandler={this.handleSearchClick.bind(this)}\n buttonClickHandler={this.handleFlightButtonClick.bind(this)}\n stepButtonClickHandler={this.handleProgressButtonClick.bind(this)}\n writeToState={this.handleStateChange.bind(this)}\n />\n )}\n {activeStep === 2 && (\n <TravelGuideStep2\n config={config}\n activeStep={activeStep}\n travelsWithChildren={travelsWithChildren}\n travelsWithLuggage={travelsWithLuggage}\n travelForm={travelForm}\n stepButtonClickHandler={this.handleProgressButtonClick.bind(this)}\n writeToState={this.handleStateChange.bind(this)}\n />\n )}\n {activeStep === 3 && (\n <UserProfile>\n {(profile) => {\n return (\n <TravelGuideStep3\n {...this.state}\n profile={profile}\n config={config}\n writeToState={this.handleStateChange.bind(this)}\n stepButtonClickHandler={this.handleProgressButtonClick.bind(this)}\n submitHandler={this.handleSubmit.bind(this)}\n />\n )\n }}\n </UserProfile>\n )}\n {activeStep === 4 && (\n <TravelGuideStep4\n config={config}\n {...this.state}\n writeToState={this.handleStateChange.bind(this)}\n stepButtonClickHandler={this.handleProgressButtonClick.bind(this)}\n submitHandler={this.handleSubmit.bind(this)}\n />\n )}\n </div>\n </React.Fragment>\n )\n }\n}\nexport default TravelGuide\n","import React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport TravelGuide from \"../travel-guide/travel-guide\"\n\nexport default class TravelGuideModule {\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.init()\n return self\n }\n init() {\n const self = this\n if (self.elem.config) {\n const language = document.querySelector(\"[data-language]\")?.dataset.language\n ReactDOM.render(<TravelGuide config={self.elem.config} language={language} />, self.elem)\n }\n }\n}\n"],"names":["props","_jsx","_objectSpread","viewBox","children","d","fillRule","_Component","FlightSearchForm","_this","_classCallCheck","_callSuper","dateTextBoxRef","React","formRef","datePicker","undefined","_inherits","_createClass","key","value","this","current","DatePickerPikaday","el","setDateInDatePicker","getPicker","setDate","Forms","prevProps","activeTab","destroy","classList","remove","_this2","_this$props","config","minDate","query","time","selectedDate","departingFlightId","Date","parse","_unused","console","log","formattedDate","dateHelper","showSkipStep","length","className","ref","_jsxs","onClick","writeToState","activeStep","id","type","placeholder","searchPlaceholderText","onChange","e","queryChangeHandler","currentTarget","onFocus","isMobile","scrollIntoView","behavior","block","searchClickHandler","xmlnsXlink","xlinkHref","min","readOnly","onBlur","dateChangeHandler","timeChangeHandler","timeSelectList","map","item","index","text","Component","FlightSearchResult","tableRef","StylishTable","flightTableDepartureDestinationText","flightTableArrivalDestinationText","flightTableTimeText","flightTableAirlineText","flight","ScheduledTime","isChosen","chosenFlightId","RecordId","rowBgStyle","backgroundColor","colStyle","borderRight","concat","style","buttonClickHandler","DestinationName","Flight","CarrierName","flightTableChooseButtonBackgroundColor","flightTableChosenText","flightTableChooseText","_this3","_this$props2","flights","renderTableHeaders","renderFlight","flightNoResult","htmlHelper","TravelGuideStep1","_len","arguments","args","Array","_key","state","invalidData","prevPros","arrivingFlightId","setState","stepButtonClickHandler","departureDate","arrivalDate","tabsPaneBackgroundColor","tabClickHandler","firstTabName","secondTabName","header","firstTabSearchHeader","secondTabSearchHeader","bind","departingFlights","arrivingFlights","noFlightChosenErrorText","goBackButtonBackgroundColor","goBackButtonText","nextButtonBackgroundColor","handleLeaveStep1","nextButtonText","TravelGuideStep2","travelsWithLuggage","travelsWithChildren","travelForm","doScrollToTop","setTimeout","_this$state","travelWithLuggageText","name","defaultChecked","yesText","noText","doNotKnowText","transportToAirportText","transportToAirportBusOptionText","transportToAirportDriveOptionText","transportToAirportPrivateCarOptionText","transportToAirportPlaneOptionText","transportToAirportMetroOptionText","transportToAirportTaxiOptionText","transportToAirportTrainOptionText","transportToAirportOtherOptionText","htmlFor","transportToAirportDropdownLabel","travelWithChildrenText","FormText","_PureComponent","containerRef","textInput","Text","isInvalid","scrollToTextInput","modifier","noLabel","labelPositionTop","labelModifier","label","inputModifier","disabled","isSearch","SvgSearch","formNotice","showFormNotice","PureComponent","defaultProps","selected","PhoneNumberValidationField","_props$profile","_props$profile$Contac","_props$profile2","_props$profile2$Conta","validatePhoneNumber","phoneNumber","isValidPhoneNumber","handlePhoneSubmit","isValid","ajaxSpinnerActive","url","endpoint","hosts","axios","then","res","_this$state$textKeys","verficationCodeSent","data","item1","textKeys","phoneVerificationErrorHeadline","catch","error","_this$state$textKeys2","Emitter","emit","emits","modalJson","usePortalStyling","h3","richText","phoneVerificationErrorMessage","finally","handleCodeSubmit","smsCode","smsCodeValid","_this$state$textKeys3","mobilePhoneVerified","smsCodeVerificationErrorHeadline","_this$state$textKeys4","smsCodeVerificationErrorMessage","changePhoneNumberClick","profile","ContactDetails","MobilePhone","MobilePhoneVerified","document","body","dataset","JSON","ajaxSpinnerTransparent","codeSent","smsCodeSentMessage","replace","phoneValidated","verifiedPhoneMessage","href","profilePageLink","profilePageLabel","Spinner","isActive","isTransparent","editNumberLabel","target","smsCodeLabel","smsCodeWrongMessage","confirmSMSCodeLabel","sendNewSMS","phoneNumberLabel","validPhoneMessage","inputPhoneMessage","invalidPhoneMessage","confirmButton","emailValidatingRegex","TravelGuideStep3","checkboxRef","termsCondition","inputElementIdInFocus","_this$props$profile$C","_this$props$profile$C2","_this$props$profile$C3","Object","keys","email","EmailAddress","mobile","NewsletterSubscription","prevState","_this$props$profile$C4","_this$props$profile$C5","validEmail","test","submitHandler","checked","option","translation","toLowerCase","departingFlight","arrivingFlight","_this$props3","departingTime","departingDate","arrivingTime","arrivingDate","emailText","handleInputChange","emailPlaceholderText","emailErrorText","isFocus","mobileText","phoneValidationField","mobilePlaceholderText","mobileErrorText","handleTermsConditionClick","termsConditionText","getTravelFormTranslation","subscribeSubmitButtonBackgroundColor","handleSubmit","subscribeSubmitButtonText","TravelGuideStep4","confirmationSubHeaderText","confirmationCompleteButtonBackgroundColor","confirmationCompleteButtonUrl","confirmationCompleteButtonText","SESSION_STORAGE_DEPARTING_FLIGHTS","SESSION_STORAGE_ARRIVING_FLIGHTS","HeroOverlap","heroOverlap","bottomPadding","sectionBackgroundColor","backgroundImage","backgroundImageUrl","src","alt","imageHeading","heading","TravelGuide","normalizeDate","dateString","parseInt","getQueryStringValue","departureQuery","arrivalQuery","handleSearchClick","date","heroOverlapBlockStep1ViewModel","heroOverlapBlockStep2ViewModel","heroOverlapBlockStep3ViewModel","heroOverlapBlockStep4ViewModel","sessionStorage","getItem","find","x","window","addEventListener","newState","Destination","split","scrollToContainer","applyStateToQueryParams","_this$props$config","_this$props$config2","_this$props$config3","_this$props$config4","setQueryStringValue","setQueryStringValueWithPushState","_this$containerRef$cu","_this4","normalizedDate","_this5","_this6","tabNumb","_e","_callBack","_this7","clearTimeout","search","_this7$state","_this7$props","language","contentLink","departureContentLink","arrivalContentLink","trim","sort","endpoints","docs","setItem","stringify","flightId","_this$state2","_this8","phone","hasCheckinLuggage","transportToAirport","trackingHelper","_error","errorModalHeader","errorModalRichText","_this9","_this$state3","handleTabClick","handleDateChange","handleTimeChange","handleQueryChange","handleFlightButtonClick","handleProgressButtonClick","handleStateChange","UserProfile","TravelGuideModule","elem","self","init","_document$querySelect","querySelector","ReactDOM"],"sourceRoot":""}