{"version":3,"file":"js/booking-bundle-9ef5696a536f2bd6c0a2.js","mappings":"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","sources":["webpack://app/webpack/runtime/chunk loaded","webpack://app/webpack/runtime/create fake namespace object","webpack://app/./app/javascript/bundles/Booking/components/AutoComplete.js","webpack://app/./app/javascript/bundles/tools/fetch.js","webpack://app/./app/javascript/bundles/tools/settings.js","webpack://app/./app/javascript/bundles/tools/Loader.js","webpack://app/./app/javascript/bundles/Booking/popup/PriceStep.js","webpack://app/./app/javascript/bundles/Booking/popup/DetailStep.js","webpack://app/./app/javascript/bundles/Booking/popup/ConfirmationStep.js","webpack://app/./app/javascript/bundles/Booking/popup/LuggageStep.js","webpack://app/./app/javascript/bundles/Booking/PopUp.js","webpack://app/./app/javascript/bundles/Booking/Booking.js","webpack://app/./app/javascript/packs/booking-bundle.js","webpack://app/webpack/bootstrap","webpack://app/webpack/runtime/compat get default export","webpack://app/webpack/runtime/define property getters","webpack://app/webpack/runtime/global","webpack://app/webpack/runtime/hasOwnProperty shorthand","webpack://app/webpack/runtime/make namespace object","webpack://app/webpack/runtime/jsonp chunk loading","webpack://app/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport PlacesAutocomplete from 'react-places-autocomplete';\n\nclass AutoComplete extends Component {\n static propTypes = {\n address: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n handleSelect: PropTypes.func.isRequired,\n showCurrentLocation: PropTypes.bool,\n }\n\n state = {\n hasHousenumber: true,\n houseNumber: '',\n isStreet: false,\n isCurrentLocationVisible: false,\n loading: false\n }\n\n setHouseNumber = (houseNumber) => {\n this.setState({ houseNumber });\n\n this.checkHasHouseNumber(this.props.address, houseNumber);\n }\n\n checkHasHouseNumber = (address, houseNumberNew) => {\n const { isStreet } = this.state;\n let { houseNumber } = this.state;\n\n if (houseNumberNew != null) {\n houseNumber = houseNumberNew;\n }\n const hasHousenumber = ((address.substring(3)).match('.*\\\\d.*') && address !== '');\n\n this.setState({hasHousenumber});\n\n this.props.handleSelect(address, (!hasHousenumber && isStreet) ? houseNumber : null);\n }\n\n checkPlaceType = (address, placeId, suggestion) => {\n\n this.setState({ isStreet: suggestion.types.includes('route') });\n this.checkHasHouseNumber(address);\n }\n\n handleInputChange = (address) => {\n this.setState({\n isCurrentLocationVisible: false,\n });\n this.props.handleSelect(address);\n };\n\n handleInputFocus = () => {\n const { showCurrentLocation, address } = this.props;\n if (showCurrentLocation && address.trim() === '') {\n this.setState({ isCurrentLocationVisible: true });\n }\n };\n\n handleInputBlur = () => {\n setTimeout(() => this.setState({ isCurrentLocationVisible: false }), 200);\n };\n\n getCurrentLocation = () => {\n this.setState({ loading: true });\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(\n (position) => {\n const { latitude, longitude } = position.coords;\n const googleApiKey = this.props.googleAPiKey;\n const apiUrl = `https://maps.googleapis.com/maps/api/geocode/json?latlng=${latitude},${longitude}&key=${googleApiKey}`;\n\n fetch(apiUrl)\n .then((response) => response.json())\n .then((data) => {\n this.setState({ loading: false });\n if (data.status === \"OK\") {\n const currentLocation = data.results[0]?.formatted_address || \"Unknown Location\";\n this.props.handleSelect(currentLocation);\n } else {\n console.error(\"Failed to fetch location. Please try again.\");\n }\n })\n .catch((error) => {\n console.error(\"Error fetching location:\", error);\n this.setState({ loading: false });\n });\n },\n (error) => {\n console.error('Error fetching location:', error);\n this.setState({ loading: false });\n }\n );\n } else {\n console.error('Geolocation is not supported by this browser.');\n this.setState({ loading: false });\n }\n };\n\n render() {\n const { type, address, language } = this.props;\n const { hasHousenumber, isStreet, houseNumber, isCurrentLocationVisible, loading } = this.state;\n\n const searchOptions = {\n componentRestrictions: {country: ['nl'] }\n };\n\n const loadingText = loading\n ? language === 'dutch'\n ? 'Locatie ophalen...'\n : 'Retrieving location...'\n : '';\n\n return (\n
\n 1}\n >\n {({ getInputProps, suggestions, getSuggestionItemProps }) => (\n
\n
\n \n {this.props.showCurrentLocation && loading && (\n \n
\n
\n )}\n
\n 0 || isCurrentLocationVisible ? { display: 'block' } : {}}\n >\n {isCurrentLocationVisible && (\n \n Current location\n
\n )}\n {suggestions.map((suggestion) => {\n const className = suggestion.active ? 'dropdown-item active' : 'dropdown-item';\n\n return (\n
\n \n

{suggestion.formattedSuggestion.mainText}

\n

{suggestion.formattedSuggestion.secondaryText}

\n
\n
\n
\n );\n })}\n \n \n )}\n \n\n {(!hasHousenumber && isStreet) && this.setHouseNumber(e.target.value)} className=\"form-control house-no\" placeholder=\"Huis nr.\" />}\n \n );\n }\n}\n\nexport default AutoComplete;\n","export const getCSRFToken = () => document.head.querySelector(\"[name='csrf-token']\").content;\n\nexport const postUpload = (url, formData, dispatchers) => {\n const {\n stateContext, onBeforeFetch, onSuccess, onError, onCompleted\n } = dispatchers;\n\n const hasStateContext = stateContext && stateContext.state !== null;\n\n const dispatchError = (message) => {\n if (onError) { onError(message); }\n\n if (hasStateContext) {\n stateContext.setState({ error: message });\n }\n };\n\n const stateContextUploadingCallback = (isUploading = false, uploadProgress = 0) => {\n if (hasStateContext && stateContext.state.isUploading !== null) {\n stateContext.setState({\n isUploading,\n uploadProgress,\n error: null\n });\n }\n };\n\n stateContextUploadingCallback(true);\n if (onBeforeFetch) { onBeforeFetch(); }\n\n $.ajax({\n xhr: () => {\n const xhr = new window.XMLHttpRequest();\n\n xhr.upload.addEventListener('progress', (evt) => {\n if (evt.lengthComputable) {\n let percentComplete = evt.loaded / evt.total;\n percentComplete = parseInt(percentComplete * 100, 10);\n\n stateContextUploadingCallback(true, percentComplete);\n }\n }, false);\n\n return xhr;\n },\n url,\n type: 'POST',\n data: formData,\n processData: false,\n contentType: false,\n beforeSend: (xhr) => {\n stateContextUploadingCallback();\n\n xhr.setRequestHeader('X-CSRF-Token', getCSRFToken());\n },\n error: (xhr, status, errorThrown) => {\n console.error(e); // eslint-disable-line\n\n stateContextUploadingCallback(false);\n\n dispatchError(errorThrown);\n\n if (onCompleted) { onCompleted(); }\n },\n complete: (xhr, status) => {\n stateContextUploadingCallback(false);\n\n if (status === 'success') {\n const json = $.parseJSON(xhr.responseText);\n\n if (onSuccess) { onSuccess(json); }\n }\n }\n });\n};\n\nexport const fetchHTTP = (url, method, data, dispatchers) => {\n const {\n stateContext, onBeforeFetch, onSuccess, onError, onCompleted\n } = dispatchers;\n\n const hasStateContext = stateContext && stateContext.state !== null;\n\n const dispatchError = (message) => {\n if (onError) { onError(message); }\n\n if (hasStateContext) {\n stateContext.setState({ error: message });\n }\n };\n\n const stateContextLoadingCallback = (loading) => {\n const hash = { isLoading: loading };\n\n if (loading) {\n // Reset any error (if needed)\n hash.error = null;\n }\n\n if (hasStateContext && stateContext.state.isLoading !== null) {\n stateContext.setState(hash);\n }\n\n if (hasStateContext && stateContext.state.isSaving !== null) {\n stateContext.setState(hash);\n }\n };\n\n stateContextLoadingCallback(true);\n if (onBeforeFetch) { onBeforeFetch(); }\n\n // Perform request\n fetch(url, {\n credentials: 'same-origin',\n method,\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-CSRF-Token': getCSRFToken()\n },\n body: method === 'GET' ? undefined : JSON.stringify(data)\n })\n .then((response) => {\n if (!response.ok) {\n throw Error(response.statusText);\n }\n\n return response.json();\n })\n .then((json) => {\n if (json.success) {\n if (onSuccess) { onSuccess(json); }\n } else {\n dispatchError(json.message);\n }\n\n stateContextLoadingCallback(false);\n if (onCompleted) { onCompleted(); }\n })\n .catch((e) => {\n console.error(e); // eslint-disable-line\n\n stateContextLoadingCallback(false);\n\n dispatchError(e.message);\n\n if (onCompleted) { onCompleted(); }\n });\n};\n\nexport const fetchGET = (url, dispatchers) => {\n fetchHTTP(url, 'GET', {}, dispatchers);\n};\n\nexport const fetchPOST = (url, data, dispatchers) => {\n fetchHTTP(url, 'POST', data, dispatchers);\n};\n\nexport const fetchPUT = (url, data, dispatchers) => {\n fetchHTTP(url, 'PUT', data, dispatchers);\n};\n\nexport const fetchPATCH = (url, data, dispatchers) => {\n fetchHTTP(url, 'PATCH', data, dispatchers);\n};\n\nexport const fetchDELETE = (url, dispatchers) => {\n fetchHTTP(url, 'DELETE', {}, dispatchers);\n};\n","\nlet baseUrl = 'http://localhost:3000';\n\nif (process.env.NODE_ENV === 'production') {\n baseUrl = 'https://denhaagtax.nl';\n}\n\nexport const appUrl = typeof window !== 'undefined' ? window.location.origin : baseUrl;\n\n","import React, { Component } from 'react';\n\nclass Loader extends Component {\n\n render() {\n return (\n
\n );\n }\n}\n\nexport default Loader;\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { fetchPOST } from \"../../tools/fetch\";\n\nimport { appUrl } from \"../../tools/settings\";\nimport Loader from \"../../tools/Loader\";\n\nclass PriceStep extends Component {\n static propTypes = {\n setTaxiPrice: PropTypes.func.isRequired,\n togglePopUp: PropTypes.func.isRequired,\n setMessage: PropTypes.func.isRequired,\n\n addressA: PropTypes.string.isRequired,\n addressB: PropTypes.string.isRequired,\n wantsReturn: PropTypes.bool.isRequired,\n };\n\n state = {\n isLoading: true,\n fixedPrice: false,\n carPrice: 0,\n busPrice: 0,\n };\n\n translations = {\n dutch: {\n fixedPrice: \"Vaste Tarief\",\n car: \"Auto\",\n bus: \"Busje\",\n carDetails: [\"Tot 4 personen\", \"Genoeg ruimte\"],\n busDetails: [\"Tot 8 personen\", \"Meer ruimte voor baggage\"],\n price: \"Prijs: € \",\n lowPriceMessage: \"Sorry, de rit is te kort neem contact op met centrale\",\n errorMessage: \"Sorry, er is wat fout gegaan probeer het later opnieuw\",\n select: \"Selecteer\"\n },\n english: {\n fixedPrice: \"Fixed Price\",\n car: \"Car\",\n bus: \"Van\",\n carDetails: [\"Up to 4 people\", \"Enough space\"],\n busDetails: [\"Up to 8 people\", \"More space for luggage\"],\n price: \"Price: € \",\n lowPriceMessage:\n \"Sorry, the ride is too short. Please contact the center.\",\n errorMessage: \"Sorry, something went wrong. Please try again later.\",\n select: \"Select\"\n },\n };\n\n componentDidMount() {\n const {\n addressA,\n addressB,\n wantsReturn,\n togglePopUp,\n setMessage,\n language,\n stops\n } = this.props;\n\n fetchPOST(\n `${appUrl}/price`,\n {\n address_a: addressA,\n address_b: addressB,\n has_return: wantsReturn,\n stops: stops\n },\n {\n stateContext: this,\n onSuccess: (json) => {\n // this.calculatePrice(json);\n this.setState({\n carPrice: json.car_price,\n busPrice: json.bus_price,\n fixedPrice: json.fixed_price,\n });\n },\n onError: (error) => {\n if (error == \"low price\") {\n if (language == \"dutch\") {\n setMessage({\n success: false,\n message:\n \"Sorry, de rit is te kort neem contact op met centrale\",\n });\n } else {\n setMessage({\n success: false,\n message: \"Sorry, the ride is too short, please contact central\",\n });\n }\n togglePopUp();\n } else {\n if (language == \"dutch\") {\n setMessage({\n success: false,\n message:\n \"Sorry, er is wat fout gegaan probeer het later opnieuw\",\n });\n } else {\n setMessage({\n success: false,\n message: \"Sorry, something went wrong, please try again later\",\n });\n }\n togglePopUp();\n }\n },\n }\n );\n }\n\n onSelected(type, price) {\n this.props.setTaxiPrice(type, price);\n }\n\n renderFixedPrice() {\n return
  • Vaste Tarief
  • ;\n }\n\n render() {\n const { carPrice, busPrice, fixedPrice, isLoading } = this.state;\n const taxiTypeText = this.translations[this.props.language || \"english\"];\n\n if (isLoading) {\n return ;\n }\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n \n

    \n {taxiTypeText.car}\n

    \n\n
      \n {taxiTypeText.carDetails.map((detail, index) => (\n
    • {detail}
    • \n ))}\n {fixedPrice && this.renderFixedPrice()}\n
    \n\n

    \n {taxiTypeText.price}\n {carPrice},-\n

    \n\n this.onSelected(\"car\", carPrice)}\n >\n {taxiTypeText.select}\n \n
    \n
    \n\n
    \n
    \n \n

    \n {taxiTypeText.bus}\n

    \n\n
      \n {taxiTypeText.busDetails.map((detail, index) => (\n
    • {detail}
    • \n ))}\n {fixedPrice && this.renderFixedPrice()}\n
    \n\n

    \n {taxiTypeText.price}\n {busPrice},-\n

    \n\n this.onSelected(\"bus\", busPrice)}\n >\n {taxiTypeText.select}\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n }\n}\n\nexport default PriceStep;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { format } from 'date-fns';\nimport * as EmailValidator from 'email-validator';\n\nimport Loader from '../../tools/Loader';\n\nclass DetailStep extends Component {\n static propTypes = {\n bookStep: PropTypes.func.isRequired,\n previousStep: PropTypes.func.isRequired,\n taxiType: PropTypes.string.isRequired,\n addressA: PropTypes.string.isRequired,\n addressB: PropTypes.string.isRequired,\n date: PropTypes.object.isRequired,\n price: PropTypes.number.isRequired,\n returnDate: PropTypes.object.isRequired,\n wantsReturn: PropTypes.bool.isRequired,\n }\n\n state = {\n fullName: '',\n email: '',\n amountPerson: 1,\n phoneNumber: '',\n remark: '',\n flightNumber: '',\n paymentType: 'online', // New state for payment type\n message: '',\n isLoading: false,\n }\n\n translations = {\n english: {\n fullNamePlaceholder: 'Full name (required)',\n emailPlaceholder: 'Email (required)',\n phoneNumberPlaceholder: 'Phone number (required)',\n amountPersonPlaceholder: 'Number of people',\n flightNumberPlaceholder: 'Flight number (optional)',\n remarkPlaceholder: 'Remark',\n paymentTypePlaceholder: 'Payment method',\n confirmBooking: 'Confirm booking',\n change: 'Change',\n messageSuccess: 'Success',\n messageError: 'Error',\n from: 'From: ',\n to: 'To: ',\n date: 'Date: ',\n returnDate: 'Return Date: ',\n yourInfo: 'Your Information',\n car: 'Car',\n bus: 'Van',\n total: 'Total: ',\n },\n dutch: {\n fullNamePlaceholder: 'Volledige naam (verplicht)',\n emailPlaceholder: 'E-mail (verplicht)',\n phoneNumberPlaceholder: 'Telefoonnummer (verplicht)',\n amountPersonPlaceholder: 'Aantal personen',\n flightNumberPlaceholder: 'Vluchtnummer (optioneel)',\n remarkPlaceholder: 'Opmerking',\n paymentTypePlaceholder: 'Betaalmethode',\n confirmBooking: 'Bevestig boeking',\n change: 'Wijzig',\n messageSuccess: 'Succes',\n messageError: 'Fout',\n from: 'Van: ',\n to: 'Naar: ',\n date: 'Datum: ',\n returnDate: 'Retour Datum: ',\n yourInfo: 'Uw Gegevens',\n car: 'Auto',\n bus: 'Busje',\n total: 'Totaal: ',\n },\n };\n\n goToBook() {\n const { fullName, email, phoneNumber, amountPerson, remark, flightNumber, paymentType } = this.state;\n const { bookStep } = this.props;\n\n if (fullName === '') {\n this.setState({\n messageSuccess: false,\n message: 'Voer een volledige naam in'\n });\n return;\n }\n\n if (phoneNumber.length < 4) {\n this.setState({\n messageSuccess: false,\n message: 'Voer een geldige telefoonnummer in'\n });\n return;\n }\n\n if (EmailValidator.validate(email)) {\n this.setState({ isLoading: true });\n bookStep(fullName, email, phoneNumber, amountPerson, remark, flightNumber, paymentType);\n } else {\n this.setState({\n messageSuccess: false,\n message: 'Voer een geldige email in'\n });\n }\n }\n\n renderMessage() {\n const { message, messageSuccess } = this.state;\n\n return (\n
    \n {message}\n
    \n );\n }\n\n render() {\n const { price, taxiType, addressA, addressB, date, wantsReturn, returnDate } = this.props;\n const { message, isLoading, paymentType } = this.state;\n const luggageText = this.translations[this.props.language || 'english'];\n\n if (isLoading) {\n return ;\n }\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n {taxiType === 'car' ? (\n <>\n \"car\"\n {luggageText.car}\n \n ) : (\n <>\n \"bus\"\n {luggageText.bus}\n \n )}\n
    \n
    \n

    {luggageText.from}{addressA}

    \n

    {luggageText.to}{addressB}

    \n

    {luggageText.date}{format(date, 'dd-MM-yyyy, HH:mm')}

    \n

    {luggageText.total} € {price}

    \n {wantsReturn && (\n

    {luggageText.returnDate}{format(returnDate, 'dd-MM-yyyy, HH:mm')}

    \n )}\n \n
    \n
    \n\n
    \n
    \n {message && this.renderMessage()}\n

    \n {luggageText.yourInfo}\n

    \n
    \n \n this.setState({ fullName: n.target.value })}\n placeholder={luggageText.fullNamePlaceholder}\n />\n
    \n
    \n \n this.setState({ email: e.target.value })}\n placeholder={luggageText.emailPlaceholder}\n />\n
    \n
    \n \n this.setState({ phoneNumber: e.target.value })}\n placeholder={luggageText.phoneNumberPlaceholder}\n />\n
    \n
    \n \n this.setState({ amountPerson: e.target.value })}\n placeholder={luggageText.amountPersonPlaceholder}\n />\n
    \n\n
    \n \n this.setState({ flightNumber: e.target.value })}\n placeholder={luggageText.flightNumberPlaceholder}\n />\n
    \n\n {/* New Payment Type Selector */}\n
    \n \n
    \n this.setState({ paymentType: 'online' })}\n >\n {this.props.language === 'dutch' ? 'Online Betaling' : 'Online'}\n \n this.setState({ paymentType: 'cash' })}\n >\n {this.props.language === 'dutch' ? 'Contant Geld/Pin' : 'Cash'}\n \n
    \n
    \n\n
    \n \n this.setState({ remark: e.target.value })}\n placeholder={luggageText.remarkPlaceholder}\n />\n
    \n \n
    \n
    \n
    \n
    \n
    \n );\n }\n}\n\nexport default DetailStep;\n","import React, { Component } from \"react\";\n\nclass ConfirmationStep extends Component {\n handlePopupClose = () => {\n const { togglePopUp, setMessage, language, resetBookingHandler } =\n this.props;\n\n if (resetBookingHandler) {\n console.log(\"resetBookingHandler\");\n console.log(resetBookingHandler);\n resetBookingHandler();\n }\n\n togglePopUp();\n };\n\n render() {\n return (\n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n ×\n \n
    \n
    \n
    \n
    \n \n

    Bedankt voor uw boeking

    \n

    \n We hebben u een bevestigingsmail gestuurd.\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n \n );\n }\n}\n\nexport default ConfirmationStep;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport CounterInput from 'react-counter-input';\nimport Loader from '../../tools/Loader';\n\nclass LuggageStep extends Component {\n static propTypes = {\n luggage: PropTypes.object.isRequired,\n\n setLuggage: PropTypes.func.isRequired,\n previousStep: PropTypes.func.isRequired,\n }\n\n state = {\n hasLuggage: false,\n isLoading: true,\n smallLuggage: 0,\n midLuggage: 0,\n largeLuggage: 0\n }\n\n translations = {\n dutch: {\n title: 'Heeft u baggage?',\n largeLuggage: 'Grote Koffer',\n midLuggage: 'Kleine Koffer',\n smallLuggage: 'Handbagage/Rugzak',\n yesButton: 'Ja',\n noButton: 'Nee',\n previousStep: 'Vorige Stap',\n nextStep: 'Volgende Stap',\n },\n english: {\n title: 'Do you have luggage?',\n largeLuggage: 'Large Suitcase',\n midLuggage: 'Small Suitcase',\n smallLuggage: 'Hand Luggage/Backpack',\n yesButton: 'Yes',\n noButton: 'No',\n previousStep: 'Previous Step',\n nextStep: 'Next Step',\n },\n };\n\n componentWillMount() {\n const { luggage } = this.props;\n\n if (luggage == null) {\n return this.setState({\n isLoading: false\n });\n }\n\n return this.setState({\n smallLuggage: luggage.smallLuggage,\n midLuggage: luggage.midLuggage,\n largeLuggage: luggage.largeLuggage,\n hasLuggage: (luggage.smallLuggage != null || luggage.midLuggage != null || luggage.largeLuggage != null),\n isLoading: false\n });\n }\n\n nextStep() {\n const { smallLuggage, midLuggage, largeLuggage } = this.state;\n const luggage = {\n smallLuggage,\n midLuggage,\n largeLuggage\n };\n\n this.props.setLuggage(luggage);\n }\n\n toggleLuggage(bool) {\n if (!bool) {\n this.nextStep();\n }\n\n this.setState({\n hasLuggage: bool\n });\n }\n\n renderLuggageOptions() {\n const { smallLuggage, midLuggage, largeLuggage } = this.state;\n const luggageText = this.translations[this.props.language || 'english'];\n\n return [\n
    ,\n
    \n
    \n \"large\n

    {luggageText.largeLuggage}

    \n\n
    \n this.setState({ largeLuggage: count})}\n />\n
    \n
    \n\n
    \n \"small\n

    {luggageText.midLuggage}

    \n\n
    \n this.setState({ midLuggage: count})}\n />\n
    \n
    \n\n
    \n \"backpack\"\n

    {luggageText.smallLuggage}

    \n\n
    \n this.setState({ smallLuggage: count})}\n />\n
    \n
    \n
    \n ];\n }\n\n render() {\n const { hasLuggage, isLoading } = this.state;\n const luggageText = this.translations[this.props.language || 'english'];\n\n if (isLoading) {\n return ();\n }\n\n return (\n
    \n

    {luggageText.title}

    \n\n \n \n\n {hasLuggage && this.renderLuggageOptions()}\n
    \n\n
    \n \n \n
    \n
    \n );\n }\n}\n\nexport default LuggageStep;\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { format, parseISO } from \"date-fns\";\n\nimport { fetchPOST } from \"../tools/fetch\";\n\nimport PriceStep from \"./popup/PriceStep\";\nimport DetailStep from \"./popup/DetailStep\";\nimport ConfirmationStep from \"./popup/ConfirmationStep\";\n\nimport { appUrl } from \"../tools/settings\";\nimport LuggageStep from \"./popup/LuggageStep\";\n\nclass PopUp extends Component {\n static propTypes = {\n togglePopUp: PropTypes.func.isRequired,\n setMessage: PropTypes.func.isRequired,\n\n addressA: PropTypes.string.isRequired,\n addressB: PropTypes.string.isRequired,\n date: PropTypes.object.isRequired,\n returnDate: PropTypes.object.isRequired,\n wantsReturn: PropTypes.bool.isRequired,\n };\n\n state = {\n step: 0,\n taxiType: \"\",\n luggage: {},\n price: 0,\n showConfirmation: false,\n };\n\n setLuggage = (luggage) => {\n this.setState({\n luggage,\n step: this.state.step + 1,\n });\n };\n\n setTaxiPrice = (taxiType, price) => {\n this.setState({\n taxiType,\n price,\n step: this.state.step + 1,\n });\n };\n\n nextStep = () => {\n this.setState({\n step: this.state.step + 1,\n });\n };\n\n previousStep = () => {\n this.setState({\n step: this.state.step - 1,\n });\n };\n\n goToCustomerDetails = (price) => {\n this.setState({\n price,\n step: this.state.step + 1,\n });\n };\n\n goToConfirmationStep = () => {\n this.setState({\n step: this.state.step + 1,\n });\n };\n\n bookStep = (\n fullName,\n email,\n phoneNumber,\n amountPerson,\n remark,\n flightNumber,\n paymentType\n ) => {\n const {\n addressA,\n addressB,\n date,\n togglePopUp,\n setMessage,\n returnDate,\n wantsReturn,\n language,\n stops\n } = this.props;\n const { taxiType, luggage, price } = this.state;\n\n fetchPOST(\n `${appUrl}/booking`,\n {\n full_name: fullName,\n email,\n phone: phoneNumber,\n flight_number: flightNumber,\n car_type: taxiType,\n luggage,\n address_a: addressA,\n address_b: addressB,\n payment_type: paymentType,\n stops: stops,\n amount_person: amountPerson,\n date: format(date, \"dd-MM-yyyy, HH:mm\"),\n price,\n remark,\n has_return: wantsReturn,\n return_date: wantsReturn\n ? format(returnDate, \"dd-MM-yyyy, HH:mm\")\n : null,\n },\n {\n stateContext: this,\n onSuccess: (json) => {\n if (paymentType == \"cash\") {\n this.setState({ showConfirmation: true });\n } else {\n if (typeof window !== \"undefined\") {\n window.location.href = json.mollie_redirect_url;\n } else {\n console.error(\"Redirection attempted on the server. Check execution context.\");\n }\n }\n },\n onError: (error) => {\n if (language == \"dutch\") {\n setMessage({\n success: false,\n message: \"Sorry, er is wat fout gegaan probeer het later opnieuw\",\n });\n } else {\n setMessage({\n success: false,\n message: \"Sorry, something went wrong, please try again later\",\n });\n }\n togglePopUp();\n },\n }\n );\n };\n\n renderContent() {\n const { step } = this.state;\n\n if (step === 0) {\n return (\n \n );\n } else if (step === 1) {\n return (\n \n );\n } else if (step === 2) {\n return (\n \n );\n }\n }\n\n render() {\n const { step, showConfirmation } = this.state;\n const { togglePopUp } = this.props;\n\n if (showConfirmation) {\n return (\n \n );\n } else {\n return (\n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n\n \n ×\n \n
    \n {this.renderContent()}\n
    \n
    \n
    \n \n );\n }\n }\n}\n\nexport default PopUp;\n","import React, { Component } from \"react\";\nimport DatePicker from \"react-datepicker\";\nimport dayjs from \"dayjs\";\nimport AutoComplete from \"./components/AutoComplete\";\nimport PopUp from \"./PopUp\";\n\nimport ConfirmationStep from \"./popup/ConfirmationStep\";\n\n\nclass Booking extends Component {\n state = {\n date: \"\",\n returnDate: \"\",\n addressFullA: \"\",\n addressFullB: \"\",\n addressA: \"\",\n addressB: \"\",\n stops: [],\n popup: false,\n wantsReturn: false,\n messageSuccess: \"\",\n message: \"\",\n isDateValid: false,\n showConfirmation: false\n };\n\n constructor(props) {\n super(props);\n console.log(\"Props in constructor:\", props.language);\n }\n\n componentDidMount() {\n if (typeof window !== \"undefined\") {\n const urlParams = new URLSearchParams(window.location.search);\n const tripId = urlParams.get('trip');\n\n if (tripId) {\n this.checkPaymentStatus(tripId);\n urlParams.delete('trip');\n\n const newUrl = window.location.pathname;\n window.history.replaceState(null, '', newUrl);\n }\n }\n }\n\n checkPaymentStatus = (tripId) => {\n fetch(`/payment_check?trip=${tripId}`)\n .then((response) => response.json())\n .then((data) => {\n if (data.success) {\n this.setState({ showConfirmation: true });\n } else {\n this.setState({\n message: this.props.language === \"dutch\" ? \"Sorry, er is wat fout gegaan probeer het later opnieuw\" : \"Sorry, something went wrong, please try again later\"\n });\n }\n })\n .catch((error) => {\n console.error('Error checking payment status:', error);\n this.setState({\n message: this.props.language === \"dutch\" ? \"Sorry, er is wat fout gegaan probeer het later opnieuw\" : \"Sorry, something went wrong, please try again later\"\n });\n });\n };\n\n textContent = {\n english: {\n title: \"Do you want to book a Taxi?\",\n pickupAddress: \"Pickup address\",\n destinationAddress: \"Destination address\",\n pickupLabel: \"When should we pick you up?\",\n returnLabel: \"Return Date\",\n calculatePrice: \"Calculate price\",\n returnBooking: \"I want to book a return\",\n switchAddresses: \"Switch addresses\",\n addStop: \"Add Stop\",\n date: \"Date\",\n },\n dutch: {\n title: \"Wilt u een Taxi boeken?\",\n pickupAddress: \"Ophaaladres\",\n destinationAddress: \"Bestemmings adres\",\n pickupLabel: \"Wanneer moeten we u ophalen?\",\n returnLabel: \"Retour Datum\",\n calculatePrice: \"Bereken prijs\",\n returnBooking: \"Ik wil retour boeken\",\n switchAddresses: \"Wissel adressen\",\n addStop: \"Voeg Stop Toe\",\n date: \"Datum\",\n }\n };\n\n setMessage = (data) => {\n this.setState({ messageSuccess: data.success, message: data.message });\n };\n\n changeAddressA = (addressA, houseNumber) => {\n let addressFullA = addressA;\n\n if (houseNumber) {\n const splitAddress = addressA.split(\",\");\n splitAddress[0] = `${splitAddress[0]} ${houseNumber}`;\n addressFullA = splitAddress.join(\",\");\n }\n\n this.setState({ addressA, addressFullA });\n };\n\n changeAddressB = (addressB, houseNumber) => {\n let addressFullB = addressB;\n\n if (houseNumber) {\n const splitAddress = addressB.split(\",\");\n splitAddress[0] = `${splitAddress[0]} ${houseNumber}`;\n addressFullB = splitAddress.join(\",\");\n }\n\n this.setState({ addressB, addressFullB });\n };\n\n addStop = () => {\n this.setState((prevState) => ({\n stops: [...prevState.stops, { address: \"\", fullAddress: \"\" }],\n }));\n };\n\n getMinTime = (currentDate) => {\n return dayjs(currentDate).add(15, \"minute\");\n };\n\n removeStop = (index) => {\n this.setState((prevState) => {\n const stops = prevState.stops.filter((_, i) => i !== index);\n return { stops };\n });\n };\n\n changeStopAddress = (index, address, houseNumber) => {\n let fullAddress = address;\n if (houseNumber) {\n const splitAddress = address.split(\",\");\n splitAddress[0] = `${splitAddress[0]} ${houseNumber}`;\n fullAddress = splitAddress.join(\",\");\n }\n\n this.setState((prevState) => {\n const stops = [...prevState.stops];\n stops[index] = { address, fullAddress };\n return { stops };\n });\n };\n\n switchAddresses = (e) => {\n e.preventDefault();\n this.setState((prevState) => {\n const newStops = prevState.stops.reverse(); // Reverse the stops\n return {\n addressA: prevState.addressB,\n addressB: prevState.addressA,\n addressFullA: prevState.addressFullB,\n addressFullB: prevState.addressFullA,\n stops: newStops,\n };\n });\n };\n\n getMinSelectableTime = () => {\n return dayjs().add(15, \"minute\");\n };\n\n changeDate = (date) => {\n const isDateValid = dayjs(date).isAfter(this.getMinSelectableTime());\n this.setState({ date, isDateValid });\n };\n\n changeReturnDate = (returnDate) => {\n const isDateValid = dayjs(returnDate).isAfter(this.getMinSelectableTime());\n this.setState({ returnDate, isDateValid });\n };\n\n togglePopup = () => {\n this.setState({ popup: !this.state.popup });\n };\n\n toggleConfirmation = () => {\n this.setState({ showConfirmation: !this.state.showConfirmation });\n }\n\n renderMessage() {\n const { message, messageSuccess } = this.state;\n return (\n \n {message}\n \n );\n }\n\n resetBookingData = () => {\n this.setState({\n addressA: \"\",\n addressB: \"\",\n addressFullA: \"\",\n addressFullB: \"\",\n date: null,\n returnDate: null,\n stops: [],\n wantsReturn: false,\n isDateValid: false,\n popup: false,\n });\n };\n\n render() {\n const {\n date,\n returnDate,\n popup,\n addressA,\n addressB,\n addressFullA,\n addressFullB,\n stops,\n wantsReturn,\n message,\n isDateValid,\n showConfirmation\n } = this.state;\n\n const filterPassedTime = (time) => {\n const currentDate = new Date();\n const currentDateWithBuffer = new Date(currentDate.getTime() + 15 * 60 * 1000); // Add 15 minutes\n\n const selectedDate = new Date(time);\n return currentDateWithBuffer.getTime() < selectedDate.getTime();\n };\n\n // Get the language prop, default to English\n const language = this.props.language || \"english\";\n const text = this.textContent[language];\n\n if (popup) {\n return (\n stop.fullAddress)} // Pass full addresses of stops\n date={date}\n returnDate={returnDate}\n wantsReturn={wantsReturn}\n language={language}\n resetBookingData={this.resetBookingData}\n />\n );\n }\n\n if (showConfirmation) {\n return (\n \n );\n }\n\n return (\n
    \n {message && this.renderMessage()}\n\n
    \n\n {this.props.big_title ? (\n

    \n {text.title}\n

    \n ) : (\n

    {text.title}

    \n )\n }\n\n this.switchAddresses(e)}\n >\n \n \n\n
    \n
    \n \n \n
    \n\n {stops.map((stop, index) => (\n \n \n this.changeStopAddress(index, address)\n }\n showCurrentLocation={false}\n style={{ width: \"100%\" }} // Ensures the input takes the full width\n />\n this.removeStop(index)}\n aria-label=\"Remove Stop\"\n >\n
    \n \n
    \n ))}\n\n
    \n \n\n \n
    \n\n {\n e.preventDefault();\n this.addStop();\n }}\n >\n {text.addStop}\n \n
    \n\n
    \n\n
    \n \n }\n placeholderText={this.props.language === \"dutch\" ? \"Datum\" : \"Date\"}\n selected={date}\n onChange={(selectedDate) => {\n const minSelectableTime = this.getMinTime(new Date()).toDate();\n if (selectedDate < minSelectableTime) {\n this.changeDate(minSelectableTime);\n } else {\n this.changeDate(selectedDate);\n }\n }}\n minDate={new Date()}\n filterTime={filterPassedTime}\n popperPlacement=\"top-start\"\n timeIntervals={15}\n disabledKeyboardNavigation={false}\n onKeyDown={(e) => {\n e.preventDefault();\n }}\n withPortal\n />\n {wantsReturn && (\n
    \n }\n placeholderText={this.props.language === \"dutch\" ? \"Retour Datum\" : \"Return Date\"}\n showTimeSelect\n timeFormat=\"HH:mm\"\n dateFormat=\"d MMMM, HH:mm\"\n selected={returnDate}\n onChange={(selectedDate) => {\n const minSelectableTime = this.getMinTime(\n new Date()\n ).toDate();\n if (selectedDate < minSelectableTime) {\n this.changeReturnDate(minSelectableTime);\n } else {\n this.changeReturnDate(selectedDate);\n }\n }}\n minDate={date && new Date(date)}\n popperPlacement=\"top-start\"\n timeIntervals={15}\n withPortal\n disabledKeyboardNavigation={false}\n onKeyDown={(e) => {\n e.preventDefault();\n }}\n />\n
    \n )}\n\n
    \n this.setState({ wantsReturn: !wantsReturn })}\n />\n \n
    \n
    \n\n \n {text.calculatePrice}\n \n \n \n );\n }\n}\n\nexport default Booking;\n","import ReactOnRails from 'react-on-rails';\nimport React from 'react';\n\nimport Booking from '../bundles/Booking/Booking';\n\n// This is how react_on_rails can see the HelloWorld in the browser.\nReactOnRails.register({\n Booking,\n});\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t685: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkapp\"] = self[\"webpackChunkapp\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [551,182,931,417,596,371,266,933,718,172,859,54], function() { return __webpack_require__(8368); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","AutoComplete","Component","state","hasHousenumber","houseNumber","isStreet","isCurrentLocationVisible","loading","setHouseNumber","this","setState","checkHasHouseNumber","props","address","houseNumberNew","substring","match","handleSelect","checkPlaceType","placeId","suggestion","types","includes","handleInputChange","handleInputFocus","showCurrentLocation","trim","handleInputBlur","setTimeout","getCurrentLocation","navigator","geolocation","getCurrentPosition","position","latitude","longitude","coords","googleApiKey","googleAPiKey","fetch","then","response","json","data","status","currentLocation","results","formatted_address","console","error","catch","render","type","language","loadingText","React","className","PlacesAutocomplete","value","onChange","onSelect","searchOptions","componentRestrictions","country","shouldFetchSuggestions","length","getInputProps","suggestions","getSuggestionItemProps","placeholder","onFocus","onBlur","style","top","right","transform","display","alignItems","class","onClick","cursor","map","active","formattedSuggestion","mainText","secondaryText","e","target","getCSRFToken","document","head","querySelector","content","fetchHTTP","url","method","dispatchers","stateContext","onBeforeFetch","onSuccess","onError","onCompleted","hasStateContext","dispatchError","message","stateContextLoadingCallback","hash","isLoading","isSaving","credentials","headers","Accept","body","undefined","JSON","stringify","ok","Error","statusText","success","fetchPOST","baseUrl","appUrl","window","location","origin","Loader","PriceStep","fixedPrice","carPrice","busPrice","translations","dutch","car","bus","carDetails","busDetails","price","lowPriceMessage","errorMessage","select","english","componentDidMount","addressA","addressB","wantsReturn","togglePopUp","setMessage","stops","address_a","address_b","has_return","car_price","bus_price","fixed_price","onSelected","setTaxiPrice","renderFixedPrice","taxiTypeText","alt","src","detail","index","key","DetailStep","fullName","email","amountPerson","phoneNumber","remark","flightNumber","paymentType","fullNamePlaceholder","emailPlaceholder","phoneNumberPlaceholder","amountPersonPlaceholder","flightNumberPlaceholder","remarkPlaceholder","paymentTypePlaceholder","confirmBooking","change","messageSuccess","messageError","from","to","date","returnDate","yourInfo","total","goToBook","bookStep","EmailValidator","renderMessage","role","taxiType","luggageText","format","previousStep","n","backgroundColor","color","border","width","height","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","boxShadow","outline","fontSize","fontWeight","ConfirmationStep","handlePopupClose","resetBookingHandler","log","opacity","tabIndex","LuggageStep","hasLuggage","smallLuggage","midLuggage","largeLuggage","title","yesButton","noButton","nextStep","componentWillMount","luggage","setLuggage","toggleLuggage","bool","renderLuggageOptions","CounterInput","min","max","count","onCountChange","PopUp","step","showConfirmation","goToCustomerDetails","goToConfirmationStep","full_name","phone","flight_number","car_type","payment_type","amount_person","return_date","href","mollie_redirect_url","renderContent","resetBookingData","Booking","addressFullA","addressFullB","popup","isDateValid","constructor","super","urlParams","URLSearchParams","search","tripId","get","checkPaymentStatus","delete","newUrl","pathname","history","replaceState","textContent","pickupAddress","destinationAddress","pickupLabel","returnLabel","calculatePrice","returnBooking","switchAddresses","addStop","changeAddressA","splitAddress","split","join","changeAddressB","prevState","fullAddress","getMinTime","currentDate","dayjs","add","removeStop","filter","_","i","changeStopAddress","preventDefault","newStops","reverse","getMinSelectableTime","changeDate","isAfter","changeReturnDate","togglePopup","toggleConfirmation","text","stop","big_title","google_api_key","marginBottom","borderRadius","padding","zIndex","borderColor","DatePicker","showTimeSelect","timeFormat","dateFormat","showIcon","icon","left","placeholderText","selected","selectedDate","minSelectableTime","Date","toDate","minDate","filterTime","time","currentDateWithBuffer","getTime","popperPlacement","timeIntervals","disabledKeyboardNavigation","onKeyDown","withPortal","marginTop","name","checked","disabled","ReactOnRails","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","Object","keys","every","splice","r","getter","__esModule","d","a","getPrototypeOf","obj","__proto__","t","mode","ns","create","def","current","indexOf","getOwnPropertyNames","forEach","definition","o","defineProperty","enumerable","g","globalThis","Function","prop","prototype","hasOwnProperty","Symbol","toStringTag","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","id","chunkLoadingGlobal","self","bind","push","__webpack_exports__"],"sourceRoot":""}