{"version":3,"file":"static/js/7165.b4a280fb.chunk.js","mappings":"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","sources":["shared/parking-search/parking-search-component.jsx","shared/parking-search/parking-search-module.js"],"sourcesContent":["import React, { Component, forwardRef } from \"react\"\nimport * as dateHelper from \"../../booking/helpers/date\"\nimport * as SelectionFactoryHelper from \"../helpers/SelectionFactoryHelper\"\nimport DatePicker, { CalendarContainer } from \"react-datepicker\"\nimport da from \"date-fns/locale/da\"\nimport enGB from \"date-fns/locale/en-GB\"\nimport { isMobile } from \"react-device-detect\"\nimport { DateTime } from \"luxon\"\n\nexport default class ParkingSearch extends Component {\n  constructor(props) {\n    super(props)\n\n    const arrivalLeadTimeHours = props.leadTimeInHours || 1\n    const arrivalGranularityMilliseconds = 30 * 60 * 1000\n\n    const dtLocale = dateHelper.luxonLocale(props.locale)\n    const zone = \"Europe/Copenhagen\"\n    const currentTime = DateTime.local().setLocale(dtLocale).setZone(zone)\n    const cphTime = currentTime.setZone(\"local\", { keepLocalTime: true })\n\n    const earliestArrivalTimeStamp = DateTime.fromMillis(cphTime.toMillis() + arrivalLeadTimeHours * 60 * 60 * 1000)\n    const arrivalDate = DateTime.fromMillis(Math.ceil(earliestArrivalTimeStamp / arrivalGranularityMilliseconds) * arrivalGranularityMilliseconds)\n    const departureDate = cphTime.plus({ days: 7 }).set({ hours: 17, minutes: 30, seconds: 0, milliseconds: 0 })\n\n    const today = cphTime\n    const maxTime = cphTime.set({ hours: 23, minutes: 30, seconds: 0, milliseconds: 0 })\n    const minTime = cphTime.set({ hours: 0, minutes: 30, seconds: 0, milliseconds: 0 })\n\n    this.adtCalender = React.createRef()\n    this.ddtCalender = React.createRef()\n\n    this.state = {\n      today: today,\n      adt: arrivalDate,\n      ddt: departureDate,\n      aMinTime: minTime,\n      dMinTime: minTime,\n      maxTime: maxTime,\n      minDate: today,\n      absoluteMinDateTime: arrivalDate,\n    }\n  }\n\n  componentDidMount() {\n    window.addEventListener(\"resize\", (event) => {\n      this.setState({ screenWidth: event.target.screen.width })\n    })\n\n    const newState = {}\n\n    const dtLocale = dateHelper.luxonLocale(this.props.locale)\n    const zone = \"Europe/Copenhagen\"\n    const currentTime = DateTime.local().setLocale(dtLocale).setZone(zone)\n    const cphTime = currentTime.setZone(\"local\", { keepLocalTime: true })\n\n    if (this.state.adt) {\n      const isToday = this.state.today.startOf(\"day\").toMillis() === this.state.adt.startOf(\"day\").toMillis()\n      const mintime = cphTime.plus({ hours: this.props.leadTimeInHours || 1 })\n      if (isToday) {\n        newState[\"aMinTime\"] = mintime\n      }\n    }\n\n    if (this.state.ddt) {\n      const isToday = this.state.today.startOf(\"day\").toMillis() === this.state.ddt.startOf(\"day\").toMillis()\n      const mintime = cphTime.plus({ hours: (this.props.leadTimeInHours || 1) + 2 })\n      if (isToday) {\n        newState[\"dMinTime\"] = mintime\n        newState[\"minDate\"] = mintime\n      }\n    }\n\n    this.setState({ ...newState })\n  }\n\n  addEventListeners = () => {\n    let dateselect\n    if (isMobile) {\n      dateselect = document.querySelector(\"#root-portal\")\n    } else {\n      dateselect = document.querySelector(\".dateselect-from\")\n    }\n    setTimeout(() => {\n      if (dateselect) {\n        const timeItems = dateselect.querySelectorAll(\".react-datepicker__time-list-item\")\n        if (timeItems.length > 0) {\n          timeItems.forEach((item) => {\n            item.addEventListener(\"click\", () => this.openDdtCalender())\n          })\n        }\n      }\n    }, 100)\n  }\n\n  handleInput = (event) => {\n    const name = event.target.name\n    const value = event.target.value\n    this.setState({\n      [name]: value,\n    })\n  }\n\n  handleFromDateChange = (dateInput) => {\n    const dtLocale = dateHelper.luxonLocale(this.props.locale)\n    const zone = \"Europe/Copenhagen\"\n    const currentTime = DateTime.local().setLocale(dtLocale).setZone(zone)\n    const cphTime = currentTime.setZone(\"local\", { keepLocalTime: true })\n\n    const newFromDate = DateTime.fromJSDate(dateInput)\n    const isToday = this.state.today.startOf(\"day\").toMillis() === newFromDate.startOf(\"day\").toMillis()\n\n    if (isToday) {\n      const roundedTime = dateHelper.RoundToNearestMinutesLuxon(cphTime.set({ seconds: 0 }), 30)\n      const aMinTime = roundedTime.plus({ hours: this.props.leadTimeInHours || 1 })\n      const minDate = newFromDate.plus({ hours: 2 })\n      if (newFromDate >= aMinTime) {\n        this.setState({ adt: newFromDate, aMinTime: aMinTime, minDate: minDate })\n      } else {\n        this.setState({ adt: aMinTime, aMinTime: aMinTime, minDate: minDate })\n      }\n    } else {\n      const aMinTime = newFromDate.set({ hours: 0, minutes: 30 })\n      this.setState({ adt: newFromDate, aMinTime: aMinTime, minDate: newFromDate })\n    }\n    const dMinTime = newFromDate.plus({ hours: 2 })\n    this.setState({ dMinTime: dMinTime, ddt: null })\n    this.addEventListeners()\n  }\n\n  handleToDateChange = (dateInput) => {\n    const newToDate = DateTime.fromJSDate(dateInput)\n    const isToday = this.state.today.startOf(\"day\").toMillis() === newToDate.startOf(\"day\").toMillis()\n    const isSameDay = this.state.adt.startOf(\"day\").toMillis() === newToDate.startOf(\"day\").toMillis()\n\n    if (isToday) {\n      const dMinTime = this.state.adt.plus({ hours: 2 })\n      if (newToDate >= dMinTime) {\n        this.setState({ dMinTime: dMinTime, ddt: newToDate })\n      } else {\n        this.setState({ dMinTime: dMinTime, ddt: dMinTime })\n      }\n    } else if (isSameDay) {\n      const minDateTime = this.state.adt.plus({ hours: 2 })\n      if (newToDate > minDateTime) {\n        this.setState({ dMinTime: minDateTime, ddt: newToDate })\n      } else {\n        this.setState({ dMinTime: minDateTime, ddt: minDateTime })\n      }\n    } else {\n      const mintime = newToDate.set({ hours: 0, minutes: 30 })\n      if (newToDate.hour === 0 && newToDate.minute === 0 && newToDate.second === 0) {\n        this.setState({ ddt: mintime, dMinTime: mintime })\n      } else {\n        this.setState({ ddt: newToDate, dMinTime: mintime })\n      }\n    }\n  }\n\n  getSearchLink = () => {\n    let { adt, ddt } = this.state\n    if (!adt || !ddt) return null\n    let ad = adt.toFormat(\"yyyy-MM-dd\")\n    let at = adt.toFormat(\"HH:mm\")\n    let dd = ddt.toFormat(\"yyyy-MM-dd\")\n    let dt = ddt.toFormat(\"HH:mm\")\n\n    const searchLink = `${this.props.parkingPageLink}/search?ad=${ad}&at=${at}&dd=${dd}&dt=${dt}`\n    return searchLink\n  }\n\n  getHighlightDates = (startDate, endDate) => {\n    if (!endDate) return [{ \"react-datepicker__day--highlighted-start\": [startDate.toJSDate()] }]\n    const duration = endDate.diff(startDate, [\"days\"]).toObject()\n    const dayDifference = Math.floor(duration.days)\n\n    const highlightDates = [{ \"react-datepicker__day--highlighted-start\": [startDate.toJSDate()] }]\n    const middleDates = []\n    for (let i = 1; i < dayDifference + 1; i++) {\n      middleDates.push(startDate.plus({ days: i }).toJSDate())\n    }\n    highlightDates.push({ \"react-datepicker__day--highlighted\": middleDates })\n    highlightDates.push({ \"react-datepicker__day--highlighted-end\": [endDate.toJSDate()] })\n    return highlightDates\n  }\n\n  openDdtCalender = () => {\n    this.ddtCalender.setOpen(true)\n  }\n\n  render() {\n    const highlightDates = this.getHighlightDates(this.state.adt, this.state.ddt)\n    const imageAlignment = SelectionFactoryHelper.getFromSelectionFactory(this.props.imageAlignment)\n\n    const CustomInput = forwardRef(({ value, onClick, mainLabel }, ref) => (\n      <div onClick={onClick} ref={ref}>\n        <label>{mainLabel}</label>\n        {value.replace(\" \", \" kl. \")}\n      </div>\n    ))\n    CustomInput.displayName = \"CustomInput\"\n\n    const FromContainer = ({ className, children }) => {\n      return (\n        <CustomCalendarContainer className={className} label={this.props.fromLabel || \"From\"}>\n          {children}\n        </CustomCalendarContainer>\n      )\n    }\n\n    const ToContainer = ({ className, children }) => {\n      return (\n        <CustomCalendarContainer className={className} label={this.props.toLabel || \"Til\"}>\n          {children}\n        </CustomCalendarContainer>\n      )\n    }\n\n    const buttonColor = SelectionFactoryHelper.getFromSelectionFactory(this.props.buttonColor)\n    const searchLink = this.getSearchLink()\n\n    const buttonStyle = { \"--btn-hover\": this.props.buttonHoverColor }\n\n    return (\n      <div>\n        <div className={`parking-info-box`} style={buttonStyle}>\n          <div className=\"w--wider\">\n            {window.innerWidth < 950 || imageAlignment === \"left\" ? (\n              <div className=\"picture\">\n                <img loading=\"eager\" fetchPriority=\"high\" src={window.innerWidth < 950 ? this.props.mobileImage : this.props.image}></img>\n              </div>\n            ) : (\n              \"\"\n            )}\n            <div className=\"maincontent\">\n              <div className=\"infohead\">{this.props.title || \"Parkering i lufthavnen\"}</div>\n              <h2>{this.props.heading || \"Spar tid og penge med vores parkeringstilbud fra 395 kroner pr. uge\"}</h2>\n              <div\n                className=\"maintext\"\n                dangerouslySetInnerHTML={{\n                  __html: this.props.text\n                    ? this.props.text\n                    : \"Book din parkering og få automatisk gratis refunderingsgaranti (værdi 49,-). Find alle muligheder for korttids- eller langtidsparkering, priserlister og praktiske informationer.\",\n                }}\n              ></div>\n              {this.props.hideSearchComponent ? (\n                <a href={this.props.buttonLink}>\n                  <div className={`button button--medium button--general no-shadow ${buttonColor ? buttonColor : \"\"}`}>\n                    <span className=\"text\">{this.props.buttonText || \"Book parkering her\"}</span>\n                  </div>\n                </a>\n              ) : (\n                <div className=\"dateselect\">\n                  <div className=\"form__section form__section--split\">\n                    <div className={`form__section__inner dateselect-from ${imageAlignment}`}>\n                      <DatePicker\n                        ref={(r) => (this.adtCalender = r)}\n                        selected={this.state.adt.toJSDate()}\n                        onChange={(date) => this.handleFromDateChange(date)}\n                        showTimeSelect\n                        dateFormat={this.props.locale === \"en\" ? \"dd.MM.yyyy h:mm aa\" : \"dd.MM.yyyy HH:mm\"}\n                        timeFormat={this.props.locale === \"en\" ? \"h:mm aa\" : \"HH:mm\"}\n                        minDate={this.state.today.toJSDate()}\n                        minTime={this.state.aMinTime.toJSDate()}\n                        maxTime={this.state.maxTime.toJSDate()}\n                        locale={this.props.locale === \"en\" ? enGB : da}\n                        customInput={<CustomInput mainLabel={this.props.fromLabel || \"Fra\"} />}\n                        timeCaption={this.props.timeLabel || \"Tidspunkt\"}\n                        highlightDates={highlightDates}\n                        onCalendarOpen={this.addEventListeners}\n                        withPortal={isMobile ? true : false}\n                        portalId={isMobile ? \"root-portal\" : undefined}\n                        calendarContainer={FromContainer}\n                        popperPlacement=\"bottom-start\"\n                        popperModifiers={[\n                          {\n                            name: \"flip\",\n                            options: {\n                              fallbackPlacements: [\"bottom-start\"], // disables flip by setting the fallback to the same as the chosen placement\n                            },\n                          },\n                        ]}\n                      />\n                    </div>\n                  </div>\n                  <div className=\"form__section form__section--split\">\n                    <div className={`form__section__inner dateselect-to ${imageAlignment}`}>\n                      <DatePicker\n                        ref={(r) => (this.ddtCalender = r)}\n                        selected={this.state.ddt ? this.state.ddt.toJSDate() : null}\n                        onChange={(date) => this.handleToDateChange(date)}\n                        showTimeSelect\n                        dateFormat={this.props.locale === \"en\" ? \"dd.MM.yyyy h:mm aa\" : \"dd.MM.yyyy HH:mm\"}\n                        timeFormat={this.props.locale === \"en\" ? \"h:mm aa\" : \"HH:mm\"}\n                        minDate={this.state.minDate.toJSDate()}\n                        minTime={this.state.dMinTime.toJSDate()}\n                        maxTime={this.state.maxTime.toJSDate()}\n                        locale={this.props.locale === \"en\" ? enGB : da}\n                        customInput={<CustomInput mainLabel={this.props.toLabel || \"Til\"} />}\n                        timeCaption={this.props.timeLabel || \"Tidspunkt\"}\n                        highlightDates={highlightDates}\n                        withPortal={isMobile ? true : false}\n                        portalId={isMobile ? \"root-portal\" : undefined}\n                        calendarContainer={ToContainer}\n                        popperPlacement=\"bottom-end\"\n                        popperModifiers={[\n                          {\n                            name: \"flip\",\n                            options: {\n                              fallbackPlacements: [\"bottom-end\"], // disables flip by setting the fallback to the same as the chosen placement\n                            },\n                          },\n                        ]}\n                      />\n                    </div>\n                  </div>\n                  <a href={searchLink}>\n                    <div\n                      className={`button button--medium button--general no-shadow ${buttonColor ? buttonColor : \"\"} ${!searchLink ? \"disabled\" : \"\"}`}\n                    >\n                      <span className=\"text\">{this.props.searchButtonLabel || \"Søg\"}</span>\n                    </div>\n                  </a>\n                </div>\n              )}\n            </div>\n            {imageAlignment === \"right\" && window.innerWidth >= 950 ? (\n              <div className=\"picture\">\n                <img loading=\"eager\" fetchPriority=\"high\" src={window.innerWidth < 950 ? this.props.mobileImage : this.props.image}></img>\n              </div>\n            ) : (\n              \"\"\n            )}\n          </div>\n        </div>\n      </div>\n    )\n  }\n}\n\nclass CustomCalendarContainer extends Component {\n  render() {\n    return (\n      <CalendarContainer className={this.props.className}>\n        <div className=\"react-datepicker__triangle\"></div>\n        <div className={\"calendar-header\"}>{this.props.label}</div>\n        <div className=\"calendar-container\" style={{ position: \"relative\", height: \"100%\" }}>\n          {this.props.children}\n        </div>\n      </CalendarContainer>\n    )\n  }\n}\n","import React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport ParkingSearch from \"./parking-search-component\"\n\nexport default class ParkingSearchModule {\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\n    this.init()\n    return self\n  }\n\n  init() {\n    const self = this\n    ReactDOM.unmountComponentAtNode(self.elem)\n    ReactDOM.render(<ParkingSearch {...self.modelJson} locale={self.locale} />, self.elem)\n  }\n}\n"],"names":["ParkingSearch","_Component","props","_this","_classCallCheck","_callSuper","addEventListeners","dateselect","isMobile","document","querySelector","setTimeout","timeItems","querySelectorAll","length","forEach","item","addEventListener","openDdtCalender","handleInput","event","name","target","value","setState","_defineProperty","handleFromDateChange","dateInput","dtLocale","dateHelper","locale","cphTime","DateTime","local","setLocale","setZone","keepLocalTime","newFromDate","fromJSDate","state","today","startOf","toMillis","aMinTime","set","seconds","plus","hours","leadTimeInHours","minDate","adt","minutes","dMinTime","ddt","handleToDateChange","newToDate","isToday","isSameDay","minDateTime","mintime","hour","minute","second","getSearchLink","_this$state","ad","toFormat","at","dd","dt","concat","parkingPageLink","getHighlightDates","startDate","endDate","toJSDate","duration","diff","toObject","dayDifference","Math","floor","days","highlightDates","middleDates","i","push","ddtCalender","setOpen","arrivalLeadTimeHours","arrivalGranularityMilliseconds","earliestArrivalTimeStamp","fromMillis","arrivalDate","ceil","departureDate","milliseconds","maxTime","minTime","adtCalender","React","absoluteMinDateTime","_inherits","_createClass","key","_this2","window","screenWidth","screen","width","newState","this","_objectSpread","_this3","imageAlignment","SelectionFactoryHelper","CustomInput","forwardRef","_ref","ref","onClick","mainLabel","_jsxs","children","_jsx","replace","displayName","buttonColor","searchLink","buttonStyle","buttonHoverColor","className","style","innerWidth","loading","fetchPriority","src","mobileImage","image","title","heading","dangerouslySetInnerHTML","__html","text","hideSearchComponent","href","buttonLink","buttonText","DatePicker","r","selected","onChange","date","showTimeSelect","dateFormat","timeFormat","enGB","da","customInput","fromLabel","timeCaption","timeLabel","onCalendarOpen","withPortal","portalId","undefined","calendarContainer","_ref2","CustomCalendarContainer","label","popperPlacement","popperModifiers","options","fallbackPlacements","toLabel","_ref3","searchButtonLabel","Component","_Component2","arguments","CalendarContainer","position","height","ParkingSearchModule","elem","self","modelJson","dataset","JSON","parse","body","language","init","ReactDOM"],"sourceRoot":""}