{"version":3,"file":"static/js/6944.29394b5f.chunk.js","mappings":"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","sources":["shared/arrivals-departures-list-search/arrivals-departures-list-search-module.js","shared/arrivals-departures-list-search/arrivals-departures-list-search.jsx"],"sourcesContent":["import React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport ArrivalsDeparturesListSearch from \"./arrivals-departures-list-search\"\n\nexport default class ArrivalsDeparturesListSearchModule {\n  constructor(elem) {\n    const self = this\n    self.elem = elem\n    self.modelJson = elem.dataset.modelJson && JSON.parse(elem.dataset.modelJson)\n    this.init()\n    return self\n  }\n  init() {\n    const self = this\n    ReactDOM.unmountComponentAtNode(self.elem)\n    ReactDOM.render(<ArrivalsDeparturesListSearch {...self.modelJson} />, self.elem)\n  }\n}\n","import React, { Component, forwardRef } from \"react\"\nimport Svg from \"../_svgs/svg\"\nimport * as endpoints from \"../../api/endpoints\"\nimport FlightsTable from \"./flights-table\"\nimport NoFlights from \"./no-flights\"\nimport * as dateHelper from \"../../booking/helpers/date\"\nimport Spinner from \"../../booking/components/spinner\"\nimport da from \"date-fns/locale/da\"\nimport enGB from \"date-fns/locale/en-GB\"\nimport DatePicker from \"react-datepicker\"\nimport { isMobile } from \"react-device-detect\"\nimport * as types from \"./page-types\"\nimport { DateTime } from \"luxon\"\nimport FlightsLoading from \"./flights-loading\"\n\nexport default class ArrivalsDeparturesListSearch extends Component {\n  constructor(props) {\n    super(props)\n    this.datePicker = undefined\n\n    const dtLocale = dateHelper.luxonLocale(props.language)\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      q: props.query || \"\",\n      previousFlights: [],\n      flights: null,\n      direction: \"D\",\n      pageType: types.DEPARTURES,\n      ajaxSpinnerActive: true,\n      ajaxSpinnerTransparent: false,\n      initialSearch: props.query ? true : false,\n      searchDate: startDate,\n      minDate: minDate,\n      datepickerOpen: false,\n      minTime: minTime,\n      maxTime: maxTime,\n      otherDaysMinTime: minTime,\n      currentUrl: this.props.departuresPage,\n      startDate: startDate,\n    }\n\n    this.search(\"D\", props.query ? `\"${props.query}\"` : \"\", startDate, props.language)\n  }\n\n  flightFilter = (flight, beforeDate) => {\n    const date = flight.Date\n    const time = flight.ExpectedTime\n    const dateTime = DateTime.fromFormat(`${date} ${time}`, \"dd-MM-yyyy HH:mm\")\n    if (dateTime < beforeDate) {\n      return true\n    }\n    return false\n  }\n\n  search = async (direction, query, datetime, language) => {\n    const userQuery = query && query.length >= 2 ? query : \"*:*\"\n    const dt = datetime < this.state.startDate ? this.state.startDate : datetime\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.minus({ days: 1 }).toUTC() // convert to UTC which is what Solr expects\n    const end = cphTime.plus({ days: 2 }).toUTC() // convert to UTC which is what Solr expects\n    const data = { direction: direction, query: userQuery ?? \"\", startDateTime: start, endDateTime: end, language: language }\n\n    const response = await endpoints.getFlightInfoTable(data)\n    let flights = []\n    let previousFlights = []\n    if (response?.data) {\n      flights = response.data\n    }\n    if (flights.length > 0) {\n      if (this.state.minDate < datetime) {\n        const filteredFlights = flights.filter((flight) => this.flightFilter(flight, this.state.searchDate))\n        const remainingFlights = flights.filter((flight) => !this.flightFilter(flight, this.state.searchDate))\n\n        previousFlights = filteredFlights\n        flights = remainingFlights\n      }\n      flights = flights?.filter((flight) => {\n        const beforeDate = this.state.searchDate.plus({ days: 2 })\n        return this.flightFilter(flight, beforeDate)\n      })\n    }\n    this.setState({ flights: flights, previousFlights: previousFlights, ajaxSpinnerActive: false })\n  }\n\n  switchTabs(type) {\n    if (type !== this.state.pageType) {\n      this.setState(\n        (prevState) => {\n          switch (type) {\n            case types.DEPARTURES:\n              return this.getTabSwitchData(type)\n            case types.ARRIVALS:\n              return this.getTabSwitchData(type)\n          }\n        },\n        () => {\n          this.search(this.state.direction, this.state.initialSearch ? `\"${this.state.q}\"` : this.state.q, this.state.searchDate, this.props.language)\n        },\n      )\n    }\n  }\n\n  getTabSwitchData(type) {\n    return {\n      ajaxSpinnerActive: true,\n      pageType: type,\n      direction: type === types.ARRIVALS ? \"A\" : \"D\",\n      currentUrl: this.getCurrentUrl(type),\n    }\n  }\n\n  getCurrentUrl(type) {\n    switch (type) {\n      case types.DEPARTURES:\n        return this.props.departuresPage\n      case types.ARRIVALS:\n        return this.props.arrivalsPage\n    }\n  }\n\n  handleInput = (event) => {\n    const name = event.target.name\n    const value = event.target.value\n    this.setState(\n      {\n        [name]: value,\n        initialSearch: false,\n      },\n      () => this.search(this.state.direction, this.state.q, this.state.searchDate, this.props.language),\n    )\n  }\n\n  handleDateChange = (dateInput) => {\n    this.setState(\n      (prevState) => {\n        const date = DateTime.fromJSDate(dateInput)\n        const startOfMinDate = prevState.minDate.startOf(\"day\")\n        const startOfNewDate = date.startOf(\"day\")\n        if (startOfMinDate.toMillis() === startOfNewDate.toMillis()) {\n          if (date <= prevState.minDate) {\n            return { searchDate: prevState.minDate, minTime: prevState.minDate }\n          }\n          return { searchDate: date, minTime: prevState.minDate }\n        } else {\n          return { searchDate: date, minTime: prevState.otherDaysMinTime }\n        }\n      },\n      () => {\n        this.search(this.state.direction, this.state.q, this.state.searchDate, this.props.language)\n      },\n    )\n  }\n\n  handleDatepicker = () => {\n    const openState = this.calendar.state.open\n    this.calendar.setOpen(!openState)\n    this.setState({ datepickerOpen: !this.state.datepickerOpen })\n  }\n\n  closeDatepicker = () => {\n    this.setState({ datepickerOpen: false })\n  }\n\n  handleOutsideClick = () => {\n    this.calendar.setOpen(false)\n    this.setState({ datepickerOpen: false })\n  }\n\n  handlePrevDate = () => {\n    const currentDate = this.state.searchDate\n    let newDate = currentDate.minus({ days: 1 })\n    if (newDate <= this.state.minDate) {\n      newDate = this.state.minDate\n    }\n    this.handleDateChange(newDate.toJSDate())\n  }\n\n  handleNextDate = () => {\n    const currentDate = this.state.searchDate\n    const newDate = currentDate.plus({ days: 1 })\n    this.handleDateChange(newDate.toJSDate())\n  }\n\n  scrollIntoView = () => {\n    const flightSection = document.getElementById(\"FlightSection\")\n    const siteHeader = document.getElementsByClassName(\"site-header\")[0]\n    const headerOffset = siteHeader.clientHeight\n    const elementPosition = flightSection.getBoundingClientRect().top\n    const offsetPosition = elementPosition + window.pageYOffset - headerOffset\n\n    window.scrollTo({\n      top: offsetPosition,\n      behavior: \"smooth\",\n    })\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 departuresTabIcon = <Svg iconName={this.props.departuresTabIcon ? this.props.departuresTabIcon : \"planetakeoff\"} />\n    const arrivalsTabIcon = <Svg iconName={this.props.arrivalsTabIcon ? this.props.arrivalsTabIcon : \"planelanding\"} />\n\n    return (\n      <React.Fragment>\n        <Spinner isActive={this.state.ajaxSpinnerActive} isTransparent={this.state.ajaxSpinnerTransparent} />\n        <section className=\"deck deck--margin-bottom deck-flights\">\n          <div className=\"flights\" id=\"FlightSection\">\n            <header id=\"flightHeader\" className=\"flights__header no-bg\">\n              <React.Fragment>\n                <div className=\"form flights__header__form\">\n                  <div className=\"w--wider flights__header__form__inner-wrapper\">\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\"></span>\n                          <input\n                            className=\"form__item\"\n                            name=\"q\"\n                            id=\"searchTextbox\"\n                            type=\"text\"\n                            autoComplete=\"off\"\n                            value={this.state.q}\n                            onChange={(e) => this.handleInput(e)}\n                            placeholder={this.props.queryPlaceholderText}\n                          />\n                          <button data-arrival-departures-search-button=\"data-arrival-departures-search-button\">\n                            <Svg iconName={\"search\"} />\n                          </button>\n                        </div>\n                      </div>\n                    </div>\n                    {!isMobile ? (\n                      <div className={`dateselect ${this.state.datepickerOpen ? \"datepicker-open\" : \"\"}`}>\n                        <DatePicker\n                          ref={(r) => (this.calendar = r)}\n                          selected={this.state.searchDate.toJSDate()}\n                          onChange={(date) => this.handleDateChange(date)}\n                          showTimeSelect={true}\n                          dateFormat=\"dd. MMM yyyy\"\n                          minDate={this.state.minDate.toJSDate()}\n                          minTime={this.state.minTime.toJSDate()}\n                          maxTime={this.state.maxTime.toJSDate()}\n                          locale={this.props.language === \"en\" ? enGB : da}\n                          customInput={<CustomInput calendar={this.calendar} />}\n                          timeCaption={this.props.datepickerTimeLabel || \"Tidspunkt\"}\n                          timeIntervals={60}\n                          onClickOutside={this.handleOutsideClick}\n                          onCalendarClose={this.closeDatepicker}\n                        />\n                      </div>\n                    ) : (\n                      \"\"\n                    )}\n                  </div>\n                </div>\n              </React.Fragment>\n              <div className=\"tab-panes\">\n                <nav className=\"tab-panes__arrivals-departures\">\n                  <div className=\"tab-panes__arrivals-departures__primary\">\n                    <div className=\"tab-panes__arrivals-departures__primary__inner\">\n                      <a\n                        className={`button button--toggle ${this.state.pageType === types.DEPARTURES ? \"is-active\" : \"\"}`}\n                        onClick={() => this.switchTabs(types.DEPARTURES)}\n                      >\n                        {departuresTabIcon}\n                        <span className=\"text\">{this.props.departureTabName}</span>\n                      </a>\n                      <a\n                        className={`button button--toggle ${this.state.pageType === types.ARRIVALS ? \"is-active\" : \"\"}`}\n                        onClick={() => this.switchTabs(types.ARRIVALS)}\n                      >\n                        {arrivalsTabIcon}\n                        <span className=\"text\">{this.props.arrivalTabName}</span>\n                      </a>\n                    </div>\n                  </div>\n                </nav>\n              </div>\n            </header>\n            {isMobile ? (\n              <div className=\"mobile-datepicker-container\">\n                <div className=\"mobile-datepicker\">\n                  <div\n                    className={`date-arrow prev-date ${\n                      this.state.minDate.startOf(\"day\").toMillis() === this.state.searchDate.startOf(\"day\").toMillis() ? \"arrow-disabled\" : \"\"\n                    }`}\n                    onClick={\n                      this.state.minDate.startOf(\"day\").toMillis() === this.state.searchDate.startOf(\"day\").toMillis()\n                        ? undefined\n                        : () => this.handlePrevDate()\n                    }\n                  ></div>\n                  <div className={`dateselect ${this.state.datepickerOpen ? \"datepicker-open\" : \"\"}`}>\n                    <DatePicker\n                      ref={(r) => (this.calendar = r)}\n                      selected={this.state.searchDate.toJSDate()}\n                      onChange={(date) => this.handleDateChange(date)}\n                      showTimeSelect={true}\n                      dateFormat=\"d. MMMM\"\n                      minDate={this.state.minDate.toJSDate()}\n                      minTime={this.state.minTime.toJSDate()}\n                      maxTime={this.state.maxTime.toJSDate()}\n                      locale={this.props.language === \"en\" ? enGB : da}\n                      customInput={<CustomInput calendar={this.calendar} />}\n                      timeCaption={this.props.datepickerTimeLabel || \"Tidspunkt\"}\n                      timeIntervals={60}\n                      onClickOutside={this.handleOutsideClick}\n                      onCalendarClose={this.closeDatepicker}\n                    />\n                  </div>\n                  <div className=\"date-arrow next-date\" onClick={() => this.handleNextDate()}></div>\n                </div>\n              </div>\n            ) : (\n              \"\"\n            )}\n            {this.state.flights && this.state.flights.length > 0 ? (\n              <FlightsTable\n                {...this.props}\n                language={this.props.language}\n                flightLandingPageExists={this.props.flightLandingPageExists}\n                currentUrl={this.state.currentUrl}\n                flights={this.state.flights}\n                previousFlights={this.state.previousFlights}\n                direction={this.state.direction}\n                scrollIntoView={this.scrollIntoView}\n              />\n            ) : !this.state.flights ? (\n              <FlightsLoading />\n            ) : (\n              <NoFlights\n                {...this.props}\n                flightLandingPageExists={this.props.flightLandingPageExists}\n                currentUrl={this.state.currentUrl}\n                flights={this.state.flights}\n                direction={this.state.direction}\n              />\n            )}\n          </div>\n        </section>\n      </React.Fragment>\n    )\n  }\n}\n"],"names":["ArrivalsDeparturesListSearchModule","_createClass","elem","_classCallCheck","self","this","modelJson","dataset","JSON","parse","init","key","value","ReactDOM","_jsx","ArrivalsDeparturesListSearch","_objectSpread","_Component","props","_this","_callSuper","flightFilter","flight","beforeDate","date","Date","time","ExpectedTime","DateTime","fromFormat","concat","search","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","direction","query","datetime","language","userQuery","dt","cphTime","start","end","data","response","flights","previousFlights","_flights","filteredFlights","remainingFlights","wrap","_context","prev","next","length","state","startDate","setZone","keepLocalTime","minus","days","toUTC","plus","startDateTime","endDateTime","endpoints","sent","minDate","filter","searchDate","setState","ajaxSpinnerActive","stop","_x","_x2","_x3","_x4","apply","arguments","handleInput","event","name","target","_defineProperty","q","handleDateChange","dateInput","prevState","fromJSDate","startOfMinDate","startOf","startOfNewDate","toMillis","minTime","otherDaysMinTime","handleDatepicker","openState","calendar","open","setOpen","datepickerOpen","closeDatepicker","handleOutsideClick","handlePrevDate","newDate","toJSDate","handleNextDate","scrollIntoView","flightSection","document","getElementById","headerOffset","getElementsByClassName","clientHeight","offsetPosition","getBoundingClientRect","top","window","pageYOffset","scrollTo","behavior","datePicker","undefined","dtLocale","dateHelper","local","setLocale","set","milliseconds","seconds","minutes","hours","maxTime","pageType","types","ajaxSpinnerTransparent","initialSearch","currentUrl","departuresPage","_inherits","type","_this2","getTabSwitchData","getCurrentUrl","arrivalsPage","_this3","CustomInput","forwardRef","_ref2","ref","className","onClick","children","displayName","departuresTabIcon","Svg","iconName","arrivalsTabIcon","_jsxs","React","Spinner","isActive","isTransparent","id","autoComplete","onChange","e","placeholder","queryPlaceholderText","isMobile","DatePicker","r","selected","showTimeSelect","dateFormat","locale","enGB","da","customInput","timeCaption","datepickerTimeLabel","timeIntervals","onClickOutside","onCalendarClose","switchTabs","departureTabName","arrivalTabName","FlightsTable","flightLandingPageExists","NoFlights","FlightsLoading","Component"],"sourceRoot":""}