{"version":3,"file":"static/js/6708.931275ce.chunk.js","mappings":"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","sources":["shared/flight-search-hero/flight-search-hero-component.jsx","shared/flight-search-hero/flight-search-hero-module.js","shared/flight-search-hero/search-overlay.jsx"],"sourcesContent":["import React, { Component } from \"react\"\nimport * as dateHelper from \"../../booking/helpers/date\"\nimport * as endpoints from \"../../api/endpoints\"\nimport ReactHtmlParser from \"react-html-parser\"\nimport { isMobile, isIOS } from \"react-device-detect\"\nimport da from \"date-fns/locale/da\"\nimport enGB from \"date-fns/locale/en-GB\"\nimport Svg from \"../_svgs/svg\"\nimport SearchOverlay from \"./search-overlay\"\nimport pointInPolygon from \"point-in-polygon\"\nimport reactStringReplace from \"react-string-replace\"\nimport * as endpoint from \"../../booking/constants/Endpoints\"\nimport axios from \"axios\"\nimport ipRangeCheck from \"ip-range-check\"\nimport { getIPRange } from \"get-ip-range\"\nimport OutsideClickTrigger from \"../../booking/components/common/OutsideClickTrigger\"\nimport * as SelectionFactoryHelper from \"../helpers/SelectionFactoryHelper\"\nimport * as cookieHelper from \"../../helpers/cookie\"\nimport { DateTime } from \"luxon\"\n\nexport default class FlightSearchHero extends Component {\n constructor(props) {\n super(props)\n\n const dtLocale = dateHelper.luxonLocale(props.locale)\n const zone = \"Europe/Copenhagen\"\n const cphTimeConvert = DateTime.local().setLocale(dtLocale).setZone(zone) // gets local time and changes timezone to copenhagen to get correct time\n const cphTime = cphTimeConvert.setZone(\"local\", { keepLocalTime: true }) // locks in copenhagen time and switches back to local timezone. This ensures the time will stay CPH time when we later converts the DateTime to a JS Date object.\n let startDate = cphTime.set({ milliseconds: 0, seconds: 0, minutes: 60 }).minus({ hours: 1 })\n let minDate = startDate.minus({ days: 1 })\n let minTime = cphTime.set({ hours: 0, minutes: 0, seconds: 0, milliseconds: 0 })\n let maxTime = cphTime.set({ hours: 23, minutes: 0, seconds: 0, milliseconds: 0 })\n\n this.state = {\n flights: [],\n direction: \"D\",\n q: \"\",\n showOverlay: false,\n searchDate: startDate,\n minDate: minDate,\n datepickerOpen: false,\n renderWaitingTime: false,\n t2WaitingTime: \"N/A\",\n t3WaitingTime: \"N/A\",\n minTime: minTime,\n maxTime: maxTime,\n otherDaysMinTime: minTime,\n airports: [],\n airlines: [],\n startDate: startDate,\n scrollDistance: 0,\n scrollStart: 0,\n }\n }\n\n componentDidMount() {\n this.addEventListeners()\n if (this.props.alwaysShowWaitingTimes) {\n this.setState({ renderWaitingTime: true }, () => {\n this.getWaitingTime()\n setInterval(this.getWaitingTime, 10000)\n })\n } else if (isMobile) {\n if (this.props.ipAddress && this.props.ipRange) {\n if (ipRangeCheck(this.props.ipAddress, getIPRange(this.props.ipRange))) {\n this.setState({ renderWaitingTime: true }, () => {\n this.getWaitingTime()\n setInterval(this.getWaitingTime, 10000)\n })\n } else {\n this.getLocation()\n }\n } else {\n this.getLocation()\n }\n }\n }\n\n addEventListeners() {\n window.addEventListener(\"resize\", (event) => {\n this.setState({ screenWidth: event.target.screen.width })\n })\n document.body.addEventListener(\"keydown\", (e) => {\n let flightId = document.getElementById(\"flight-search-hero-input\")\n let flightIsFocused = document.activeElement === flightId\n\n if (e.key === \"Escape\") {\n this.setState({ showOverlay: false })\n if (isMobile) {\n const elements = document.getElementsByClassName(\"site-header\")\n const siteHeader = elements[0]\n if (siteHeader) {\n siteHeader.style.display = null\n const siteHeaderWrapper = document.getElementsByClassName(\"site-header-wrapper\")[0]\n if (siteHeaderWrapper) {\n siteHeaderWrapper.style.height = siteHeader.clientHeight + \"px\"\n }\n }\n this.setZIndexOfNotificationBanner(null)\n document.body.classList.remove(\"disable-scroll\")\n }\n const input = document.querySelector(\"#flight-search-hero-input\")\n if (input) {\n input.blur()\n }\n }\n if (e.key === \"Enter\" && flightIsFocused) {\n window.location.href = `${this.state.direction === \"D\" ? this.props.departuresPage : this.props.arrivalsPage}?q=${\n this.state.q\n }&date=${this.state.searchDate.toFormat(\"dd / MM / yyyy\")}&time=${this.state.searchDate.toFormat(\"HH\")}`\n }\n })\n }\n\n search = async () => {\n if (this.state.q.length >= (this.props.minCharsBeforeSearch ?? 2)) {\n const dt = this.state.searchDate\n const zone = \"Europe/Copenhagen\"\n const cphTime = dt.setZone(zone, { keepLocalTime: true }) // set zone to copenhagen and keep local time, which is already cph time\n const start = cphTime.toUTC() // convert to UTC which is what Solr expects\n const end = cphTime.endOf(\"day\").toUTC() // convert to UTC which is what Solr expects\n const flightsData = {\n direction: this.state.direction,\n query: this.state.q,\n startDateTime: start,\n endDateTime: end,\n language: this.props.locale,\n }\n\n // use this data and call GetAirports endpoint to get airports from solr core instead of flightinfo\n // const airportsData = { language: this.props.locale, query: this.state.q, limit: this.props.allFlightsLimit }\n const returns = await Promise.all([this.getFlights(flightsData), this.getAirports(flightsData)])\n .then((responses) => {\n return Promise.all(\n responses.map((response) => {\n return response\n }),\n )\n })\n .then((data) => {\n return data\n })\n .catch((err) => {\n console.log(err)\n })\n const flights = returns[0]\n const airports = returns[1]\n const airlines = this.getAirlines(flights)\n this.setState({ flights: flights, airports: airports, airlines: airlines })\n }\n }\n\n getFlights = (data) => {\n return endpoints\n .getFlightInfoTable(data)\n .then((res) => {\n return res.data\n })\n .then((data) => {\n let flights = []\n if (data) {\n flights = data\n }\n return flights\n })\n .catch((err) => {\n console.log(err)\n })\n }\n\n getAirports = (data) => {\n // return endpoints.getAirports(data)\n return endpoints\n .getAirportsFromFlights(data)\n .then((res) => {\n return res.data\n })\n .then((data) => {\n let airports = []\n if (data) {\n airports = data\n }\n return airports\n })\n .catch((err) => {\n console.log(err)\n })\n }\n\n getAirlines = (flights) => {\n let airlines = []\n if (flights && flights.length > 0) {\n const result = Array.from(new Set(flights.map((f) => f.IataAirline))).map((iata) => {\n return {\n iata: iata,\n name: flights.find((f) => f.IataAirline === iata).Airline,\n nameMobile: flights.find((f) => f.IataAirline === iata).AirlineMobile,\n }\n })\n airlines = result\n }\n return airlines\n }\n\n handleInput = (event, search = true) => {\n this.setState(\n {\n [event.target.name]: event.target.value,\n },\n () => {\n if (this.state.q.length >= 1) {\n if (isMobile && !this.state.showOverlay) {\n // scroll to top to fix the input field in the overlay being out of view on iphone\n window.scrollTo(0, 0)\n this.setZIndexOfNotificationBanner(0)\n }\n this.setState({ showOverlay: true }, () => {\n if (search) this.search()\n if (isMobile) {\n const elements = document.getElementsByClassName(\"site-header\")\n const siteHeader = elements[0]\n if (siteHeader) {\n siteHeader.style.display = \"none\"\n }\n document.body.classList.add(\"disable-scroll\")\n }\n })\n } else {\n if (!isMobile) {\n this.handleCloseOverlay()\n }\n }\n },\n )\n }\n\n handleDirectionChange = (direction) => {\n this.setState({ direction: direction }, () => {\n this.search()\n })\n }\n\n handleCloseOverlay = () => {\n this.setState({ showOverlay: false, searchDate: this.state.startDate, q: \"\", flights: [], airports: [] }, () => {\n if (isMobile) {\n const elements = document.getElementsByClassName(\"site-header\")\n const siteHeader = elements[0]\n if (siteHeader) {\n siteHeader.style.display = null\n const siteHeaderWrapper = document.getElementsByClassName(\"site-header-wrapper\")[0]\n if (siteHeaderWrapper) {\n siteHeaderWrapper.style.height = siteHeader.clientHeight + \"px\"\n }\n }\n this.setZIndexOfNotificationBanner(null)\n document.body.classList.remove(\"disable-scroll\")\n }\n })\n }\n\n handleDateChange = (dateInput) => {\n this.setState(\n (prevState) => {\n let dateTime = DateTime.fromJSDate(dateInput)\n const startOfPrevDate = prevState.searchDate.startOf(\"day\")\n const startOfMinDate = prevState.minDate.startOf(\"day\")\n const startOfNewDate = dateTime.startOf(\"day\")\n if (startOfMinDate.toMillis() === startOfNewDate.toMillis()) {\n // if the times are the same, meaning only the date was changed, set date to minDate\n const time = dateTime.toFormat(\"HH:mm\")\n const prevTime = prevState.searchDate.toFormat(\"HH:mm\")\n if (dateTime <= prevState.minDate || time === prevTime) {\n return { searchDate: prevState.minDate, minTime: prevState.minDate }\n }\n return { searchDate: dateTime, minTime: prevState.minDate }\n } else {\n // if the dates have changed, set time to 0\n if (startOfPrevDate.toMillis() !== startOfNewDate.toMillis()) {\n dateTime = dateTime.set({ hours: 0, minutes: 0, seconds: 0, milliseconds: 0 })\n if (document.getElementsByClassName(\"react-datepicker__time-list\")[0]) {\n document.getElementsByClassName(\"react-datepicker__time-list\")[0].scrollTo({\n top: 0,\n behavior: \"smooth\",\n })\n }\n }\n return { searchDate: dateTime, minTime: prevState.otherDaysMinTime }\n }\n },\n () => this.search(),\n )\n }\n\n handleDatepicker = () => {\n this.setState({ datepickerOpen: !this.state.datepickerOpen })\n }\n\n closeDatepicker = () => {\n this.setState({ datepickerOpen: false })\n }\n\n getLocation = () => {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(this.checkLocation)\n }\n }\n\n checkLocation = (position) => {\n // check if coords is inside airport polygon\n if (position.coords) {\n const polygon = this.createPolygon(this.props.coordinates)\n const isAtAirport = pointInPolygon([position.coords.latitude, position.coords.longitude], polygon)\n if (isAtAirport) {\n this.setState({ renderWaitingTime: true }, () => {\n this.getWaitingTime()\n })\n }\n }\n }\n\n createPolygon = (coordinates) => {\n const polygon = []\n coordinates.forEach((coords) => {\n polygon.push([coords.latitude, coords.longitude])\n })\n return polygon\n }\n\n getWaitingTime = () => {\n const hosts = document.body && document.body.dataset.hosts && JSON.parse(document.body.dataset.hosts)\n axios.get(endpoint.WAITING_TIME_SECURITY(hosts)).then(\n (result) => {\n // let time = result.data[terminal + \"WaitingTimeInterval\"] + \" min\"\n if (result.status === 204) {\n this.setState({\n // [stateKey]: time\n t2WaitingTime: \"N/A\",\n t3WaitingTime: \"N/A\",\n })\n return\n }\n this.setState({\n // [stateKey]: time\n t2WaitingTime: result.data.t2WaitingTimeInterval,\n t3WaitingTime: result.data.t3WaitingTimeInterval,\n })\n },\n (error) => {\n this.setState({\n // [stateKey]: \"N/A\",\n t2WaitingTime: \"N/A\",\n t3WaitingTime: \"N/A\",\n error,\n })\n },\n )\n }\n\n getWaitingTimeString = (text, input) => {\n const newText = text.replace(\"{time}\", input)\n const regex = new RegExp(/\\((.*?)\\)/)\n return reactStringReplace(newText, regex, (match, i) => <span key={match + i}>({match})</span>)\n }\n\n handleOutsideClick = () => {\n if (!this.state.overInput) {\n this.setState({ showOverlay: false, datepickerOpen: false })\n }\n }\n\n handleInputFocus = () => {\n if (this.state.q.length > 0) {\n if (isMobile && !this.state.showOverlay) {\n // scroll to top to fix the input field in the overlay being out of view on iphone\n window.scrollTo(0, 0)\n this.setZIndexOfNotificationBanner(0)\n }\n this.setState({ showOverlay: true }, () => {\n if (isMobile) {\n const elements = document.getElementsByClassName(\"site-header\")\n const siteHeader = elements[0]\n if (siteHeader) {\n siteHeader.style.display = \"none\"\n }\n document.body.classList.add(\"disable-scroll\")\n }\n })\n }\n }\n\n handleTouchStart = () => {\n if (isIOS) {\n this.setState({ scrollStart: window.pageYOffset })\n }\n }\n\n handleTouchEnd = (e) => {\n if (isIOS) {\n let end = window.pageYOffset\n let distance = end - this.state.scrollStart\n if (distance === 0) {\n // only if you havent scrolled\n e.target.focus()\n }\n this.setState({ scrollStart: 0 })\n }\n }\n\n handleMouseLeave = (e) => {\n this.setState({ overInput: false })\n if (isIOS) {\n e.target.blur() // force blur on mouse leave on iOS, which triggers when clicking outside the input field\n }\n }\n\n handleInputClick = (e) => {\n e.target.focus() // force focus for iOS\n }\n\n setZIndexOfNotificationBanner = (zindex) => {\n const notificationBanner = document.querySelector(\".notification\")\n if (notificationBanner) {\n const notificationVersion = notificationBanner.dataset.notificationVersion\n const notificationCookie = cookieHelper.getCookie(notificationVersion)\n if (notificationCookie !== \"closed\") {\n notificationBanner.style.zIndex = zindex\n }\n }\n }\n\n render() {\n let heroStyle = {}\n let renderHeroImage = false\n if (isMobile && this.props.backgroundImageMobile) {\n heroStyle = { backgroundImage: `url(${this.props.backgroundImageMobile})` }\n renderHeroImage = true\n } else if (this.props.backgroundImage) {\n heroStyle = { backgroundImage: `url(${this.props.backgroundImage})` }\n renderHeroImage = true\n }\n const { renderWaitingTime } = this.state\n let t2WaitingTime, t3WaitingTime\n if (renderWaitingTime) {\n t2WaitingTime = this.getWaitingTimeString(this.props.terminalTwoWaitingLabel || \"Terminal 2 ({time})\", this.state.t2WaitingTime)\n t3WaitingTime = this.getWaitingTimeString(this.props.terminalThreeWaitingLabel || \"Terminal 3 ({time})\", this.state.t3WaitingTime)\n }\n\n const topPadding = SelectionFactoryHelper.getFromSelectionFactory(this.props.topPadding)\n const bottomPadding = SelectionFactoryHelper.getFromSelectionFactory(this.props.bottomPadding)\n const bottomMargin = SelectionFactoryHelper.getFromSelectionFactory(this.props.bottomMargin)\n\n return (\n <>\n {renderHeroImage ? (\n <img\n style={{ display: \"none\" }}\n loading=\"eager\"\n fetchPriority=\"high\"\n src={isMobile ? this.props.backgroundImageMobile : this.props.backgroundImage}\n ></img>\n ) : (\n \"\"\n )}\n <section\n className={`deck deck--front ${topPadding ? topPadding : \"\"} ${bottomPadding ? bottomPadding : \"\"} ${bottomMargin ? bottomMargin : \"\"}`}\n style={heroStyle}\n >\n <header className=\"section-header section-header-search\">\n <div className=\"section-header__inner\">\n <div className=\"infohead__white\">{this.props.title}</div>\n <h1>{ReactHtmlParser(this.props.heading)}</h1>\n <div className=\"form\">\n <div className=\"form__section form__section--light form__section--fat\">\n <div className={`form__section__inner ${isMobile && this.state.showOverlay ? \"is-active\" : \"\"}`}>\n <OutsideClickTrigger onOutsideClick={() => (isMobile ? undefined : this.handleOutsideClick())}>\n <React.Fragment>\n <div className=\"form__field form__field--text form__field--text-search form__field--text--no-label is-bound is-filled\">\n <span className=\"form__valid\"></span>\n <input\n className=\"form__item\"\n id=\"flight-search-hero-input\"\n autoComplete=\"off\"\n autoCapitalize=\"none\"\n name=\"q\"\n type=\"text\"\n placeholder={this.props.searchBoxPlaceholder}\n value={this.state.q}\n onChange={(e) => this.handleInput(e)}\n onMouseEnter={() => this.setState({ overInput: true })}\n onMouseLeave={(e) => this.handleMouseLeave(e)}\n onFocus={() => this.handleInputFocus()}\n onClick={(e) => this.handleInputClick(e)}\n onTouchStart={() => this.handleTouchStart()}\n onTouchEnd={(e) => this.handleTouchEnd(e)}\n />\n {!isMobile ? (\n <button\n tabIndex={-1}\n className={`search-button ${this.state.showOverlay ? \"active\" : \"\"}`}\n onClick={this.state.showOverlay ? this.handleCloseOverlay : undefined}\n >\n <div className={`search-icon`}></div>\n </button>\n ) : (\n \"\"\n )}\n {isMobile && this.state.showOverlay ? (\n <button onClick={this.handleCloseOverlay}>\n <Svg iconName={\"close\"} fillColor={\"#071143\"} />\n </button>\n ) : (\n \"\"\n )}\n </div>\n <SearchOverlay\n {...this.props}\n {...this.state}\n handleDirectionChange={this.handleDirectionChange}\n handleDateChange={this.handleDateChange}\n locale={this.props.locale === \"da\" ? da : enGB}\n handleDatepicker={this.handleDatepicker}\n closeDatepicker={this.closeDatepicker}\n showTime={isMobile ? false : true}\n />\n </React.Fragment>\n </OutsideClickTrigger>\n </div>\n </div>\n </div>\n {renderWaitingTime ? (\n <div className=\"secwait\">\n <div className=\"headline\">{this.props.waitingTimeAtSecurity || \"Ventetid i security\"}</div>\n {t2WaitingTime} {t3WaitingTime}\n </div>\n ) : (\n \"\"\n )}\n </div>\n <div className={\"button-container\"}>\n {this.props.arrivalsButtonLabel && this.props.arrivalsPage ? (\n <a href={this.props.arrivalsPage}>\n <div className=\"button button--medium has-icon no-shadow\">\n <Svg iconName={\"planetakeoff\"} fillColor={\"#064FC2\"} />\n <span className=\"text\">{this.props.arrivalsButtonLabel}</span>\n </div>\n </a>\n ) : (\n \"\"\n )}\n {this.props.departuresButtonLabel && this.props.departuresPage ? (\n <a href={this.props.departuresPage}>\n <div className=\"button button--medium has-icon no-shadow\">\n <Svg iconName={\"planetakeoff\"} fillColor={\"#064FC2\"} />\n <span className=\"text\">{this.props.departuresButtonLabel}</span>\n </div>\n </a>\n ) : (\n \"\"\n )}\n </div>\n </header>\n </section>\n </>\n )\n }\n}\n","import React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport FlightSearchHero from \"./flight-search-hero-component\"\n\nexport default class FlightSearchHeroModule {\n constructor(elem) {\n const self = this\n self.elem = elem\n self.modelJson = elem.dataset.modelJson && JSON.parse(elem.dataset.modelJson)\n self.coordinates = elem.dataset.coordinates && JSON.parse(elem.dataset.coordinates)\n self.locale = (document.body && document.body.dataset.language) || \"da\"\n self.hosts = document.body && document.body.dataset.hosts && JSON.parse(document.body.dataset.hosts)\n self.tabIcons = elem.dataset.tabIcons && JSON.parse(elem.dataset.tabIcons)\n self.init()\n return self\n }\n\n init() {\n const self = this\n ReactDOM.unmountComponentAtNode(self.elem)\n ReactDOM.render(\n <FlightSearchHero\n {...self.modelJson}\n {...self.tabIcons}\n locale={self.locale}\n coordinates={self.coordinates}\n hosts={self.hosts}\n ipAddress={self.elem.dataset.ipAddress}\n />,\n self.elem,\n )\n }\n}\n","import React, { Component, forwardRef } from \"react\"\nimport DatePicker from \"react-datepicker\"\nimport Svg from \"../_svgs/svg\"\nimport { isMobile } from \"react-device-detect\"\n\nexport default class SearchOverlay extends Component {\n constructor(props) {\n super(props)\n\n this.calendar = React.createRef()\n }\n\n componentDidMount() {\n let vh = window.innerHeight * 0.01\n document.documentElement.style.setProperty(\"--vh\", `${vh}px`)\n window.addEventListener(\"resize\", () => {\n let vh = window.innerHeight * 0.01\n document.documentElement.style.setProperty(\"--vh\", `${vh}px`)\n })\n }\n\n handleDatepicker = () => {\n const openState = this.calendar.state.open\n this.calendar.setOpen(!openState)\n this.props.handleDatepicker()\n }\n\n handleOutsideClick = () => {\n this.calendar.setOpen(false)\n this.props.closeDatepicker()\n }\n\n render() {\n const CustomInput = forwardRef(({ value }, ref) => (\n <div className={\"react-datepicker-ignore-onclickoutside\"} onClick={this.handleDatepicker} ref={ref}>\n {value}\n </div>\n ))\n CustomInput.displayName = \"CustomInput\"\n\n const shortDateOptions = {\n month: \"short\",\n day: \"2-digit\",\n }\n\n const shortSearchDate = new Date(this.props.searchDate).toLocaleDateString(this.props.locale.code, shortDateOptions)\n const noResultsLabel =\n this.props.noResultsLabel?.replace(\"{input}\", this.props.q).replace(\"{date}\", shortSearchDate) ??\n `Ingen resultater matchede din søgning på \"${this.props.q}\"`\n const renderSearchResults = this.props.q && this.props.q.length >= (this.props.minCharsBeforeSearch ?? 2)\n const isOpen = this.props.q && this.props.q.length > 0\n\n const formattedDate = this.props.searchDate.toFormat(\"dd / MM / yyyy\")\n const formattedTime = this.props.searchDate.toFormat(\"HH\")\n\n const departuresTabIconColor = this.props.direction === \"D\" ? \"#064FC2\" : \"#071143\"\n const departuresTabIcon = (\n <Svg\n iconName={this.props.departuresTabIcon ? this.props.departuresTabIcon : \"planetakeoff\"}\n fillColor={\"none\"}\n stroke={departuresTabIconColor}\n />\n )\n const arrivalsTabIconColor = this.props.direction === \"A\" ? \"#064FC2\" : \"#071143\"\n const arrivalsTabIcon = (\n <Svg iconName={this.props.arrivalsTabIcon ? this.props.arrivalsTabIcon : \"planelanding\"} fillColor={\"none\"} stroke={arrivalsTabIconColor} />\n )\n\n return (\n <div className=\"form__section__inner\">\n <div\n className={`search-overlay ${!isMobile && isOpen && !renderSearchResults ? \"is-open\" : \"\"} ${\n !isMobile && renderSearchResults ? \"has-results\" : !isMobile && !renderSearchResults ? \"is-closed\" : \"\"\n } ${this.props.showOverlay ? \"\" : \"hide-overlay\"} ${isMobile && this.props.showOverlay ? \"mobile-open\" : \"\"}`}\n >\n {!isMobile && this.props.q.length < (this.props.minCharsBeforeSearch ?? 2) ? (\n <div className=\"form__section__inner\">\n <div className=\"search-results helper-text\">\n <div className=\"flights__table stylish-table\">\n <div className=\"stylish-table__row stylish-table__row--body\">\n <p>\n {this.props.searchHelperText ||\n `Du skal minimum skrive ${this.props.minCharsBeforeSearch ?? 2} karakterer for at få resultater.`}\n </p>\n </div>\n </div>\n </div>\n </div>\n ) : (\n <React.Fragment>\n <div className={`tabs ${isOpen && !renderSearchResults ? \"is-round\" : \"\"} `}>\n <a\n className={`button button--medium has-icon no-shadow ${this.props.direction === \"D\" ? \"is-active\" : \"\"}`}\n tabIndex=\"1\"\n onClick={() => this.props.handleDirectionChange(\"D\")}\n onTouchStart={() => this.props.handleDirectionChange(\"D\")}\n >\n {departuresTabIcon}\n <span className=\"text\">{this.props.departuresTabLabel || \"Afgange\"}</span>\n </a>\n <a\n className={`button button--medium has-icon no-shadow ${this.props.direction === \"A\" ? \"is-active\" : \"\"}`}\n tabIndex=\"2\"\n onClick={() => this.props.handleDirectionChange(\"A\")}\n onTouchStart={() => this.props.handleDirectionChange(\"A\")}\n >\n {arrivalsTabIcon}\n <span className=\"text\">{this.props.arrivalsTabLabel || \"Ankomster\"}</span>\n </a>\n <div className={`dateselect ${this.props.datepickerOpen ? \"datepicker-open\" : \"\"} ${!isMobile ? \"is-desktop\" : \"\"}`}>\n <DatePicker\n ref={(r) => (this.calendar = r)}\n selected={this.props.searchDate.toJSDate()}\n onChange={(date) => this.props.handleDateChange(date)}\n showTimeSelect={this.props.showTime || false}\n dateFormat=\"dd. MMM yyyy\"\n minDate={this.props.minDate.toJSDate()}\n minTime={this.props.minTime.toJSDate()}\n maxTime={this.props.maxTime.toJSDate()}\n locale={this.props.locale}\n customInput={<CustomInput calendar={this.calendar} />}\n timeCaption={this.props.timeLabel || \"Tidspunkt\"}\n timeIntervals={60}\n onClickOutside={this.handleOutsideClick}\n onCalendarClose={this.props.closeDatepicker}\n />\n </div>\n <div className=\"clear\"></div>\n </div>\n {(isMobile && renderSearchResults) || !isMobile ? (\n <div\n className={`search-results ${isMobile && this.props.datepickerOpen ? \"datepicker-open\" : \"\"} ${\n isMobile && this.props.showOverlay ? \"make-sticky\" : \"\"\n }`}\n >\n <div className=\"flights__table stylish-table\">\n {this.props.flights && this.props.flights.length > 0 ? (\n this.props.flights.map((flight, index) => {\n const currentUrl = this.props.direction === \"D\" ? this.props.departuresPage : this.props.arrivalsPage\n if (\n (isMobile && index < (this.props.numberOfFlightsMobile || 10)) ||\n (!isMobile && index < (this.props.numberOfFlights || 5))\n ) {\n const innerFlight = (\n <>\n <div className=\"stylish-table__cell flights__table__col--time\">\n <div>\n {flight.Delayed ? (\n <React.Fragment>\n <span className=\"t--strike\">{`${flight.Time}`}</span>\n <span>\n <em>{`${flight.ExpectedTime}`}</em>\n </span>\n </React.Fragment>\n ) : (\n <span>\n <em>{`${flight.Time}`}</em>\n </span>\n )}\n </div>\n </div>\n <div className=\"stylish-table__cell flights__table__col--destination\">\n <div>\n <span className=\"v--desktop-only\">\n <strong>\n <span>{flight.Destination}</span>\n </strong>\n </span>\n <span className=\"v--mobile-only\">\n <strong>{flight.Destination}</strong> ({flight.IataDestination})\n </span>\n <span className=\"v--mobile-only\">{flight.AirlineMobile ? flight.AirlineMobile : flight.Airline}</span>\n </div>\n </div>\n <div className=\"stylish-table__cell flights__table__col--iataDestination v--desktop-only\">\n <div>\n <span>{flight.IataDestination}</span>\n </div>\n </div>\n <div className=\"stylish-table__cell flights__table__col--carrier v--desktop-only\">\n <div>\n <span>\n <span>{flight.Airline}</span>\n </span>\n </div>\n </div>\n <div className=\"stylish-table__cell flights__table__col--gate\">\n <div>\n <span>{flight.Iata}</span>\n </div>\n </div>\n </>\n )\n if (this.props.flightClickHandler) {\n return (\n <a\n key={index}\n className=\"stylish-table__row stylish-table__row--body pointer\"\n onClick={(e) => this.props.flightClickHandler(e, flight)}\n >\n {innerFlight}\n </a>\n )\n } else {\n return (\n <a\n key={index}\n className=\"stylish-table__row stylish-table__row--body pointer\"\n href={`${currentUrl}/${flight.Iata}?id=${flight.FlightId}`}\n >\n {innerFlight}\n </a>\n )\n }\n }\n return\n })\n ) : (\n <div className=\"stylish-table__row stylish-table__row--body no-results\">{noResultsLabel}</div>\n )}\n </div>\n {this.props.flights && this.props.flights.length > 0 ? (\n <div className=\"see-more-link\">\n {(this.props.direction === \"D\" && this.props.seeMoreFlightsDepartures) ||\n (this.props.direction === \"A\" && this.props.seeMoreFlightsArrivals) ? (\n <a\n href={`${this.props.direction === \"D\" ? this.props.departuresPage : this.props.arrivalsPage}?q=${\n this.props.q\n }&date=${formattedDate}&time=${formattedTime}`}\n >\n <Svg iconName={\"arrowright-slim\"} fillColor={\"none\"} />\n {this.props.direction === \"D\"\n ? this.props.seeMoreFlightsDepartures.replace(\"{input}\", this.props.q)\n : this.props.seeMoreFlightsArrivals.replace(\"{input}\", this.props.q)}\n </a>\n ) : (\n \"\"\n )}\n </div>\n ) : (\n \"\"\n )}\n {this.props.airports && this.props.airports.length > 0 ? (\n <div className={\"all-flights\"}>\n <h3>{this.props.direction === \"D\" ? this.props.allFlightsTo : this.props.allFlightsFrom}</h3>\n {this.props.airports.map((airport, index) => {\n if (index >= this.props.allFlightsLimit) return\n return (\n <a\n href={`${this.props.direction === \"D\" ? this.props.departuresPage : this.props.arrivalsPage}?q=${\n airport.Iata\n }&date=${formattedDate}&time=${formattedTime}`}\n key={airport.Iata + index}\n >{`${airport.Name} (${airport.Iata})`}</a>\n )\n })}\n </div>\n ) : (\n \"\"\n )}\n {this.props.airlines && this.props.airlines.length > 0 ? (\n <div className={\"all-flights\"}>\n <h3>{this.props.allFlightsWithCarrier}</h3>\n {this.props.airlines.map((airline, index) => {\n if (index >= this.props.carriersLimit) return\n return (\n <a\n href={`${this.props.direction === \"D\" ? this.props.departuresPage : this.props.arrivalsPage}?q=${\n airline.iata\n }&date=${formattedDate}&time=${formattedTime}`}\n key={airline.iata + index}\n >{`${isMobile && airline.nameMobile ? airline.nameMobile : airline.name} (${airline.iata})`}</a>\n )\n })}\n </div>\n ) : (\n \"\"\n )}\n </div>\n ) : (\n \"\"\n )}\n </React.Fragment>\n )}\n </div>\n </div>\n )\n }\n}\n"],"names":["FlightSearchHero","_Component","props","_this","_classCallCheck","_callSuper","search","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_this$props$minCharsB","dt","cphTime","start","end","flightsData","returns","flights","airports","airlines","wrap","_context","prev","next","state","q","length","minCharsBeforeSearch","searchDate","setZone","keepLocalTime","toUTC","endOf","direction","query","startDateTime","endDateTime","language","locale","Promise","all","getFlights","getAirports","then","responses","map","response","data","catch","err","console","log","sent","getAirlines","setState","stop","endpoints","res","Array","from","Set","f","IataAirline","iata","name","find","Airline","nameMobile","AirlineMobile","handleInput","event","arguments","undefined","_defineProperty","target","value","isMobile","showOverlay","window","scrollTo","setZIndexOfNotificationBanner","siteHeader","document","getElementsByClassName","style","display","body","classList","add","handleCloseOverlay","handleDirectionChange","startDate","siteHeaderWrapper","height","clientHeight","remove","handleDateChange","dateInput","prevState","dateTime","DateTime","fromJSDate","startOfPrevDate","startOf","startOfMinDate","minDate","startOfNewDate","toMillis","time","toFormat","prevTime","minTime","set","hours","minutes","seconds","milliseconds","top","behavior","otherDaysMinTime","handleDatepicker","datepickerOpen","closeDatepicker","getLocation","navigator","geolocation","getCurrentPosition","checkLocation","position","coords","polygon","createPolygon","coordinates","pointInPolygon","latitude","longitude","renderWaitingTime","getWaitingTime","forEach","push","hosts","dataset","JSON","parse","axios","endpoint","result","status","t2WaitingTime","t2WaitingTimeInterval","t3WaitingTime","t3WaitingTimeInterval","error","getWaitingTimeString","text","input","newText","replace","regex","RegExp","reactStringReplace","match","i","_jsxs","children","handleOutsideClick","overInput","handleInputFocus","handleTouchStart","isIOS","scrollStart","pageYOffset","handleTouchEnd","e","focus","handleMouseLeave","blur","handleInputClick","zindex","notificationBanner","querySelector","notificationVersion","cookieHelper","zIndex","dtLocale","dateHelper","local","setLocale","minus","days","maxTime","scrollDistance","_inherits","_createClass","key","_this2","this","addEventListeners","alwaysShowWaitingTimes","setInterval","ipAddress","ipRange","ipRangeCheck","getIPRange","_this3","addEventListener","screenWidth","screen","width","flightId","getElementById","flightIsFocused","activeElement","location","href","concat","departuresPage","arrivalsPage","_this4","heroStyle","renderHeroImage","backgroundImageMobile","backgroundImage","terminalTwoWaitingLabel","terminalThreeWaitingLabel","topPadding","SelectionFactoryHelper","bottomPadding","bottomMargin","_Fragment","_jsx","loading","fetchPriority","src","className","title","ReactHtmlParser","heading","OutsideClickTrigger","onOutsideClick","React","id","autoComplete","autoCapitalize","type","placeholder","searchBoxPlaceholder","onChange","onMouseEnter","onMouseLeave","onFocus","onClick","onTouchStart","onTouchEnd","tabIndex","Svg","iconName","fillColor","SearchOverlay","_objectSpread","da","enGB","showTime","waitingTimeAtSecurity","arrivalsButtonLabel","departuresButtonLabel","Component","FlightSearchHeroModule","elem","self","modelJson","tabIcons","init","ReactDOM","openState","calendar","open","setOpen","vh","innerHeight","documentElement","setProperty","_this$props$noResults","_this$props$noResults2","_this$props$minCharsB2","_this$props$minCharsB3","CustomInput","forwardRef","_ref","ref","displayName","shortSearchDate","Date","toLocaleDateString","code","month","day","noResultsLabel","renderSearchResults","isOpen","formattedDate","formattedTime","departuresTabIconColor","departuresTabIcon","stroke","arrivalsTabIconColor","arrivalsTabIcon","searchHelperText","departuresTabLabel","arrivalsTabLabel","DatePicker","r","selected","toJSDate","date","showTimeSelect","dateFormat","customInput","timeCaption","timeLabel","timeIntervals","onClickOutside","onCalendarClose","flight","index","currentUrl","numberOfFlightsMobile","numberOfFlights","innerFlight","Delayed","Time","ExpectedTime","Destination","IataDestination","Iata","flightClickHandler","FlightId","seeMoreFlightsDepartures","seeMoreFlightsArrivals","allFlightsTo","allFlightsFrom","airport","allFlightsLimit","Name","allFlightsWithCarrier","airline","carriersLimit"],"sourceRoot":""}