@digitransit-component/digitransit-component-autosuggest-panel 7.0.3 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.development.js +2 -2
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/package.json +5 -6
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../../node_modules/style-inject/dist/style-inject.es.js","../src/helpers/Select.js","../src/helpers/translations.js","../src/helpers/i18n.js","../src/index.js"],"sourcesContent":["function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import PropTypes from 'prop-types';\nimport React, { useState, useEffect, useRef, useLayoutEffect } from 'react';\nimport Autosuggest from 'react-autosuggest';\nimport styles from './select.scss';\n\nconst Select = ({\n value,\n getDisplay,\n options,\n onSlackTimeSelected,\n viaPointIndex,\n id,\n label,\n icon,\n}) => {\n const [displayValue, changeDisplayValue] = useState(getDisplay(value));\n const [open, changeOpen] = useState(false);\n useEffect(() => changeDisplayValue(getDisplay(value)), [value]);\n const scrollRef = useRef(null);\n const scrollIndex = Math.floor(value / 600);\n const elementHeight = 50;\n useLayoutEffect(() => {\n if (open && scrollRef.current) {\n scrollRef.current.scrollTop = elementHeight * scrollIndex;\n }\n }, [value, open]);\n\n const inputId = `${id}-input`;\n const labelId = `${id}-label`;\n\n const onInputChange = (_, { newValue, method }) => {\n switch (method) {\n case 'enter':\n case 'click':\n onSlackTimeSelected(newValue, viaPointIndex);\n break;\n case 'escape':\n changeDisplayValue(value);\n break;\n case 'up':\n case 'down':\n default:\n break;\n }\n };\n return (\n <label className={styles['combobox-container']} htmlFor={inputId}>\n <span className={styles['left-column']}>\n <span className={styles['combobox-label']} id={labelId}>\n {label}\n </span>\n <Autosuggest\n id={id}\n suggestions={options}\n getSuggestionValue={s => s.value}\n renderSuggestion={s => s.displayName}\n onSuggestionsFetchRequested={() => null}\n shouldRenderSuggestions={() => true}\n focusInputOnSuggestionClick={false}\n onSuggestionsClearRequested={() => null}\n inputProps={{\n value: displayValue,\n onChange: onInputChange,\n onFocus: () => {\n changeOpen(true);\n },\n onBlur: () => {\n changeOpen(false);\n },\n id: inputId,\n 'aria-labelledby': labelId,\n 'aria-autocomplete': 'none',\n readOnly: true,\n }}\n renderSuggestionsContainer={({ containerProps, children }) => {\n // set refs for autosuggest library and scrollbar positioning\n const { ref, ...otherRefs } = containerProps;\n const containerRef = elem => {\n if (elem) {\n scrollRef.current = elem;\n ref(elem);\n }\n };\n return (\n <div tabIndex=\"-1\" {...otherRefs} ref={containerRef}>\n {children}\n </div>\n );\n }}\n theme={styles}\n />\n </span>\n {icon}\n </label>\n );\n};\n\nSelect.propTypes = {\n value: PropTypes.number.isRequired,\n onSlackTimeSelected: PropTypes.func.isRequired,\n getDisplay: PropTypes.func.isRequired,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n displayName: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired,\n }).isRequired,\n ).isRequired,\n id: PropTypes.string.isRequired,\n label: PropTypes.node.isRequired,\n icon: PropTypes.node.isRequired,\n viaPointIndex: PropTypes.number.isRequired,\n};\n\nexport default Select;\n","const translations = {\n de: {\n translation: {\n 'add-via-button-label': 'Füge Zwischenziel hinzu',\n 'add-via-duration-button-label':\n 'Setze Umsteigezeit für Zwischenziel {{index}}',\n 'add-via-duration-button-label-close':\n 'Schließe Umsteigezeit-Auswahl für Zwischenziel {{index}}',\n 'add-via-duration-button-label-open':\n 'Öffne Umsteigezeit-Auswahl für Zwischenziel {{index}}',\n 'minute-short': 'min',\n 'remove-via-button-label': 'Entferne Zwischenziel {{index}}',\n 'swap-order-button-label': 'Tausche Start mit Ziel',\n 'via-point': 'Zwischenziel',\n 'via-point-index': 'Zwischenziel {{index}}',\n 'viapoint-slack-amount': 'Umsteigezeit',\n },\n },\n en: {\n translation: {\n 'add-via-button-label': 'Add via point',\n 'add-via-duration-button-label':\n 'Set stop duration at via point {{index}}',\n 'add-via-duration-button-label-close':\n 'Close stop duration selector at via point {{index}}',\n 'add-via-duration-button-label-open':\n 'Open stop duration selector at via point {{index}}',\n 'minute-short': 'min',\n 'remove-via-button-label': 'Remove via point {{index}}',\n 'swap-order-button-label': 'Reverse origin and destination',\n 'via-point': 'Via point',\n 'via-point-index': 'Via point {{index}}',\n 'viapoint-slack-amount': 'Stop duration',\n },\n },\n fi: {\n translation: {\n 'add-via-button-label': 'Lisää välipiste',\n 'add-via-duration-button-label':\n 'Aseta välipisteelle {{index}} pysähdyksen kesto',\n 'add-via-duration-button-label-close':\n 'Avaa välipisteen {{index}} pysähdyksen kesto valitsin',\n 'add-via-duration-button-label-open':\n 'Sulje välipisteen {{index}} pysähdyksen kesto valitsin',\n 'minute-short': 'min',\n 'remove-via-button-label': 'Poista välipiste {{index}}',\n 'swap-order-button-label': 'Käännä reitin suunta vastakkaiseksi',\n 'via-point': 'Välipiste',\n 'via-point-index': 'Välipiste {{index}}',\n 'viapoint-slack-amount': 'Pysähdyksen kesto',\n },\n },\n pl: {\n translation: {\n 'add-via-button-label': 'Dodaj punkt pośredni',\n 'add-via-duration-button-label':\n 'Wybierz czas postoju dla punktu {{index}}',\n 'add-via-duration-button-label-close':\n 'Zamknij wybornik czasu postoju w punkcie {{index}}',\n 'add-via-duration-button-label-open':\n 'Otwórz wybornik czasu postoju w punkcie {{index}}',\n 'minute-short': 'min.',\n 'remove-via-button-label': 'Usuń punkt pośredni {{index}}',\n 'swap-order-button-label': 'Odwróć początek i cel',\n 'via-point': 'Punkt pośredni',\n 'via-point-index': 'Punkt pośredni {{index}}',\n 'viapoint-slack-amount': 'Czas postoju',\n },\n },\n sv: {\n translation: {\n 'add-via-button-label': 'Lägg till viapunkt',\n 'add-via-duration-button-label':\n 'Ställ in varaktighet för viapunkten {{index}}',\n 'add-via-duration-button-label-close':\n 'Stäng väljaren för varaktighet vid via-punkten {{index}}',\n 'add-via-duration-button-label-open':\n 'Öppna väljaren för varaktighet vid via-punkten {{index}}',\n 'minute-short': 'min',\n 'remove-via-button-label': 'Ta bort viapunkt {{index}}',\n 'swap-order-button-label': 'Sväng ruttens riktning till den motsatta',\n 'via-point': 'Via punkt',\n 'via-point-index': 'Via punkt {{index}}',\n 'viapoint-slack-amount': 'Stoppets varaktighet',\n },\n },\n};\n\nexport default translations;\n","import { createInstance } from 'i18next';\nimport translations from './translations';\n\nconst i18n = createInstance({\n fallbackLng: 'fi',\n // debug: true,\n resources: translations,\n defaultNS: 'translation',\n react: {\n useSuspense: true,\n },\n});\n\ni18n.init();\n\nexport default i18n;\n","/* eslint-disable import/no-extraneous-dependencies */\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { I18nextProvider, withTranslation } from 'react-i18next';\nimport { ReactSortable } from 'react-sortablejs';\nimport DTAutoSuggest from '@digitransit-component/digitransit-component-autosuggest';\nimport Icon from '@digitransit-component/digitransit-component-icon';\nimport isEmpty from 'lodash/isEmpty';\nimport Select from './helpers/Select';\nimport i18n from './helpers/i18n';\nimport styles from './helpers/styles.scss';\n\nexport const getEmptyViaPointPlaceHolder = () => ({});\n\nconst isViaPointEmpty = viaPoint => {\n if (viaPoint === undefined || isEmpty(viaPoint)) {\n return true;\n }\n const keys = Object.keys(viaPoint);\n return (\n keys.length === 1 || (keys.length === 2 && keys.includes('locationSlack'))\n );\n};\n\nconst ItinerarySearchControl = ({\n children,\n className,\n enabled,\n onClick,\n onKeyPress,\n wide,\n ...rest\n}) => (\n <div\n className={styles['itinerary-search-control']}\n style={{ '--width': wide ? '47px' : '40px' }}\n >\n {onClick && enabled && (\n <div\n {...rest}\n className={className}\n onClick={onClick}\n onKeyPress={onKeyPress}\n role=\"button\"\n tabIndex=\"0\"\n >\n {children}\n </div>\n )}\n </div>\n);\n\nconst updateViaPointSlack = (\n activeViaPointSlacks,\n updatedViaPointIndex,\n viaPointRemoved = false,\n) => {\n const foundAtIndex = activeViaPointSlacks.indexOf(updatedViaPointIndex);\n if (foundAtIndex > -1) {\n activeViaPointSlacks.splice(foundAtIndex, 1);\n }\n return viaPointRemoved\n ? activeViaPointSlacks.map(value =>\n value > updatedViaPointIndex ? value - 1 : value,\n )\n : activeViaPointSlacks;\n};\n\nconst isKeyboardSelectionEvent = event => {\n const space = [13, ' ', 'Spacebar'];\n const enter = [32, 'Enter'];\n const key = (event && (event.key || event.which || event.keyCode)) || '';\n if (!key || !space.concat(enter).includes(key)) {\n return false;\n }\n event.preventDefault();\n return true;\n};\n\nconst value = location =>\n (location && location.address) ||\n (location && location.gps && location.ready && 'Nykyinen sijainti') ||\n '';\n\nconst getLocationType = location =>\n location && location.gps === true ? 'position' : 'location';\n\nconst getSlackTimeOptions = t => {\n const timeOptions = [];\n for (let i = 0; i <= 9; i++) {\n const valueInMinutes = i * 10;\n timeOptions.push({\n displayName: `${valueInMinutes} ${t('minute-short')}`,\n value: valueInMinutes * 60,\n });\n }\n return timeOptions;\n};\n\nItinerarySearchControl.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string.isRequired,\n enabled: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired,\n onKeyPress: PropTypes.func.isRequired,\n wide: PropTypes.bool,\n};\n\nItinerarySearchControl.defaultProps = {\n children: undefined,\n wide: false,\n};\n\n/**\n * Panel that renders two DTAutosuggest search fields, including viapoint handling\n *\n * @example\n * const searchContext = {\n * isPeliasLocationAware: false // true / false does Let Pelias suggest based on current user location\n * minimalRegexp: undefined // used for testing min. regexp. For example: new RegExp('.{2,}'),\n * lineRegexp: undefined // identify searches for route numbers/labels: bus | train | metro. For example: new RegExp(\n * // '(^[0-9]+[a-z]?$|^[yuleapinkrtdz]$|(^m[12]?b?$))',\n * // 'i',\n * // ),\n * URL_PELIAS: '' // url for pelias searches\n * feedIDs: ['HSL', 'HSLLautta'] // FeedId's like [HSL, HSLLautta]\n * geocodingSources: ['oa','osm','nlsfi'] // sources for geocoding\n * geocodingSearchParams; {} // Searchparmas fro geocoding\n * getFavouriteLocations: () => ({}), // Function that returns array of favourite locations.\n * getFavouriteStops: () => ({}), // Function that returns array of favourite stops.\n * getLanguage: () => ({}), // Function that returns current language.\n * getFavouriteRoutes: () => ({}), // Function that returns array of favourite routes.\n * getPositions: () => ({}), // Function that returns user's geolocation.\n * getRoutesQuery: () => ({}), // Function that returns query for fetching routes.\n * getStopAndStationsQuery: () => ({}), // Function that fetches favourite stops and stations from graphql API.\n * getFavouriteRoutesQuery: () => ({}), // Function that returns query for fetching favourite routes.\n * getFavouriteVehicleRentalStations: () => ({}), // Function that returns favourite bike rental station.\n * getFavouriteVehicleRentalStationsQuery: () => ({}), // Function that returns query for fetching favourite bike rental stations.\n * startLocationWatch: () => ({}), // Function that locates users geolocation.\n * saveSearch: () => ({}), // Function that saves search to old searches store.\n * clearOldSearches: () => ({}), // Function that clears old searches store.\n * getFutureRoutes: () => ({}), // Function that return future routes\n * saveFutureRoute: () => ({}), // Function that saves a future route\n * clearFutureRoutes: () => ({}), // Function that clears future routes\n * };\n *\n * const origin = {\n * lat: 60.169196,\n * lon: 24.957674,\n * address: 'Aleksanterinkatu, Helsinki',\n * set: true,\n * ready: true,\n * }\n *\n * const destination = {\n * lat: 60.199093,\n * lon: 24.940536,\n * address: 'Opastinsilta 6, Helsinki',\n * set: true,\n * ready: true,\n * }\n * onSelect(item, id) {\n * return null; // Define what to do when a suggestion is being selected. None by default.\n * }\n * onClear(id) {\n * return null; // Define what to do when a suggestion is being selected. None by default.\n * }\n * const getAutoSuggestIcons: {\n * // Called for every city bike station rendered as a search suggestion. Should return the icon and\n * // color used for that station. Two icons are available, 'citybike-stop-digitransit' anditybike-stop-digitransit-secondary'.\n * citybikes: station => {\n * return ['citybike-stop-digitransit', '#f2b62d'];\n * }\n * }\n * const targets = ['Locations', 'Stops', 'Routes']; // Defines what you are searching. all available options are Locations, Stops, Routes, VehicleRentalStations, FutureRoutes, MapPosition and CurrentPosition. Leave empty to search all targets.\n * const sources = ['Favourite', 'History', 'Datasource'] // Defines where you are searching. all available are: Favourite, History (previously searched searches), and Datasource. Leave empty to use all sources.\n * <DTAutosuggestPanel\n * appElement={appElement} // Required. Root element's id. Needed for react-modal component.\n * origin={origin} // Selected origin point\n * destination={destination} // Selected destination point\n * originPlaceHolder={'Give origin'} // Optional Give string shown initially inside origin search field\n * destinationPlaceHolder={'Give destination'} // Optional Give string shown initally inside destination search field\n * initialViaPoints={[]} // Optional. If showViapointControl is set to true, pass initial via points to the panel. Currently no default implementation is given.\n * updateViaPoints={() => return []} // Optional. If showViapointControl is set to true, define how to update your via point list with this function. Currenlty no default implementation is given.\n * swapOrder={() => return null} // Optional. If showSwapControl is set to true, define how to swap order of your points (origin, destination, viapoints). Currently no default implementation is given.\n * searchContext={searchContext}\n * getAutoSuggestIcons={getAutoSuggestIcons}\n * onSelect={this.onSelect}\n * onClear={this.onClear}\n * lang=\"fi\" // Define language fi sv or en.\n * addAnalyticsEvent={null} // Optional. you can record an analytics event if you wish. if passed, component will pass an category, action, name parameters to addAnalyticsEvent\n * disableAutoFocus={false} // Optional. use this to disable autofocus completely from DTAutosuggestPanel\n * sources={sources}\n * targets={targets}\n * isMobile // Optional. Defaults to false. Whether to use mobile search.\n * originMobileLabel=\"Origin label\" // Optional. Custom label text for origin field on mobile.\n * destinationMobileLabel=\"Destination label\" // Optional. Custom label text for destination field on mobile.\n * handleFocusChange={() => {}} // Optional. If defined overrides default onFocusChange behaviour\n * showSwapControl={false} // Optional.\n * showViapointControl={false} // Optional.\n */\n\nconst locationShape = PropTypes.shape({\n address: PropTypes.string,\n lat: PropTypes.number,\n lon: PropTypes.number,\n locationSlack: PropTypes.number,\n});\n\nclass DTAutosuggestPanel extends React.Component {\n static propTypes = {\n appElement: PropTypes.string.isRequired,\n origin: locationShape,\n destination: locationShape,\n originPlaceHolder: PropTypes.string,\n destinationPlaceHolder: PropTypes.string,\n viaPoints: PropTypes.arrayOf(locationShape),\n updateViaPoints: PropTypes.func,\n handleViaPointLocationSelected: PropTypes.func,\n swapOrder: PropTypes.func,\n searchPanelText: PropTypes.string,\n searchContext: PropTypes.shape({\n URL_PELIAS: PropTypes.string,\n }).isRequired,\n onSelect: PropTypes.func.isRequired,\n onClear: PropTypes.func,\n addAnalyticsEvent: PropTypes.func,\n lang: PropTypes.string.isRequired,\n disableAutoFocus: PropTypes.bool,\n sources: PropTypes.arrayOf(PropTypes.string),\n targets: PropTypes.arrayOf(PropTypes.string),\n filterResults: PropTypes.func,\n isMobile: PropTypes.bool,\n color: PropTypes.string,\n hoverColor: PropTypes.string,\n originMobileLabel: PropTypes.string,\n destinationMobileLabel: PropTypes.string,\n refPoint: locationShape,\n modeSet: PropTypes.string,\n modeIconColors: PropTypes.objectOf(PropTypes.string),\n getAutoSuggestIcons: PropTypes.objectOf(PropTypes.func),\n fontWeights: PropTypes.shape({\n medium: PropTypes.number,\n }),\n showScroll: PropTypes.bool,\n onFocusChange: PropTypes.func,\n isEmbedded: PropTypes.bool,\n showSwapControl: PropTypes.bool,\n showViapointControl: PropTypes.bool,\n showSlackControl: PropTypes.bool,\n t: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n origin: undefined,\n destination: undefined,\n viaPoints: [],\n originPlaceHolder: 'give-origin',\n destinationPlaceHolder: 'give-destination',\n swapOrder: undefined,\n updateViaPoints: () => {},\n searchPanelText: undefined,\n sources: [],\n targets: [],\n filterResults: undefined,\n onClear: undefined,\n getAutoSuggestIcons: undefined,\n refPoint: undefined,\n addAnalyticsEvent: undefined,\n disableAutoFocus: false,\n isMobile: false,\n handleViaPointLocationSelected: undefined,\n color: '#007ac9',\n hoverColor: '#0062a1',\n originMobileLabel: null,\n destinationMobileLabel: null,\n modeSet: undefined,\n modeIconColors: undefined,\n fontWeights: {\n medium: 500,\n },\n showScroll: false,\n onFocusChange: undefined,\n isEmbedded: false,\n showSwapControl: false,\n showViapointControl: false,\n showSlackControl: false,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n activeSlackInputs: [],\n refs: [],\n };\n }\n\n storeReference = ref => {\n this.setState(prevState => ({ refs: [...prevState.refs, ref] }));\n };\n\n handleFocusChange = () => {\n const { destination } = this.props;\n if (!destination || !destination.lat) {\n this.state.refs[1].focus();\n }\n };\n\n updateViaPoints = viaPoints => {\n if (viaPoints.length === 0) {\n this.props.updateViaPoints([]);\n return;\n }\n this.props.updateViaPoints(viaPoints.filter(vp => !isViaPointEmpty(vp)));\n };\n\n handleToggleViaPointSlackClick = viaPointIndex => {\n const { activeSlackInputs } = this.state;\n this.setState({\n activeSlackInputs: activeSlackInputs.includes(viaPointIndex)\n ? updateViaPointSlack(activeSlackInputs, viaPointIndex)\n : activeSlackInputs.concat([viaPointIndex]),\n });\n };\n\n handleViaPointSlackTimeSelected = (slackTimeInSeconds, i) => {\n if (this.props.addAnalyticsEvent) {\n this.props.addAnalyticsEvent({\n action: 'EditViaPointStopDuration',\n category: 'ItinerarySettings',\n name: slackTimeInSeconds / 60,\n });\n }\n const { viaPoints } = this.props;\n viaPoints[i].locationSlack = Number.parseInt(slackTimeInSeconds, 10);\n this.updateViaPoints(viaPoints);\n };\n\n handleViaPointLocationSelected = (viaPointLocation, i) => {\n this.props.handleViaPointLocationSelected(viaPointLocation, i);\n };\n\n handleRemoveViaPointClick = viaPointIndex => {\n if (this.props.addAnalyticsEvent) {\n this.props.addAnalyticsEvent({\n action: 'RemoveJourneyViaPoint',\n category: 'ItinerarySettings',\n name: null,\n });\n }\n const { activeSlackInputs } = this.state;\n const { viaPoints } = this.props;\n viaPoints.splice(viaPointIndex, 1);\n this.setState(\n {\n activeSlackInputs: updateViaPointSlack(\n activeSlackInputs,\n viaPointIndex,\n true,\n ),\n },\n () => this.updateViaPoints(viaPoints),\n );\n };\n\n handleAddViaPointClick = () => {\n if (this.props.addAnalyticsEvent) {\n this.props.addAnalyticsEvent({\n action: 'AddJourneyViaPoint',\n category: 'ItinerarySettings',\n name: 'QuickSettingsButton',\n });\n }\n const { viaPoints } = this.props;\n viaPoints.push(getEmptyViaPointPlaceHolder());\n // We need to update the state so that placeHolder will show up in panel.\n // eslint-disable-next-line react/no-access-state-in-setstate\n this.setState(this.state);\n };\n\n handleSwapOrderClick = () => {\n if (this.props.addAnalyticsEvent) {\n this.props.addAnalyticsEvent({\n action: 'SwitchJourneyStartAndEndPointOrder',\n category: 'ItinerarySettings',\n name: null,\n });\n }\n const { viaPoints } = this.props;\n viaPoints.reverse();\n this.props.swapOrder();\n };\n\n getSlackDisplay = slackInSeconds =>\n `${slackInSeconds / 60} ${this.props.t('minute-short', {\n lng: this.props.lang,\n })}`;\n\n render() {\n const {\n origin,\n searchPanelText,\n searchContext,\n disableAutoFocus,\n viaPoints,\n originMobileLabel,\n destinationMobileLabel,\n fontWeights,\n onFocusChange,\n showSwapControl,\n showViapointControl,\n t,\n lang: lng,\n } = this.props;\n const { activeSlackInputs } = this.state;\n const slackTime = getSlackTimeOptions(t);\n const defaultSlackTimeValue = 0;\n const getViaPointSlackTimeOrDefault = (\n viaPoint,\n defaultValue = defaultSlackTimeValue,\n ) => (viaPoint && viaPoint.locationSlack) || defaultValue;\n const isViaPointSlackTimeInputActive = index =>\n activeSlackInputs.includes(index);\n return (\n <div\n className={cx([\n styles['autosuggest-panel'],\n {\n small: this.props.isMobile,\n },\n ])}\n style={{\n '--color': `${this.props.color}`,\n '--font-weight-medium': fontWeights.medium,\n }}\n >\n {' '}\n {searchPanelText ? (\n <div>\n <h1 className={styles['autosuggest-searchpanel-text']}>\n {' '}\n {searchPanelText}\n </h1>\n </div>\n ) : null}\n <div className={styles['origin-input-container']}>\n <DTAutoSuggest\n appElement={this.props.appElement}\n icon=\"mapMarker\"\n id=\"origin\"\n autoFocus={\n disableAutoFocus === true\n ? false\n : !this.props.isMobile && !origin.lat\n }\n storeRef={this.storeReference}\n refPoint={this.props.refPoint}\n className={getLocationType(origin)}\n placeholder={this.props.originPlaceHolder}\n value={value(origin)}\n searchContext={searchContext}\n getAutoSuggestIcons={this.props.getAutoSuggestIcons}\n onSelect={this.props.onSelect}\n onClear={this.props.onClear}\n focusChange={onFocusChange || this.handleFocusChange}\n lang={this.props.lang}\n sources={this.props.sources}\n targets={this.props.targets}\n filterResults={this.props.filterResults}\n isMobile={this.props.isMobile}\n color={this.props.color}\n hoverColor={this.props.hoverColor}\n mobileLabel={originMobileLabel}\n fontWeights={this.props.fontWeights}\n modeSet={this.props.modeSet}\n modeIconColors={this.props.modeIconColors}\n showScroll={this.props.showScroll}\n isEmbedded={this.props.isEmbedded}\n />\n {(showSwapControl || showViapointControl) && (\n <ItinerarySearchControl\n className={styles.opposite}\n enabled={showSwapControl}\n onClick={() => this.handleSwapOrderClick()}\n onKeyPress={e =>\n isKeyboardSelectionEvent(e) && this.handleSwapOrderClick()\n }\n aria-label={t('swap-order-button-label', { lng })}\n >\n <Icon img=\"opposite\" color={this.props.color} />\n </ItinerarySearchControl>\n )}\n </div>\n {viaPoints.length === 0 && (\n <div className={styles['rectangle-container']}>\n <div className={styles.rectangle} />\n </div>\n )}\n <ReactSortable\n className={styles['viapoints-container']}\n list={viaPoints}\n handle={`.${styles['viapoint-before']}`}\n animation={200}\n disabled={viaPoints.length <= 1}\n setList={items => {\n const newViaPoints = items.filter(vp => !isViaPointEmpty(vp));\n if (newViaPoints.length > 0) {\n this.props.updateViaPoints(newViaPoints);\n }\n }}\n >\n {viaPoints.map((o, i) => (\n <div\n className={cx(styles['viapoint-container'])}\n key={`viapoint-${i}`} // eslint-disable-line\n >\n <div className={styles['light-gray-background']}>\n <div className={styles.row}>\n <div\n className={styles['viapoint-before']}\n style={viaPoints.length > 1 ? { cursor: 'move' } : {}}\n >\n {viaPoints.length > 1 && (\n <Icon\n img=\"ellipsis\"\n rotate={90}\n color={this.props.color}\n />\n )}\n </div>\n <div\n className={cx(\n `${styles['viapoint-input-container']} ${\n styles[`viapoint-${i + 1}`]\n }`,\n )}\n >\n <DTAutoSuggest\n appElement={this.props.appElement}\n icon=\"mapMarker-via\"\n id=\"via-point\"\n ariaLabel={t('via-point-index', {\n index: i + 1,\n lng,\n })}\n autoFocus={\n disableAutoFocus === true ? false : !this.props.isMobile\n }\n placeholder=\"via-point\"\n className=\"viapoint\"\n searchContext={searchContext}\n refPoint={this.props.refPoint}\n value={(o && o.address) || ''}\n onSelect={this.props.onSelect}\n onClear={this.props.onClear}\n handleViaPoints={item =>\n this.handleViaPointLocationSelected(item, i)\n }\n lang={this.props.lang}\n sources={this.props.sources}\n targets={['Stops', 'Stations']}\n filterResults={this.props.filterResults}\n getAutoSuggestIcons={this.props.getAutoSuggestIcons}\n isMobile={this.props.isMobile}\n color={this.props.color}\n hoverColor={this.props.hoverColor}\n fontWeights={this.props.fontWeights}\n modeSet={this.props.modeSet}\n modeIconColors={this.props.modeIconColors}\n showScroll={this.props.showScroll}\n />\n </div>\n {this.props.showSlackControl && (\n <ItinerarySearchControl\n className={styles['add-via-point-slack']}\n enabled={this.props.showViapointControl}\n onClick={() => this.handleToggleViaPointSlackClick(i)}\n onKeyPress={e =>\n isKeyboardSelectionEvent(e) &&\n this.handleToggleViaPointSlackClick(i)\n }\n aria-label={t(\n isViaPointSlackTimeInputActive(i)\n ? 'add-via-duration-button-label-open'\n : 'add-via-duration-button-label-close',\n { index: i + 1, lng },\n )}\n wide\n >\n <Icon img=\"time\" color={this.props.color} />\n </ItinerarySearchControl>\n )}\n </div>\n {!isViaPointSlackTimeInputActive(i) &&\n viaPoints[i] &&\n viaPoints[i].locationSlack > 0 && (\n <span className={styles['viapoint-slack-time']}>{`${t(\n 'viapoint-slack-amount',\n {\n lng,\n },\n )}: ${this.getSlackDisplay(\n viaPoints[i].locationSlack,\n )}`}</span>\n )}\n <div\n className={cx(styles['input-viapoint-slack-container'], {\n collapsed: !isViaPointSlackTimeInputActive(i),\n })}\n >\n <div className={styles['select-wrapper']}>\n <Select\n id={`viapoint-slack-${i}`}\n label={t('viapoint-slack-amount', { lng })}\n options={slackTime}\n value={getViaPointSlackTimeOrDefault(viaPoints[i])}\n getDisplay={this.getSlackDisplay}\n viaPointIndex={i}\n icon={\n <span\n className={`${styles['combobox-icon']} ${styles['time-input-icon']}`}\n >\n <Icon img=\"time\" color={this.props.color} />\n </span>\n }\n onSlackTimeSelected={this.handleViaPointSlackTimeSelected}\n />\n </div>\n </div>\n </div>\n <ItinerarySearchControl\n className={styles['remove-via-point']}\n enabled={this.props.showViapointControl}\n onClick={() => this.handleRemoveViaPointClick(i)}\n onKeyPress={e =>\n isKeyboardSelectionEvent(e) &&\n this.handleRemoveViaPointClick(i)\n }\n aria-label={t('remove-via-button-label', {\n index: i + 1,\n lng,\n })}\n >\n <Icon img=\"trash\" color={this.props.color} />\n </ItinerarySearchControl>\n </div>\n ))}\n </ReactSortable>\n <div className={styles['destination-input-container']}>\n <DTAutoSuggest\n appElement={this.props.appElement}\n icon=\"mapMarker\"\n id=\"destination\"\n autoFocus={\n disableAutoFocus === true\n ? false\n : !this.props.isMobile && !Number.isNaN(origin.lat)\n }\n storeRef={this.storeReference}\n placeholder={this.props.destinationPlaceHolder}\n className={getLocationType(this.props.destination)}\n getAutoSuggestIcons={this.props.getAutoSuggestIcons}\n searchContext={searchContext}\n onSelect={this.props.onSelect}\n onClear={this.props.onClear}\n refPoint={this.props.refPoint}\n value={value(this.props.destination)}\n lang={this.props.lang}\n sources={this.props.sources}\n targets={this.props.targets}\n filterResults={this.props.filterResults}\n isMobile={this.props.isMobile}\n color={this.props.color}\n hoverColor={this.props.hoverColor}\n mobileLabel={destinationMobileLabel}\n fontWeights={this.props.fontWeights}\n modeSet={this.props.modeSet}\n modeIconColors={this.props.modeIconColors}\n showScroll={this.props.showScroll}\n isEmbedded={this.props.isEmbedded}\n />\n {(showSwapControl || showViapointControl) && (\n <ItinerarySearchControl\n className={cx(styles['add-via-point'], styles.more, {\n collapsed: viaPoints.length > 4,\n })}\n enabled={showViapointControl && viaPoints.length === 0}\n onClick={() => this.handleAddViaPointClick()}\n onKeyPress={e =>\n isKeyboardSelectionEvent(e) && this.handleAddViaPointClick()\n }\n aria-label={t('add-via-button-label', { lng })}\n >\n <Icon\n img=\"viapoint\"\n width={1.25}\n height={1.375}\n color={this.props.color}\n />\n </ItinerarySearchControl>\n )}\n </div>\n </div>\n );\n }\n}\n\nconst DTAutosuggestPanelWithTranslation = withTranslation()(DTAutosuggestPanel);\n\nexport default props => {\n return (\n <I18nextProvider i18n={i18n}>\n <DTAutosuggestPanelWithTranslation {...props} />\n </I18nextProvider>\n );\n};\n"],"names":["_typeof","o","Symbol","iterator","constructor","prototype","toPropertyKey","t","i","r","e","toPrimitive","call","TypeError","String","Number","_defineProperty","Object","defineProperty","value","enumerable","configurable","writable","_objectWithoutProperties","n","hasOwnProperty","indexOf","objectWithoutPropertiesLoose","getOwnPropertySymbols","length","propertyIsEnumerable","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","Select","getDisplay","options","onSlackTimeSelected","viaPointIndex","id","label","icon","displayValue","changeDisplayValue","useState","open","changeOpen","useEffect","scrollRef","useRef","scrollIndex","Math","floor","useLayoutEffect","current","scrollTop","inputId","labelId","React","className","styles","htmlFor","Autosuggest","suggestions","getSuggestionValue","s","renderSuggestion","displayName","onSuggestionsFetchRequested","shouldRenderSuggestions","focusInputOnSuggestionClick","onSuggestionsClearRequested","inputProps","onChange","onInputChange","_","newValue","method","onFocus","onBlur","readOnly","renderSuggestionsContainer","containerProps","children","otherRefs","_excluded","assign","tabIndex","elem","theme","process","env","NODE_ENV","propTypes","PropTypes","number","isRequired","func","arrayOf","shape","string","node","i18n","createInstance","fallbackLng","resources","de","translation","en","fi","pl","sv","defaultNS","react","useSuspense","init","getEmptyViaPointPlaceHolder","isViaPointEmpty","viaPoint","undefined","isEmpty","keys","includes","ItinerarySearchControl","_ref","enabled","onClick","onKeyPress","wide","rest","role","updateViaPointSlack","activeViaPointSlacks","updatedViaPointIndex","viaPointRemoved","foundAtIndex","splice","map","isKeyboardSelectionEvent","event","key","which","keyCode","concat","preventDefault","location","address","gps","ready","getLocationType","bool","defaultProps","locationShape","lat","lon","locationSlack","DTAutosuggestPanel","Component","props","super","this","setState","prevState","refs","destination","state","focus","viaPoints","updateViaPoints","filter","vp","activeSlackInputs","slackTimeInSeconds","addAnalyticsEvent","action","category","name","parseInt","viaPointLocation","handleViaPointLocationSelected","push","reverse","swapOrder","slackInSeconds","lng","lang","render","origin","searchPanelText","searchContext","disableAutoFocus","originMobileLabel","destinationMobileLabel","fontWeights","onFocusChange","showSwapControl","showViapointControl","slackTime","timeOptions","valueInMinutes","getSlackTimeOptions","getViaPointSlackTimeOrDefault","defaultValue","isViaPointSlackTimeInputActive","index","cx","isMobile","color","medium","DTAutoSuggest","appElement","autoFocus","storeRef","storeReference","refPoint","placeholder","originPlaceHolder","getAutoSuggestIcons","onSelect","onClear","focusChange","handleFocusChange","sources","targets","filterResults","hoverColor","mobileLabel","modeSet","modeIconColors","showScroll","isEmbedded","opposite","handleSwapOrderClick","Icon","img","rectangle","ReactSortable","list","handle","animation","disabled","setList","items","newViaPoints","row","cursor","rotate","ariaLabel","handleViaPoints","item","showSlackControl","handleToggleViaPointSlackClick","getSlackDisplay","handleViaPointSlackTimeSelected","handleRemoveViaPointClick","isNaN","destinationPlaceHolder","more","handleAddViaPointClick","width","height","URL_PELIAS","objectOf","DTAutosuggestPanelWithTranslation","withTranslation","I18nextProvider"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../../node_modules/section-iterator/dist/index.js","../../../../node_modules/react-themeable/node_modules/object-assign/index.js","../../../../node_modules/react-themeable/dist/index.js","../../../../node_modules/react-autosuggest/dist/compareObjects.js","../../../../node_modules/react-autosuggest/dist/SectionTitle.js","../../../../node_modules/react-autosuggest/dist/Item.js","../../../../node_modules/react-autosuggest/dist/ItemList.js","../../../../node_modules/react-autosuggest/dist/Autowhatever.js","../../../../node_modules/react-autosuggest/dist/Autosuggest.js","../../../../node_modules/shallow-equal/arrays/index.js","../../../../node_modules/react-autosuggest/dist/theme.js","../../../../node_modules/react-autosuggest/dist/index.js","../../../../node_modules/style-inject/dist/style-inject.es.js","../src/helpers/Select.js","../src/helpers/translations.js","../src/helpers/i18n.js","../src/index.js"],"sourcesContent":["function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","\"use strict\";\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nmodule.exports = function (_ref) {\n var data = _ref.data;\n var multiSection = _ref.multiSection;\n\n function nextNonEmptySectionIndex(sectionIndex) {\n if (sectionIndex === null) {\n sectionIndex = 0;\n } else {\n sectionIndex++;\n }\n\n while (sectionIndex < data.length && data[sectionIndex] === 0) {\n sectionIndex++;\n }\n\n return sectionIndex === data.length ? null : sectionIndex;\n }\n\n function prevNonEmptySectionIndex(sectionIndex) {\n if (sectionIndex === null) {\n sectionIndex = data.length - 1;\n } else {\n sectionIndex--;\n }\n\n while (sectionIndex >= 0 && data[sectionIndex] === 0) {\n sectionIndex--;\n }\n\n return sectionIndex === -1 ? null : sectionIndex;\n }\n\n function next(position) {\n var _position = _slicedToArray(position, 2);\n\n var sectionIndex = _position[0];\n var itemIndex = _position[1];\n\n\n if (multiSection) {\n if (itemIndex === null || itemIndex === data[sectionIndex] - 1) {\n sectionIndex = nextNonEmptySectionIndex(sectionIndex);\n\n if (sectionIndex === null) {\n return [null, null];\n }\n\n return [sectionIndex, 0];\n }\n\n return [sectionIndex, itemIndex + 1];\n }\n\n if (data === 0 || itemIndex === data - 1) {\n return [null, null];\n }\n\n if (itemIndex === null) {\n return [null, 0];\n }\n\n return [null, itemIndex + 1];\n }\n\n function prev(position) {\n var _position2 = _slicedToArray(position, 2);\n\n var sectionIndex = _position2[0];\n var itemIndex = _position2[1];\n\n\n if (multiSection) {\n if (itemIndex === null || itemIndex === 0) {\n sectionIndex = prevNonEmptySectionIndex(sectionIndex);\n\n if (sectionIndex === null) {\n return [null, null];\n }\n\n return [sectionIndex, data[sectionIndex] - 1];\n }\n\n return [sectionIndex, itemIndex - 1];\n }\n\n if (data === 0 || itemIndex === 0) {\n return [null, null];\n }\n\n if (itemIndex === null) {\n return [null, data - 1];\n }\n\n return [null, itemIndex - 1];\n }\n\n function isLast(position) {\n return next(position)[1] === null;\n }\n\n return {\n next: next,\n prev: prev,\n isLast: isLast\n };\n};\n","'use strict';\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction ownEnumerableKeys(obj) {\n\tvar keys = Object.getOwnPropertyNames(obj);\n\n\tif (Object.getOwnPropertySymbols) {\n\t\tkeys = keys.concat(Object.getOwnPropertySymbols(obj));\n\t}\n\n\treturn keys.filter(function (key) {\n\t\treturn propIsEnumerable.call(obj, key);\n\t});\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = ownEnumerableKeys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } }\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar truthy = function truthy(x) {\n return x;\n};\n\nexports['default'] = function (input) {\n var _ref = Array.isArray(input) && input.length === 2 ? input : [input, null];\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var theme = _ref2[0];\n var classNameDecorator = _ref2[1];\n\n return function (key) {\n for (var _len = arguments.length, names = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n names[_key - 1] = arguments[_key];\n }\n\n var styles = names.map(function (name) {\n return theme[name];\n }).filter(truthy);\n\n return typeof styles[0] === 'string' || typeof classNameDecorator === 'function' ? { key: key, className: classNameDecorator ? classNameDecorator.apply(undefined, _toConsumableArray(styles)) : styles.join(' ') } : { key: key, style: _objectAssign2['default'].apply(undefined, [{}].concat(_toConsumableArray(styles))) };\n };\n};\n\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = compareObjects;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction compareObjects(objA, objB) {\n var keys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n if (objA === objB) {\n return false;\n }\n\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n\n if (aKeys.length !== bKeys.length) {\n return true;\n }\n\n var keysMap = {};\n var i, len;\n\n for (i = 0, len = keys.length; i < len; i++) {\n keysMap[keys[i]] = true;\n }\n\n for (i = 0, len = aKeys.length; i < len; i++) {\n var key = aKeys[i];\n var aValue = objA[key];\n var bValue = objB[key];\n\n if (aValue === bValue) {\n continue;\n }\n\n if (!keysMap[key] || aValue === null || bValue === null || _typeof(aValue) !== 'object' || _typeof(bValue) !== 'object') {\n return true;\n }\n\n var aValueKeys = Object.keys(aValue);\n var bValueKeys = Object.keys(bValue);\n\n if (aValueKeys.length !== bValueKeys.length) {\n return true;\n }\n\n for (var n = 0, length = aValueKeys.length; n < length; n++) {\n var aValueKey = aValueKeys[n];\n\n if (aValue[aValueKey] !== bValue[aValueKey]) {\n return true;\n }\n }\n }\n\n return false;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _compareObjects = _interopRequireDefault(require(\"./compareObjects\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SectionTitle = /*#__PURE__*/function (_Component) {\n _inherits(SectionTitle, _Component);\n\n var _super = _createSuper(SectionTitle);\n\n function SectionTitle() {\n _classCallCheck(this, SectionTitle);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(SectionTitle, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return (0, _compareObjects[\"default\"])(nextProps, this.props);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n section = _this$props.section,\n renderSectionTitle = _this$props.renderSectionTitle,\n theme = _this$props.theme,\n sectionKeyPrefix = _this$props.sectionKeyPrefix;\n var sectionTitle = renderSectionTitle(section);\n\n if (!sectionTitle) {\n return null;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", theme(\"\".concat(sectionKeyPrefix, \"title\"), 'sectionTitle'), sectionTitle);\n }\n }]);\n\n return SectionTitle;\n}(_react.Component);\n\nexports[\"default\"] = SectionTitle;\n\n_defineProperty(SectionTitle, \"propTypes\", {\n section: _propTypes[\"default\"].any.isRequired,\n renderSectionTitle: _propTypes[\"default\"].func.isRequired,\n theme: _propTypes[\"default\"].func.isRequired,\n sectionKeyPrefix: _propTypes[\"default\"].string.isRequired\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _compareObjects = _interopRequireDefault(require(\"./compareObjects\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar Item = /*#__PURE__*/function (_Component) {\n _inherits(Item, _Component);\n\n var _super = _createSuper(Item);\n\n function Item() {\n var _this;\n\n _classCallCheck(this, Item);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"storeItemReference\", function (item) {\n if (item !== null) {\n _this.item = item;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseEnter\", function (event) {\n var _this$props = _this.props,\n sectionIndex = _this$props.sectionIndex,\n itemIndex = _this$props.itemIndex;\n\n _this.props.onMouseEnter(event, {\n sectionIndex: sectionIndex,\n itemIndex: itemIndex\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseLeave\", function (event) {\n var _this$props2 = _this.props,\n sectionIndex = _this$props2.sectionIndex,\n itemIndex = _this$props2.itemIndex;\n\n _this.props.onMouseLeave(event, {\n sectionIndex: sectionIndex,\n itemIndex: itemIndex\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (event) {\n var _this$props3 = _this.props,\n sectionIndex = _this$props3.sectionIndex,\n itemIndex = _this$props3.itemIndex;\n\n _this.props.onMouseDown(event, {\n sectionIndex: sectionIndex,\n itemIndex: itemIndex\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props4 = _this.props,\n sectionIndex = _this$props4.sectionIndex,\n itemIndex = _this$props4.itemIndex;\n\n _this.props.onClick(event, {\n sectionIndex: sectionIndex,\n itemIndex: itemIndex\n });\n });\n\n return _this;\n }\n\n _createClass(Item, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return (0, _compareObjects[\"default\"])(nextProps, this.props, ['renderItemData']);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props5 = this.props,\n isHighlighted = _this$props5.isHighlighted,\n item = _this$props5.item,\n renderItem = _this$props5.renderItem,\n renderItemData = _this$props5.renderItemData,\n restProps = _objectWithoutProperties(_this$props5, [\"isHighlighted\", \"item\", \"renderItem\", \"renderItemData\"]);\n\n delete restProps.sectionIndex;\n delete restProps.itemIndex;\n\n if (typeof restProps.onMouseEnter === 'function') {\n restProps.onMouseEnter = this.onMouseEnter;\n }\n\n if (typeof restProps.onMouseLeave === 'function') {\n restProps.onMouseLeave = this.onMouseLeave;\n }\n\n if (typeof restProps.onMouseDown === 'function') {\n restProps.onMouseDown = this.onMouseDown;\n }\n\n if (typeof restProps.onClick === 'function') {\n restProps.onClick = this.onClick;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"li\", _extends({\n role: \"option\"\n }, restProps, {\n ref: this.storeItemReference\n }), renderItem(item, _objectSpread({\n isHighlighted: isHighlighted\n }, renderItemData)));\n }\n }]);\n\n return Item;\n}(_react.Component);\n\nexports[\"default\"] = Item;\n\n_defineProperty(Item, \"propTypes\", {\n sectionIndex: _propTypes[\"default\"].number,\n isHighlighted: _propTypes[\"default\"].bool.isRequired,\n itemIndex: _propTypes[\"default\"].number.isRequired,\n item: _propTypes[\"default\"].any.isRequired,\n renderItem: _propTypes[\"default\"].func.isRequired,\n renderItemData: _propTypes[\"default\"].object.isRequired,\n onMouseEnter: _propTypes[\"default\"].func,\n onMouseLeave: _propTypes[\"default\"].func,\n onMouseDown: _propTypes[\"default\"].func,\n onClick: _propTypes[\"default\"].func\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _Item = _interopRequireDefault(require(\"./Item\"));\n\nvar _compareObjects = _interopRequireDefault(require(\"./compareObjects\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar ItemsList = /*#__PURE__*/function (_Component) {\n _inherits(ItemsList, _Component);\n\n var _super = _createSuper(ItemsList);\n\n function ItemsList() {\n var _this;\n\n _classCallCheck(this, ItemsList);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"storeHighlightedItemReference\", function (highlightedItem) {\n _this.props.onHighlightedItemChange(highlightedItem === null ? null : highlightedItem.item);\n });\n\n return _this;\n }\n\n _createClass(ItemsList, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return (0, _compareObjects[\"default\"])(nextProps, this.props, ['itemProps']);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n items = _this$props.items,\n itemProps = _this$props.itemProps,\n renderItem = _this$props.renderItem,\n renderItemData = _this$props.renderItemData,\n sectionIndex = _this$props.sectionIndex,\n highlightedItemIndex = _this$props.highlightedItemIndex,\n getItemId = _this$props.getItemId,\n theme = _this$props.theme,\n keyPrefix = _this$props.keyPrefix;\n var sectionPrefix = sectionIndex === null ? keyPrefix : \"\".concat(keyPrefix, \"section-\").concat(sectionIndex, \"-\");\n var isItemPropsFunction = typeof itemProps === 'function';\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", _extends({\n role: \"listbox\"\n }, theme(\"\".concat(sectionPrefix, \"items-list\"), 'itemsList')), items.map(function (item, itemIndex) {\n var isFirst = itemIndex === 0;\n var isHighlighted = itemIndex === highlightedItemIndex;\n var itemKey = \"\".concat(sectionPrefix, \"item-\").concat(itemIndex);\n var itemPropsObj = isItemPropsFunction ? itemProps({\n sectionIndex: sectionIndex,\n itemIndex: itemIndex\n }) : itemProps;\n\n var allItemProps = _objectSpread({\n id: getItemId(sectionIndex, itemIndex),\n 'aria-selected': isHighlighted\n }, theme(itemKey, 'item', isFirst && 'itemFirst', isHighlighted && 'itemHighlighted'), {}, itemPropsObj);\n\n if (isHighlighted) {\n allItemProps.ref = _this2.storeHighlightedItemReference;\n } // `key` is provided by theme()\n\n /* eslint-disable react/jsx-key */\n\n\n return /*#__PURE__*/_react[\"default\"].createElement(_Item[\"default\"], _extends({}, allItemProps, {\n sectionIndex: sectionIndex,\n isHighlighted: isHighlighted,\n itemIndex: itemIndex,\n item: item,\n renderItem: renderItem,\n renderItemData: renderItemData\n }));\n /* eslint-enable react/jsx-key */\n }));\n }\n }]);\n\n return ItemsList;\n}(_react.Component);\n\nexports[\"default\"] = ItemsList;\n\n_defineProperty(ItemsList, \"propTypes\", {\n items: _propTypes[\"default\"].array.isRequired,\n itemProps: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].object, _propTypes[\"default\"].func]),\n renderItem: _propTypes[\"default\"].func.isRequired,\n renderItemData: _propTypes[\"default\"].object.isRequired,\n sectionIndex: _propTypes[\"default\"].number,\n highlightedItemIndex: _propTypes[\"default\"].number,\n onHighlightedItemChange: _propTypes[\"default\"].func.isRequired,\n getItemId: _propTypes[\"default\"].func.isRequired,\n theme: _propTypes[\"default\"].func.isRequired,\n keyPrefix: _propTypes[\"default\"].string.isRequired\n});\n\n_defineProperty(ItemsList, \"defaultProps\", {\n sectionIndex: null\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sectionIterator = _interopRequireDefault(require(\"section-iterator\"));\n\nvar _reactThemeable = _interopRequireDefault(require(\"react-themeable\"));\n\nvar _SectionTitle = _interopRequireDefault(require(\"./SectionTitle\"));\n\nvar _ItemList = _interopRequireDefault(require(\"./ItemList\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar emptyObject = {};\n\nvar defaultRenderInputComponent = function defaultRenderInputComponent(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"input\", props);\n};\n\nvar defaultRenderItemsContainer = function defaultRenderItemsContainer(_ref) {\n var containerProps = _ref.containerProps,\n children = _ref.children;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", containerProps, children);\n};\n\nvar defaultTheme = {\n container: 'react-autowhatever__container',\n containerOpen: 'react-autowhatever__container--open',\n input: 'react-autowhatever__input',\n inputOpen: 'react-autowhatever__input--open',\n inputFocused: 'react-autowhatever__input--focused',\n itemsContainer: 'react-autowhatever__items-container',\n itemsContainerOpen: 'react-autowhatever__items-container--open',\n itemsList: 'react-autowhatever__items-list',\n item: 'react-autowhatever__item',\n itemFirst: 'react-autowhatever__item--first',\n itemHighlighted: 'react-autowhatever__item--highlighted',\n sectionContainer: 'react-autowhatever__section-container',\n sectionContainerFirst: 'react-autowhatever__section-container--first',\n sectionTitle: 'react-autowhatever__section-title'\n};\n\nvar Autowhatever = /*#__PURE__*/function (_Component) {\n _inherits(Autowhatever, _Component);\n\n var _super = _createSuper(Autowhatever);\n\n function Autowhatever(props) {\n var _this;\n\n _classCallCheck(this, Autowhatever);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"storeInputReference\", function (input) {\n if (input !== null) {\n _this.input = input;\n }\n\n var userRef = _this.props.inputProps.ref;\n\n if (userRef) {\n if (typeof userRef === 'function') {\n userRef(input);\n } else if (_typeof(userRef) === 'object' && Object.prototype.hasOwnProperty.call(userRef, 'current')) {\n userRef.current = input;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"storeItemsContainerReference\", function (itemsContainer) {\n if (itemsContainer !== null) {\n _this.itemsContainer = itemsContainer;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onHighlightedItemChange\", function (highlightedItem) {\n _this.highlightedItem = highlightedItem;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getItemId\", function (sectionIndex, itemIndex) {\n if (itemIndex === null) {\n return null;\n }\n\n var id = _this.props.id;\n var section = sectionIndex === null ? '' : \"section-\".concat(sectionIndex);\n return \"react-autowhatever-\".concat(id, \"-\").concat(section, \"-item-\").concat(itemIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onFocus\", function (event) {\n var inputProps = _this.props.inputProps;\n\n _this.setState({\n isInputFocused: true\n });\n\n inputProps.onFocus && inputProps.onFocus(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBlur\", function (event) {\n var inputProps = _this.props.inputProps;\n\n _this.setState({\n isInputFocused: false\n });\n\n inputProps.onBlur && inputProps.onBlur(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onKeyDown\", function (event) {\n var _this$props = _this.props,\n inputProps = _this$props.inputProps,\n highlightedSectionIndex = _this$props.highlightedSectionIndex,\n highlightedItemIndex = _this$props.highlightedItemIndex;\n var keyCode = event.keyCode;\n\n switch (keyCode) {\n case 40: // ArrowDown\n\n case 38:\n {\n // ArrowUp\n var nextPrev = keyCode === 40 ? 'next' : 'prev';\n\n var _this$sectionIterator = _this.sectionIterator[nextPrev]([highlightedSectionIndex, highlightedItemIndex]),\n _this$sectionIterator2 = _slicedToArray(_this$sectionIterator, 2),\n newHighlightedSectionIndex = _this$sectionIterator2[0],\n newHighlightedItemIndex = _this$sectionIterator2[1];\n\n inputProps.onKeyDown(event, {\n newHighlightedSectionIndex: newHighlightedSectionIndex,\n newHighlightedItemIndex: newHighlightedItemIndex\n });\n break;\n }\n\n default:\n inputProps.onKeyDown(event, {\n highlightedSectionIndex: highlightedSectionIndex,\n highlightedItemIndex: highlightedItemIndex\n });\n }\n });\n\n _this.highlightedItem = null;\n _this.state = {\n isInputFocused: false\n };\n\n _this.setSectionsItems(props);\n\n _this.setSectionIterator(props);\n\n _this.setTheme(props);\n\n return _this;\n }\n\n _createClass(Autowhatever, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.ensureHighlightedItemIsVisible();\n } // eslint-disable-next-line camelcase, react/sort-comp\n\n }, {\n key: \"UNSAFE_componentWillReceiveProps\",\n value: function UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.items !== this.props.items) {\n this.setSectionsItems(nextProps);\n }\n\n if (nextProps.items !== this.props.items || nextProps.multiSection !== this.props.multiSection) {\n this.setSectionIterator(nextProps);\n }\n\n if (nextProps.theme !== this.props.theme) {\n this.setTheme(nextProps);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.ensureHighlightedItemIsVisible();\n }\n }, {\n key: \"setSectionsItems\",\n value: function setSectionsItems(props) {\n if (props.multiSection) {\n this.sectionsItems = props.items.map(function (section) {\n return props.getSectionItems(section);\n });\n this.sectionsLengths = this.sectionsItems.map(function (items) {\n return items.length;\n });\n this.allSectionsAreEmpty = this.sectionsLengths.every(function (itemsCount) {\n return itemsCount === 0;\n });\n }\n }\n }, {\n key: \"setSectionIterator\",\n value: function setSectionIterator(props) {\n this.sectionIterator = (0, _sectionIterator[\"default\"])({\n multiSection: props.multiSection,\n data: props.multiSection ? this.sectionsLengths : props.items.length\n });\n }\n }, {\n key: \"setTheme\",\n value: function setTheme(props) {\n this.theme = (0, _reactThemeable[\"default\"])(props.theme);\n }\n }, {\n key: \"renderSections\",\n value: function renderSections() {\n var _this2 = this;\n\n if (this.allSectionsAreEmpty) {\n return null;\n }\n\n var theme = this.theme;\n var _this$props2 = this.props,\n id = _this$props2.id,\n items = _this$props2.items,\n renderItem = _this$props2.renderItem,\n renderItemData = _this$props2.renderItemData,\n renderSectionTitle = _this$props2.renderSectionTitle,\n highlightedSectionIndex = _this$props2.highlightedSectionIndex,\n highlightedItemIndex = _this$props2.highlightedItemIndex,\n itemProps = _this$props2.itemProps;\n return items.map(function (section, sectionIndex) {\n var keyPrefix = \"react-autowhatever-\".concat(id, \"-\");\n var sectionKeyPrefix = \"\".concat(keyPrefix, \"section-\").concat(sectionIndex, \"-\");\n var isFirstSection = sectionIndex === 0; // `key` is provided by theme()\n\n /* eslint-disable react/jsx-key */\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", theme(\"\".concat(sectionKeyPrefix, \"container\"), 'sectionContainer', isFirstSection && 'sectionContainerFirst'), /*#__PURE__*/_react[\"default\"].createElement(_SectionTitle[\"default\"], {\n section: section,\n renderSectionTitle: renderSectionTitle,\n theme: theme,\n sectionKeyPrefix: sectionKeyPrefix\n }), /*#__PURE__*/_react[\"default\"].createElement(_ItemList[\"default\"], {\n items: _this2.sectionsItems[sectionIndex],\n itemProps: itemProps,\n renderItem: renderItem,\n renderItemData: renderItemData,\n sectionIndex: sectionIndex,\n highlightedItemIndex: highlightedSectionIndex === sectionIndex ? highlightedItemIndex : null,\n onHighlightedItemChange: _this2.onHighlightedItemChange,\n getItemId: _this2.getItemId,\n theme: theme,\n keyPrefix: keyPrefix,\n ref: _this2.storeItemsListReference\n }));\n /* eslint-enable react/jsx-key */\n });\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var items = this.props.items;\n\n if (items.length === 0) {\n return null;\n }\n\n var theme = this.theme;\n var _this$props3 = this.props,\n id = _this$props3.id,\n renderItem = _this$props3.renderItem,\n renderItemData = _this$props3.renderItemData,\n highlightedSectionIndex = _this$props3.highlightedSectionIndex,\n highlightedItemIndex = _this$props3.highlightedItemIndex,\n itemProps = _this$props3.itemProps;\n return /*#__PURE__*/_react[\"default\"].createElement(_ItemList[\"default\"], {\n items: items,\n itemProps: itemProps,\n renderItem: renderItem,\n renderItemData: renderItemData,\n highlightedItemIndex: highlightedSectionIndex === null ? highlightedItemIndex : null,\n onHighlightedItemChange: this.onHighlightedItemChange,\n getItemId: this.getItemId,\n theme: theme,\n keyPrefix: \"react-autowhatever-\".concat(id, \"-\")\n });\n }\n }, {\n key: \"ensureHighlightedItemIsVisible\",\n value: function ensureHighlightedItemIsVisible() {\n var highlightedItem = this.highlightedItem;\n\n if (!highlightedItem) {\n return;\n }\n\n var itemsContainer = this.itemsContainer;\n var itemOffsetRelativeToContainer = highlightedItem.offsetParent === itemsContainer ? highlightedItem.offsetTop : highlightedItem.offsetTop - itemsContainer.offsetTop;\n var scrollTop = itemsContainer.scrollTop; // Top of the visible area\n\n if (itemOffsetRelativeToContainer < scrollTop) {\n // Item is off the top of the visible area\n scrollTop = itemOffsetRelativeToContainer;\n } else if (itemOffsetRelativeToContainer + highlightedItem.offsetHeight > scrollTop + itemsContainer.offsetHeight) {\n // Item is off the bottom of the visible area\n scrollTop = itemOffsetRelativeToContainer + highlightedItem.offsetHeight - itemsContainer.offsetHeight;\n }\n\n if (scrollTop !== itemsContainer.scrollTop) {\n itemsContainer.scrollTop = scrollTop;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var theme = this.theme;\n var _this$props4 = this.props,\n id = _this$props4.id,\n multiSection = _this$props4.multiSection,\n renderInputComponent = _this$props4.renderInputComponent,\n renderItemsContainer = _this$props4.renderItemsContainer,\n highlightedSectionIndex = _this$props4.highlightedSectionIndex,\n highlightedItemIndex = _this$props4.highlightedItemIndex;\n var isInputFocused = this.state.isInputFocused;\n var renderedItems = multiSection ? this.renderSections() : this.renderItems();\n var isOpen = renderedItems !== null;\n var ariaActivedescendant = this.getItemId(highlightedSectionIndex, highlightedItemIndex);\n var itemsContainerId = \"react-autowhatever-\".concat(id);\n\n var containerProps = _objectSpread({\n role: 'combobox',\n 'aria-haspopup': 'listbox',\n 'aria-owns': itemsContainerId,\n 'aria-expanded': isOpen\n }, theme(\"react-autowhatever-\".concat(id, \"-container\"), 'container', isOpen && 'containerOpen'), {}, this.props.containerProps);\n\n var inputComponent = renderInputComponent(_objectSpread({\n type: 'text',\n value: '',\n autoComplete: 'off',\n 'aria-autocomplete': 'list',\n 'aria-controls': itemsContainerId,\n 'aria-activedescendant': ariaActivedescendant\n }, theme(\"react-autowhatever-\".concat(id, \"-input\"), 'input', isOpen && 'inputOpen', isInputFocused && 'inputFocused'), {}, this.props.inputProps, {\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeyDown: this.props.inputProps.onKeyDown && this.onKeyDown,\n ref: this.storeInputReference\n }));\n var itemsContainer = renderItemsContainer({\n containerProps: _objectSpread({\n id: itemsContainerId,\n role: 'listbox'\n }, theme(\"react-autowhatever-\".concat(id, \"-items-container\"), 'itemsContainer', isOpen && 'itemsContainerOpen'), {\n ref: this.storeItemsContainerReference\n }),\n children: renderedItems\n });\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", containerProps, inputComponent, itemsContainer);\n }\n }]);\n\n return Autowhatever;\n}(_react.Component);\n\nexports[\"default\"] = Autowhatever;\n\n_defineProperty(Autowhatever, \"propTypes\", {\n id: _propTypes[\"default\"].string,\n // Used in aria-* attributes. If multiple Autowhatever's are rendered on a page, they must have unique ids.\n multiSection: _propTypes[\"default\"].bool,\n // Indicates whether a multi section layout should be rendered.\n renderInputComponent: _propTypes[\"default\"].func,\n // When specified, it is used to render the input element.\n renderItemsContainer: _propTypes[\"default\"].func,\n // Renders the items container.\n items: _propTypes[\"default\"].array.isRequired,\n // Array of items or sections to render.\n renderItem: _propTypes[\"default\"].func,\n // This function renders a single item.\n renderItemData: _propTypes[\"default\"].object,\n // Arbitrary data that will be passed to renderItem()\n renderSectionTitle: _propTypes[\"default\"].func,\n // This function gets a section and renders its title.\n getSectionItems: _propTypes[\"default\"].func,\n // This function gets a section and returns its items, which will be passed into `renderItem` for rendering.\n containerProps: _propTypes[\"default\"].object,\n // Arbitrary container props\n inputProps: _propTypes[\"default\"].object,\n // Arbitrary input props\n itemProps: _propTypes[\"default\"].oneOfType([// Arbitrary item props\n _propTypes[\"default\"].object, _propTypes[\"default\"].func]),\n highlightedSectionIndex: _propTypes[\"default\"].number,\n // Section index of the highlighted item\n highlightedItemIndex: _propTypes[\"default\"].number,\n // Highlighted item index (within a section)\n theme: _propTypes[\"default\"].oneOfType([// Styles. See: https://github.com/markdalgleish/react-themeable\n _propTypes[\"default\"].object, _propTypes[\"default\"].array])\n});\n\n_defineProperty(Autowhatever, \"defaultProps\", {\n id: '1',\n multiSection: false,\n renderInputComponent: defaultRenderInputComponent,\n renderItemsContainer: defaultRenderItemsContainer,\n renderItem: function renderItem() {\n throw new Error('`renderItem` must be provided');\n },\n renderItemData: emptyObject,\n renderSectionTitle: function renderSectionTitle() {\n throw new Error('`renderSectionTitle` must be provided');\n },\n getSectionItems: function getSectionItems() {\n throw new Error('`getSectionItems` must be provided');\n },\n containerProps: emptyObject,\n inputProps: emptyObject,\n itemProps: emptyObject,\n highlightedSectionIndex: null,\n highlightedItemIndex: null,\n theme: defaultTheme\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _arrays = _interopRequireDefault(require(\"shallow-equal/arrays\"));\n\nvar _Autowhatever = _interopRequireDefault(require(\"./Autowhatever\"));\n\nvar _theme = require(\"./theme\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar alwaysTrue = function alwaysTrue() {\n return true;\n};\n\nvar defaultShouldRenderSuggestions = function defaultShouldRenderSuggestions(value) {\n return value.trim().length > 0;\n};\n\nvar defaultRenderSuggestionsContainer = function defaultRenderSuggestionsContainer(_ref) {\n var containerProps = _ref.containerProps,\n children = _ref.children;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", containerProps, children);\n};\n\nvar REASON_SUGGESTIONS_REVEALED = 'suggestions-revealed';\nvar REASON_SUGGESTIONS_UPDATED = 'suggestions-updated';\nvar REASON_SUGGESTION_SELECTED = 'suggestion-selected';\nvar REASON_INPUT_FOCUSED = 'input-focused';\nvar REASON_INPUT_CHANGED = 'input-changed';\nvar REASON_INPUT_BLURRED = 'input-blurred';\nvar REASON_ESCAPE_PRESSED = 'escape-pressed';\n\nvar Autosuggest = /*#__PURE__*/function (_Component) {\n _inherits(Autosuggest, _Component);\n\n var _super = _createSuper(Autosuggest);\n\n function Autosuggest(_ref2) {\n var _this;\n\n var _alwaysRenderSuggestions = _ref2.alwaysRenderSuggestions;\n\n _classCallCheck(this, Autosuggest);\n\n _this = _super.call(this);\n\n _defineProperty(_assertThisInitialized(_this), \"onDocumentMouseDown\", function (event) {\n _this.justClickedOnSuggestionsContainer = false;\n var node = event.detail && event.detail.target || // This is for testing only. Please show me a better way to emulate this.\n event.target;\n\n while (node !== null && node !== document) {\n if (node.getAttribute && node.getAttribute('data-suggestion-index') !== null) {\n // Suggestion was clicked\n return;\n }\n\n if (node === _this.suggestionsContainer) {\n // Something else inside suggestions container was clicked\n _this.justClickedOnSuggestionsContainer = true;\n return;\n }\n\n node = node.parentNode;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"storeAutowhateverRef\", function (autowhatever) {\n if (autowhatever !== null) {\n _this.autowhatever = autowhatever;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionMouseEnter\", function (event, _ref3) {\n var sectionIndex = _ref3.sectionIndex,\n itemIndex = _ref3.itemIndex;\n\n _this.updateHighlightedSuggestion(sectionIndex, itemIndex);\n\n if (event.target === _this.pressedSuggestion) {\n _this.justSelectedSuggestion = true;\n }\n\n _this.justMouseEntered = true;\n setTimeout(function () {\n _this.justMouseEntered = false;\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"highlightFirstSuggestion\", function () {\n _this.updateHighlightedSuggestion(_this.props.multiSection ? 0 : null, 0);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDocumentMouseUp\", function () {\n if (_this.pressedSuggestion && !_this.justSelectedSuggestion) {\n _this.input.focus();\n }\n\n _this.pressedSuggestion = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionMouseDown\", function (event) {\n // Checking if this.justSelectedSuggestion is already true to not duplicate touch events in chrome\n // See: https://github.com/facebook/react/issues/9809#issuecomment-413978405\n if (!_this.justSelectedSuggestion) {\n _this.justSelectedSuggestion = true;\n _this.pressedSuggestion = event.target;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionsClearRequested\", function () {\n var onSuggestionsClearRequested = _this.props.onSuggestionsClearRequested;\n onSuggestionsClearRequested && onSuggestionsClearRequested();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionSelected\", function (event, data) {\n var _this$props = _this.props,\n alwaysRenderSuggestions = _this$props.alwaysRenderSuggestions,\n onSuggestionSelected = _this$props.onSuggestionSelected,\n onSuggestionsFetchRequested = _this$props.onSuggestionsFetchRequested;\n onSuggestionSelected && onSuggestionSelected(event, data);\n\n var keepSuggestionsOnSelect = _this.props.shouldKeepSuggestionsOnSelect(data.suggestion);\n\n if (alwaysRenderSuggestions || keepSuggestionsOnSelect) {\n onSuggestionsFetchRequested({\n value: data.suggestionValue,\n reason: REASON_SUGGESTION_SELECTED\n });\n } else {\n _this.onSuggestionsClearRequested();\n }\n\n _this.resetHighlightedSuggestion();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionClick\", function (event) {\n var _this$props2 = _this.props,\n alwaysRenderSuggestions = _this$props2.alwaysRenderSuggestions,\n focusInputOnSuggestionClick = _this$props2.focusInputOnSuggestionClick;\n\n var _this$getSuggestionIn = _this.getSuggestionIndices(_this.findSuggestionElement(event.target)),\n sectionIndex = _this$getSuggestionIn.sectionIndex,\n suggestionIndex = _this$getSuggestionIn.suggestionIndex;\n\n var clickedSuggestion = _this.getSuggestion(sectionIndex, suggestionIndex);\n\n var clickedSuggestionValue = _this.props.getSuggestionValue(clickedSuggestion);\n\n _this.maybeCallOnChange(event, clickedSuggestionValue, 'click');\n\n _this.onSuggestionSelected(event, {\n suggestion: clickedSuggestion,\n suggestionValue: clickedSuggestionValue,\n suggestionIndex: suggestionIndex,\n sectionIndex: sectionIndex,\n method: 'click'\n });\n\n var keepSuggestionsOnSelect = _this.props.shouldKeepSuggestionsOnSelect(clickedSuggestion);\n\n if (!(alwaysRenderSuggestions || keepSuggestionsOnSelect)) {\n _this.closeSuggestions();\n }\n\n if (focusInputOnSuggestionClick === true) {\n _this.input.focus();\n } else {\n _this.onBlur();\n }\n\n setTimeout(function () {\n _this.justSelectedSuggestion = false;\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBlur\", function () {\n var _this$props3 = _this.props,\n inputProps = _this$props3.inputProps,\n shouldRenderSuggestions = _this$props3.shouldRenderSuggestions;\n var value = inputProps.value,\n onBlur = inputProps.onBlur;\n\n var highlightedSuggestion = _this.getHighlightedSuggestion();\n\n var shouldRender = shouldRenderSuggestions(value, REASON_INPUT_BLURRED);\n\n _this.setState({\n isFocused: false,\n highlightedSectionIndex: null,\n highlightedSuggestionIndex: null,\n highlightedSuggestion: null,\n valueBeforeUpDown: null,\n isCollapsed: !shouldRender\n });\n\n onBlur && onBlur(_this.blurEvent, {\n highlightedSuggestion: highlightedSuggestion\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionMouseLeave\", function (event) {\n _this.resetHighlightedSuggestion(false); // shouldResetValueBeforeUpDown\n\n\n if (_this.justSelectedSuggestion && event.target === _this.pressedSuggestion) {\n _this.justSelectedSuggestion = false;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionTouchStart\", function () {\n _this.justSelectedSuggestion = true; // todo: event.preventDefault when https://github.com/facebook/react/issues/2043\n // todo: gets released so onSuggestionMouseDown won't fire in chrome\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionTouchMove\", function () {\n _this.justSelectedSuggestion = false;\n _this.pressedSuggestion = null;\n\n _this.input.focus();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"itemProps\", function (_ref4) {\n var sectionIndex = _ref4.sectionIndex,\n itemIndex = _ref4.itemIndex;\n return {\n 'data-section-index': sectionIndex,\n 'data-suggestion-index': itemIndex,\n onMouseEnter: _this.onSuggestionMouseEnter,\n onMouseLeave: _this.onSuggestionMouseLeave,\n onMouseDown: _this.onSuggestionMouseDown,\n onTouchStart: _this.onSuggestionTouchStart,\n onTouchMove: _this.onSuggestionTouchMove,\n onClick: _this.onSuggestionClick\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderSuggestionsContainer\", function (_ref5) {\n var containerProps = _ref5.containerProps,\n children = _ref5.children;\n var renderSuggestionsContainer = _this.props.renderSuggestionsContainer;\n return renderSuggestionsContainer({\n containerProps: containerProps,\n children: children,\n query: _this.getQuery()\n });\n });\n\n _this.state = {\n isFocused: false,\n isCollapsed: !_alwaysRenderSuggestions,\n highlightedSectionIndex: null,\n highlightedSuggestionIndex: null,\n highlightedSuggestion: null,\n valueBeforeUpDown: null\n };\n _this.justPressedUpDown = false;\n _this.justMouseEntered = false;\n _this.pressedSuggestion = null;\n return _this;\n }\n\n _createClass(Autosuggest, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n document.addEventListener('mousedown', this.onDocumentMouseDown);\n document.addEventListener('mouseup', this.onDocumentMouseUp);\n this.input = this.autowhatever.input;\n this.suggestionsContainer = this.autowhatever.itemsContainer;\n } // eslint-disable-next-line camelcase, react/sort-comp\n\n }, {\n key: \"UNSAFE_componentWillReceiveProps\",\n value: function UNSAFE_componentWillReceiveProps(nextProps) {\n // When highlightFirstSuggestion becomes deactivated, if the first suggestion was\n // set, we should reset the suggestion back to the unselected default state.\n var shouldResetHighlighting = this.state.highlightedSuggestionIndex === 0 && this.props.highlightFirstSuggestion && !nextProps.highlightFirstSuggestion;\n\n if ((0, _arrays[\"default\"])(nextProps.suggestions, this.props.suggestions)) {\n if (nextProps.highlightFirstSuggestion && nextProps.suggestions.length > 0 && this.justPressedUpDown === false && this.justMouseEntered === false) {\n this.highlightFirstSuggestion();\n } else if (shouldResetHighlighting) {\n this.resetHighlightedSuggestion();\n }\n } else {\n if (this.willRenderSuggestions(nextProps, REASON_SUGGESTIONS_UPDATED)) {\n if (this.state.isCollapsed && !this.justSelectedSuggestion) {\n this.revealSuggestions();\n }\n\n if (shouldResetHighlighting) {\n this.resetHighlightedSuggestion();\n }\n } else {\n this.resetHighlightedSuggestion();\n }\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this$props4 = this.props,\n suggestions = _this$props4.suggestions,\n onSuggestionHighlighted = _this$props4.onSuggestionHighlighted,\n highlightFirstSuggestion = _this$props4.highlightFirstSuggestion;\n\n if (!(0, _arrays[\"default\"])(suggestions, prevProps.suggestions) && suggestions.length > 0 && highlightFirstSuggestion) {\n this.highlightFirstSuggestion();\n return;\n }\n\n if (onSuggestionHighlighted) {\n var highlightedSuggestion = this.getHighlightedSuggestion();\n var prevHighlightedSuggestion = prevState.highlightedSuggestion;\n\n if (highlightedSuggestion != prevHighlightedSuggestion) {\n onSuggestionHighlighted({\n suggestion: highlightedSuggestion\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('mousedown', this.onDocumentMouseDown);\n document.removeEventListener('mouseup', this.onDocumentMouseUp);\n }\n }, {\n key: \"updateHighlightedSuggestion\",\n value: function updateHighlightedSuggestion(sectionIndex, suggestionIndex, prevValue) {\n var _this2 = this;\n\n this.setState(function (state) {\n var valueBeforeUpDown = state.valueBeforeUpDown;\n\n if (suggestionIndex === null) {\n valueBeforeUpDown = null;\n } else if (valueBeforeUpDown === null && typeof prevValue !== 'undefined') {\n valueBeforeUpDown = prevValue;\n }\n\n return {\n highlightedSectionIndex: sectionIndex,\n highlightedSuggestionIndex: suggestionIndex,\n highlightedSuggestion: suggestionIndex === null ? null : _this2.getSuggestion(sectionIndex, suggestionIndex),\n valueBeforeUpDown: valueBeforeUpDown\n };\n });\n }\n }, {\n key: \"resetHighlightedSuggestion\",\n value: function resetHighlightedSuggestion() {\n var shouldResetValueBeforeUpDown = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.setState(function (state) {\n var valueBeforeUpDown = state.valueBeforeUpDown;\n return {\n highlightedSectionIndex: null,\n highlightedSuggestionIndex: null,\n highlightedSuggestion: null,\n valueBeforeUpDown: shouldResetValueBeforeUpDown ? null : valueBeforeUpDown\n };\n });\n }\n }, {\n key: \"revealSuggestions\",\n value: function revealSuggestions() {\n this.setState({\n isCollapsed: false\n });\n }\n }, {\n key: \"closeSuggestions\",\n value: function closeSuggestions() {\n this.setState({\n highlightedSectionIndex: null,\n highlightedSuggestionIndex: null,\n highlightedSuggestion: null,\n valueBeforeUpDown: null,\n isCollapsed: true\n });\n }\n }, {\n key: \"getSuggestion\",\n value: function getSuggestion(sectionIndex, suggestionIndex) {\n var _this$props5 = this.props,\n suggestions = _this$props5.suggestions,\n multiSection = _this$props5.multiSection,\n getSectionSuggestions = _this$props5.getSectionSuggestions;\n\n if (multiSection) {\n return getSectionSuggestions(suggestions[sectionIndex])[suggestionIndex];\n }\n\n return suggestions[suggestionIndex];\n }\n }, {\n key: \"getHighlightedSuggestion\",\n value: function getHighlightedSuggestion() {\n var _this$state = this.state,\n highlightedSectionIndex = _this$state.highlightedSectionIndex,\n highlightedSuggestionIndex = _this$state.highlightedSuggestionIndex;\n\n if (highlightedSuggestionIndex === null) {\n return null;\n }\n\n return this.getSuggestion(highlightedSectionIndex, highlightedSuggestionIndex);\n }\n }, {\n key: \"getSuggestionValueByIndex\",\n value: function getSuggestionValueByIndex(sectionIndex, suggestionIndex) {\n var getSuggestionValue = this.props.getSuggestionValue;\n return getSuggestionValue(this.getSuggestion(sectionIndex, suggestionIndex));\n }\n }, {\n key: \"getSuggestionIndices\",\n value: function getSuggestionIndices(suggestionElement) {\n var sectionIndex = suggestionElement.getAttribute('data-section-index');\n var suggestionIndex = suggestionElement.getAttribute('data-suggestion-index');\n return {\n sectionIndex: typeof sectionIndex === 'string' ? parseInt(sectionIndex, 10) : null,\n suggestionIndex: parseInt(suggestionIndex, 10)\n };\n }\n }, {\n key: \"findSuggestionElement\",\n value: function findSuggestionElement(startNode) {\n var node = startNode;\n\n do {\n if (node.getAttribute && node.getAttribute('data-suggestion-index') !== null) {\n return node;\n }\n\n node = node.parentNode;\n } while (node !== null);\n\n console.error('Clicked element:', startNode); // eslint-disable-line no-console\n\n throw new Error(\"Couldn't find suggestion element\");\n }\n }, {\n key: \"maybeCallOnChange\",\n value: function maybeCallOnChange(event, newValue, method) {\n var _this$props$inputProp = this.props.inputProps,\n value = _this$props$inputProp.value,\n onChange = _this$props$inputProp.onChange;\n\n if (newValue !== value) {\n onChange(event, {\n newValue: newValue,\n method: method\n });\n }\n }\n }, {\n key: \"willRenderSuggestions\",\n value: function willRenderSuggestions(props, reason) {\n var suggestions = props.suggestions,\n inputProps = props.inputProps,\n shouldRenderSuggestions = props.shouldRenderSuggestions;\n var value = inputProps.value;\n return suggestions.length > 0 && shouldRenderSuggestions(value, reason);\n }\n }, {\n key: \"getQuery\",\n value: function getQuery() {\n var inputProps = this.props.inputProps;\n var value = inputProps.value;\n var valueBeforeUpDown = this.state.valueBeforeUpDown;\n return (valueBeforeUpDown === null ? value : valueBeforeUpDown).trim();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var _this$props6 = this.props,\n suggestions = _this$props6.suggestions,\n renderInputComponent = _this$props6.renderInputComponent,\n onSuggestionsFetchRequested = _this$props6.onSuggestionsFetchRequested,\n renderSuggestion = _this$props6.renderSuggestion,\n inputProps = _this$props6.inputProps,\n multiSection = _this$props6.multiSection,\n renderSectionTitle = _this$props6.renderSectionTitle,\n id = _this$props6.id,\n getSectionSuggestions = _this$props6.getSectionSuggestions,\n theme = _this$props6.theme,\n getSuggestionValue = _this$props6.getSuggestionValue,\n alwaysRenderSuggestions = _this$props6.alwaysRenderSuggestions,\n highlightFirstSuggestion = _this$props6.highlightFirstSuggestion,\n containerProps = _this$props6.containerProps;\n var _this$state2 = this.state,\n isFocused = _this$state2.isFocused,\n isCollapsed = _this$state2.isCollapsed,\n highlightedSectionIndex = _this$state2.highlightedSectionIndex,\n highlightedSuggestionIndex = _this$state2.highlightedSuggestionIndex,\n valueBeforeUpDown = _this$state2.valueBeforeUpDown;\n var shouldRenderSuggestions = alwaysRenderSuggestions ? alwaysTrue : this.props.shouldRenderSuggestions;\n var value = inputProps.value,\n _onFocus = inputProps.onFocus,\n _onKeyDown = inputProps.onKeyDown;\n var willRenderSuggestions = this.willRenderSuggestions(this.props, 'render');\n var isOpen = alwaysRenderSuggestions || isFocused && !isCollapsed && willRenderSuggestions;\n var items = isOpen ? suggestions : [];\n\n var autowhateverInputProps = _objectSpread({}, inputProps, {\n onFocus: function onFocus(event) {\n if (!_this3.justSelectedSuggestion && !_this3.justClickedOnSuggestionsContainer) {\n var shouldRender = shouldRenderSuggestions(value, REASON_INPUT_FOCUSED);\n\n _this3.setState({\n isFocused: true,\n isCollapsed: !shouldRender\n });\n\n _onFocus && _onFocus(event);\n\n if (shouldRender) {\n onSuggestionsFetchRequested({\n value: value,\n reason: REASON_INPUT_FOCUSED\n });\n }\n }\n },\n onBlur: function onBlur(event) {\n if (_this3.justClickedOnSuggestionsContainer) {\n _this3.input.focus();\n\n return;\n }\n\n _this3.blurEvent = event;\n\n if (!_this3.justSelectedSuggestion) {\n _this3.onBlur();\n\n _this3.onSuggestionsClearRequested();\n }\n },\n onChange: function onChange(event) {\n var value = event.target.value;\n var shouldRender = shouldRenderSuggestions(value, REASON_INPUT_CHANGED);\n\n _this3.maybeCallOnChange(event, value, 'type');\n\n if (_this3.suggestionsContainer) {\n _this3.suggestionsContainer.scrollTop = 0;\n }\n\n _this3.setState(_objectSpread({}, highlightFirstSuggestion ? {} : {\n highlightedSectionIndex: null,\n highlightedSuggestionIndex: null,\n highlightedSuggestion: null\n }, {\n valueBeforeUpDown: null,\n isCollapsed: !shouldRender\n }));\n\n if (shouldRender) {\n onSuggestionsFetchRequested({\n value: value,\n reason: REASON_INPUT_CHANGED\n });\n } else {\n _this3.onSuggestionsClearRequested();\n }\n },\n onKeyDown: function onKeyDown(event, data) {\n var keyCode = event.keyCode;\n\n switch (keyCode) {\n case 40: // ArrowDown\n\n case 38:\n // ArrowUp\n if (isCollapsed) {\n if (shouldRenderSuggestions(value, REASON_SUGGESTIONS_REVEALED)) {\n onSuggestionsFetchRequested({\n value: value,\n reason: REASON_SUGGESTIONS_REVEALED\n });\n\n _this3.revealSuggestions();\n\n event.preventDefault(); // We act on the key.\n }\n } else if (suggestions.length > 0) {\n var newHighlightedSectionIndex = data.newHighlightedSectionIndex,\n newHighlightedItemIndex = data.newHighlightedItemIndex;\n var newValue;\n\n if (newHighlightedItemIndex === null) {\n // valueBeforeUpDown can be null if, for example, user\n // hovers on the first suggestion and then pressed Up.\n // If that happens, use the original input value.\n newValue = valueBeforeUpDown === null ? value : valueBeforeUpDown;\n } else {\n newValue = _this3.getSuggestionValueByIndex(newHighlightedSectionIndex, newHighlightedItemIndex);\n }\n\n _this3.updateHighlightedSuggestion(newHighlightedSectionIndex, newHighlightedItemIndex, value);\n\n _this3.maybeCallOnChange(event, newValue, keyCode === 40 ? 'down' : 'up');\n\n event.preventDefault(); // We act on the key.\n }\n\n _this3.justPressedUpDown = true;\n setTimeout(function () {\n _this3.justPressedUpDown = false;\n });\n break;\n // Enter\n\n case 13:\n {\n // See #388\n if (event.keyCode === 229) {\n break;\n }\n\n var highlightedSuggestion = _this3.getHighlightedSuggestion();\n\n if (isOpen && !alwaysRenderSuggestions) {\n _this3.closeSuggestions();\n }\n\n if (highlightedSuggestion != null) {\n event.preventDefault();\n\n var _newValue = getSuggestionValue(highlightedSuggestion);\n\n _this3.maybeCallOnChange(event, _newValue, 'enter');\n\n _this3.onSuggestionSelected(event, {\n suggestion: highlightedSuggestion,\n suggestionValue: _newValue,\n suggestionIndex: highlightedSuggestionIndex,\n sectionIndex: highlightedSectionIndex,\n method: 'enter'\n });\n\n _this3.justSelectedSuggestion = true;\n setTimeout(function () {\n _this3.justSelectedSuggestion = false;\n });\n }\n\n break;\n }\n // Escape\n\n case 27:\n {\n if (isOpen) {\n // If input.type === 'search', the browser clears the input\n // when Escape is pressed. We want to disable this default\n // behaviour so that, when suggestions are shown, we just hide\n // them, without clearing the input.\n event.preventDefault();\n }\n\n var willCloseSuggestions = isOpen && !alwaysRenderSuggestions;\n\n if (valueBeforeUpDown === null) {\n // Didn't interact with Up/Down\n if (!willCloseSuggestions) {\n var _newValue2 = '';\n\n _this3.maybeCallOnChange(event, _newValue2, 'escape');\n\n if (shouldRenderSuggestions(_newValue2, REASON_ESCAPE_PRESSED)) {\n onSuggestionsFetchRequested({\n value: _newValue2,\n reason: REASON_ESCAPE_PRESSED\n });\n } else {\n _this3.onSuggestionsClearRequested();\n }\n }\n } else {\n // Interacted with Up/Down\n _this3.maybeCallOnChange(event, valueBeforeUpDown, 'escape');\n }\n\n if (willCloseSuggestions) {\n _this3.onSuggestionsClearRequested();\n\n _this3.closeSuggestions();\n } else {\n _this3.resetHighlightedSuggestion();\n }\n\n break;\n }\n }\n\n _onKeyDown && _onKeyDown(event);\n }\n });\n\n var renderSuggestionData = {\n query: this.getQuery()\n };\n return /*#__PURE__*/_react[\"default\"].createElement(_Autowhatever[\"default\"], {\n multiSection: multiSection,\n items: items,\n renderInputComponent: renderInputComponent,\n renderItemsContainer: this.renderSuggestionsContainer,\n renderItem: renderSuggestion,\n renderItemData: renderSuggestionData,\n renderSectionTitle: renderSectionTitle,\n getSectionItems: getSectionSuggestions,\n highlightedSectionIndex: highlightedSectionIndex,\n highlightedItemIndex: highlightedSuggestionIndex,\n containerProps: containerProps,\n inputProps: autowhateverInputProps,\n itemProps: this.itemProps,\n theme: (0, _theme.mapToAutowhateverTheme)(theme),\n id: id,\n ref: this.storeAutowhateverRef\n });\n }\n }]);\n\n return Autosuggest;\n}(_react.Component);\n\nexports[\"default\"] = Autosuggest;\n\n_defineProperty(Autosuggest, \"propTypes\", {\n suggestions: _propTypes[\"default\"].array.isRequired,\n onSuggestionsFetchRequested: function onSuggestionsFetchRequested(props, propName) {\n var onSuggestionsFetchRequested = props[propName];\n\n if (typeof onSuggestionsFetchRequested !== 'function') {\n throw new Error(\"'onSuggestionsFetchRequested' must be implemented. See: https://github.com/moroshko/react-autosuggest#onSuggestionsFetchRequestedProp\");\n }\n },\n onSuggestionsClearRequested: function onSuggestionsClearRequested(props, propName) {\n var onSuggestionsClearRequested = props[propName];\n\n if (props.alwaysRenderSuggestions === false && typeof onSuggestionsClearRequested !== 'function') {\n throw new Error(\"'onSuggestionsClearRequested' must be implemented. See: https://github.com/moroshko/react-autosuggest#onSuggestionsClearRequestedProp\");\n }\n },\n shouldKeepSuggestionsOnSelect: _propTypes[\"default\"].func,\n onSuggestionSelected: _propTypes[\"default\"].func,\n onSuggestionHighlighted: _propTypes[\"default\"].func,\n renderInputComponent: _propTypes[\"default\"].func,\n renderSuggestionsContainer: _propTypes[\"default\"].func,\n getSuggestionValue: _propTypes[\"default\"].func.isRequired,\n renderSuggestion: _propTypes[\"default\"].func.isRequired,\n inputProps: function inputProps(props, propName) {\n var inputProps = props[propName];\n\n if (!inputProps) {\n throw new Error(\"'inputProps' must be passed.\");\n }\n\n if (!Object.prototype.hasOwnProperty.call(inputProps, 'value')) {\n throw new Error(\"'inputProps' must have 'value'.\");\n }\n\n if (!Object.prototype.hasOwnProperty.call(inputProps, 'onChange')) {\n throw new Error(\"'inputProps' must have 'onChange'.\");\n }\n },\n shouldRenderSuggestions: _propTypes[\"default\"].func,\n alwaysRenderSuggestions: _propTypes[\"default\"].bool,\n multiSection: _propTypes[\"default\"].bool,\n renderSectionTitle: function renderSectionTitle(props, propName) {\n var renderSectionTitle = props[propName];\n\n if (props.multiSection === true && typeof renderSectionTitle !== 'function') {\n throw new Error(\"'renderSectionTitle' must be implemented. See: https://github.com/moroshko/react-autosuggest#renderSectionTitleProp\");\n }\n },\n getSectionSuggestions: function getSectionSuggestions(props, propName) {\n var getSectionSuggestions = props[propName];\n\n if (props.multiSection === true && typeof getSectionSuggestions !== 'function') {\n throw new Error(\"'getSectionSuggestions' must be implemented. See: https://github.com/moroshko/react-autosuggest#getSectionSuggestionsProp\");\n }\n },\n focusInputOnSuggestionClick: _propTypes[\"default\"].bool,\n highlightFirstSuggestion: _propTypes[\"default\"].bool,\n theme: _propTypes[\"default\"].object,\n id: _propTypes[\"default\"].string,\n containerProps: _propTypes[\"default\"].object // Arbitrary container props\n\n});\n\n_defineProperty(Autosuggest, \"defaultProps\", {\n renderSuggestionsContainer: defaultRenderSuggestionsContainer,\n shouldRenderSuggestions: defaultShouldRenderSuggestions,\n alwaysRenderSuggestions: false,\n multiSection: false,\n shouldKeepSuggestionsOnSelect: function shouldKeepSuggestionsOnSelect() {\n return false;\n },\n focusInputOnSuggestionClick: true,\n highlightFirstSuggestion: false,\n theme: _theme.defaultTheme,\n id: '1',\n containerProps: {}\n});","'use strict';\n\nfunction shallowEqualArrays(arrA, arrB) {\n if (arrA === arrB) {\n return true;\n }\n\n if (!arrA || !arrB) {\n return false;\n }\n\n var len = arrA.length;\n\n if (arrB.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n if (arrA[i] !== arrB[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqualArrays;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mapToAutowhateverTheme = exports.defaultTheme = void 0;\nvar defaultTheme = {\n container: 'react-autosuggest__container',\n containerOpen: 'react-autosuggest__container--open',\n input: 'react-autosuggest__input',\n inputOpen: 'react-autosuggest__input--open',\n inputFocused: 'react-autosuggest__input--focused',\n suggestionsContainer: 'react-autosuggest__suggestions-container',\n suggestionsContainerOpen: 'react-autosuggest__suggestions-container--open',\n suggestionsList: 'react-autosuggest__suggestions-list',\n suggestion: 'react-autosuggest__suggestion',\n suggestionFirst: 'react-autosuggest__suggestion--first',\n suggestionHighlighted: 'react-autosuggest__suggestion--highlighted',\n sectionContainer: 'react-autosuggest__section-container',\n sectionContainerFirst: 'react-autosuggest__section-container--first',\n sectionTitle: 'react-autosuggest__section-title'\n};\nexports.defaultTheme = defaultTheme;\n\nvar mapToAutowhateverTheme = function mapToAutowhateverTheme(theme) {\n var result = {};\n\n for (var key in theme) {\n switch (key) {\n case 'suggestionsContainer':\n result['itemsContainer'] = theme[key];\n break;\n\n case 'suggestionsContainerOpen':\n result['itemsContainerOpen'] = theme[key];\n break;\n\n case 'suggestion':\n result['item'] = theme[key];\n break;\n\n case 'suggestionFirst':\n result['itemFirst'] = theme[key];\n break;\n\n case 'suggestionHighlighted':\n result['itemHighlighted'] = theme[key];\n break;\n\n case 'suggestionsList':\n result['itemsList'] = theme[key];\n break;\n\n default:\n result[key] = theme[key];\n }\n }\n\n return result;\n};\n\nexports.mapToAutowhateverTheme = mapToAutowhateverTheme;","\"use strict\";\n\nmodule.exports = require('./Autosuggest')[\"default\"];","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import PropTypes from 'prop-types';\nimport React, { useState, useEffect, useRef, useLayoutEffect } from 'react';\nimport Autosuggest from 'react-autosuggest';\nimport styles from './select.scss';\n\nconst Select = ({\n value,\n getDisplay,\n options,\n onSlackTimeSelected,\n viaPointIndex,\n id,\n label,\n icon,\n}) => {\n const [displayValue, changeDisplayValue] = useState(getDisplay(value));\n const [open, changeOpen] = useState(false);\n useEffect(() => changeDisplayValue(getDisplay(value)), [value]);\n const scrollRef = useRef(null);\n const scrollIndex = Math.floor(value / 600);\n const elementHeight = 50;\n useLayoutEffect(() => {\n if (open && scrollRef.current) {\n scrollRef.current.scrollTop = elementHeight * scrollIndex;\n }\n }, [value, open]);\n\n const inputId = `${id}-input`;\n const labelId = `${id}-label`;\n\n const onInputChange = (_, { newValue, method }) => {\n switch (method) {\n case 'enter':\n case 'click':\n onSlackTimeSelected(newValue, viaPointIndex);\n break;\n case 'escape':\n changeDisplayValue(value);\n break;\n case 'up':\n case 'down':\n default:\n break;\n }\n };\n return (\n <label className={styles['combobox-container']} htmlFor={inputId}>\n <span className={styles['left-column']}>\n <span className={styles['combobox-label']} id={labelId}>\n {label}\n </span>\n <Autosuggest\n id={id}\n suggestions={options}\n getSuggestionValue={s => s.value}\n renderSuggestion={s => s.displayName}\n onSuggestionsFetchRequested={() => null}\n shouldRenderSuggestions={() => true}\n focusInputOnSuggestionClick={false}\n onSuggestionsClearRequested={() => null}\n inputProps={{\n value: displayValue,\n onChange: onInputChange,\n onFocus: () => {\n changeOpen(true);\n },\n onBlur: () => {\n changeOpen(false);\n },\n id: inputId,\n 'aria-labelledby': labelId,\n 'aria-autocomplete': 'none',\n readOnly: true,\n }}\n renderSuggestionsContainer={({ containerProps, children }) => {\n // set refs for autosuggest library and scrollbar positioning\n const { ref, ...otherRefs } = containerProps;\n const containerRef = elem => {\n if (elem) {\n scrollRef.current = elem;\n ref(elem);\n }\n };\n return (\n <div tabIndex=\"-1\" {...otherRefs} ref={containerRef}>\n {children}\n </div>\n );\n }}\n theme={styles}\n />\n </span>\n {icon}\n </label>\n );\n};\n\nSelect.propTypes = {\n value: PropTypes.number.isRequired,\n onSlackTimeSelected: PropTypes.func.isRequired,\n getDisplay: PropTypes.func.isRequired,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n displayName: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired,\n }).isRequired,\n ).isRequired,\n id: PropTypes.string.isRequired,\n label: PropTypes.node.isRequired,\n icon: PropTypes.node.isRequired,\n viaPointIndex: PropTypes.number.isRequired,\n};\n\nexport default Select;\n","const translations = {\n de: {\n translation: {\n 'add-via-button-label': 'Füge Zwischenziel hinzu',\n 'add-via-duration-button-label':\n 'Setze Umsteigezeit für Zwischenziel {{index}}',\n 'add-via-duration-button-label-close':\n 'Schließe Umsteigezeit-Auswahl für Zwischenziel {{index}}',\n 'add-via-duration-button-label-open':\n 'Öffne Umsteigezeit-Auswahl für Zwischenziel {{index}}',\n 'minute-short': 'min',\n 'remove-via-button-label': 'Entferne Zwischenziel {{index}}',\n 'swap-order-button-label': 'Tausche Start mit Ziel',\n 'via-point': 'Zwischenziel',\n 'via-point-index': 'Zwischenziel {{index}}',\n 'viapoint-slack-amount': 'Umsteigezeit',\n },\n },\n en: {\n translation: {\n 'add-via-button-label': 'Add via point',\n 'add-via-duration-button-label':\n 'Set stop duration at via point {{index}}',\n 'add-via-duration-button-label-close':\n 'Close stop duration selector at via point {{index}}',\n 'add-via-duration-button-label-open':\n 'Open stop duration selector at via point {{index}}',\n 'minute-short': 'min',\n 'remove-via-button-label': 'Remove via point {{index}}',\n 'swap-order-button-label': 'Reverse origin and destination',\n 'via-point': 'Via point',\n 'via-point-index': 'Via point {{index}}',\n 'viapoint-slack-amount': 'Stop duration',\n },\n },\n fi: {\n translation: {\n 'add-via-button-label': 'Lisää välipiste',\n 'add-via-duration-button-label':\n 'Aseta välipisteelle {{index}} pysähdyksen kesto',\n 'add-via-duration-button-label-close':\n 'Avaa välipisteen {{index}} pysähdyksen kesto valitsin',\n 'add-via-duration-button-label-open':\n 'Sulje välipisteen {{index}} pysähdyksen kesto valitsin',\n 'minute-short': 'min',\n 'remove-via-button-label': 'Poista välipiste {{index}}',\n 'swap-order-button-label': 'Käännä reitin suunta vastakkaiseksi',\n 'via-point': 'Välipiste',\n 'via-point-index': 'Välipiste {{index}}',\n 'viapoint-slack-amount': 'Pysähdyksen kesto',\n },\n },\n pl: {\n translation: {\n 'add-via-button-label': 'Dodaj punkt pośredni',\n 'add-via-duration-button-label':\n 'Wybierz czas postoju dla punktu {{index}}',\n 'add-via-duration-button-label-close':\n 'Zamknij wybornik czasu postoju w punkcie {{index}}',\n 'add-via-duration-button-label-open':\n 'Otwórz wybornik czasu postoju w punkcie {{index}}',\n 'minute-short': 'min.',\n 'remove-via-button-label': 'Usuń punkt pośredni {{index}}',\n 'swap-order-button-label': 'Odwróć początek i cel',\n 'via-point': 'Punkt pośredni',\n 'via-point-index': 'Punkt pośredni {{index}}',\n 'viapoint-slack-amount': 'Czas postoju',\n },\n },\n sv: {\n translation: {\n 'add-via-button-label': 'Lägg till viapunkt',\n 'add-via-duration-button-label':\n 'Ställ in varaktighet för viapunkten {{index}}',\n 'add-via-duration-button-label-close':\n 'Stäng väljaren för varaktighet vid via-punkten {{index}}',\n 'add-via-duration-button-label-open':\n 'Öppna väljaren för varaktighet vid via-punkten {{index}}',\n 'minute-short': 'min',\n 'remove-via-button-label': 'Ta bort viapunkt {{index}}',\n 'swap-order-button-label': 'Sväng ruttens riktning till den motsatta',\n 'via-point': 'Via punkt',\n 'via-point-index': 'Via punkt {{index}}',\n 'viapoint-slack-amount': 'Stoppets varaktighet',\n },\n },\n};\n\nexport default translations;\n","import { createInstance } from 'i18next';\nimport translations from './translations';\n\nconst i18n = createInstance({\n fallbackLng: 'fi',\n // debug: true,\n resources: translations,\n defaultNS: 'translation',\n react: {\n useSuspense: true,\n },\n});\n\ni18n.init();\n\nexport default i18n;\n","/* eslint-disable import/no-extraneous-dependencies */\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { I18nextProvider, withTranslation } from 'react-i18next';\nimport { ReactSortable } from 'react-sortablejs';\nimport DTAutoSuggest from '@digitransit-component/digitransit-component-autosuggest';\nimport Icon from '@digitransit-component/digitransit-component-icon';\nimport isEmpty from 'lodash/isEmpty';\nimport Select from './helpers/Select';\nimport i18n from './helpers/i18n';\nimport styles from './helpers/styles.scss';\n\nexport const getEmptyViaPointPlaceHolder = () => ({});\n\nconst isViaPointEmpty = viaPoint => {\n if (viaPoint === undefined || isEmpty(viaPoint)) {\n return true;\n }\n const keys = Object.keys(viaPoint);\n return (\n keys.length === 1 || (keys.length === 2 && keys.includes('locationSlack'))\n );\n};\n\nconst ItinerarySearchControl = ({\n children,\n className,\n enabled,\n onClick,\n onKeyPress,\n wide,\n ...rest\n}) => (\n <div\n className={styles['itinerary-search-control']}\n style={{ '--width': wide ? '47px' : '40px' }}\n >\n {onClick && enabled && (\n <div\n {...rest}\n className={className}\n onClick={onClick}\n onKeyPress={onKeyPress}\n role=\"button\"\n tabIndex=\"0\"\n >\n {children}\n </div>\n )}\n </div>\n);\n\nconst updateViaPointSlack = (\n activeViaPointSlacks,\n updatedViaPointIndex,\n viaPointRemoved = false,\n) => {\n const foundAtIndex = activeViaPointSlacks.indexOf(updatedViaPointIndex);\n if (foundAtIndex > -1) {\n activeViaPointSlacks.splice(foundAtIndex, 1);\n }\n return viaPointRemoved\n ? activeViaPointSlacks.map(value =>\n value > updatedViaPointIndex ? value - 1 : value,\n )\n : activeViaPointSlacks;\n};\n\nconst isKeyboardSelectionEvent = event => {\n const space = [13, ' ', 'Spacebar'];\n const enter = [32, 'Enter'];\n const key = (event && (event.key || event.which || event.keyCode)) || '';\n if (!key || !space.concat(enter).includes(key)) {\n return false;\n }\n event.preventDefault();\n return true;\n};\n\nconst value = location =>\n (location && location.address) ||\n (location && location.gps && location.ready && 'Nykyinen sijainti') ||\n '';\n\nconst getLocationType = location =>\n location && location.gps === true ? 'position' : 'location';\n\nconst getSlackTimeOptions = t => {\n const timeOptions = [];\n for (let i = 0; i <= 9; i++) {\n const valueInMinutes = i * 10;\n timeOptions.push({\n displayName: `${valueInMinutes} ${t('minute-short')}`,\n value: valueInMinutes * 60,\n });\n }\n return timeOptions;\n};\n\nItinerarySearchControl.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string.isRequired,\n enabled: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired,\n onKeyPress: PropTypes.func.isRequired,\n wide: PropTypes.bool,\n};\n\nItinerarySearchControl.defaultProps = {\n children: undefined,\n wide: false,\n};\n\n/**\n * Panel that renders two DTAutosuggest search fields, including viapoint handling\n *\n * @example\n * const searchContext = {\n * isPeliasLocationAware: false // true / false does Let Pelias suggest based on current user location\n * minimalRegexp: undefined // used for testing min. regexp. For example: new RegExp('.{2,}'),\n * lineRegexp: undefined // identify searches for route numbers/labels: bus | train | metro. For example: new RegExp(\n * // '(^[0-9]+[a-z]?$|^[yuleapinkrtdz]$|(^m[12]?b?$))',\n * // 'i',\n * // ),\n * URL_PELIAS: '' // url for pelias searches\n * feedIDs: ['HSL', 'HSLLautta'] // FeedId's like [HSL, HSLLautta]\n * geocodingSources: ['oa','osm','nlsfi'] // sources for geocoding\n * geocodingSearchParams; {} // Searchparmas fro geocoding\n * getFavouriteLocations: () => ({}), // Function that returns array of favourite locations.\n * getFavouriteStops: () => ({}), // Function that returns array of favourite stops.\n * getLanguage: () => ({}), // Function that returns current language.\n * getFavouriteRoutes: () => ({}), // Function that returns array of favourite routes.\n * getPositions: () => ({}), // Function that returns user's geolocation.\n * getRoutesQuery: () => ({}), // Function that returns query for fetching routes.\n * getStopAndStationsQuery: () => ({}), // Function that fetches favourite stops and stations from graphql API.\n * getFavouriteRoutesQuery: () => ({}), // Function that returns query for fetching favourite routes.\n * getFavouriteVehicleRentalStations: () => ({}), // Function that returns favourite bike rental station.\n * getFavouriteVehicleRentalStationsQuery: () => ({}), // Function that returns query for fetching favourite bike rental stations.\n * startLocationWatch: () => ({}), // Function that locates users geolocation.\n * saveSearch: () => ({}), // Function that saves search to old searches store.\n * clearOldSearches: () => ({}), // Function that clears old searches store.\n * getFutureRoutes: () => ({}), // Function that return future routes\n * saveFutureRoute: () => ({}), // Function that saves a future route\n * clearFutureRoutes: () => ({}), // Function that clears future routes\n * };\n *\n * const origin = {\n * lat: 60.169196,\n * lon: 24.957674,\n * address: 'Aleksanterinkatu, Helsinki',\n * set: true,\n * ready: true,\n * }\n *\n * const destination = {\n * lat: 60.199093,\n * lon: 24.940536,\n * address: 'Opastinsilta 6, Helsinki',\n * set: true,\n * ready: true,\n * }\n * onSelect(item, id) {\n * return null; // Define what to do when a suggestion is being selected. None by default.\n * }\n * onClear(id) {\n * return null; // Define what to do when a suggestion is being selected. None by default.\n * }\n * const getAutoSuggestIcons: {\n * // Called for every city bike station rendered as a search suggestion. Should return the icon and\n * // color used for that station. Two icons are available, 'citybike-stop-digitransit' anditybike-stop-digitransit-secondary'.\n * citybikes: station => {\n * return ['citybike-stop-digitransit', '#f2b62d'];\n * }\n * }\n * const targets = ['Locations', 'Stops', 'Routes']; // Defines what you are searching. all available options are Locations, Stops, Routes, VehicleRentalStations, FutureRoutes, MapPosition and CurrentPosition. Leave empty to search all targets.\n * const sources = ['Favourite', 'History', 'Datasource'] // Defines where you are searching. all available are: Favourite, History (previously searched searches), and Datasource. Leave empty to use all sources.\n * <DTAutosuggestPanel\n * appElement={appElement} // Required. Root element's id. Needed for react-modal component.\n * origin={origin} // Selected origin point\n * destination={destination} // Selected destination point\n * originPlaceHolder={'Give origin'} // Optional Give string shown initially inside origin search field\n * destinationPlaceHolder={'Give destination'} // Optional Give string shown initally inside destination search field\n * initialViaPoints={[]} // Optional. If showViapointControl is set to true, pass initial via points to the panel. Currently no default implementation is given.\n * updateViaPoints={() => return []} // Optional. If showViapointControl is set to true, define how to update your via point list with this function. Currenlty no default implementation is given.\n * swapOrder={() => return null} // Optional. If showSwapControl is set to true, define how to swap order of your points (origin, destination, viapoints). Currently no default implementation is given.\n * searchContext={searchContext}\n * getAutoSuggestIcons={getAutoSuggestIcons}\n * onSelect={this.onSelect}\n * onClear={this.onClear}\n * lang=\"fi\" // Define language fi sv or en.\n * addAnalyticsEvent={null} // Optional. you can record an analytics event if you wish. if passed, component will pass an category, action, name parameters to addAnalyticsEvent\n * disableAutoFocus={false} // Optional. use this to disable autofocus completely from DTAutosuggestPanel\n * sources={sources}\n * targets={targets}\n * isMobile // Optional. Defaults to false. Whether to use mobile search.\n * originMobileLabel=\"Origin label\" // Optional. Custom label text for origin field on mobile.\n * destinationMobileLabel=\"Destination label\" // Optional. Custom label text for destination field on mobile.\n * handleFocusChange={() => {}} // Optional. If defined overrides default onFocusChange behaviour\n * showSwapControl={false} // Optional.\n * showViapointControl={false} // Optional.\n */\n\nconst locationShape = PropTypes.shape({\n address: PropTypes.string,\n lat: PropTypes.number,\n lon: PropTypes.number,\n locationSlack: PropTypes.number,\n});\n\nclass DTAutosuggestPanel extends React.Component {\n static propTypes = {\n appElement: PropTypes.string.isRequired,\n origin: locationShape,\n destination: locationShape,\n originPlaceHolder: PropTypes.string,\n destinationPlaceHolder: PropTypes.string,\n viaPoints: PropTypes.arrayOf(locationShape),\n updateViaPoints: PropTypes.func,\n handleViaPointLocationSelected: PropTypes.func,\n swapOrder: PropTypes.func,\n searchPanelText: PropTypes.string,\n searchContext: PropTypes.shape({\n URL_PELIAS: PropTypes.string,\n }).isRequired,\n onSelect: PropTypes.func.isRequired,\n onClear: PropTypes.func,\n addAnalyticsEvent: PropTypes.func,\n lang: PropTypes.string.isRequired,\n disableAutoFocus: PropTypes.bool,\n sources: PropTypes.arrayOf(PropTypes.string),\n targets: PropTypes.arrayOf(PropTypes.string),\n filterResults: PropTypes.func,\n isMobile: PropTypes.bool,\n color: PropTypes.string,\n hoverColor: PropTypes.string,\n originMobileLabel: PropTypes.string,\n destinationMobileLabel: PropTypes.string,\n refPoint: locationShape,\n modeSet: PropTypes.string,\n modeIconColors: PropTypes.objectOf(PropTypes.string),\n getAutoSuggestIcons: PropTypes.objectOf(PropTypes.func),\n fontWeights: PropTypes.shape({\n medium: PropTypes.number,\n }),\n showScroll: PropTypes.bool,\n onFocusChange: PropTypes.func,\n isEmbedded: PropTypes.bool,\n showSwapControl: PropTypes.bool,\n showViapointControl: PropTypes.bool,\n showSlackControl: PropTypes.bool,\n t: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n origin: undefined,\n destination: undefined,\n viaPoints: [],\n originPlaceHolder: 'give-origin',\n destinationPlaceHolder: 'give-destination',\n swapOrder: undefined,\n updateViaPoints: () => {},\n searchPanelText: undefined,\n sources: [],\n targets: [],\n filterResults: undefined,\n onClear: undefined,\n getAutoSuggestIcons: undefined,\n refPoint: undefined,\n addAnalyticsEvent: undefined,\n disableAutoFocus: false,\n isMobile: false,\n handleViaPointLocationSelected: undefined,\n color: '#007ac9',\n hoverColor: '#0062a1',\n originMobileLabel: null,\n destinationMobileLabel: null,\n modeSet: undefined,\n modeIconColors: undefined,\n fontWeights: {\n medium: 500,\n },\n showScroll: false,\n onFocusChange: undefined,\n isEmbedded: false,\n showSwapControl: false,\n showViapointControl: false,\n showSlackControl: false,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n activeSlackInputs: [],\n refs: [],\n };\n }\n\n storeReference = ref => {\n this.setState(prevState => ({ refs: [...prevState.refs, ref] }));\n };\n\n handleFocusChange = () => {\n const { destination } = this.props;\n if (!destination || !destination.lat) {\n this.state.refs[1].focus();\n }\n };\n\n updateViaPoints = viaPoints => {\n if (viaPoints.length === 0) {\n this.props.updateViaPoints([]);\n return;\n }\n this.props.updateViaPoints(viaPoints.filter(vp => !isViaPointEmpty(vp)));\n };\n\n handleToggleViaPointSlackClick = viaPointIndex => {\n const { activeSlackInputs } = this.state;\n this.setState({\n activeSlackInputs: activeSlackInputs.includes(viaPointIndex)\n ? updateViaPointSlack(activeSlackInputs, viaPointIndex)\n : activeSlackInputs.concat([viaPointIndex]),\n });\n };\n\n handleViaPointSlackTimeSelected = (slackTimeInSeconds, i) => {\n if (this.props.addAnalyticsEvent) {\n this.props.addAnalyticsEvent({\n action: 'EditViaPointStopDuration',\n category: 'ItinerarySettings',\n name: slackTimeInSeconds / 60,\n });\n }\n const { viaPoints } = this.props;\n viaPoints[i].locationSlack = Number.parseInt(slackTimeInSeconds, 10);\n this.updateViaPoints(viaPoints);\n };\n\n handleViaPointLocationSelected = (viaPointLocation, i) => {\n this.props.handleViaPointLocationSelected(viaPointLocation, i);\n };\n\n handleRemoveViaPointClick = viaPointIndex => {\n if (this.props.addAnalyticsEvent) {\n this.props.addAnalyticsEvent({\n action: 'RemoveJourneyViaPoint',\n category: 'ItinerarySettings',\n name: null,\n });\n }\n const { activeSlackInputs } = this.state;\n const { viaPoints } = this.props;\n viaPoints.splice(viaPointIndex, 1);\n this.setState(\n {\n activeSlackInputs: updateViaPointSlack(\n activeSlackInputs,\n viaPointIndex,\n true,\n ),\n },\n () => this.updateViaPoints(viaPoints),\n );\n };\n\n handleAddViaPointClick = () => {\n if (this.props.addAnalyticsEvent) {\n this.props.addAnalyticsEvent({\n action: 'AddJourneyViaPoint',\n category: 'ItinerarySettings',\n name: 'QuickSettingsButton',\n });\n }\n const { viaPoints } = this.props;\n viaPoints.push(getEmptyViaPointPlaceHolder());\n // We need to update the state so that placeHolder will show up in panel.\n // eslint-disable-next-line react/no-access-state-in-setstate\n this.setState(this.state);\n };\n\n handleSwapOrderClick = () => {\n if (this.props.addAnalyticsEvent) {\n this.props.addAnalyticsEvent({\n action: 'SwitchJourneyStartAndEndPointOrder',\n category: 'ItinerarySettings',\n name: null,\n });\n }\n const { viaPoints } = this.props;\n viaPoints.reverse();\n this.props.swapOrder();\n };\n\n getSlackDisplay = slackInSeconds =>\n `${slackInSeconds / 60} ${this.props.t('minute-short', {\n lng: this.props.lang,\n })}`;\n\n render() {\n const {\n origin,\n searchPanelText,\n searchContext,\n disableAutoFocus,\n viaPoints,\n originMobileLabel,\n destinationMobileLabel,\n fontWeights,\n onFocusChange,\n showSwapControl,\n showViapointControl,\n t,\n lang: lng,\n } = this.props;\n const { activeSlackInputs } = this.state;\n const slackTime = getSlackTimeOptions(t);\n const defaultSlackTimeValue = 0;\n const getViaPointSlackTimeOrDefault = (\n viaPoint,\n defaultValue = defaultSlackTimeValue,\n ) => (viaPoint && viaPoint.locationSlack) || defaultValue;\n const isViaPointSlackTimeInputActive = index =>\n activeSlackInputs.includes(index);\n return (\n <div\n className={cx([\n styles['autosuggest-panel'],\n {\n small: this.props.isMobile,\n },\n ])}\n style={{\n '--color': `${this.props.color}`,\n '--font-weight-medium': fontWeights.medium,\n }}\n >\n {' '}\n {searchPanelText ? (\n <div>\n <h1 className={styles['autosuggest-searchpanel-text']}>\n {' '}\n {searchPanelText}\n </h1>\n </div>\n ) : null}\n <div className={styles['origin-input-container']}>\n <DTAutoSuggest\n appElement={this.props.appElement}\n icon=\"mapMarker\"\n id=\"origin\"\n autoFocus={\n disableAutoFocus === true\n ? false\n : !this.props.isMobile && !origin.lat\n }\n storeRef={this.storeReference}\n refPoint={this.props.refPoint}\n className={getLocationType(origin)}\n placeholder={this.props.originPlaceHolder}\n value={value(origin)}\n searchContext={searchContext}\n getAutoSuggestIcons={this.props.getAutoSuggestIcons}\n onSelect={this.props.onSelect}\n onClear={this.props.onClear}\n focusChange={onFocusChange || this.handleFocusChange}\n lang={this.props.lang}\n sources={this.props.sources}\n targets={this.props.targets}\n filterResults={this.props.filterResults}\n isMobile={this.props.isMobile}\n color={this.props.color}\n hoverColor={this.props.hoverColor}\n mobileLabel={originMobileLabel}\n fontWeights={this.props.fontWeights}\n modeSet={this.props.modeSet}\n modeIconColors={this.props.modeIconColors}\n showScroll={this.props.showScroll}\n isEmbedded={this.props.isEmbedded}\n />\n {(showSwapControl || showViapointControl) && (\n <ItinerarySearchControl\n className={styles.opposite}\n enabled={showSwapControl}\n onClick={() => this.handleSwapOrderClick()}\n onKeyPress={e =>\n isKeyboardSelectionEvent(e) && this.handleSwapOrderClick()\n }\n aria-label={t('swap-order-button-label', { lng })}\n >\n <Icon img=\"opposite\" color={this.props.color} />\n </ItinerarySearchControl>\n )}\n </div>\n {viaPoints.length === 0 && (\n <div className={styles['rectangle-container']}>\n <div className={styles.rectangle} />\n </div>\n )}\n <ReactSortable\n className={styles['viapoints-container']}\n list={viaPoints}\n handle={`.${styles['viapoint-before']}`}\n animation={200}\n disabled={viaPoints.length <= 1}\n setList={items => {\n const newViaPoints = items.filter(vp => !isViaPointEmpty(vp));\n if (newViaPoints.length > 0) {\n this.props.updateViaPoints(newViaPoints);\n }\n }}\n >\n {viaPoints.map((o, i) => (\n <div\n className={cx(styles['viapoint-container'])}\n key={`viapoint-${i}`} // eslint-disable-line\n >\n <div className={styles['light-gray-background']}>\n <div className={styles.row}>\n <div\n className={styles['viapoint-before']}\n style={viaPoints.length > 1 ? { cursor: 'move' } : {}}\n >\n {viaPoints.length > 1 && (\n <Icon\n img=\"ellipsis\"\n rotate={90}\n color={this.props.color}\n />\n )}\n </div>\n <div\n className={cx(\n `${styles['viapoint-input-container']} ${\n styles[`viapoint-${i + 1}`]\n }`,\n )}\n >\n <DTAutoSuggest\n appElement={this.props.appElement}\n icon=\"mapMarker-via\"\n id=\"via-point\"\n ariaLabel={t('via-point-index', {\n index: i + 1,\n lng,\n })}\n autoFocus={\n disableAutoFocus === true ? false : !this.props.isMobile\n }\n placeholder=\"via-point\"\n className=\"viapoint\"\n searchContext={searchContext}\n refPoint={this.props.refPoint}\n value={(o && o.address) || ''}\n onSelect={this.props.onSelect}\n onClear={this.props.onClear}\n handleViaPoints={item =>\n this.handleViaPointLocationSelected(item, i)\n }\n lang={this.props.lang}\n sources={this.props.sources}\n targets={['Stops', 'Stations']}\n filterResults={this.props.filterResults}\n getAutoSuggestIcons={this.props.getAutoSuggestIcons}\n isMobile={this.props.isMobile}\n color={this.props.color}\n hoverColor={this.props.hoverColor}\n fontWeights={this.props.fontWeights}\n modeSet={this.props.modeSet}\n modeIconColors={this.props.modeIconColors}\n showScroll={this.props.showScroll}\n />\n </div>\n {this.props.showSlackControl && (\n <ItinerarySearchControl\n className={styles['add-via-point-slack']}\n enabled={this.props.showViapointControl}\n onClick={() => this.handleToggleViaPointSlackClick(i)}\n onKeyPress={e =>\n isKeyboardSelectionEvent(e) &&\n this.handleToggleViaPointSlackClick(i)\n }\n aria-label={t(\n isViaPointSlackTimeInputActive(i)\n ? 'add-via-duration-button-label-open'\n : 'add-via-duration-button-label-close',\n { index: i + 1, lng },\n )}\n wide\n >\n <Icon img=\"time\" color={this.props.color} />\n </ItinerarySearchControl>\n )}\n </div>\n {!isViaPointSlackTimeInputActive(i) &&\n viaPoints[i] &&\n viaPoints[i].locationSlack > 0 && (\n <span className={styles['viapoint-slack-time']}>{`${t(\n 'viapoint-slack-amount',\n {\n lng,\n },\n )}: ${this.getSlackDisplay(\n viaPoints[i].locationSlack,\n )}`}</span>\n )}\n <div\n className={cx(styles['input-viapoint-slack-container'], {\n collapsed: !isViaPointSlackTimeInputActive(i),\n })}\n >\n <div className={styles['select-wrapper']}>\n <Select\n id={`viapoint-slack-${i}`}\n label={t('viapoint-slack-amount', { lng })}\n options={slackTime}\n value={getViaPointSlackTimeOrDefault(viaPoints[i])}\n getDisplay={this.getSlackDisplay}\n viaPointIndex={i}\n icon={\n <span\n className={`${styles['combobox-icon']} ${styles['time-input-icon']}`}\n >\n <Icon img=\"time\" color={this.props.color} />\n </span>\n }\n onSlackTimeSelected={this.handleViaPointSlackTimeSelected}\n />\n </div>\n </div>\n </div>\n <ItinerarySearchControl\n className={styles['remove-via-point']}\n enabled={this.props.showViapointControl}\n onClick={() => this.handleRemoveViaPointClick(i)}\n onKeyPress={e =>\n isKeyboardSelectionEvent(e) &&\n this.handleRemoveViaPointClick(i)\n }\n aria-label={t('remove-via-button-label', {\n index: i + 1,\n lng,\n })}\n >\n <Icon img=\"trash\" color={this.props.color} />\n </ItinerarySearchControl>\n </div>\n ))}\n </ReactSortable>\n <div className={styles['destination-input-container']}>\n <DTAutoSuggest\n appElement={this.props.appElement}\n icon=\"mapMarker\"\n id=\"destination\"\n autoFocus={\n disableAutoFocus === true\n ? false\n : !this.props.isMobile && !Number.isNaN(origin.lat)\n }\n storeRef={this.storeReference}\n placeholder={this.props.destinationPlaceHolder}\n className={getLocationType(this.props.destination)}\n getAutoSuggestIcons={this.props.getAutoSuggestIcons}\n searchContext={searchContext}\n onSelect={this.props.onSelect}\n onClear={this.props.onClear}\n refPoint={this.props.refPoint}\n value={value(this.props.destination)}\n lang={this.props.lang}\n sources={this.props.sources}\n targets={this.props.targets}\n filterResults={this.props.filterResults}\n isMobile={this.props.isMobile}\n color={this.props.color}\n hoverColor={this.props.hoverColor}\n mobileLabel={destinationMobileLabel}\n fontWeights={this.props.fontWeights}\n modeSet={this.props.modeSet}\n modeIconColors={this.props.modeIconColors}\n showScroll={this.props.showScroll}\n isEmbedded={this.props.isEmbedded}\n />\n {(showSwapControl || showViapointControl) && (\n <ItinerarySearchControl\n className={cx(styles['add-via-point'], styles.more, {\n collapsed: viaPoints.length > 4,\n })}\n enabled={showViapointControl && viaPoints.length === 0}\n onClick={() => this.handleAddViaPointClick()}\n onKeyPress={e =>\n isKeyboardSelectionEvent(e) && this.handleAddViaPointClick()\n }\n aria-label={t('add-via-button-label', { lng })}\n >\n <Icon\n img=\"viapoint\"\n width={1.25}\n height={1.375}\n color={this.props.color}\n />\n </ItinerarySearchControl>\n )}\n </div>\n </div>\n );\n }\n}\n\nconst DTAutosuggestPanelWithTranslation = withTranslation()(DTAutosuggestPanel);\n\nexport default props => {\n return (\n <I18nextProvider i18n={i18n}>\n <DTAutosuggestPanelWithTranslation {...props} />\n </I18nextProvider>\n );\n};\n"],"names":["_typeof","o","Symbol","iterator","constructor","prototype","toPropertyKey","t","i","r","e","toPrimitive","call","TypeError","String","Number","_defineProperty","Object","defineProperty","value","enumerable","configurable","writable","_objectWithoutProperties","n","hasOwnProperty","indexOf","objectWithoutPropertiesLoose","getOwnPropertySymbols","length","propertyIsEnumerable","_slicedToArray","arr","Array","isArray","_arr","_n","_d","_e","undefined","_s","_i","next","done","push","err","sliceIterator","dist","_ref","data","multiSection","position","_position","sectionIndex","itemIndex","nextNonEmptySectionIndex","prev","_position2","prevNonEmptySectionIndex","isLast","propIsEnumerable","ownEnumerableKeys","obj","keys","getOwnPropertyNames","concat","filter","key","objectAssign","assign","target","source","from","to","val","ToObject","s","arguments","exports","_toConsumableArray","arr2","_objectAssign","require$$0","_objectAssign2","__esModule","default","truthy","x","input","_ref2","theme","classNameDecorator","_len","names","_key","styles","map","name","className","apply","join","style","module","objA","objB","aKeys","bKeys","len","keysMap","aValue","bValue","aValueKeys","bValueKeys","aValueKey","_react","cache","_getRequireWildcardCache","has","get","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set","_interopRequireWildcard","_propTypes","_interopRequireDefault","require$$1","_compareObjects","require$$2","WeakMap","_defineProperties","props","descriptor","_createSuper","Derived","result","Super","_getPrototypeOf","Reflect","construct","sham","Proxy","Date","toString","_isNativeReflectConstruct","NewTarget","this","self","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","p","SectionTitle","_Component","subClass","superClass","create","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","nextProps","_this$props","section","renderSectionTitle","sectionKeyPrefix","sectionTitle","createElement","Component","any","isRequired","func","string","_extends","ownKeys","object","enumerableOnly","symbols","sym","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","Item","_this","args","item","event","onMouseEnter","_this$props2","onMouseLeave","_this$props3","onMouseDown","_this$props4","onClick","_this$props5","isHighlighted","renderItem","renderItemData","restProps","role","ref","storeItemReference","forEach","getOwnPropertyDescriptors","defineProperties","_objectSpread","number","bool","_Item","require$$3","ItemsList","highlightedItem","onHighlightedItemChange","_this2","items","itemProps","highlightedItemIndex","getItemId","keyPrefix","sectionPrefix","isItemPropsFunction","isFirst","itemKey","itemPropsObj","allItemProps","id","storeHighlightedItemReference","array","oneOfType","_sectionIterator","_reactThemeable","_SectionTitle","require$$4","_ItemList","require$$5","_arrayWithHoles","_iterableToArrayLimit","minLen","_arrayLikeToArray","slice","test","_unsupportedIterableToArray","_nonIterableRest","emptyObject","Autowhatever","userRef","inputProps","current","itemsContainer","setState","isInputFocused","onFocus","onBlur","highlightedSectionIndex","keyCode","nextPrev","_this$sectionIterator2","sectionIterator","newHighlightedSectionIndex","newHighlightedItemIndex","onKeyDown","state","setSectionsItems","setSectionIterator","setTheme","ensureHighlightedItemIsVisible","sectionsItems","getSectionItems","sectionsLengths","allSectionsAreEmpty","every","itemsCount","isFirstSection","storeItemsListReference","itemOffsetRelativeToContainer","offsetParent","offsetTop","scrollTop","offsetHeight","renderInputComponent","renderItemsContainer","renderedItems","renderSections","renderItems","isOpen","ariaActivedescendant","itemsContainerId","containerProps","inputComponent","type","autoComplete","storeInputReference","storeItemsContainerReference","children","Error","container","containerOpen","inputOpen","inputFocused","itemsContainerOpen","itemsList","itemFirst","itemHighlighted","sectionContainer","sectionContainerFirst","_arrays","arrays","arrA","arrB","_Autowhatever","_theme","mapToAutowhateverTheme","defaultTheme","suggestionsContainer","suggestionsContainerOpen","suggestionsList","suggestion","suggestionFirst","suggestionHighlighted","alwaysTrue","REASON_SUGGESTIONS_REVEALED","REASON_INPUT_FOCUSED","REASON_INPUT_CHANGED","REASON_ESCAPE_PRESSED","Autosuggest","_alwaysRenderSuggestions","alwaysRenderSuggestions","justClickedOnSuggestionsContainer","node","detail","document","getAttribute","parentNode","autowhatever","_ref3","updateHighlightedSuggestion","pressedSuggestion","justSelectedSuggestion","justMouseEntered","setTimeout","focus","onSuggestionsClearRequested","onSuggestionSelected","onSuggestionsFetchRequested","keepSuggestionsOnSelect","shouldKeepSuggestionsOnSelect","suggestionValue","reason","resetHighlightedSuggestion","focusInputOnSuggestionClick","_this$getSuggestionIn","getSuggestionIndices","findSuggestionElement","suggestionIndex","clickedSuggestion","getSuggestion","clickedSuggestionValue","getSuggestionValue","maybeCallOnChange","method","closeSuggestions","shouldRenderSuggestions","highlightedSuggestion","getHighlightedSuggestion","shouldRender","isFocused","highlightedSuggestionIndex","valueBeforeUpDown","isCollapsed","blurEvent","_ref4","onSuggestionMouseEnter","onSuggestionMouseLeave","onSuggestionMouseDown","onTouchStart","onSuggestionTouchStart","onTouchMove","onSuggestionTouchMove","onSuggestionClick","_ref5","renderSuggestionsContainer","query","getQuery","justPressedUpDown","addEventListener","onDocumentMouseDown","onDocumentMouseUp","shouldResetHighlighting","highlightFirstSuggestion","suggestions","willRenderSuggestions","revealSuggestions","prevProps","prevState","onSuggestionHighlighted","removeEventListener","prevValue","shouldResetValueBeforeUpDown","getSectionSuggestions","_this$state","suggestionElement","parseInt","startNode","console","error","newValue","_this$props$inputProp","onChange","trim","_this3","_this$props6","renderSuggestion","_this$state2","_onFocus","_onKeyDown","autowhateverInputProps","preventDefault","getSuggestionValueByIndex","_newValue","willCloseSuggestions","renderSuggestionData","storeAutowhateverRef","propName","styleInject","css","insertAt","head","getElementsByTagName","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","Select","getDisplay","options","onSlackTimeSelected","viaPointIndex","label","icon","displayValue","changeDisplayValue","useState","open","changeOpen","useEffect","scrollRef","useRef","scrollIndex","Math","floor","useLayoutEffect","inputId","labelId","React","htmlFor","displayName","onInputChange","_","readOnly","otherRefs","_excluded","tabIndex","elem","process","env","NODE_ENV","propTypes","PropTypes","arrayOf","shape","i18n","createInstance","fallbackLng","resources","de","translation","en","fi","pl","sv","defaultNS","react","useSuspense","init","getEmptyViaPointPlaceHolder","isViaPointEmpty","viaPoint","isEmpty","includes","ItinerarySearchControl","enabled","onKeyPress","wide","rest","updateViaPointSlack","activeViaPointSlacks","updatedViaPointIndex","viaPointRemoved","foundAtIndex","splice","isKeyboardSelectionEvent","which","location","address","gps","ready","getLocationType","defaultProps","locationShape","lat","lon","locationSlack","DTAutosuggestPanel","super","refs","destination","viaPoints","updateViaPoints","vp","activeSlackInputs","slackTimeInSeconds","addAnalyticsEvent","action","category","viaPointLocation","handleViaPointLocationSelected","reverse","swapOrder","slackInSeconds","lng","lang","render","origin","searchPanelText","searchContext","disableAutoFocus","originMobileLabel","destinationMobileLabel","fontWeights","onFocusChange","showSwapControl","showViapointControl","slackTime","timeOptions","valueInMinutes","getSlackTimeOptions","getViaPointSlackTimeOrDefault","defaultValue","isViaPointSlackTimeInputActive","index","cx","isMobile","color","medium","DTAutoSuggest","appElement","autoFocus","storeRef","storeReference","refPoint","placeholder","originPlaceHolder","getAutoSuggestIcons","onSelect","onClear","focusChange","handleFocusChange","sources","targets","filterResults","hoverColor","mobileLabel","modeSet","modeIconColors","showScroll","isEmbedded","opposite","handleSwapOrderClick","Icon","img","rectangle","ReactSortable","list","handle","animation","disabled","setList","newViaPoints","row","cursor","rotate","ariaLabel","handleViaPoints","showSlackControl","handleToggleViaPointSlackClick","getSlackDisplay","handleViaPointSlackTimeSelected","handleRemoveViaPointClick","isNaN","destinationPlaceHolder","more","handleAddViaPointClick","width","height","URL_PELIAS","objectOf","DTAutosuggestPanelWithTranslation","withTranslation","I18nextProvider"],"mappings":"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"}
|