{"version":3,"file":"static/js/7578.dedc6f74.chunk.js","mappings":"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","sources":["shared/flight-search-hero-simple/flight-search-hero-simple-component.jsx","shared/flight-search-hero-simple/flight-search-hero-simple-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 } 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 \"../flight-search-hero/search-overlay\"\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 FlightSearchHeroSimple 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      minTime: minTime,\n      maxTime: maxTime,\n      otherDaysMinTime: minTime,\n      airports: [],\n      airlines: [],\n      mobileInputFocus: false,\n      startDate: startDate,\n    }\n  }\n\n  componentDidMount() {\n    this.addEventListeners()\n  }\n\n  addEventListeners() {\n    document.body.addEventListener(\"keydown\", (e) => {\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            let siteHeaderWrapper = document.getElementsByClassName(\"site-header-wrapper\")[0]\n            if (siteHeaderWrapper) {\n              siteHeaderWrapper.style.height = siteHeader.clientHeight + \"px\"\n            }\n          }\n          this.setZIndexOfNotificationBanner(null)\n        }\n        const input = document.querySelector(\"#flight-search-hero-input\")\n        if (input) {\n          input.blur()\n        }\n      }\n      if (e.key === \"Enter\") {\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            }\n          })\n        } else {\n          if (!isMobile) {\n            this.handleCloseOverlay()\n          }\n        }\n      },\n    )\n  }\n\n  handleDirectionChange = (direction, wasFocused) => {\n    if (isMobile) {\n      const input = document.getElementById(\"flight-search-hero-input\")\n      if (input && wasFocused) {\n        input.focus()\n        setTimeout(() => {\n          this.setState({ mobileInputFocus: true })\n        }, 20)\n      }\n    }\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          let siteHeaderWrapper = document.getElementsByClassName(\"site-header-wrapper\")[0]\n          if (siteHeaderWrapper) {\n            siteHeaderWrapper.style.height = siteHeader.clientHeight + \"px\"\n          }\n        }\n        this.setZIndexOfNotificationBanner(null)\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()) dateTime = dateTime.set({ hours: 0, minutes: 0, seconds: 0, milliseconds: 0 })\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  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        }\n      })\n    }\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    if (isMobile && this.props.backgroundImageMobile) {\n      heroStyle = { backgroundImage: `url(${this.props.backgroundImageMobile})` }\n    } else if (this.props.backgroundImage) {\n      heroStyle = { backgroundImage: `url(${this.props.backgroundImage})` }\n    }\n\n    const icon = SelectionFactoryHelper.getFromSelectionFactory(this.props.icon)\n\n    return (\n      <section className={`deck deck--front`} style={heroStyle}>\n        <header className=\"section-header section-header-search\">\n          <div className=\"section-header__inner\">\n            <div className=\"w--normal\">\n              <div className=\"leftside\">\n                <div className=\"infohead\">{this.props.title}</div>\n                {ReactHtmlParser(this.props.heading)}\n                <div className=\"maintext\">{this.props.mainText}</div>\n              </div>\n              <div className=\"flight-searchbox\">\n                <div className=\"headline\">\n                  {this.props.iconUpload ? <img src={this.props.iconUpload} alt={\"icon\"} /> : icon ? <Svg iconName={icon} /> : \"\"}\n                  <span>{this.props.searchBoxTitle}</span>\n                </div>\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                      <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={isMobile ? this.props.searchBoxPlaceholderMobile : this.props.searchBoxPlaceholder}\n                          value={this.state.q}\n                          onChange={(e) => this.handleInput(e)}\n                          onMouseEnter={() => this.setState({ overInput: true })}\n                          onMouseLeave={() => this.setState({ overInput: false })}\n                          onFocus={() => this.handleInputFocus()}\n                        />\n                        {!isMobile ? (\n                          <button\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                      <OutsideClickTrigger onOutsideClick={() => (isMobile ? undefined : this.handleOutsideClick())}>\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                      </OutsideClickTrigger>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div className=\"clear\"></div>\n          </div>\n        </header>\n      </section>\n    )\n  }\n}\n","import React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport FlightSearchHeroSimple from \"./flight-search-hero-simple-component\"\n\nexport default class FlightSearchHeroSimpleModule {\n  constructor(elem) {\n    const self = this\n    self.elem = elem\n    self.modelJson = elem.dataset.modelJson && JSON.parse(elem.dataset.modelJson)\n    self.locale = (document.body && document.body.dataset.language) || \"da\"\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(<FlightSearchHeroSimple {...self.modelJson} {...self.tabIcons} locale={self.locale} />, self.elem)\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":["FlightSearchHeroSimple","_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","handleCloseOverlay","handleDirectionChange","wasFocused","input","getElementById","focus","setTimeout","mobileInputFocus","startDate","siteHeaderWrapper","height","clientHeight","handleDateChange","dateInput","prevState","dateTime","DateTime","fromJSDate","startOfPrevDate","startOf","startOfMinDate","minDate","startOfNewDate","toMillis","time","toFormat","prevTime","minTime","set","hours","minutes","seconds","milliseconds","otherDaysMinTime","handleDatepicker","datepickerOpen","closeDatepicker","handleOutsideClick","overInput","handleInputFocus","zindex","notificationBanner","querySelector","notificationVersion","dataset","cookieHelper","zIndex","dtLocale","dateHelper","local","setLocale","minus","days","maxTime","_inherits","_createClass","key","this","addEventListeners","_this2","body","addEventListener","e","blur","location","href","concat","departuresPage","arrivalsPage","_this3","heroStyle","backgroundImageMobile","backgroundImage","icon","SelectionFactoryHelper","_jsx","className","children","_jsxs","title","ReactHtmlParser","heading","mainText","iconUpload","src","alt","Svg","iconName","searchBoxTitle","id","autoComplete","autoCapitalize","type","placeholder","searchBoxPlaceholderMobile","searchBoxPlaceholder","onChange","onMouseEnter","onMouseLeave","onFocus","onClick","fillColor","OutsideClickTrigger","onOutsideClick","SearchOverlay","_objectSpread","da","enGB","showTime","Component","FlightSearchHeroSimpleModule","elem","self","modelJson","JSON","parse","tabIcons","init","ReactDOM","openState","calendar","open","setOpen","React","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","replace","renderSearchResults","isOpen","formattedDate","formattedTime","departuresTabIconColor","departuresTabIcon","stroke","arrivalsTabIconColor","arrivalsTabIcon","searchHelperText","tabIndex","onTouchStart","departuresTabLabel","arrivalsTabLabel","DatePicker","r","selected","toJSDate","date","showTimeSelect","dateFormat","customInput","timeCaption","timeLabel","timeIntervals","onClickOutside","onCalendarClose","flight","index","currentUrl","numberOfFlightsMobile","numberOfFlights","innerFlight","_Fragment","Delayed","Time","ExpectedTime","Destination","IataDestination","Iata","flightClickHandler","FlightId","seeMoreFlightsDepartures","seeMoreFlightsArrivals","allFlightsTo","allFlightsFrom","airport","allFlightsLimit","Name","allFlightsWithCarrier","airline","carriersLimit"],"sourceRoot":""}