@road-labs/map-sdk 0.0.19 → 0.0.21

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/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../node_modules/react-dom/client.js","../src/hooks/useOnScreen.ts","../src/i18n.ts","../src/utils/request.ts","../src/contexts/Map.tsx","../src/Boot.tsx","../node_modules/@googlemaps/js-api-loader/dist/index.mjs","../src/utils/loader.ts","../node_modules/latlon-geohash/latlon-geohash.js","../src/components/OverlayView/OverlayView.tsx","../src/utils/location.ts","../src/components/CustomMarker/CustomMarker.tsx","../src/components/MapMarkers/MapMarkers.tsx","../src/components/Map/Map.tsx","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/utils/PropTypes.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/react-transition-group/esm/SwitchTransition.js","../src/components/Stack/View.tsx","../src/components/Stack/Stack.tsx","../src/components/SearchInput/SearchInput.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Range/Range.tsx","../node_modules/downshift/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/downshift/node_modules/react-is/cjs/react-is.development.js","../node_modules/downshift/node_modules/react-is/index.js","../node_modules/compute-scroll-into-view/dist/index.js","../node_modules/tslib/tslib.es6.mjs","../node_modules/downshift/dist/downshift.esm.js","../src/components/MultiSelect/MultiSelect.tsx","../src/components/SelectField/SelectField.tsx","../src/assets/connectors/type2.svg","../src/assets/connectors/combo2.svg","../src/assets/connectors/type1.svg","../src/assets/connectors/combo1.svg","../src/assets/connectors/type3.svg","../src/assets/connectors/type3a.svg","../src/assets/connectors/schuko.svg","../src/assets/connectors/chademo.svg","../src/assets/connectors/catarc.svg","../src/components/connectorIcons.ts","../src/utils/filters.ts","../src/screens/Filters/index.tsx","../src/components/LocationPlaceholder/LocationPlaceholder.tsx","../src/components/Icons/Icons.tsx","../src/components/SidebarContainer/SidebarContainer.tsx","../src/components/Debug/Debug.tsx","../src/assets/station-icon.svg","../src/assets/building-icon.svg","../src/assets/car-icon.svg","../src/assets/bolt-icon.svg","../src/assets/pricing-icon.svg","../src/utils/formatters.ts","../src/utils/date.ts","../src/utils/ocpi.ts","../src/components/Price/Price.tsx","../src/components/PriceComponents/PriceComponents.tsx","../src/components/CdrPrice/CdrPrice.tsx","../src/components/ConnectorTariff/ConnectorTariff.tsx","../src/utils/notes.ts","../src/screens/Locations/LocationDetailsV1.tsx","../src/screens/Locations/v2/Tariff.tsx","../src/screens/Locations/LocationDetailsV2.tsx","../src/screens/Locations/Locations.tsx","../src/components/BackButton/BackButton.tsx","../src/screens/Locations/TariffNote.tsx","../src/screens/Locations/DynamicTariffs.tsx","../src/assets/close-icon.svg","../src/components/CloseButton/CloseButton.tsx","../src/screens/Locations/index.tsx","../src/assets/filter-icon.svg","../src/Router.tsx","../src/App.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n // eslint-disable-next-line no-fallthrough\n }\n }\n\n return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if ( !fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n return type;\n }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n {\n checkKeyStringCoercion(maybeKey);\n }\n\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner$1.current) {\n var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object') {\n return;\n }\n\n if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentNameFromType(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\n\nvar didWarnAboutKeySpread = {};\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n {\n if (hasOwnProperty.call(props, 'key')) {\n var componentName = getComponentNameFromType(type);\n var keys = Object.keys(props).filter(function (k) {\n return k !== 'key';\n });\n var beforeExample = keys.length > 0 ? '{key: someKey, ' + keys.join(': ..., ') + ': ...}' : '{key: someKey}';\n\n if (!didWarnAboutKeySpread[componentName + beforeExample]) {\n var afterExample = keys.length > 0 ? '{' + keys.join(': ..., ') + ': ...}' : '{}';\n\n error('A props object containing a \"key\" prop is being spread into JSX:\\n' + ' let props = %s;\\n' + ' <%s {...props} />\\n' + 'React keys must be passed directly to JSX without using spread:\\n' + ' let props = %s;\\n' + ' <%s key={someKey} {...props} />', beforeExample, componentName, afterExample, componentName);\n\n didWarnAboutKeySpread[componentName + beforeExample] = true;\n }\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, true);\n }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, false);\n }\n}\n\nvar jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs = jsxWithValidationStatic ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","import { useEffect, useMemo, useState, RefObject } from \"react\";\n\nexport default function useOnScreen(ref: RefObject<HTMLElement>) {\n const [wasIntersecting, setWasIntersecting] = useState(false);\n\n const observer = useMemo(\n () =>\n new IntersectionObserver(([entry]) => {\n if (entry.isIntersecting) {\n setWasIntersecting(true);\n observer.disconnect();\n }\n }),\n [ref],\n );\n\n useEffect(() => {\n if (!ref.current) return;\n observer.observe(ref.current);\n return () => observer.disconnect();\n }, [ref.current]);\n\n return wasIntersecting;\n}\n","export function getLanguage(lng) {\n const language = lng || window.navigator.language.toLowerCase();\n\n const dutchLangCodes = [\"nl\", \"nl-be\", \"nl-nl\"];\n if (dutchLangCodes.includes(language)) {\n return \"nl\";\n }\n\n const englishLangCodes = [\n \"en\",\n \"en-us\",\n \"en-eg\",\n \"en-au\",\n \"en-gb\",\n \"en-ca\",\n \"en-nz\",\n \"en-ie\",\n \"en-za\",\n \"en-jm\",\n \"en-bz\",\n \"en-tt\",\n ];\n\n if (englishLangCodes.includes(language)) {\n return \"en\";\n }\n\n const germanLangCodes = [\"de\", \"de-ch\", \"de-at\", \"de-lu\", \"de-li\", \"de-de\"];\n if (germanLangCodes.includes(language)) {\n return \"de\";\n }\n\n const frenchLangCodes = [\"fr\", \"fr-be\", \"fr-ca\", \"fr-fr\", \"fr-lu\", \"fr-ch\"];\n if (frenchLangCodes.includes(language)) {\n return \"fr\";\n }\n\n const italianLangCodes = [\"it\", \"it-ch\", \"it-it\"];\n if (italianLangCodes.includes(language)) {\n return \"it\";\n }\n\n const spanishLangCodes = [\n \"es\",\n \"es-ar\",\n \"es-bo\",\n \"es-cl\",\n \"es-co\",\n \"es-cr\",\n \"es-do\",\n \"es-ec\",\n \"es-sv\",\n \"es-gt\",\n \"es-hn\",\n \"es-mx\",\n \"es-ni\",\n \"es-pa\",\n \"es-py\",\n \"es-pe\",\n \"es-pr\",\n \"es-es\",\n \"es-uy\",\n \"es-ve\",\n ];\n\n if (spanishLangCodes.includes(language)) {\n return \"es\";\n }\n\n return \"en\";\n}\n\nexport type LabelsType = {\n \"search.placeholder\": string;\n \"cdrPrice.flatFee\": string;\n \"tariffPriceComponent.dynamicTariffHeader\": string;\n \"tariffPriceComponent.noTariff\": string;\n \"tariffPriceComponent.energy\": string;\n \"tariffPriceComponent.time\": string;\n \"tariffPriceComponent.parkingTime\": string;\n \"tariffPriceComponent.parkingTimeWait\": string;\n \"tariffPriceComponent.flat\": string;\n \"tariffPriceComponent.baseTariff\": string;\n \"tariffPriceComponent.active\": string;\n \"tariffPriceComponent.viewTariff\": string;\n \"tariffNote.subHeader\": string;\n \"tariffNote.eFluxScheduledTariffNote\";\n \"tariffNote.dynamicScheduledTariffNote\";\n \"tariffNote.scheduledTariffNote\";\n \"tariffNote.baseTariffNote\";\n \"evse.statusAvailable\": string;\n \"evse.statusCharging\": string;\n \"evse.statusUnavailable\": string;\n \"evse.statusRemoved\": string;\n \"evse.statusPlanned\": string;\n \"evse.statusReserved\": string;\n \"evse.statusInoperative\": string;\n \"evse.statusOutOfOrder\": string;\n \"evse.statusError\": string;\n \"evse.statusUnknown\": string;\n \"evse.pricing\": string;\n \"filters.header\": string;\n \"filters.dcChargers\": string;\n \"filters.efluxChargers\": string;\n \"filters.noAdditionalFee\": string;\n \"filters.available\": string;\n \"filters.charging\": string;\n \"filters.notAvailable\": string;\n \"filters.chargingPower\": string;\n \"filters.connectorType\": string;\n \"filters.apply\": string;\n \"filters.clearAll\": string;\n \"filters.onlyShow\": string;\n \"filters.statusHeading\": string;\n \"locationType.onStreet\": string;\n \"locationType.parkingGarage\": string;\n \"locationType.undergroundGarage\": string;\n \"locationType.parkingLot\": string;\n \"locationType.other\": string;\n \"locationType.unknown\": string;\n \"dynamicTariffs.subHeader\": string;\n \"location.viewAllHourlyPrices\": string;\n \"backButton.backTo\": string;\n};\n\nexport const en: LabelsType = {\n \"search.placeholder\": \"Enter a location...\",\n \"cdrPrice.flatFee\": \"additional fee {{total}} / session\",\n \"tariffPriceComponent.dynamicTariffHeader\": \"Dynamic Tariff - {{date}}\",\n \"tariffPriceComponent.flat\": \"{{total}} / session\",\n \"tariffPriceComponent.time\": \"{{total}} / hour\",\n \"tariffPriceComponent.energy\": \"{{total}} / kWh\",\n \"tariffPriceComponent.parkingTime\": \"{{total}} / hour idle fee\",\n \"tariffPriceComponent.parkingTimeWait\":\n \"{{minutes}} min. wait time before idle fee\",\n \"tariffPriceComponent.noTariff\": \"No tariff available\",\n \"tariffPriceComponent.baseTariff\": \"Base Tariff\",\n \"tariffPriceComponent.active\": \"Active now\",\n \"filters.header\": \"Filters\",\n \"filters.dcChargers\": \"Fast Chargers\",\n \"filters.efluxChargers\": \"E-Flux Chargers\",\n \"filters.noAdditionalFee\": \"Without additional fee per session\",\n \"filters.available\": \"Available\",\n \"filters.charging\": \"Charging\",\n \"filters.notAvailable\": \"Not Available\",\n \"filters.chargingPower\": \"Charging Power [kW]\",\n \"filters.connectorType\": \"Connector Type\",\n \"filters.apply\": \"Apply Filters\",\n \"filters.clearAll\": \"Clear All Filters\",\n \"filters.onlyShow\": \"Only Show\",\n \"filters.statusHeading\": \"Status\",\n \"evse.statusAvailable\": \"Available\",\n \"evse.statusCharging\": \"Charging\",\n \"evse.statusUnavailable\": \"Unavailable\",\n \"evse.statusRemoved\": \"Removed\",\n \"evse.statusPlanned\": \"Planned\",\n \"evse.statusReserved\": \"Reserved\",\n \"evse.statusInoperative\": \"Inoperative\",\n \"evse.statusOutOfOrder\": \"Out of Order\",\n \"evse.statusError\": \"Error\",\n \"evse.statusUnknown\": \"Unknown\",\n \"locationType.onStreet\": \"On Street\",\n \"locationType.parkingGarage\": \"Parking Garage\",\n \"locationType.undergroundGarage\": \"Underground Garage\",\n \"locationType.parkingLot\": \"Parking Lot\",\n \"locationType.other\": \"Other\",\n \"locationType.unknown\": \"Unknown\",\n \"tariffPriceComponent.viewTariff\": \"View Tariff notes\",\n \"tariffNote.subHeader\": \"Tariff notes\",\n \"tariffNote.eFluxScheduledTariffNote\":\n \"A scheduled tariff overrides base tariff prices for specific time period.\",\n \"tariffNote.dynamicScheduledTariffNote\":\n \"Dynamic price is adjusted automatically based on energy market price (1 hour interval).\",\n \"tariffNote.scheduledTariffNote\":\n \"A scheduled tariff overrides base tariff prices for specific time period.\",\n \"tariffNote.baseTariffNote\":\n \"Tariffs shown here have been sent to E-Flux by roaming partner. Accuracy may vary depending on provider.\",\n \"evse.pricing\": \"Pricing\",\n \"dynamicTariffs.subHeader\": \"Hourly Prices\",\n \"location.viewAllHourlyPrices\": \"View All Hourly Prices\",\n \"backButton.backTo\": \"Back To\",\n};\n\nexport const nl: LabelsType = {\n \"search.placeholder\": \"Voer een locatie in...\",\n \"cdrPrice.flatFee\": \"Extra vergoeding {{total}} / sessie\",\n \"tariffPriceComponent.dynamicTariffHeader\": \"Dynamisch Tarief - {{date}}\",\n \"tariffPriceComponent.flat\": \"{{total}} / sessie\",\n \"tariffPriceComponent.time\": \"{{total}} / uur\",\n \"tariffPriceComponent.energy\": \"{{total}} / kWh\",\n \"tariffPriceComponent.parkingTime\": \"{{total}} / uur blokkeertarief\",\n \"tariffPriceComponent.parkingTimeWait\":\n \"{{minutes}} min. wachttijd voor blokkeertarief\",\n \"tariffPriceComponent.noTariff\": \"Geen beschikbaar tarief\",\n \"tariffPriceComponent.baseTariff\": \"Basistarief\",\n \"tariffPriceComponent.active\": \"Nu actief\",\n \"filters.header\": \"Filters\",\n \"filters.dcChargers\": \"DC-laders\",\n \"filters.efluxChargers\": \"E-Flux-laders\",\n \"filters.noAdditionalFee\": \"Zonder extra kosten per sessie\",\n \"filters.available\": \"Beschikbaar\",\n \"filters.charging\": \"Laden\",\n \"filters.notAvailable\": \"Niet beschikbaar\",\n \"filters.chargingPower\": \"Laadvermogen [kW]\",\n \"filters.connectorType\": \"Aansluitingstype\",\n \"filters.apply\": \"Filters toepassen\",\n \"filters.clearAll\": \"Alle filters wissen\",\n \"filters.onlyShow\": \"Alleen tonen\",\n \"filters.statusHeading\": \"Status\",\n \"evse.statusAvailable\": \"Beschikbaar\",\n \"evse.statusCharging\": \"Laden\",\n \"evse.statusUnavailable\": \"Niet beschikbaar\",\n \"evse.statusError\": \"Fout\",\n \"evse.statusRemoved\": \"Verwijderd\",\n \"evse.statusPlanned\": \"Gepland\",\n \"evse.statusReserved\": \"Gereserveerd\",\n \"evse.statusInoperative\": \"Inoperative\",\n \"evse.statusOutOfOrder\": \"Uit van orde\",\n \"evse.statusUnknown\": \"Onbekend\",\n \"locationType.onStreet\": \"Op straat\",\n \"locationType.parkingGarage\": \"Parkeergarage\",\n \"locationType.undergroundGarage\": \"Ondergrondse garage\",\n \"locationType.parkingLot\": \"Parkeerterrein\",\n \"locationType.other\": \"Anders\",\n \"locationType.unknown\": \"Onbekend\",\n \"tariffPriceComponent.viewTariff\": \"Tariefnotitie bekijken\",\n \"tariffNote.subHeader\": \"Tariefnotities\",\n \"tariffNote.eFluxScheduledTariffNote\":\n \"Een gepland tarief overschrijft de basis tariefprijzen voor een specifieke periode.\",\n \"tariffNote.dynamicScheduledTariffNote\":\n \"De dynamische prijs wordt automatisch aangepast op basis van de energiemarktprijs (interval van 1 uur).\",\n \"tariffNote.scheduledTariffNote\":\n \"Een gepland tarief overschrijft de basis tariefprijzen voor een specifieke periode.\",\n \"tariffNote.baseTariffNote\":\n \"De hier getoonde tarieven zijn door de roamingpartner aan E-Flux verstrekt. De nauwkeurigheid kan variëren afhankelijk van de aanbieder.\",\n \"evse.pricing\": \"Tarieven\",\n \"dynamicTariffs.subHeader\": \"Uurtarieven\",\n \"location.viewAllHourlyPrices\": \"Bekijk Alle Uurprijzen\",\n \"backButton.backTo\": \"Terug Naar\",\n};\n\nexport const de: LabelsType = {\n \"search.placeholder\": \"Geben Sie einen Ort ein...\",\n \"cdrPrice.flatFee\": \"Zusätzliche Gebühr {{total}} / Sitzung\",\n \"tariffPriceComponent.dynamicTariffHeader\": \"Dynamischer Tarif - {{date}}\",\n \"tariffPriceComponent.flat\": \"{{total}} / Sitzung\",\n \"tariffPriceComponent.time\": \"{{total}} / Stunde\",\n \"tariffPriceComponent.energy\": \"{{total}} / kWh\",\n \"tariffPriceComponent.parkingTime\": \"{{total}} / Stunde Blockiergebühr\",\n \"tariffPriceComponent.parkingTimeWait\":\n \"{{minutes}} Min. Wartezeit vor der Blockiergebühr\",\n \"tariffPriceComponent.noTariff\": \"Kein Tarif verfügbar\",\n \"tariffPriceComponent.baseTariff\": \"Grundtarif\",\n \"tariffPriceComponent.active\": \"Aktuell aktiv\",\n \"filters.header\": \"Filter\",\n \"filters.dcChargers\": \"Gleichstrom-Ladegeräte\",\n \"filters.efluxChargers\": \"E-Flux-Ladegeräte\",\n \"filters.noAdditionalFee\": \"Ohne zusätzliche Gebühr pro Sitzung\",\n \"filters.available\": \"Verfügbar\",\n \"filters.charging\": \"Lädt\",\n \"filters.notAvailable\": \"Nicht verfügbar\",\n \"filters.chargingPower\": \"Ladeleistung [kW]\",\n \"filters.connectorType\": \"Steckertyp\",\n \"filters.apply\": \"Filter anwenden\",\n \"filters.clearAll\": \"Alle Filter löschen\",\n \"filters.onlyShow\": \"Nur anzeigen\",\n \"filters.statusHeading\": \"Status\",\n \"evse.statusAvailable\": \"Verfügbar\",\n \"evse.statusCharging\": \"Lädt\",\n \"evse.statusUnavailable\": \"Nicht verfügbar\",\n \"evse.statusRemoved\": \"Entfernt\",\n \"evse.statusPlanned\": \"Geplant\",\n \"evse.statusReserved\": \"Reserviert\",\n \"evse.statusInoperative\": \"Inoperative\",\n \"evse.statusOutOfOrder\": \"Ausgeschaltet\",\n \"evse.statusError\": \"Fehler\",\n \"evse.statusUnknown\": \"Unbekannt\",\n \"evse.pricing\": \"Preisbildung\",\n \"locationType.onStreet\": \"Straße\",\n \"locationType.parkingGarage\": \"Parkhaus\",\n \"locationType.undergroundGarage\": \"Tiefgarage\",\n \"locationType.parkingLot\": \"Parkplatz\",\n \"locationType.other\": \"Andere\",\n \"locationType.unknown\": \"Unbekannt\",\n \"tariffPriceComponent.viewTariff\": \"Tarif anzeigen\",\n \"tariffNote.subHeader\": \"Tarifhinweise\",\n \"tariffNote.eFluxScheduledTariffNote\":\n \"Ein geplanter Tarif überschreibt die Basistarifpreise für einen bestimmten Zeitraum.\",\n \"tariffNote.dynamicScheduledTariffNote\":\n \"Der dynamische Preis wird automatisch basierend auf dem Energiepreis auf dem Markt angepasst (im Intervall von 1 Stunde).\",\n \"tariffNote.scheduledTariffNote\":\n \"Ein geplanter Tarif überschreibt die Basistarifpreise für einen bestimmten Zeitraum.\",\n \"tariffNote.baseTariffNote\":\n \"Die hier angezeigten Tarife wurden von einem Roaming-Partner an E-Flux gesendet. Die Genauigkeit kann je nach Anbieter variieren.\",\n \"dynamicTariffs.subHeader\": \"Stundentarife\",\n \"location.viewAllHourlyPrices\": \"Alle Stundenpreise anzeigen\",\n \"backButton.backTo\": \"Zurück zu\",\n};\n\nexport const fr: LabelsType = {\n \"search.placeholder\": \"Entrez un lieu...\",\n \"cdrPrice.flatFee\": \"Frais supplémentaires {{total}} / session\",\n \"tariffPriceComponent.dynamicTariffHeader\": \"Tarif Dynamique - {{date}}\",\n \"tariffPriceComponent.flat\": \"{{total}} / session\",\n \"tariffPriceComponent.time\": \"{{total}} / heure\",\n \"tariffPriceComponent.energy\": \"{{total}} / kWh\",\n \"tariffPriceComponent.parkingTime\":\n \"{{total}} / frais d'occupation par heure\",\n \"tariffPriceComponent.parkingTimeWait\":\n \"{{minutes}} min. avant frais d'occupation\",\n \"tariffPriceComponent.noTariff\": \"Aucun tarif disponible\",\n \"tariffPriceComponent.baseTariff\": \"Tarif de base\",\n \"tariffPriceComponent.active\": \"Actuellement actif\",\n \"filters.header\": \"Filtres\",\n \"filters.dcChargers\": \"Chargeurs à courant continu\",\n \"filters.efluxChargers\": \"Chargeurs E-Flux\",\n \"filters.noAdditionalFee\": \"Sans frais supplémentaires par séance\",\n \"filters.available\": \"Disponible\",\n \"filters.charging\": \"En charge\",\n \"filters.notAvailable\": \"Indisponible\",\n \"filters.chargingPower\": \"Puissance de charge [kW]\",\n \"filters.connectorType\": \"Type de connecteur\",\n \"filters.apply\": \"Appliquer les filtres\",\n \"filters.clearAll\": \"Effacer tous les filtres\",\n \"filters.onlyShow\": \"Afficher uniquement\",\n \"filters.statusHeading\": \"Statut\",\n \"evse.statusAvailable\": \"Disponible\",\n \"evse.statusCharging\": \"En charge\",\n \"evse.statusUnavailable\": \"Indisponible\",\n \"evse.statusRemoved\": \"Supprimé\",\n \"evse.statusPlanned\": \"Planifié\",\n \"evse.statusReserved\": \"Réservé\",\n \"evse.statusInoperative\": \"Hors service\",\n \"evse.statusOutOfOrder\": \"En panne\",\n \"evse.statusError\": \"Erreur\",\n \"evse.statusUnknown\": \"Inconnu\",\n \"evse.pricing\": \"Tarification\",\n \"locationType.onStreet\": \"Dans la rue\",\n \"locationType.parkingGarage\": \"Parking couvert\",\n \"locationType.undergroundGarage\": \"Parking souterrain\",\n \"locationType.parkingLot\": \"Parking\",\n \"locationType.other\": \"Autre\",\n \"locationType.unknown\": \"Inconnu\",\n \"tariffPriceComponent.viewTariff\": \"Voir le tarif\",\n \"tariffNote.subHeader\": \"Notes tarifaires\",\n \"tariffNote.eFluxScheduledTariffNote\":\n \"Un tarif programmé remplace les prix de base du tarif pour une période spécifique.\",\n \"tariffNote.dynamicScheduledTariffNote\":\n \"Le prix dynamique est ajusté automatiquement en fonction du prix du marché de l'énergie (intervalle d'une heure).\",\n \"tariffNote.scheduledTariffNote\":\n \"Un tarif programmé remplace les prix de base du tarif pour une période spécifique.\",\n \"tariffNote.baseTariffNote\":\n \"Les tarifs affichés ici ont été transmis à E-Flux par le partenaire d'itinérance. La précision peut varier en fonction du fournisseur.\",\n \"dynamicTariffs.subHeader\": \"Tarifs horaires\",\n \"location.viewAllHourlyPrices\": \"Voir tous les tarifs horaires\",\n \"backButton.backTo\": \"Retour à\",\n};\n\nexport const it: LabelsType = {\n \"search.placeholder\": \"Inserisci una posizione...\",\n \"cdrPrice.flatFee\": \"Costo aggiuntivo {{total}} / sessione\",\n \"tariffPriceComponent.dynamicTariffHeader\": \"Tariffa dinamica - {{date}}\",\n \"tariffPriceComponent.flat\": \"{{total}} / sessione\",\n \"tariffPriceComponent.time\": \"{{total}} / ora\",\n \"tariffPriceComponent.energy\": \"{{total}} / kWh\",\n \"tariffPriceComponent.parkingTime\": \"{{total}} / ora tariffa di inattività\",\n \"tariffPriceComponent.parkingTimeWait\":\n \"{{minutes}} min. tempo di attesa prima della tariffa di inattività\",\n \"tariffPriceComponent.noTariff\": \"Nessuna tariffa disponibile\",\n \"tariffPriceComponent.baseTariff\": \"Tariffa base\",\n \"tariffPriceComponent.active\": \"Attivo ora\",\n \"filters.header\": \"Filtri\",\n \"filters.dcChargers\": \"Caricabatterie DC\",\n \"filters.efluxChargers\": \"Caricabatterie E-Flux\",\n \"filters.noAdditionalFee\": \"Senza costi aggiuntivi per sessione\",\n \"filters.available\": \"Disponibile\",\n \"filters.charging\": \"In carica\",\n \"filters.notAvailable\": \"Non disponibile\",\n \"filters.chargingPower\": \"Potenza di ricarica [kW]\",\n \"filters.connectorType\": \"Tipo di connettore\",\n \"filters.apply\": \"Applica filtri\",\n \"filters.clearAll\": \"Cancella tutti i filtri\",\n \"filters.onlyShow\": \"Mostra solo\",\n \"filters.statusHeading\": \"Stato\",\n \"evse.statusAvailable\": \"Disponibile\",\n \"evse.statusCharging\": \"In carica\",\n \"evse.statusUnavailable\": \"Non disponibile\",\n \"evse.statusRemoved\": \"Rimossa\",\n \"evse.statusPlanned\": \"Pianificata\",\n \"evse.statusReserved\": \"Réservé\",\n \"evse.statusInoperative\": \"Inoperativo\",\n \"evse.statusOutOfOrder\": \"Fuori servizio\",\n \"evse.statusError\": \"Errore\",\n \"evse.statusUnknown\": \"Sconosciuto\",\n \"locationType.onStreet\": \"In strada\",\n \"locationType.parkingGarage\": \"Garage per il parcheggio\",\n \"locationType.undergroundGarage\": \"Garage sotterraneo\",\n \"locationType.parkingLot\": \"Parcheggio\",\n \"locationType.other\": \"Altro\",\n \"locationType.unknown\": \"Sconosciuto\",\n \"tariffPriceComponent.viewTariff\": \"Visualizza note tariffarie\",\n \"tariffNote.subHeader\": \"Note tariffarie\",\n \"tariffNote.eFluxScheduledTariffNote\":\n \"Una tariffa programmata sostituisce i prezzi della tariffa base per un periodo di tempo specifico.\",\n \"tariffNote.dynamicScheduledTariffNote\":\n \"Il prezzo dinamico si regola automaticamente in base al prezzo del mercato dell'energia (intervallo di 1 ora).\",\n \"tariffNote.scheduledTariffNote\":\n \"Una tariffa programmata sostituisce i prezzi della tariffa base per un periodo di tempo specifico.\",\n \"tariffNote.baseTariffNote\":\n \"Le tariffe mostrate qui sono state inviate a E-Flux dal partner di roaming. L'accuratezza può variare a seconda del fornitore.\",\n \"evse.pricing\": \"Prezzi\",\n \"dynamicTariffs.subHeader\": \"Prezzi orari\",\n \"location.viewAllHourlyPrices\": \"Visualizza tutti i prezzi orari\",\n \"backButton.backTo\": \"Torna a\",\n};\n\nexport const es: LabelsType = {\n \"search.placeholder\": \"Ingrese una ubicación...\",\n \"cdrPrice.flatFee\": \"Tarifa adicional {{total}} / sesión\",\n \"tariffPriceComponent.dynamicTariffHeader\": \"Tarifa Dinámica - {{date}}\",\n \"tariffPriceComponent.flat\": \"{{total}} / sesión\",\n \"tariffPriceComponent.time\": \"{{total}} / hora\",\n \"tariffPriceComponent.energy\": \"{{total}} / kWh\",\n \"tariffPriceComponent.parkingTime\": \"{{total}} / hora tarifa de inactividad\",\n \"tariffPriceComponent.parkingTimeWait\":\n \"{{minutes}} min. tiempo de espera antes de la tarifa de inactividad\",\n \"tariffPriceComponent.noTariff\": \"Tarifa no disponible\",\n \"tariffPriceComponent.baseTariff\": \"Tarifa Base\",\n \"tariffPriceComponent.active\": \"Activo ahora\",\n \"filters.header\": \"Filtros\",\n \"filters.dcChargers\": \"Cargadores DC\",\n \"filters.efluxChargers\": \"Cargadores E-Flux\",\n \"filters.noAdditionalFee\": \"Sin tarifa adicional por sesión\",\n \"filters.available\": \"Disponible\",\n \"filters.charging\": \"Cargando\",\n \"filters.notAvailable\": \"No Disponible\",\n \"filters.chargingPower\": \"Potencia de Carga [kW]\",\n \"filters.connectorType\": \"Tipo de Conector\",\n \"filters.apply\": \"Aplicar Filtros\",\n \"filters.clearAll\": \"Limpiar Todos los Filtros\",\n \"filters.onlyShow\": \"Mostrar Solo\",\n \"evse.statusRemoved\": \"Eliminado\",\n \"evse.statusPlanned\": \"Planificado\",\n \"evse.statusReserved\": \"Reservado\",\n \"evse.statusInoperative\": \"Fuera de servicio\",\n \"evse.statusOutOfOrder\": \"Averiado\",\n \"filters.statusHeading\": \"Estado\",\n \"evse.statusAvailable\": \"Disponible\",\n \"evse.statusCharging\": \"Cargando\",\n \"evse.statusUnavailable\": \"No Disponible\",\n \"evse.statusError\": \"Error\",\n \"evse.statusUnknown\": \"Desconocido\",\n \"locationType.onStreet\": \"En la calle\",\n \"locationType.parkingGarage\": \"Garaje para Estacionar\",\n \"locationType.undergroundGarage\": \"Garaje Subterráneo\",\n \"locationType.parkingLot\": \"Estacionamiento\",\n \"locationType.other\": \"Otro\",\n \"locationType.unknown\": \"Desconocido\",\n \"tariffPriceComponent.viewTariff\": \"Ver notas de tarifas\",\n \"tariffNote.subHeader\": \"Notas de Tarifas\",\n \"tariffNote.eFluxScheduledTariffNote\":\n \"Una tarifa programada anula los precios de la tarifa base para un período de tiempo específico.\",\n \"tariffNote.dynamicScheduledTariffNote\":\n \"El precio dinámico se ajusta automáticamente según el precio del mercado de la energía (intervalo de 1 hora).\",\n \"tariffNote.scheduledTariffNote\":\n \"Una tarifa programada anula los precios de la tarifa base para un período de tiempo específico.\",\n \"tariffNote.baseTariffNote\":\n \"Las tarifas mostradas aquí han sido enviadas a E-Flux por el socio de roaming. La precisión puede variar según el proveedor.\",\n \"evse.pricing\": \"Precios\",\n \"dynamicTariffs.subHeader\": \"Precios por Hora\",\n \"location.viewAllHourlyPrices\": \"Ver Todos los Precios por Hora\",\n \"backButton.backTo\": \"Volver a\",\n};\n\nexport const strings = {\n en,\n nl,\n de,\n fr,\n it,\n es,\n};\n","import { RemoteConfig } from \"../types\";\n\ntype RequestOptionsType = {\n method?: string;\n body?: string;\n authorization?: string;\n version?: string;\n headers?: {\n \"Content-Type\": string;\n };\n};\n\nexport async function request(url: string, options?: RequestOptionsType) {\n try {\n const response = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...(options.version && {\n version: options.version,\n }),\n ...(options.authorization &&\n options.version === \"v2\" && {\n Authorization: `Bearer ${options.authorization}`,\n }),\n },\n ...options,\n });\n\n switch (response.status) {\n case 200:\n return response.json();\n case 400:\n throw new Error(\"Bad request\");\n case 404:\n throw new Error(\"Not Found\");\n case 500:\n throw new Error(\"Server Error\");\n case 503:\n throw new Error(\"Timeout!\");\n default:\n throw new Error(`Unexpected status: ${response.status}`);\n }\n } catch (e) {\n if (e instanceof DOMException) {\n return null;\n }\n throw e;\n }\n}\n\nexport async function _fetchGeohashes(\n apiRoot,\n version,\n authorization,\n limitToLocationIds,\n { precision, bbox, ...props },\n): Promise<any> {\n return request(`${apiRoot}/1/map/search`, {\n method: \"POST\",\n version,\n authorization,\n body: JSON.stringify({\n gridPrecision: precision,\n bbox,\n ...(limitToLocationIds?.length > 0 && {\n locationIds: limitToLocationIds,\n }),\n ...props,\n ...(props?.operatorOnly ? { operator: [props.operatorOnly] } : {}),\n }),\n });\n}\n\nexport async function _fetchTariffs(\n apiRoot,\n version,\n authorization,\n { origin, ids },\n): Promise<any> {\n return request(`${apiRoot}/1/map/tariff`, {\n method: \"POST\",\n version,\n authorization,\n body: JSON.stringify({\n connection_id: origin.connectionId,\n country_code: origin.countryCode,\n party_id: origin.partyId,\n tariff_ids: ids,\n }),\n });\n}\n\nexport async function _fetchLocations(\n apiRoot,\n version,\n authorization,\n { ids, status },\n): Promise<any> {\n return request(`${apiRoot}/1/map/locations`, {\n method: \"POST\",\n version,\n authorization,\n body: JSON.stringify({\n ids,\n ...(version === \"v2\" ? { status } : {}),\n }),\n });\n}\n\nexport async function loadRemoteConfig(\n apiRoot: string,\n version: string,\n authorization: string,\n): Promise<RemoteConfig> {\n const response = await request(`${apiRoot}/1/map/config`, {\n version: version,\n authorization: authorization,\n });\n\n return response?.data as RemoteConfig;\n}\n","import React, { useState, useMemo, useEffect, createContext } from \"react\";\nimport { LabelsType, strings, getLanguage } from \"../i18n\";\nimport {\n _fetchGeohashes,\n _fetchLocations,\n _fetchTariffs,\n loadRemoteConfig,\n} from \"../utils/request\";\nimport {\n Location,\n Position,\n RoadMapOptions,\n Status,\n FilterConfiguration,\n} from \"../types\";\n\nexport type MapContextType = {\n t: (key: keyof LabelsType, props?: any) => string;\n isReady: boolean;\n options?: RoadMapOptions;\n setPlace: (place: any) => void;\n place?: google.maps.places.PlaceResult;\n fetchGeohashes?: ({ precision, bbox }) => Promise<any>;\n fetchLocations?: ({ ids }) => Promise<any>;\n fetchTariffs?: ({ origin, ids }) => Promise<any>;\n filters?: any;\n setLocationsIds?: (ids: string[]) => void;\n locationIds?: string[];\n filterConfiguration?: FilterConfiguration;\n setFilters?: (filters: any) => void;\n language: string;\n position?: Position;\n locations?: Location[];\n locationsStatus?: Status;\n isSearching?: boolean;\n setIsSearching?: (isSearching: boolean) => void;\n};\n\n// MapContext is the context that is used to store the map data include the initial configuration\n// passed to the widget\nexport const MapContext = createContext<MapContextType>({\n isReady: false,\n setPlace: () => {},\n t: (key: string) => `Translate ${key}`,\n language: \"en\",\n});\n\ninterface Props {\n children: React.ReactNode;\n options: RoadMapOptions;\n language: string;\n}\n\nexport const MapProvider: React.FC<Props> = ({ children, ...props }) => {\n const [options, setOptions] = useState<RoadMapOptions>(props.options);\n const [filterConfiguration, setFilterConfiguration] =\n useState<FilterConfiguration>({\n preferredOperators: props.options.preferredOperators,\n showOperatorOnly: props.options.showOperatorOnly,\n showNoAdditionalFeeFilter: props.options.showNoAdditionalFeeFilter,\n showPublishingModeFilter: props.options.showPublishingModeFilter,\n });\n const [error, setError] = useState();\n const [place, setPlace] = useState();\n const [position, setPosition] = useState<Position>(props.options.position);\n const [filters, setFilters] = useState<{ status?: string }>({});\n const [locationIds, setLocationsIds] = useState<string[]>(\n [props.options.locationId].filter(Boolean),\n );\n const [locations, setLocations] = useState<Location[]>([]);\n const [locationsStatus, setLocationsStatus] = useState<Status>({\n type: \"success\",\n });\n const [isSearching, setIsSearching] = useState<boolean>(false);\n\n // check if debug flag\n const isDebug = window.location.search.includes(\"debug=true\");\n if (isDebug) {\n console.log(\"map-context options\", props.options);\n }\n\n const language = useMemo(\n () => getLanguage(props.options.language || \"en\"),\n [props.options.language],\n );\n const t = useMemo(() => {\n return (key: keyof LabelsType, props): string => {\n return strings[language][key].replace(/\\{\\{(\\w+)\\}\\}/g, (match, p1) => {\n return props[p1];\n });\n };\n }, [language]);\n\n const apiRoot = (() => {\n // if the apiRoot is set and contains `.dev`, use the configured value,\n // otherwise we use the default endpoint\n if (props.options.apiRoot && props.options.apiRoot.includes(\".dev\")) {\n return props.options.apiRoot;\n }\n switch (props.options.version) {\n case \"v2\":\n return \"https://roaming.road.io/v2/map-search\";\n default:\n return \"https://api.road.io\";\n }\n })();\n\n let version = props.options.version;\n let authorization = props.options.authorization;\n\n // if the request URL contains a map_key, override the authorization to enable\n // linking to bespoke map instances without multiple deployments\n const mapKey = window.location.search.split(\"map_key=\")[1];\n if (mapKey) {\n authorization = mapKey;\n version = \"v2\"; // force v2 for map key\n }\n\n const fetchGeohashes = _fetchGeohashes.bind(\n null,\n apiRoot,\n version,\n authorization,\n props.options.limitToLocationIds || [],\n );\n\n const fetchLocations = _fetchLocations.bind(\n null,\n apiRoot,\n version,\n authorization,\n );\n\n const fetchTariffs = _fetchTariffs.bind(\n null,\n apiRoot,\n version,\n authorization,\n );\n\n async function onFetchLocations({ ids, status }) {\n setLocationsStatus({ type: \"loading\" });\n try {\n const { data } = await fetchLocations({\n ids,\n ...(version === \"v2\" ? { status } : {}),\n });\n setLocations(data.filter((location) => location?.evses?.length));\n setLocationsStatus({ type: \"success\" });\n return data;\n } catch (e) {\n setLocationsStatus({ type: \"error\", error: e });\n }\n }\n\n useEffect(() => {\n if (!props.options.locationId) {\n return;\n }\n onFetchLocations({\n ids: [props.options.locationId],\n status: filters.status,\n }).then((data) => {\n if (data?.length) {\n const location = data[0];\n if (location.geoLocation?.coordinates) {\n setPosition({\n lng: location.geoLocation?.coordinates[0],\n lat: location.geoLocation?.coordinates[1],\n });\n }\n }\n });\n }, [props.options.locationId]);\n\n useEffect(() => {\n loadRemoteConfig(apiRoot, version, authorization)\n .then((rc) => {\n if (isDebug) {\n console.log(\"retrieved remote config\", rc);\n }\n // merge the remote configuration, with the locally defined configuration\n setFilterConfiguration({\n ...rc,\n ...filterConfiguration,\n });\n setOptions({\n googleApiKey: rc.googleMapsApiKey,\n ...options,\n ...rc,\n });\n if (!options.locationId && !options?.position?.lat && rc.ipLatitude) {\n if (isDebug) {\n console.debug(\"setting position from ip latitude and longitude\");\n }\n setPosition({\n lat: rc.ipLatitude,\n lng: rc.ipLongitude,\n });\n // if the has not set a location id and we have a position\n } else if (!options.locationId) {\n if (isDebug) {\n console.debug(\"setting position from options position\");\n }\n setPosition(\n options?.position?.lat\n ? options.position\n : {\n lat: 52.3676,\n lng: 4.9041,\n },\n );\n }\n })\n .catch((err) => setError(err));\n }, []);\n\n useEffect(() => {\n if (locationIds?.length) {\n onFetchLocations({\n ids: locationIds,\n status: filters.status,\n });\n }\n }, [locationIds]);\n\n useEffect(() => {\n const { theming, shadowRoot } = props.options;\n\n if (shadowRoot) {\n const style =\n shadowRoot.querySelectorAll(\"#road-map-styles\")[0] ||\n document.createElement(\"style\");\n style.setAttribute(\"type\", \"text/css\");\n style.setAttribute(\"id\", \"road-map-styles\");\n style.innerHTML = `\n :host {\n --roadmap-brand-color: ${theming?.brandColor || \"#6102d3\"};\n --roadmap-background-color: ${theming?.backgroundColor || \"#ffffff\"};\n --roadmap-text-color: ${theming?.textColor || \"#2a2a2a\"};\n --roadmap-border-color: ${theming?.borderColor || \"#dddddd\"};\n --roadmap-font-family: ${theming?.fontFamily || \"Inter\"};\n }\n `;\n shadowRoot.appendChild(style);\n }\n }, [props.options.theming]);\n\n const isReady = Boolean(position && options?.googleApiKey);\n\n const providerValue = useMemo(() => {\n return {\n options,\n setPlace,\n place,\n t,\n language,\n fetchGeohashes,\n locations,\n locationsStatus,\n filterConfiguration,\n setFilters,\n setLocationsIds,\n locationIds,\n filters,\n fetchTariffs,\n fetchLocations,\n isReady,\n position,\n isSearching,\n setIsSearching,\n };\n }, [\n position,\n language,\n locations,\n locationsStatus,\n fetchTariffs,\n props.options,\n place,\n setPlace,\n setFilters,\n filters,\n filterConfiguration,\n locationIds,\n setLocationsIds,\n t,\n fetchGeohashes,\n fetchLocations,\n isReady,\n isSearching,\n ]);\n\n return (\n <MapContext.Provider value={providerValue}>{children}</MapContext.Provider>\n );\n};\n\nexport function useMapContext(): MapContextType {\n const context = React.useContext(MapContext);\n if (context === undefined) {\n throw new Error(\"useMapContext must be used within a MapProvider\");\n }\n return context;\n}\n","import React, { useRef, useContext } from \"react\";\nimport styles from \"./app.module.css\";\nimport useOnScreen from \"./hooks/useOnScreen\";\nimport { MapContext } from \"./contexts/Map\";\n\ninterface Props {\n children?: React.ReactNode;\n height?: number;\n}\n\nexport default function Boot(props: Props) {\n const { isReady } = useContext(MapContext);\n const ref = useRef(null);\n const isVisible = useOnScreen(ref);\n const loaded = isVisible && isReady;\n return (\n <div\n ref={ref}\n className={styles.container}\n style={{\n height: `${props.height}px`,\n }}\n >\n {!loaded && <div className={styles.loader}>Loading...</div>}\n {loaded && props.children}\n </div>\n );\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nvar fastDeepEqual = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n\nvar isEqual = /*@__PURE__*/getDefaultExportFromCjs(fastDeepEqual);\n\n/**\n * Copyright 2019 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at.\n *\n * Http://www.apache.org/licenses/LICENSE-2.0.\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst DEFAULT_ID = \"__googleMapsScriptId\";\n/**\n * The status of the [[Loader]].\n */\nvar LoaderStatus;\n(function (LoaderStatus) {\n LoaderStatus[LoaderStatus[\"INITIALIZED\"] = 0] = \"INITIALIZED\";\n LoaderStatus[LoaderStatus[\"LOADING\"] = 1] = \"LOADING\";\n LoaderStatus[LoaderStatus[\"SUCCESS\"] = 2] = \"SUCCESS\";\n LoaderStatus[LoaderStatus[\"FAILURE\"] = 3] = \"FAILURE\";\n})(LoaderStatus || (LoaderStatus = {}));\n/**\n * [[Loader]] makes it easier to add Google Maps JavaScript API to your application\n * dynamically using\n * [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\n * It works by dynamically creating and appending a script node to the the\n * document head and wrapping the callback function so as to return a promise.\n *\n * ```\n * const loader = new Loader({\n * apiKey: \"\",\n * version: \"weekly\",\n * libraries: [\"places\"]\n * });\n *\n * loader.load().then((google) => {\n * const map = new google.maps.Map(...)\n * })\n * ```\n */\nclass Loader {\n /**\n * Creates an instance of Loader using [[LoaderOptions]]. No defaults are set\n * using this library, instead the defaults are set by the Google Maps\n * JavaScript API server.\n *\n * ```\n * const loader = Loader({apiKey, version: 'weekly', libraries: ['places']});\n * ```\n */\n constructor({ apiKey, authReferrerPolicy, channel, client, id = DEFAULT_ID, language, libraries = [], mapIds, nonce, region, retries = 3, url = \"https://maps.googleapis.com/maps/api/js\", version, }) {\n this.callbacks = [];\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.apiKey = apiKey;\n this.authReferrerPolicy = authReferrerPolicy;\n this.channel = channel;\n this.client = client;\n this.id = id || DEFAULT_ID; // Do not allow empty string\n this.language = language;\n this.libraries = libraries;\n this.mapIds = mapIds;\n this.nonce = nonce;\n this.region = region;\n this.retries = retries;\n this.url = url;\n this.version = version;\n if (Loader.instance) {\n if (!isEqual(this.options, Loader.instance.options)) {\n throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(Loader.instance.options)}`);\n }\n return Loader.instance;\n }\n Loader.instance = this;\n }\n get options() {\n return {\n version: this.version,\n apiKey: this.apiKey,\n channel: this.channel,\n client: this.client,\n id: this.id,\n libraries: this.libraries,\n language: this.language,\n region: this.region,\n mapIds: this.mapIds,\n nonce: this.nonce,\n url: this.url,\n authReferrerPolicy: this.authReferrerPolicy,\n };\n }\n get status() {\n if (this.errors.length) {\n return LoaderStatus.FAILURE;\n }\n if (this.done) {\n return LoaderStatus.SUCCESS;\n }\n if (this.loading) {\n return LoaderStatus.LOADING;\n }\n return LoaderStatus.INITIALIZED;\n }\n get failed() {\n return this.done && !this.loading && this.errors.length >= this.retries + 1;\n }\n /**\n * CreateUrl returns the Google Maps JavaScript API script url given the [[LoaderOptions]].\n *\n * @ignore\n * @deprecated\n */\n createUrl() {\n let url = this.url;\n url += `?callback=__googleMapsCallback&loading=async`;\n if (this.apiKey) {\n url += `&key=${this.apiKey}`;\n }\n if (this.channel) {\n url += `&channel=${this.channel}`;\n }\n if (this.client) {\n url += `&client=${this.client}`;\n }\n if (this.libraries.length > 0) {\n url += `&libraries=${this.libraries.join(\",\")}`;\n }\n if (this.language) {\n url += `&language=${this.language}`;\n }\n if (this.region) {\n url += `&region=${this.region}`;\n }\n if (this.version) {\n url += `&v=${this.version}`;\n }\n if (this.mapIds) {\n url += `&map_ids=${this.mapIds.join(\",\")}`;\n }\n if (this.authReferrerPolicy) {\n url += `&auth_referrer_policy=${this.authReferrerPolicy}`;\n }\n return url;\n }\n deleteScript() {\n const script = document.getElementById(this.id);\n if (script) {\n script.remove();\n }\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n * @deprecated, use importLibrary() instead.\n */\n load() {\n return this.loadPromise();\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n *\n * @ignore\n * @deprecated, use importLibrary() instead.\n */\n loadPromise() {\n return new Promise((resolve, reject) => {\n this.loadCallback((err) => {\n if (!err) {\n resolve(window.google);\n }\n else {\n reject(err.error);\n }\n });\n });\n }\n importLibrary(name) {\n this.execute();\n return google.maps.importLibrary(name);\n }\n /**\n * Load the Google Maps JavaScript API script with a callback.\n * @deprecated, use importLibrary() instead.\n */\n loadCallback(fn) {\n this.callbacks.push(fn);\n this.execute();\n }\n /**\n * Set the script on document.\n */\n setScript() {\n var _a, _b;\n if (document.getElementById(this.id)) {\n // TODO wrap onerror callback for cases where the script was loaded elsewhere\n this.callback();\n return;\n }\n const params = {\n key: this.apiKey,\n channel: this.channel,\n client: this.client,\n libraries: this.libraries.length && this.libraries,\n v: this.version,\n mapIds: this.mapIds,\n language: this.language,\n region: this.region,\n authReferrerPolicy: this.authReferrerPolicy,\n };\n // keep the URL minimal:\n Object.keys(params).forEach(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (key) => !params[key] && delete params[key]);\n if (!((_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.importLibrary)) {\n // tweaked copy of https://developers.google.com/maps/documentation/javascript/load-maps-js-api#dynamic-library-import\n // which also sets the base url, the id, and the nonce\n /* eslint-disable */\n ((g) => {\n // @ts-ignore\n let h, a, k, p = \"The Google Maps JavaScript API\", c = \"google\", l = \"importLibrary\", q = \"__ib__\", m = document, b = window;\n // @ts-ignore\n b = b[c] || (b[c] = {});\n // @ts-ignore\n const d = b.maps || (b.maps = {}), r = new Set(), e = new URLSearchParams(), u = () => \n // @ts-ignore\n h || (h = new Promise((f, n) => __awaiter(this, void 0, void 0, function* () {\n var _a;\n yield (a = m.createElement(\"script\"));\n a.id = this.id;\n e.set(\"libraries\", [...r] + \"\");\n // @ts-ignore\n for (k in g)\n e.set(k.replace(/[A-Z]/g, (t) => \"_\" + t[0].toLowerCase()), g[k]);\n e.set(\"callback\", c + \".maps.\" + q);\n a.src = this.url + `?` + e;\n d[q] = f;\n a.onerror = () => (h = n(Error(p + \" could not load.\")));\n // @ts-ignore\n a.nonce = this.nonce || ((_a = m.querySelector(\"script[nonce]\")) === null || _a === void 0 ? void 0 : _a.nonce) || \"\";\n m.head.append(a);\n })));\n // @ts-ignore\n d[l] ? console.warn(p + \" only loads once. Ignoring:\", g) : (d[l] = (f, ...n) => r.add(f) && u().then(() => d[l](f, ...n)));\n })(params);\n /* eslint-enable */\n }\n // While most libraries populate the global namespace when loaded via bootstrap params,\n // this is not the case for \"marker\" when used with the inline bootstrap loader\n // (and maybe others in the future). So ensure there is an importLibrary for each:\n const libraryPromises = this.libraries.map((library) => this.importLibrary(library));\n // ensure at least one library, to kick off loading...\n if (!libraryPromises.length) {\n libraryPromises.push(this.importLibrary(\"core\"));\n }\n Promise.all(libraryPromises).then(() => this.callback(), (error) => {\n const event = new ErrorEvent(\"error\", { error }); // for backwards compat\n this.loadErrorCallback(event);\n });\n }\n /**\n * Reset the loader state.\n */\n reset() {\n this.deleteScript();\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.onerrorEvent = null;\n }\n resetIfRetryingFailed() {\n if (this.failed) {\n this.reset();\n }\n }\n loadErrorCallback(e) {\n this.errors.push(e);\n if (this.errors.length <= this.retries) {\n const delay = this.errors.length * Math.pow(2, this.errors.length);\n console.error(`Failed to load Google Maps script, retrying in ${delay} ms.`);\n setTimeout(() => {\n this.deleteScript();\n this.setScript();\n }, delay);\n }\n else {\n this.onerrorEvent = e;\n this.callback();\n }\n }\n callback() {\n this.done = true;\n this.loading = false;\n this.callbacks.forEach((cb) => {\n cb(this.onerrorEvent);\n });\n this.callbacks = [];\n }\n execute() {\n this.resetIfRetryingFailed();\n if (this.done) {\n this.callback();\n }\n else {\n // short circuit and warn if google.maps is already loaded\n if (window.google && window.google.maps && window.google.maps.version) {\n console.warn(\"Google Maps already loaded outside @googlemaps/js-api-loader.\" +\n \"This may result in undesirable behavior as options and script parameters may not match.\");\n this.callback();\n return;\n }\n if (this.loading) ;\n else {\n this.loading = true;\n this.setScript();\n }\n }\n }\n}\n\nexport { DEFAULT_ID, Loader, LoaderStatus };\n//# sourceMappingURL=index.mjs.map\n","import { Loader } from \"@googlemaps/js-api-loader\";\n\nlet instance;\nexport function getLoader(apiKey, language): Loader {\n if (instance) return instance;\n\n const loader = new Loader({\n apiKey: apiKey, // Replace with your Google Maps API key\n version: \"weekly\",\n language,\n });\n instance = loader;\n return loader;\n}\n","/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n/* Geohash encoding/decoding and associated functions (c) Chris Veness 2014-2019 / MIT Licence */\n/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\nconst base32 = '0123456789bcdefghjkmnpqrstuvwxyz'; // (geohash-specific) Base32 map\n\n\n/**\n * Geohash: Gustavo Niemeyer’s geocoding system.\n */\nclass Geohash {\n\n /**\n * Encodes latitude/longitude to geohash, either to specified precision or to automatically\n * evaluated precision.\n *\n * @param {number} lat - Latitude in degrees.\n * @param {number} lon - Longitude in degrees.\n * @param {number} [precision] - Number of characters in resulting geohash.\n * @returns {string} Geohash of supplied latitude/longitude.\n * @throws Invalid geohash.\n *\n * @example\n * const geohash = Geohash.encode(52.205, 0.119, 7); // => 'u120fxw'\n */\n static encode(lat, lon, precision) {\n // infer precision?\n if (typeof precision == 'undefined') {\n // refine geohash until it matches precision of supplied lat/lon\n for (let p=1; p<=12; p++) {\n const hash = Geohash.encode(lat, lon, p);\n const posn = Geohash.decode(hash);\n if (posn.lat==lat && posn.lon==lon) return hash;\n }\n precision = 12; // set to maximum\n }\n\n lat = Number(lat);\n lon = Number(lon);\n precision = Number(precision);\n\n if (isNaN(lat) || isNaN(lon) || isNaN(precision)) throw new Error('Invalid geohash');\n\n let idx = 0; // index into base32 map\n let bit = 0; // each char holds 5 bits\n let evenBit = true;\n let geohash = '';\n\n let latMin = -90, latMax = 90;\n let lonMin = -180, lonMax = 180;\n\n while (geohash.length < precision) {\n if (evenBit) {\n // bisect E-W longitude\n const lonMid = (lonMin + lonMax) / 2;\n if (lon >= lonMid) {\n idx = idx*2 + 1;\n lonMin = lonMid;\n } else {\n idx = idx*2;\n lonMax = lonMid;\n }\n } else {\n // bisect N-S latitude\n const latMid = (latMin + latMax) / 2;\n if (lat >= latMid) {\n idx = idx*2 + 1;\n latMin = latMid;\n } else {\n idx = idx*2;\n latMax = latMid;\n }\n }\n evenBit = !evenBit;\n\n if (++bit == 5) {\n // 5 bits gives us a character: append it and start over\n geohash += base32.charAt(idx);\n bit = 0;\n idx = 0;\n }\n }\n\n return geohash;\n }\n\n\n /**\n * Decode geohash to latitude/longitude (location is approximate centre of geohash cell,\n * to reasonable precision).\n *\n * @param {string} geohash - Geohash string to be converted to latitude/longitude.\n * @returns {{lat:number, lon:number}} (Center of) geohashed location.\n * @throws Invalid geohash.\n *\n * @example\n * const latlon = Geohash.decode('u120fxw'); // => { lat: 52.205, lon: 0.1188 }\n */\n static decode(geohash) {\n\n const bounds = Geohash.bounds(geohash); // <-- the hard work\n // now just determine the centre of the cell...\n\n const latMin = bounds.sw.lat, lonMin = bounds.sw.lon;\n const latMax = bounds.ne.lat, lonMax = bounds.ne.lon;\n\n // cell centre\n let lat = (latMin + latMax)/2;\n let lon = (lonMin + lonMax)/2;\n\n // round to close to centre without excessive precision: ⌊2-log10(Δ°)⌋ decimal places\n lat = lat.toFixed(Math.floor(2-Math.log(latMax-latMin)/Math.LN10));\n lon = lon.toFixed(Math.floor(2-Math.log(lonMax-lonMin)/Math.LN10));\n\n return { lat: Number(lat), lon: Number(lon) };\n }\n\n\n /**\n * Returns SW/NE latitude/longitude bounds of specified geohash.\n *\n * @param {string} geohash - Cell that bounds are required of.\n * @returns {{sw: {lat: number, lon: number}, ne: {lat: number, lon: number}}}\n * @throws Invalid geohash.\n */\n static bounds(geohash) {\n if (geohash.length == 0) throw new Error('Invalid geohash');\n\n geohash = geohash.toLowerCase();\n\n let evenBit = true;\n let latMin = -90, latMax = 90;\n let lonMin = -180, lonMax = 180;\n\n for (let i=0; i<geohash.length; i++) {\n const chr = geohash.charAt(i);\n const idx = base32.indexOf(chr);\n if (idx == -1) throw new Error('Invalid geohash');\n\n for (let n=4; n>=0; n--) {\n const bitN = idx >> n & 1;\n if (evenBit) {\n // longitude\n const lonMid = (lonMin+lonMax) / 2;\n if (bitN == 1) {\n lonMin = lonMid;\n } else {\n lonMax = lonMid;\n }\n } else {\n // latitude\n const latMid = (latMin+latMax) / 2;\n if (bitN == 1) {\n latMin = latMid;\n } else {\n latMax = latMid;\n }\n }\n evenBit = !evenBit;\n }\n }\n\n const bounds = {\n sw: { lat: latMin, lon: lonMin },\n ne: { lat: latMax, lon: lonMax },\n };\n\n return bounds;\n }\n\n\n /**\n * Determines adjacent cell in given direction.\n *\n * @param geohash - Cell to which adjacent cell is required.\n * @param direction - Direction from geohash (N/S/E/W).\n * @returns {string} Geocode of adjacent cell.\n * @throws Invalid geohash.\n */\n static adjacent(geohash, direction) {\n // based on github.com/davetroy/geohash-js\n\n geohash = geohash.toLowerCase();\n direction = direction.toLowerCase();\n\n if (geohash.length == 0) throw new Error('Invalid geohash');\n if ('nsew'.indexOf(direction) == -1) throw new Error('Invalid direction');\n\n const neighbour = {\n n: [ 'p0r21436x8zb9dcf5h7kjnmqesgutwvy', 'bc01fg45238967deuvhjyznpkmstqrwx' ],\n s: [ '14365h7k9dcfesgujnmqp0r2twvyx8zb', '238967debc01fg45kmstqrwxuvhjyznp' ],\n e: [ 'bc01fg45238967deuvhjyznpkmstqrwx', 'p0r21436x8zb9dcf5h7kjnmqesgutwvy' ],\n w: [ '238967debc01fg45kmstqrwxuvhjyznp', '14365h7k9dcfesgujnmqp0r2twvyx8zb' ],\n };\n const border = {\n n: [ 'prxz', 'bcfguvyz' ],\n s: [ '028b', '0145hjnp' ],\n e: [ 'bcfguvyz', 'prxz' ],\n w: [ '0145hjnp', '028b' ],\n };\n\n const lastCh = geohash.slice(-1); // last character of hash\n let parent = geohash.slice(0, -1); // hash without last character\n\n const type = geohash.length % 2;\n\n // check for edge-cases which don't share common prefix\n if (border[direction][type].indexOf(lastCh) != -1 && parent != '') {\n parent = Geohash.adjacent(parent, direction);\n }\n\n // append letter for direction to parent\n return parent + base32.charAt(neighbour[direction][type].indexOf(lastCh));\n }\n\n\n /**\n * Returns all 8 adjacent cells to specified geohash.\n *\n * @param {string} geohash - Geohash neighbours are required of.\n * @returns {{n,ne,e,se,s,sw,w,nw: string}}\n * @throws Invalid geohash.\n */\n static neighbours(geohash) {\n return {\n 'n': Geohash.adjacent(geohash, 'n'),\n 'ne': Geohash.adjacent(Geohash.adjacent(geohash, 'n'), 'e'),\n 'e': Geohash.adjacent(geohash, 'e'),\n 'se': Geohash.adjacent(Geohash.adjacent(geohash, 's'), 'e'),\n 's': Geohash.adjacent(geohash, 's'),\n 'sw': Geohash.adjacent(Geohash.adjacent(geohash, 's'), 'w'),\n 'w': Geohash.adjacent(geohash, 'w'),\n 'nw': Geohash.adjacent(Geohash.adjacent(geohash, 'n'), 'w'),\n };\n }\n\n}\n\n/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\nexport default Geohash;\n","import { PropsWithChildren, useEffect, useMemo } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nexport function createOverlay(\n container: HTMLElement,\n pane: keyof google.maps.MapPanes,\n position: google.maps.LatLng | google.maps.LatLngLiteral\n) {\n class Overlay extends google.maps.OverlayView {\n container: HTMLElement;\n pane: keyof google.maps.MapPanes;\n position: google.maps.LatLng | google.maps.LatLngLiteral;\n\n constructor(\n container: HTMLElement,\n pane: keyof google.maps.MapPanes,\n position: google.maps.LatLng | google.maps.LatLngLiteral\n ) {\n super();\n this.container = container;\n this.pane = pane;\n this.position = position;\n }\n\n onAdd(): void {\n const pane = this.getPanes()?.[this.pane];\n pane?.appendChild(this.container);\n }\n\n draw(): void {\n const projection = this.getProjection();\n const point = projection.fromLatLngToDivPixel(this.position);\n\n if (point === null) {\n return;\n }\n\n this.container.style.transform = `translate(${point.x}px, ${point.y}px)`;\n }\n\n onRemove(): void {\n if (this.container.parentNode !== null) {\n this.container.parentNode.removeChild(this.container);\n }\n }\n }\n return new Overlay(container, pane, position);\n}\n\ntype OverlayProps = PropsWithChildren<{\n position: {\n lat: number;\n lon: number;\n };\n pane?: keyof google.maps.MapPanes;\n map: google.maps.Map;\n zIndex?: number;\n}>;\n\nexport default function OverlayView({\n position,\n pane = \"floatPane\",\n map,\n zIndex,\n children,\n}: OverlayProps) {\n const container = useMemo(() => {\n const div = document.createElement(\"div\");\n div.style.position = \"absolute\";\n return div;\n }, []);\n\n const overlay = useMemo(() => {\n return createOverlay(container, pane, {\n lat: position.lat,\n lng: position.lon,\n });\n }, [container, pane, position]);\n\n useEffect(() => {\n overlay?.setMap(map);\n return () => {\n overlay?.setMap(null);\n };\n }, [map, overlay]);\n\n useEffect(() => {\n container.style.zIndex = `${zIndex}`;\n }, [zIndex, container]);\n\n return createPortal(children, container);\n}\n\n","export function getColorForStatus(status) {\n switch (status) {\n case \"AVAILABLE\":\n return \"#33AC19\";\n case \"CHARGING\":\n return \"#005CEE\";\n default:\n return \"#EB001B\";\n }\n}\n","import React, { useCallback, useMemo } from \"react\";\nimport { GeohashItem } from \"../../types\";\nimport OverlayView from \"../OverlayView/OverlayView\";\nimport { getColorForStatus } from \"../../utils/location\";\nimport styles from \"./CustomMarker.module.css\";\n\nconst formatter = new Intl.NumberFormat(undefined, {\n maximumSignificantDigits: 3,\n});\n\nconst formatNumber = (num: number) => {\n return formatter.format(num);\n};\n\ninterface Props {\n data: GeohashItem;\n map?: google.maps.Map;\n onClick: (payload: GeohashItem) => void;\n highlight?: boolean;\n}\n\nconst CustomMarker: React.FC<Props> = ({ data, map, onClick, highlight }) => {\n const handleClick = useCallback(() => {\n onClick(data);\n }, [onClick, data]);\n\n const styleColor = useMemo(() => {\n if (data.statuses.find((status) => status.name === \"AVAILABLE\")) {\n return { background: getColorForStatus(\"AVAILABLE\") };\n }\n if (data.statuses.find((status) => status.name === \"CHARGING\")) {\n return { background: getColorForStatus(\"CHARGING\") };\n }\n return { background: getColorForStatus(\"UNAVAILABLE\") };\n }, [data]);\n\n return (\n <OverlayView position={data.centroid} map={map} zIndex={highlight ? 99 : 0}>\n <button\n className={styles.container}\n onClick={handleClick}\n style={styleColor}\n // seems to be useful for ios safari\n onTouchEndCapture={handleClick}\n >\n {data.count > 1 ? formatNumber(data.count) : \"\"}\n </button>\n </OverlayView>\n );\n};\n\nexport default CustomMarker;\n","import { useCallback, useEffect, useState } from \"react\";\nimport Geohash from \"latlon-geohash\";\nimport CustomMarker from \"../CustomMarker/CustomMarker\";\nimport { GeohashItem } from \"../../types\";\nimport { useMapContext } from \"../../contexts/Map\";\n\nconst geoHashZoom = [\n 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 6, 6, 6, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9,\n];\n\nfunction zoomToHashChars(zoom) {\n return geoHashZoom[zoom];\n}\n\nfunction getNormalizedBounds(bounds, zoomLevel) {\n const mapSWPoint = bounds.getSouthWest().toJSON();\n const mapNEPoint = bounds.getNorthEast().toJSON();\n\n const SWGeohash = Geohash.encode(mapSWPoint.lat, mapSWPoint.lng, zoomLevel);\n\n const geohashSWBounds = Geohash.bounds(SWGeohash);\n\n const latStep = Math.abs(geohashSWBounds.sw.lat - geohashSWBounds.ne.lat);\n const lngStep = Math.abs(geohashSWBounds.sw.lon - geohashSWBounds.ne.lon);\n\n let neLat = geohashSWBounds.sw.lat;\n while (neLat <= mapNEPoint.lat) {\n neLat = neLat + latStep;\n }\n\n let neLng = geohashSWBounds.sw.lon;\n while (neLng <= mapNEPoint.lng) {\n neLng = neLng + lngStep;\n }\n\n return {\n nwLat: neLat,\n nwLng: geohashSWBounds.sw.lon,\n seLat: geohashSWBounds.sw.lat,\n seLng: neLng,\n };\n}\n\nfunction isSameBounds(bounds1, bounds2) {\n return (\n bounds1.nwLat === bounds2.nwLat &&\n bounds1.nwLng === bounds2.nwLng &&\n bounds1.seLat === bounds2.seLat &&\n bounds1.seLng === bounds2.seLng\n );\n}\n\nexport default function MapMarkers({\n map,\n filters,\n fetchGeohashes,\n onMarkerClicked,\n}) {\n const { setIsSearching } = useMapContext();\n const [data, setData] = useState<GeohashItem[]>([]);\n\n const [mapConfig, setMapConfig] = useState({\n zoom: zoomToHashChars(map.getZoom()),\n normalizedBounds: getNormalizedBounds(\n map.getBounds(),\n zoomToHashChars(map.getZoom()),\n ),\n });\n\n useEffect(() => {\n let currentZoomLevel = mapConfig.zoom;\n let currentBounds = undefined;\n\n map.addListener(\"idle\", () => {\n const newZoomLevel = zoomToHashChars(map.getZoom());\n\n const newMapConfig = {\n ...mapConfig,\n zoom: newZoomLevel,\n };\n const bounds = getNormalizedBounds(map.getBounds(), currentZoomLevel);\n\n if (currentBounds && isSameBounds(currentBounds, bounds)) {\n return;\n }\n currentBounds = bounds;\n setMapConfig({\n ...newMapConfig,\n normalizedBounds: bounds,\n });\n });\n }, []);\n\n // appends the data to the existing data\n // make sure to not duplicate data\n // keeping the old object that are still availabe in the new data to prevert re-rendering\n function appendData(newData) {\n const oldData = data.filter((c) => {\n return newData.find((n) => n.key === c.key);\n });\n\n setData([\n ...oldData,\n ...newData.filter((c) => {\n return !oldData.find((o) => o.key === c.key);\n }),\n ]);\n }\n\n useEffect(() => {\n if (!mapConfig.normalizedBounds) return;\n let ignore = false;\n\n setIsSearching(true);\n fetchGeohashes({\n precision: mapConfig.zoom,\n bbox: mapConfig.normalizedBounds,\n ...filters,\n })\n .then(({ data }) => {\n if (ignore) return;\n appendData(data);\n setIsSearching(false);\n })\n .catch((e) => {\n // deal with error\n setIsSearching(false);\n });\n\n return () => {\n ignore = true;\n setIsSearching(false);\n };\n }, [mapConfig, filters]);\n\n const _onMarkerClicked = useCallback(\n (data: GeohashItem) => {\n const ids = data.ids;\n if (ids.length == 100) {\n map.setZoom(map.getZoom() + 2);\n }\n map.panTo({ lat: data.centroid.lat, lng: data.centroid.lon });\n if (ids.length !== 100) {\n onMarkerClicked(ids);\n }\n },\n [map, onMarkerClicked],\n );\n\n return (\n <>\n {data.filter(Boolean).map((item: GeohashItem, i) => (\n <CustomMarker\n map={map}\n key={item.key}\n data={item}\n onClick={_onMarkerClicked}\n />\n ))}\n </>\n );\n}\n","import React, { useEffect, useRef, useState } from \"react\";\n\nimport { useMapContext } from \"../../contexts/Map\";\n\nimport styles from \"./Map.module.css\";\nimport { getLoader } from \"../../utils/loader\";\n\nimport MapMarkers from \"../MapMarkers/MapMarkers\";\n\n/*\nconst gridParts = [];\n\nfunction eraseGrid() {\n for (var i = 0; i < gridParts.length; i++) {\n gridParts[i].setMap(null);\n }\n gridParts.length = 0;\n}\n\nconst defaults = {\n zoom: 3,\n maxDisplay: 2 * 10240,\n geohashPrecision: 12,\n};\n\n\nfunction drawGrid(map) {\n const level = zoomToHashChars(map.getZoom());\n console.log(level, map.getZoom());\n\n const bounds = map.getBounds();\n const ne = bounds.getNorthEast();\n const sw = bounds.getSouthWest();\n const neHash = Geohash.encode(ne.lat(), ne.lng(), level);\n const nwHash = Geohash.encode(ne.lat(), sw.lng(), level);\n const swHash = Geohash.encode(sw.lat(), sw.lng(), level);\n const seHash = Geohash.encode(sw.lat(), ne.lng(), level);\n\n let current = neHash;\n let eastBound = neHash;\n let westBound = nwHash;\n let maxHash = defaults.maxDisplay;\n\n eraseGrid();\n while (maxHash-- > 0) {\n drawBox(map, current);\n do {\n current = Geohash.adjacent(current, \"w\");\n drawBox(map, current);\n } while (maxHash-- > 0 && current != westBound);\n if (current == swHash) {\n return;\n }\n westBound = Geohash.adjacent(current, \"s\");\n current = eastBound = Geohash.adjacent(eastBound, \"s\");\n }\n alert(\"defaults.maxDisplay limit reached\");\n eraseGrid();\n}\n\n\nfunction drawBox(map, hash) {\n const b = Geohash.bounds(hash);\n const gb = new google.maps.LatLngBounds(\n new google.maps.LatLng(b.sw.lat, b.sw.lon),\n new google.maps.LatLng(b.ne.lat, b.ne.lon)\n );\n const rect = new google.maps.Rectangle({\n map: map,\n bounds: gb,\n strokeColor: \"#3333AA\",\n strokeOpacity: 0.8,\n strokeWeight: 1,\n fillColor: \"#222222\",\n fillOpacity: 0.1,\n });\n const marker = new google.maps.Marker({\n map: map,\n position: gb.getCenter(),\n icon: \" \",\n });\n gridParts.push(rect);\n gridParts.push(marker);\n}\n*/\n\nexport default function MapWrapper() {\n const {\n place,\n options,\n fetchGeohashes,\n setLocationsIds,\n language,\n filters,\n position,\n } = useMapContext();\n\n const apiKey = options.googleApiKey;\n const [map, setMap] = useState<google.maps.Map>();\n\n const mapContainerRef = useRef(null);\n const loader = getLoader(apiKey, language);\n\n useEffect(() => {\n if (map && place?.geometry?.viewport) {\n map.fitBounds(place.geometry.viewport);\n }\n if (map && place?.geometry?.location) {\n /*\n const icon = {\n url: place.icon as string,\n size: new google.maps.Size(71, 71),\n origin: new google.maps.Point(0, 0),\n anchor: new google.maps.Point(17, 34),\n scaledSize: new google.maps.Size(25, 25),\n };\n const marker = new google.maps.Marker({\n map,\n icon,\n title: place.name,\n position: place.geometry.location,\n });\n setMarker(marker);\n */\n map.setCenter(place.geometry.location);\n }\n }, [map, place]);\n\n useEffect(() => {\n loader.importLibrary(\"maps\").then(({ Map }) => {\n const map = new Map(mapContainerRef.current, {\n mapId: \"ced50d4165f3a695\",\n center: position as any, // Initial map center coordinates\n zoom: 12, // Initial zoom level,\n zoomControl: true,\n mapTypeControl: false,\n scaleControl: false,\n streetViewControl: false,\n rotateControl: false,\n fullscreenControl: false,\n controlSize: 32,\n clickableIcons: false,\n gestureHandling: options.gestureHandling || \"auto\",\n });\n map.addListener(\"idle\", () => {\n setMap(map);\n });\n return () => {\n console.log(\"unmounting\");\n };\n });\n }, [apiKey]);\n\n return (\n <div className={styles.container} ref={mapContainerRef}>\n {map && map.getBounds() && (\n <MapMarkers\n filters={filters}\n onMarkerClicked={(ids) => {\n setLocationsIds([...ids]);\n }}\n map={map}\n fetchGeohashes={fetchGeohashes}\n />\n )}\n </div>\n );\n}\n\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends 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 _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","export default {\n disabled: false\n};","import PropTypes from 'prop-types';\nexport var timeoutsShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n enter: PropTypes.number,\n exit: PropTypes.number,\n appear: PropTypes.number\n}).isRequired]) : null;\nexport var classNamesShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string,\n active: PropTypes.string\n}), PropTypes.shape({\n enter: PropTypes.string,\n enterDone: PropTypes.string,\n enterActive: PropTypes.string,\n exit: PropTypes.string,\n exitDone: PropTypes.string,\n exitActive: PropTypes.string\n})]) : null;","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `<CSSTransition>` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\nimport { forceReflow } from './utils/reflow';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <CSSTransition in={inProp} timeout={200} classNames=\"my-node\">\n * <div>\n * {\"I'll receive my-node-* classes\"}\n * </div>\n * </CSSTransition>\n * <button type=\"button\" onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\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 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n if (node) forceReflow(node);\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\n\nvar _leaveRenders, _enterRenders;\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { ENTERED, ENTERING, EXITING } from './Transition';\nimport TransitionGroupContext from './TransitionGroupContext';\n\nfunction areChildrenDifferent(oldChildren, newChildren) {\n if (oldChildren === newChildren) return false;\n\n if (React.isValidElement(oldChildren) && React.isValidElement(newChildren) && oldChildren.key != null && oldChildren.key === newChildren.key) {\n return false;\n }\n\n return true;\n}\n/**\n * Enum of modes for SwitchTransition component\n * @enum { string }\n */\n\n\nexport var modes = {\n out: 'out-in',\n in: 'in-out'\n};\n\nvar callHook = function callHook(element, name, cb) {\n return function () {\n var _element$props;\n\n element.props[name] && (_element$props = element.props)[name].apply(_element$props, arguments);\n cb();\n };\n};\n\nvar leaveRenders = (_leaveRenders = {}, _leaveRenders[modes.out] = function (_ref) {\n var current = _ref.current,\n changeState = _ref.changeState;\n return React.cloneElement(current, {\n in: false,\n onExited: callHook(current, 'onExited', function () {\n changeState(ENTERING, null);\n })\n });\n}, _leaveRenders[modes.in] = function (_ref2) {\n var current = _ref2.current,\n changeState = _ref2.changeState,\n children = _ref2.children;\n return [current, React.cloneElement(children, {\n in: true,\n onEntered: callHook(children, 'onEntered', function () {\n changeState(ENTERING);\n })\n })];\n}, _leaveRenders);\nvar enterRenders = (_enterRenders = {}, _enterRenders[modes.out] = function (_ref3) {\n var children = _ref3.children,\n changeState = _ref3.changeState;\n return React.cloneElement(children, {\n in: true,\n onEntered: callHook(children, 'onEntered', function () {\n changeState(ENTERED, React.cloneElement(children, {\n in: true\n }));\n })\n });\n}, _enterRenders[modes.in] = function (_ref4) {\n var current = _ref4.current,\n children = _ref4.children,\n changeState = _ref4.changeState;\n return [React.cloneElement(current, {\n in: false,\n onExited: callHook(current, 'onExited', function () {\n changeState(ENTERED, React.cloneElement(children, {\n in: true\n }));\n })\n }), React.cloneElement(children, {\n in: true\n })];\n}, _enterRenders);\n/**\n * A transition component inspired by the [vue transition modes](https://vuejs.org/v2/guide/transitions.html#Transition-Modes).\n * You can use it when you want to control the render between state transitions.\n * Based on the selected mode and the child's key which is the `Transition` or `CSSTransition` component, the `SwitchTransition` makes a consistent transition between them.\n *\n * If the `out-in` mode is selected, the `SwitchTransition` waits until the old child leaves and then inserts a new child.\n * If the `in-out` mode is selected, the `SwitchTransition` inserts a new child first, waits for the new child to enter and then removes the old child.\n *\n * **Note**: If you want the animation to happen simultaneously\n * (that is, to have the old child removed and a new child inserted **at the same time**),\n * you should use\n * [`TransitionGroup`](https://reactcommunity.org/react-transition-group/transition-group)\n * instead.\n *\n * ```jsx\n * function App() {\n * const [state, setState] = useState(false);\n * return (\n * <SwitchTransition>\n * <CSSTransition\n * key={state ? \"Goodbye, world!\" : \"Hello, world!\"}\n * addEndListener={(node, done) => node.addEventListener(\"transitionend\", done, false)}\n * classNames='fade'\n * >\n * <button onClick={() => setState(state => !state)}>\n * {state ? \"Goodbye, world!\" : \"Hello, world!\"}\n * </button>\n * </CSSTransition>\n * </SwitchTransition>\n * );\n * }\n * ```\n *\n * ```css\n * .fade-enter{\n * opacity: 0;\n * }\n * .fade-exit{\n * opacity: 1;\n * }\n * .fade-enter-active{\n * opacity: 1;\n * }\n * .fade-exit-active{\n * opacity: 0;\n * }\n * .fade-enter-active,\n * .fade-exit-active{\n * transition: opacity 500ms;\n * }\n * ```\n */\n\nvar SwitchTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(SwitchTransition, _React$Component);\n\n function SwitchTransition() {\n var _this;\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 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.state = {\n status: ENTERED,\n current: null\n };\n _this.appeared = false;\n\n _this.changeState = function (status, current) {\n if (current === void 0) {\n current = _this.state.current;\n }\n\n _this.setState({\n status: status,\n current: current\n });\n };\n\n return _this;\n }\n\n var _proto = SwitchTransition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n };\n\n SwitchTransition.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n if (props.children == null) {\n return {\n current: null\n };\n }\n\n if (state.status === ENTERING && props.mode === modes.in) {\n return {\n status: ENTERING\n };\n }\n\n if (state.current && areChildrenDifferent(state.current, props.children)) {\n return {\n status: EXITING\n };\n }\n\n return {\n current: React.cloneElement(props.children, {\n in: true\n })\n };\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n mode = _this$props.mode,\n _this$state = this.state,\n status = _this$state.status,\n current = _this$state.current;\n var data = {\n children: children,\n current: current,\n changeState: this.changeState,\n status: status\n };\n var component;\n\n switch (status) {\n case ENTERING:\n component = enterRenders[mode](data);\n break;\n\n case EXITING:\n component = leaveRenders[mode](data);\n break;\n\n case ENTERED:\n component = current;\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: {\n isMounting: !this.appeared\n }\n }, component);\n };\n\n return SwitchTransition;\n}(React.Component);\n\nSwitchTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * Transition modes.\n * `out-in`: Current element transitions out first, then when complete, the new element transitions in.\n * `in-out`: New element transitions in first, then when complete, the current element transitions out.\n *\n * @type {'out-in'|'in-out'}\n */\n mode: PropTypes.oneOf([modes.in, modes.out]),\n\n /**\n * Any `Transition` or `CSSTransition` component.\n */\n children: PropTypes.oneOfType([PropTypes.element.isRequired])\n} : {};\nSwitchTransition.defaultProps = {\n mode: modes.out\n};\nexport default SwitchTransition;","import React from \"react\";\n\nimport styles from \"./stack.module.css\";\n\nexport default function StackView({ name, children }) {\n return <div className={styles.stack}>{children}</div>;\n}\n","import React, {\n createRef,\n useEffect,\n useState,\n createContext,\n useMemo,\n} from \"react\";\nimport { SwitchTransition, CSSTransition } from \"react-transition-group\";\nimport View from \"./View\";\n\nimport styles from \"./stack.module.css\";\n\ntype StackProps = {\n name?: string;\n currentView: string;\n onViewChange: (view: string, args: any) => void;\n children: React.ReactNode;\n};\n\ntype MapContextType = {\n setView: (view: string, args?: any) => void;\n current: {\n name: string;\n args?: any;\n };\n};\n\nexport const StackContext = createContext<MapContextType>({\n setView: () => {},\n current: {\n name: \"none\",\n },\n});\n\nexport function useStackContext() {\n return React.useContext(StackContext);\n}\n\nexport default function Stack({\n name,\n currentView,\n onViewChange,\n children,\n}: StackProps) {\n const elements = {\n none: {\n name: \"none\",\n ref: createRef(),\n view: null,\n },\n };\n\n React.Children.forEach(children, (element) => {\n if (!React.isValidElement(element)) return;\n const { name } = element.props as any;\n if (!name) {\n throw new Error(\"name is required for Stack.View\");\n }\n elements[name] = {\n name: name,\n ref: createRef(),\n view: element,\n };\n });\n\n const [currentRef, setCurrentRef] = useState(elements[currentView].ref);\n\n useEffect(() => {\n setCurrentRef(elements[currentView].ref);\n }, [currentView]);\n\n const { view: View } = elements[currentView];\n\n const [args, setArgs] = useState<any>({});\n\n const contextValue = useMemo(() => {\n return {\n current: {\n name: currentView,\n args: args,\n },\n setView: (view, opt) => {\n setArgs(opt);\n onViewChange(view, opt);\n },\n };\n }, [currentView, onViewChange, args, setArgs]);\n\n return (\n <StackContext.Provider value={contextValue}>\n <SwitchTransition mode=\"out-in\">\n <CSSTransition\n classNames={{\n enter: styles.slideEnter,\n enterActive: styles.slideEnterActive,\n enterDone: styles.slideEnterDone,\n exit: styles.slideExit,\n exitActive: styles.slideExitActive,\n exitDone: styles.slideExitDone,\n }}\n mountOnEnter\n unmountOnExit\n timeout={300}\n key={currentView}\n nodeRef={currentRef}\n addEndListener={(done) => {\n currentRef.current.addEventListener(\"transitionend\", done, false);\n }}\n >\n <div className={styles.stack} ref={currentRef}>\n {View}\n </div>\n </CSSTransition>\n </SwitchTransition>\n </StackContext.Provider>\n );\n}\n\nStack.View = View;\n","import React, { useState, useRef, useEffect, useContext } from \"react\";\nimport { getLoader } from \"../../utils/loader\";\nimport { useMapContext } from \"../../contexts/Map\";\n\nimport styles from \"./SearchInput.module.css\";\n\nexport default function SearchInput({ onFocus }) {\n const { options, setPlace, t, language } = useMapContext();\n const apiKey = options.googleApiKey;\n\n const inputRef = useRef(null);\n\n const loader = getLoader(apiKey, language);\n\n useEffect(() => {\n if (!inputRef.current) return;\n loader.importLibrary(\"places\").then((places) => {\n const autocomplete = new places.Autocomplete(inputRef.current, {\n fields: [\"geometry\"],\n });\n autocomplete.addListener(\"place_changed\", () => {\n const place = autocomplete.getPlace();\n setPlace(place);\n });\n });\n }, [inputRef]);\n\n // Doc for styling the autocomplete\n // https://developers.google.com/maps/documentation/javascript/place-autocomplete#style-autocomplete\n return (\n <div className={styles.container}>\n <input\n onFocus={onFocus}\n ref={inputRef}\n className={styles.searchInput}\n type=\"text\"\n placeholder={t(\"search.placeholder\")}\n />\n </div>\n );\n}\n\n","import React, { useEffect } from \"react\";\n\nimport styles from \"./Checkbox.module.css\";\n\ntype CheckboxToggleProps = {\n id?: string;\n checked: boolean;\n name?: string;\n onChange: (value: boolean) => void;\n type?: \"checkbox\" | \"radio\";\n};\n\nexport default function CheckboxToggle({\n id,\n name,\n checked,\n onChange,\n type = \"checkbox\",\n}: CheckboxToggleProps) {\n const [isChecked, setIsChecked] = React.useState(checked || false);\n\n const onChangeCallback = React.useCallback(\n (e) => {\n setIsChecked(e.target.checked);\n onChange(e.target.checked);\n },\n [onChange],\n );\n\n useEffect(() => {\n setIsChecked(checked);\n }, [checked]);\n\n return (\n <div className={styles.container}>\n <input\n name={name}\n id={id}\n type={type}\n value={isChecked as any}\n checked={isChecked as any}\n onChange={onChangeCallback}\n />\n <span className={styles.box}>\n <svg\n className=\"checkmark\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n width=\"12\"\n height=\"12\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </span>\n </div>\n );\n}\n","import React, { CSSProperties } from \"react\";\n\nimport styles from \"./Range.module.css\";\n\nexport default function Range({ ticks, value, onChange }) {\n const inputRef = React.useRef(null);\n\n const convertValue = ticks.findIndex((tick) => tick.value === value);\n\n const bgSize = (convertValue / (ticks.length - 1)) * 100;\n\n return (\n <div className={styles.container}>\n <input\n value={convertValue}\n onChange={(e) => {\n onChange(ticks[e.target.value].value);\n }}\n ref={inputRef}\n className={styles.input}\n type=\"range\"\n list=\"tickmarks\"\n step=\"1\"\n min=\"0\"\n max=\"8\"\n style={{ \"--roadmap-range-bgize\": `${bgSize}%` } as CSSProperties}\n />\n\n <div className={styles.ticksContainer}>\n {ticks.map((tick, i) => {\n return (\n <div\n onClick={(e) => {\n onChange(ticks[i].value);\n }}\n key={tick.label}\n className={styles.tick}\n >\n {tick.label}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_SERVER_CONTEXT_TYPE:\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\nfunction isSuspenseList(object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.SuspenseList = SuspenseList;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isSuspenseList = isSuspenseList;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","const t=t=>\"object\"==typeof t&&null!=t&&1===t.nodeType,e=(t,e)=>(!e||\"hidden\"!==t)&&(\"visible\"!==t&&\"clip\"!==t),n=(t,n)=>{if(t.clientHeight<t.scrollHeight||t.clientWidth<t.scrollWidth){const o=getComputedStyle(t,null);return e(o.overflowY,n)||e(o.overflowX,n)||(t=>{const e=(t=>{if(!t.ownerDocument||!t.ownerDocument.defaultView)return null;try{return t.ownerDocument.defaultView.frameElement}catch(t){return null}})(t);return!!e&&(e.clientHeight<t.scrollHeight||e.clientWidth<t.scrollWidth)})(t)}return!1},o=(t,e,n,o,l,r,i,s)=>r<t&&i>e||r>t&&i<e?0:r<=t&&s<=n||i>=e&&s>=n?r-t-o:i>e&&s<n||r<t&&s>n?i-e+l:0,l=t=>{const e=t.parentElement;return null==e?t.getRootNode().host||null:e},r=(e,r)=>{var i,s,d,h;if(\"undefined\"==typeof document)return[];const{scrollMode:c,block:f,inline:u,boundary:a,skipOverflowHiddenElements:g}=r,p=\"function\"==typeof a?a:t=>t!==a;if(!t(e))throw new TypeError(\"Invalid target\");const m=document.scrollingElement||document.documentElement,w=[];let W=e;for(;t(W)&&p(W);){if(W=l(W),W===m){w.push(W);break}null!=W&&W===document.body&&n(W)&&!n(document.documentElement)||null!=W&&n(W,g)&&w.push(W)}const b=null!=(s=null==(i=window.visualViewport)?void 0:i.width)?s:innerWidth,H=null!=(h=null==(d=window.visualViewport)?void 0:d.height)?h:innerHeight,{scrollX:y,scrollY:M}=window,{height:v,width:E,top:x,right:C,bottom:I,left:R}=e.getBoundingClientRect(),{top:T,right:B,bottom:F,left:V}=(t=>{const e=window.getComputedStyle(t);return{top:parseFloat(e.scrollMarginTop)||0,right:parseFloat(e.scrollMarginRight)||0,bottom:parseFloat(e.scrollMarginBottom)||0,left:parseFloat(e.scrollMarginLeft)||0}})(e);let k=\"start\"===f||\"nearest\"===f?x-T:\"end\"===f?I+F:x+v/2-T+F,D=\"center\"===u?R+E/2-V+B:\"end\"===u?C+B:R-V;const L=[];for(let t=0;t<w.length;t++){const e=w[t],{height:l,width:r,top:i,right:s,bottom:d,left:h}=e.getBoundingClientRect();if(\"if-needed\"===c&&x>=0&&R>=0&&I<=H&&C<=b&&(e===m&&!n(e)||x>=i&&I<=d&&R>=h&&C<=s))return L;const a=getComputedStyle(e),g=parseInt(a.borderLeftWidth,10),p=parseInt(a.borderTopWidth,10),W=parseInt(a.borderRightWidth,10),T=parseInt(a.borderBottomWidth,10);let B=0,F=0;const V=\"offsetWidth\"in e?e.offsetWidth-e.clientWidth-g-W:0,S=\"offsetHeight\"in e?e.offsetHeight-e.clientHeight-p-T:0,X=\"offsetWidth\"in e?0===e.offsetWidth?0:r/e.offsetWidth:0,Y=\"offsetHeight\"in e?0===e.offsetHeight?0:l/e.offsetHeight:0;if(m===e)B=\"start\"===f?k:\"end\"===f?k-H:\"nearest\"===f?o(M,M+H,H,p,T,M+k,M+k+v,v):k-H/2,F=\"start\"===u?D:\"center\"===u?D-b/2:\"end\"===u?D-b:o(y,y+b,b,g,W,y+D,y+D+E,E),B=Math.max(0,B+M),F=Math.max(0,F+y);else{B=\"start\"===f?k-i-p:\"end\"===f?k-d+T+S:\"nearest\"===f?o(i,d,l,p,T+S,k,k+v,v):k-(i+l/2)+S/2,F=\"start\"===u?D-h-g:\"center\"===u?D-(h+r/2)+V/2:\"end\"===u?D-s+W+V:o(h,s,r,g,W+V,D,D+E,E);const{scrollLeft:t,scrollTop:n}=e;B=0===Y?0:Math.max(0,Math.min(n+B/Y,e.scrollHeight-l/Y+S)),F=0===X?0:Math.max(0,Math.min(t+F/X,e.scrollWidth-r/X+V)),k+=n-B,D+=t-F}L.push({el:e,top:B,left:F})}return L};export{r as compute};//# sourceMappingURL=index.js.map\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport React, { cloneElement, Component, useRef, useEffect, useLayoutEffect, useCallback, useReducer, useMemo } from 'react';\nimport { isForwardRef } from 'react-is';\nimport { compute } from 'compute-scroll-into-view';\nimport { __assign } from 'tslib';\n\nvar idCounter = 0;\n\n/**\n * Accepts a parameter and returns it if it's a function\n * or a noop function if it's not. This allows us to\n * accept a callback, but not worry about it if it's not\n * passed.\n * @param {Function} cb the callback\n * @return {Function} a function\n */\nfunction cbToCb(cb) {\n return typeof cb === 'function' ? cb : noop;\n}\nfunction noop() {}\n\n/**\n * Scroll node into view if necessary\n * @param {HTMLElement} node the element that should scroll into view\n * @param {HTMLElement} menuNode the menu element of the component\n */\nfunction scrollIntoView(node, menuNode) {\n if (!node) {\n return;\n }\n var actions = compute(node, {\n boundary: menuNode,\n block: 'nearest',\n scrollMode: 'if-needed'\n });\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n el.scrollTop = top;\n el.scrollLeft = left;\n });\n}\n\n/**\n * @param {HTMLElement} parent the parent node\n * @param {HTMLElement} child the child node\n * @param {Window} environment The window context where downshift renders.\n * @return {Boolean} whether the parent is the child or the child is in the parent\n */\nfunction isOrContainsNode(parent, child, environment) {\n var result = parent === child || child instanceof environment.Node && parent.contains && parent.contains(child);\n return result;\n}\n\n/**\n * Simple debounce implementation. Will call the given\n * function once after the time given has passed since\n * it was last called.\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n * @return {Function} the debounced function\n */\nfunction debounce(fn, time) {\n var timeoutId;\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n function wrapper() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n cancel();\n timeoutId = setTimeout(function () {\n timeoutId = null;\n fn.apply(void 0, args);\n }, time);\n }\n wrapper.cancel = cancel;\n return wrapper;\n}\n\n/**\n * This is intended to be used to compose event handlers.\n * They are executed in order until one of them sets\n * `event.preventDownshiftDefault = true`.\n * @param {...Function} fns the event handler functions\n * @return {Function} the event handler to add to an element\n */\nfunction callAllEventHandlers() {\n for (var _len2 = arguments.length, fns = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n fns[_key2] = arguments[_key2];\n }\n return function (event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return fns.some(function (fn) {\n if (fn) {\n fn.apply(void 0, [event].concat(args));\n }\n return event.preventDownshiftDefault || event.hasOwnProperty('nativeEvent') && event.nativeEvent.preventDownshiftDefault;\n });\n };\n}\nfunction handleRefs() {\n for (var _len4 = arguments.length, refs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n refs[_key4] = arguments[_key4];\n }\n return function (node) {\n refs.forEach(function (ref) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n });\n };\n}\n\n/**\n * This generates a unique ID for an instance of Downshift\n * @return {String} the unique ID\n */\nfunction generateId() {\n return String(idCounter++);\n}\n\n/**\n * Resets idCounter to 0. Used for SSR.\n */\nfunction resetIdCounter() {\n // istanbul ignore next\n if ('useId' in React) {\n console.warn(\"It is not necessary to call resetIdCounter when using React 18+\");\n return;\n }\n idCounter = 0;\n}\n\n/**\n * Default implementation for status message. Only added when menu is open.\n * Will specify if there are results in the list, and if so, how many,\n * and what keys are relevant.\n *\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\nfunction getA11yStatusMessage(_ref2) {\n var isOpen = _ref2.isOpen,\n resultCount = _ref2.resultCount,\n previousResultCount = _ref2.previousResultCount;\n if (!isOpen) {\n return '';\n }\n if (!resultCount) {\n return 'No results are available.';\n }\n if (resultCount !== previousResultCount) {\n return resultCount + \" result\" + (resultCount === 1 ? ' is' : 's are') + \" available, use up and down arrow keys to navigate. Press Enter key to select.\";\n }\n return '';\n}\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array\n * otherwise returns the argument\n * @param {*} arg the maybe-array\n * @param {*} defaultValue the value if arg is falsey not defined\n * @return {*} the arg or it's first item\n */\nfunction unwrapArray(arg, defaultValue) {\n arg = Array.isArray(arg) ? /* istanbul ignore next (preact) */arg[0] : arg;\n if (!arg && defaultValue) {\n return defaultValue;\n } else {\n return arg;\n }\n}\n\n/**\n * @param {Object} element (P)react element\n * @return {Boolean} whether it's a DOM element\n */\nfunction isDOMElement(element) {\n\n // then we assume this is react\n return typeof element.type === 'string';\n}\n\n/**\n * @param {Object} element (P)react element\n * @return {Object} the props\n */\nfunction getElementProps(element) {\n return element.props;\n}\n\n/**\n * Throws a helpful error message for required properties. Useful\n * to be used as a default in destructuring or object params.\n * @param {String} fnName the function name\n * @param {String} propName the prop name\n */\nfunction requiredProp(fnName, propName) {\n // eslint-disable-next-line no-console\n console.error(\"The property \\\"\" + propName + \"\\\" is required in \\\"\" + fnName + \"\\\"\");\n}\nvar stateKeys = ['highlightedIndex', 'inputValue', 'isOpen', 'selectedItem', 'type'];\n/**\n * @param {Object} state the state object\n * @return {Object} state that is relevant to downshift\n */\nfunction pickState(state) {\n if (state === void 0) {\n state = {};\n }\n var result = {};\n stateKeys.forEach(function (k) {\n if (state.hasOwnProperty(k)) {\n result[k] = state[k];\n }\n });\n return result;\n}\n\n/**\n * This will perform a shallow merge of the given state object\n * with the state coming from props\n * (for the controlled component scenario)\n * This is used in state updater functions so they're referencing\n * the right state regardless of where it comes from.\n *\n * @param {Object} state The state of the component/hook.\n * @param {Object} props The props that may contain controlled values.\n * @returns {Object} The merged controlled state.\n */\nfunction getState(state, props) {\n if (!state || !props) {\n return state;\n }\n return Object.keys(state).reduce(function (prevState, key) {\n prevState[key] = isControlledProp(props, key) ? props[key] : state[key];\n return prevState;\n }, {});\n}\n\n/**\n * This determines whether a prop is a \"controlled prop\" meaning it is\n * state which is controlled by the outside of this component rather\n * than within this component.\n *\n * @param {Object} props The props that may contain controlled values.\n * @param {String} key the key to check\n * @return {Boolean} whether it is a controlled controlled prop\n */\nfunction isControlledProp(props, key) {\n return props[key] !== undefined;\n}\n\n/**\n * Normalizes the 'key' property of a KeyboardEvent in IE/Edge\n * @param {Object} event a keyboardEvent object\n * @return {String} keyboard key\n */\nfunction normalizeArrowKey(event) {\n var key = event.key,\n keyCode = event.keyCode;\n /* istanbul ignore next (ie) */\n if (keyCode >= 37 && keyCode <= 40 && key.indexOf('Arrow') !== 0) {\n return \"Arrow\" + key;\n }\n return key;\n}\n\n/**\n * Simple check if the value passed is object literal\n * @param {*} obj any things\n * @return {Boolean} whether it's object literal\n */\nfunction isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n\n/**\n * Returns the next non-disabled highlightedIndex value.\n *\n * @param {number} start The current highlightedIndex.\n * @param {number} offset The offset from the current highlightedIndex to start searching.\n * @param {unknown[]} items The items array.\n * @param {(item: unknown, index: number) => boolean} isItemDisabled Function that tells if an item is disabled or not.\n * @param {boolean?} circular If the search reaches the end, if it can search again starting from the other end.\n * @returns {number} The next highlightedIndex.\n */\nfunction getHighlightedIndex(start, offset, items, isItemDisabled, circular) {\n if (circular === void 0) {\n circular = false;\n }\n var count = items.length;\n if (count === 0) {\n return -1;\n }\n var itemsLastIndex = count - 1;\n if (typeof start !== 'number' || start < 0 || start > itemsLastIndex) {\n start = offset > 0 ? -1 : itemsLastIndex + 1;\n }\n var current = start + offset;\n if (current < 0) {\n current = circular ? itemsLastIndex : 0;\n } else if (current > itemsLastIndex) {\n current = circular ? 0 : itemsLastIndex;\n }\n var highlightedIndex = getNonDisabledIndex(current, offset < 0, items, isItemDisabled, circular);\n if (highlightedIndex === -1) {\n return start >= count ? -1 : start;\n }\n return highlightedIndex;\n}\n\n/**\n * Returns the next non-disabled highlightedIndex value.\n *\n * @param {number} start The current highlightedIndex.\n * @param {boolean} backwards If true, it will search backwards from the start.\n * @param {unknown[]} items The items array.\n * @param {(item: unknown, index: number) => boolean} isItemDisabled Function that tells if an item is disabled or not.\n * @param {boolean} circular If the search reaches the end, if it can search again starting from the other end.\n * @returns {number} The next non-disabled index.\n */\nfunction getNonDisabledIndex(start, backwards, items, isItemDisabled, circular) {\n if (circular === void 0) {\n circular = false;\n }\n var count = items.length;\n if (backwards) {\n for (var index = start; index >= 0; index--) {\n if (!isItemDisabled(items[index], index)) {\n return index;\n }\n }\n } else {\n for (var _index = start; _index < count; _index++) {\n if (!isItemDisabled(items[_index], _index)) {\n return _index;\n }\n }\n }\n if (circular) {\n return getNonDisabledIndex(backwards ? count - 1 : 0, backwards, items, isItemDisabled);\n }\n return -1;\n}\n\n/**\n * Checks if event target is within the downshift elements.\n *\n * @param {EventTarget} target Target to check.\n * @param {HTMLElement[]} downshiftElements The elements that form downshift (list, toggle button etc).\n * @param {Window} environment The window context where downshift renders.\n * @param {boolean} checkActiveElement Whether to also check activeElement.\n *\n * @returns {boolean} Whether or not the target is within downshift elements.\n */\nfunction targetWithinDownshift(target, downshiftElements, environment, checkActiveElement) {\n if (checkActiveElement === void 0) {\n checkActiveElement = true;\n }\n return environment && downshiftElements.some(function (contextNode) {\n return contextNode && (isOrContainsNode(contextNode, target, environment) || checkActiveElement && isOrContainsNode(contextNode, environment.document.activeElement, environment));\n });\n}\n\n// eslint-disable-next-line import/no-mutable-exports\nvar validateControlledUnchanged = noop;\n/* istanbul ignore next */\nif (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged = function validateControlledUnchanged(state, prevProps, nextProps) {\n var warningDescription = \"This prop should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled Downshift element for the lifetime of the component. More info: https://github.com/downshift-js/downshift#control-props\";\n Object.keys(state).forEach(function (propKey) {\n if (prevProps[propKey] !== undefined && nextProps[propKey] === undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the controlled prop \\\"\" + propKey + \"\\\" to be uncontrolled. \" + warningDescription);\n } else if (prevProps[propKey] === undefined && nextProps[propKey] !== undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the uncontrolled prop \\\"\" + propKey + \"\\\" to be controlled. \" + warningDescription);\n }\n });\n };\n}\n\nvar cleanupStatus = debounce(function (documentProp) {\n getStatusDiv(documentProp).textContent = '';\n}, 500);\n\n/**\n * Get the status node or create it if it does not already exist.\n * @param {Object} documentProp document passed by the user.\n * @return {HTMLElement} the status node.\n */\nfunction getStatusDiv(documentProp) {\n var statusDiv = documentProp.getElementById('a11y-status-message');\n if (statusDiv) {\n return statusDiv;\n }\n statusDiv = documentProp.createElement('div');\n statusDiv.setAttribute('id', 'a11y-status-message');\n statusDiv.setAttribute('role', 'status');\n statusDiv.setAttribute('aria-live', 'polite');\n statusDiv.setAttribute('aria-relevant', 'additions text');\n Object.assign(statusDiv.style, {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n width: '1px'\n });\n documentProp.body.appendChild(statusDiv);\n return statusDiv;\n}\n\n/**\n * @param {String} status the status message\n * @param {Object} documentProp document passed by the user.\n */\nfunction setStatus(status, documentProp) {\n if (!status || !documentProp) {\n return;\n }\n var div = getStatusDiv(documentProp);\n div.textContent = status;\n cleanupStatus(documentProp);\n}\n\n/**\n * Removes the status element from the DOM\n * @param {Document} documentProp \n */\nfunction cleanupStatusDiv(documentProp) {\n var statusDiv = documentProp == null ? void 0 : documentProp.getElementById('a11y-status-message');\n if (statusDiv) {\n statusDiv.remove();\n }\n}\n\nvar unknown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_unknown__' : 0;\nvar mouseUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_mouseup__' : 1;\nvar itemMouseEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_item_mouseenter__' : 2;\nvar keyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_up__' : 3;\nvar keyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_down__' : 4;\nvar keyDownEscape = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_escape__' : 5;\nvar keyDownEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_enter__' : 6;\nvar keyDownHome = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_home__' : 7;\nvar keyDownEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_end__' : 8;\nvar clickItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_item__' : 9;\nvar blurInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_input__' : 10;\nvar changeInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_change_input__' : 11;\nvar keyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_space_button__' : 12;\nvar clickButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_button__' : 13;\nvar blurButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_button__' : 14;\nvar controlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_controlled_prop_updated_selected_item__' : 15;\nvar touchEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_touchend__' : 16;\n\nvar stateChangeTypes$3 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n blurButton: blurButton,\n blurInput: blurInput,\n changeInput: changeInput,\n clickButton: clickButton,\n clickItem: clickItem,\n controlledPropUpdatedSelectedItem: controlledPropUpdatedSelectedItem,\n itemMouseEnter: itemMouseEnter,\n keyDownArrowDown: keyDownArrowDown,\n keyDownArrowUp: keyDownArrowUp,\n keyDownEnd: keyDownEnd,\n keyDownEnter: keyDownEnter,\n keyDownEscape: keyDownEscape,\n keyDownHome: keyDownHome,\n keyDownSpaceButton: keyDownSpaceButton,\n mouseUp: mouseUp,\n touchEnd: touchEnd,\n unknown: unknown\n});\n\nvar _excluded$3 = [\"refKey\", \"ref\"],\n _excluded2$3 = [\"onClick\", \"onPress\", \"onKeyDown\", \"onKeyUp\", \"onBlur\"],\n _excluded3$2 = [\"onKeyDown\", \"onBlur\", \"onChange\", \"onInput\", \"onChangeText\"],\n _excluded4$2 = [\"refKey\", \"ref\"],\n _excluded5 = [\"onMouseMove\", \"onMouseDown\", \"onClick\", \"onPress\", \"index\", \"item\"];\nvar Downshift = /*#__PURE__*/function () {\n var Downshift = /*#__PURE__*/function (_Component) {\n function Downshift(_props) {\n var _this;\n _this = _Component.call(this, _props) || this;\n // fancy destructuring + defaults + aliases\n // this basically says each value of state should either be set to\n // the initial value or the default value if the initial value is not provided\n _this.id = _this.props.id || \"downshift-\" + generateId();\n _this.menuId = _this.props.menuId || _this.id + \"-menu\";\n _this.labelId = _this.props.labelId || _this.id + \"-label\";\n _this.inputId = _this.props.inputId || _this.id + \"-input\";\n _this.getItemId = _this.props.getItemId || function (index) {\n return _this.id + \"-item-\" + index;\n };\n _this.items = [];\n // itemCount can be changed asynchronously\n // from within downshift (so it can't come from a prop)\n // this is why we store it as an instance and use\n // getItemCount rather than just use items.length\n // (to support windowing + async)\n _this.itemCount = null;\n _this.previousResultCount = 0;\n _this.timeoutIds = [];\n /**\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n */\n _this.internalSetTimeout = function (fn, time) {\n var id = setTimeout(function () {\n _this.timeoutIds = _this.timeoutIds.filter(function (i) {\n return i !== id;\n });\n fn();\n }, time);\n _this.timeoutIds.push(id);\n };\n _this.setItemCount = function (count) {\n _this.itemCount = count;\n };\n _this.unsetItemCount = function () {\n _this.itemCount = null;\n };\n _this.isItemDisabled = function (_item, index) {\n var currentElementNode = _this.getItemNodeFromIndex(index);\n return currentElementNode && currentElementNode.hasAttribute('disabled');\n };\n _this.setHighlightedIndex = function (highlightedIndex, otherStateToSet) {\n if (highlightedIndex === void 0) {\n highlightedIndex = _this.props.defaultHighlightedIndex;\n }\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n otherStateToSet = pickState(otherStateToSet);\n _this.internalSetState(_extends({\n highlightedIndex: highlightedIndex\n }, otherStateToSet));\n };\n _this.clearSelection = function (cb) {\n _this.internalSetState({\n selectedItem: null,\n inputValue: '',\n highlightedIndex: _this.props.defaultHighlightedIndex,\n isOpen: _this.props.defaultIsOpen\n }, cb);\n };\n _this.selectItem = function (item, otherStateToSet, cb) {\n otherStateToSet = pickState(otherStateToSet);\n _this.internalSetState(_extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n selectedItem: item,\n inputValue: _this.props.itemToString(item)\n }, otherStateToSet), cb);\n };\n _this.selectItemAtIndex = function (itemIndex, otherStateToSet, cb) {\n var item = _this.items[itemIndex];\n if (item == null) {\n return;\n }\n _this.selectItem(item, otherStateToSet, cb);\n };\n _this.selectHighlightedItem = function (otherStateToSet, cb) {\n return _this.selectItemAtIndex(_this.getState().highlightedIndex, otherStateToSet, cb);\n };\n // any piece of our state can live in two places:\n // 1. Uncontrolled: it's internal (this.state)\n // We will call this.setState to update that state\n // 2. Controlled: it's external (this.props)\n // We will call this.props.onStateChange to update that state\n //\n // In addition, we'll call this.props.onChange if the\n // selectedItem is changed.\n _this.internalSetState = function (stateToSet, cb) {\n var isItemSelected, onChangeArg;\n var onStateChangeArg = {};\n var isStateToSetFunction = typeof stateToSet === 'function';\n\n // we want to call `onInputValueChange` before the `setState` call\n // so someone controlling the `inputValue` state gets notified of\n // the input change as soon as possible. This avoids issues with\n // preserving the cursor position.\n // See https://github.com/downshift-js/downshift/issues/217 for more info.\n if (!isStateToSetFunction && stateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(stateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), stateToSet));\n }\n return _this.setState(function (state) {\n var _newStateToSet;\n state = _this.getState(state);\n var newStateToSet = isStateToSetFunction ? stateToSet(state) : stateToSet;\n\n // Your own function that could modify the state that will be set.\n newStateToSet = _this.props.stateReducer(state, newStateToSet);\n\n // checks if an item is selected, regardless of if it's different from\n // what was selected before\n // used to determine if onSelect and onChange callbacks should be called\n isItemSelected = newStateToSet.hasOwnProperty('selectedItem');\n // this keeps track of the object we want to call with setState\n var nextState = {};\n // we need to call on change if the outside world is controlling any of our state\n // and we're trying to update that state. OR if the selection has changed and we're\n // trying to update the selection\n if (isItemSelected && newStateToSet.selectedItem !== state.selectedItem) {\n onChangeArg = newStateToSet.selectedItem;\n }\n (_newStateToSet = newStateToSet).type || (_newStateToSet.type = unknown);\n Object.keys(newStateToSet).forEach(function (key) {\n // onStateChangeArg should only have the state that is\n // actually changing\n if (state[key] !== newStateToSet[key]) {\n onStateChangeArg[key] = newStateToSet[key];\n }\n // the type is useful for the onStateChangeArg\n // but we don't actually want to set it in internal state.\n // this is an undocumented feature for now... Not all internalSetState\n // calls support it and I'm not certain we want them to yet.\n // But it enables users controlling the isOpen state to know when\n // the isOpen state changes due to mouseup events which is quite handy.\n if (key === 'type') {\n return;\n }\n newStateToSet[key];\n // if it's coming from props, then we don't care to set it internally\n if (!isControlledProp(_this.props, key)) {\n nextState[key] = newStateToSet[key];\n }\n });\n\n // if stateToSet is a function, then we weren't able to call onInputValueChange\n // earlier, so we'll call it now that we know what the inputValue state will be.\n if (isStateToSetFunction && newStateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(newStateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), newStateToSet));\n }\n return nextState;\n }, function () {\n // call the provided callback if it's a function\n cbToCb(cb)();\n\n // only call the onStateChange and onChange callbacks if\n // we have relevant information to pass them.\n var hasMoreStateThanType = Object.keys(onStateChangeArg).length > 1;\n if (hasMoreStateThanType) {\n _this.props.onStateChange(onStateChangeArg, _this.getStateAndHelpers());\n }\n if (isItemSelected) {\n _this.props.onSelect(stateToSet.selectedItem, _this.getStateAndHelpers());\n }\n if (onChangeArg !== undefined) {\n _this.props.onChange(onChangeArg, _this.getStateAndHelpers());\n }\n // this is currently undocumented and therefore subject to change\n // We'll try to not break it, but just be warned.\n _this.props.onUserAction(onStateChangeArg, _this.getStateAndHelpers());\n });\n };\n //////////////////////////// ROOT\n _this.rootRef = function (node) {\n return _this._rootNode = node;\n };\n _this.getRootProps = function (_temp, _temp2) {\n var _extends2;\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n // this is used in the render to know whether the user has called getRootProps.\n // It uses that to know whether to apply the props automatically\n _this.getRootProps.called = true;\n _this.getRootProps.refKey = refKey;\n _this.getRootProps.suppressRefError = suppressRefError;\n var _this$getState = _this.getState(),\n isOpen = _this$getState.isOpen;\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, _this.rootRef), _extends2.role = 'combobox', _extends2['aria-expanded'] = isOpen, _extends2['aria-haspopup'] = 'listbox', _extends2['aria-owns'] = isOpen ? _this.menuId : undefined, _extends2['aria-labelledby'] = _this.labelId, _extends2), rest);\n };\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ROOT\n _this.keyDownHandlers = {\n ArrowDown: function ArrowDown(event) {\n var _this2 = this;\n event.preventDefault();\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? 5 : 1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowDown\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowDown\n }, function () {\n var itemCount = _this2.getItemCount();\n if (itemCount > 0) {\n var _this2$getState = _this2.getState(),\n highlightedIndex = _this2$getState.highlightedIndex;\n var nextHighlightedIndex = getHighlightedIndex(highlightedIndex, 1, {\n length: itemCount\n }, _this2.isItemDisabled, true);\n _this2.setHighlightedIndex(nextHighlightedIndex, {\n type: keyDownArrowDown\n });\n }\n });\n }\n },\n ArrowUp: function ArrowUp(event) {\n var _this3 = this;\n event.preventDefault();\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? -5 : -1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowUp\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowUp\n }, function () {\n var itemCount = _this3.getItemCount();\n if (itemCount > 0) {\n var _this3$getState = _this3.getState(),\n highlightedIndex = _this3$getState.highlightedIndex;\n var nextHighlightedIndex = getHighlightedIndex(highlightedIndex, -1, {\n length: itemCount\n }, _this3.isItemDisabled, true);\n _this3.setHighlightedIndex(nextHighlightedIndex, {\n type: keyDownArrowUp\n });\n }\n });\n }\n },\n Enter: function Enter(event) {\n if (event.which === 229) {\n return;\n }\n var _this$getState2 = this.getState(),\n isOpen = _this$getState2.isOpen,\n highlightedIndex = _this$getState2.highlightedIndex;\n if (isOpen && highlightedIndex != null) {\n event.preventDefault();\n var item = this.items[highlightedIndex];\n var itemNode = this.getItemNodeFromIndex(highlightedIndex);\n if (item == null || itemNode && itemNode.hasAttribute('disabled')) {\n return;\n }\n this.selectHighlightedItem({\n type: keyDownEnter\n });\n }\n },\n Escape: function Escape(event) {\n event.preventDefault();\n this.reset(_extends({\n type: keyDownEscape\n }, !this.state.isOpen && {\n selectedItem: null,\n inputValue: ''\n }));\n }\n };\n //////////////////////////// BUTTON\n _this.buttonKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n ' ': function _(event) {\n event.preventDefault();\n this.toggleMenu({\n type: keyDownSpaceButton\n });\n }\n });\n _this.inputKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n Home: function Home(event) {\n var _this$getState3 = this.getState(),\n isOpen = _this$getState3.isOpen;\n if (!isOpen) {\n return;\n }\n event.preventDefault();\n var itemCount = this.getItemCount();\n if (itemCount <= 0 || !isOpen) {\n return;\n }\n\n // get next non-disabled starting downwards from 0 if that's disabled.\n var newHighlightedIndex = getNonDisabledIndex(0, false, {\n length: itemCount\n }, this.isItemDisabled);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownHome\n });\n },\n End: function End(event) {\n var _this$getState4 = this.getState(),\n isOpen = _this$getState4.isOpen;\n if (!isOpen) {\n return;\n }\n event.preventDefault();\n var itemCount = this.getItemCount();\n if (itemCount <= 0 || !isOpen) {\n return;\n }\n\n // get next non-disabled starting upwards from last index if that's disabled.\n var newHighlightedIndex = getNonDisabledIndex(itemCount - 1, true, {\n length: itemCount\n }, this.isItemDisabled);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownEnd\n });\n }\n });\n _this.getToggleButtonProps = function (_temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n onClick = _ref3.onClick;\n _ref3.onPress;\n var onKeyDown = _ref3.onKeyDown,\n onKeyUp = _ref3.onKeyUp,\n onBlur = _ref3.onBlur,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded2$3);\n var _this$getState5 = _this.getState(),\n isOpen = _this$getState5.isOpen;\n var enabledEventHandlers = {\n onClick: callAllEventHandlers(onClick, _this.buttonHandleClick),\n onKeyDown: callAllEventHandlers(onKeyDown, _this.buttonHandleKeyDown),\n onKeyUp: callAllEventHandlers(onKeyUp, _this.buttonHandleKeyUp),\n onBlur: callAllEventHandlers(onBlur, _this.buttonHandleBlur)\n };\n var eventHandlers = rest.disabled ? {} : enabledEventHandlers;\n return _extends({\n type: 'button',\n role: 'button',\n 'aria-label': isOpen ? 'close menu' : 'open menu',\n 'aria-haspopup': true,\n 'data-toggle': true\n }, eventHandlers, rest);\n };\n _this.buttonHandleKeyUp = function (event) {\n // Prevent click event from emitting in Firefox\n event.preventDefault();\n };\n _this.buttonHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n if (_this.buttonKeyDownHandlers[key]) {\n _this.buttonKeyDownHandlers[key].call(_this, event);\n }\n };\n _this.buttonHandleClick = function (event) {\n event.preventDefault();\n // handle odd case for Safari and Firefox which\n // don't give the button the focus properly.\n /* istanbul ignore if (can't reasonably test this) */\n if (_this.props.environment) {\n var _this$props$environme = _this.props.environment.document,\n body = _this$props$environme.body,\n activeElement = _this$props$environme.activeElement;\n if (body && body === activeElement) {\n event.target.focus();\n }\n }\n // to simplify testing components that use downshift, we'll not wrap this in a setTimeout\n // if the NODE_ENV is test. With the proper build system, this should be dead code eliminated\n // when building for production and should therefore have no impact on production code.\n if (process.env.NODE_ENV === 'test') {\n _this.toggleMenu({\n type: clickButton\n });\n } else {\n // Ensure that toggle of menu occurs after the potential blur event in iOS\n _this.internalSetTimeout(function () {\n return _this.toggleMenu({\n type: clickButton\n });\n });\n }\n };\n _this.buttonHandleBlur = function (event) {\n var blurTarget = event.target; // Save blur target for comparison with activeElement later\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not body element\n _this.internalSetTimeout(function () {\n if (_this.isMouseDown || !_this.props.environment) {\n return;\n }\n var activeElement = _this.props.environment.document.activeElement;\n if ((activeElement == null || activeElement.id !== _this.inputId) && activeElement !== blurTarget // Do nothing if we refocus the same element again (to solve issue in Safari on iOS)\n ) {\n _this.reset({\n type: blurButton\n });\n }\n });\n };\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ BUTTON\n /////////////////////////////// LABEL\n _this.getLabelProps = function (props) {\n return _extends({\n htmlFor: _this.inputId,\n id: _this.labelId\n }, props);\n };\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ LABEL\n /////////////////////////////// INPUT\n _this.getInputProps = function (_temp4) {\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n onKeyDown = _ref4.onKeyDown,\n onBlur = _ref4.onBlur,\n onChange = _ref4.onChange,\n onInput = _ref4.onInput;\n _ref4.onChangeText;\n var rest = _objectWithoutPropertiesLoose(_ref4, _excluded3$2);\n var onChangeKey;\n var eventHandlers = {};\n\n /* istanbul ignore next (preact) */\n {\n onChangeKey = 'onChange';\n }\n var _this$getState6 = _this.getState(),\n inputValue = _this$getState6.inputValue,\n isOpen = _this$getState6.isOpen,\n highlightedIndex = _this$getState6.highlightedIndex;\n if (!rest.disabled) {\n var _eventHandlers;\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, _this.inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, _this.inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, _this.inputHandleBlur), _eventHandlers);\n }\n return _extends({\n 'aria-autocomplete': 'list',\n 'aria-activedescendant': isOpen && typeof highlightedIndex === 'number' && highlightedIndex >= 0 ? _this.getItemId(highlightedIndex) : undefined,\n 'aria-controls': isOpen ? _this.menuId : undefined,\n 'aria-labelledby': rest && rest['aria-label'] ? undefined : _this.labelId,\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n autoComplete: 'off',\n value: inputValue,\n id: _this.inputId\n }, eventHandlers, rest);\n };\n _this.inputHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n if (key && _this.inputKeyDownHandlers[key]) {\n _this.inputKeyDownHandlers[key].call(_this, event);\n }\n };\n _this.inputHandleChange = function (event) {\n _this.internalSetState({\n type: changeInput,\n isOpen: true,\n inputValue: event.target.value,\n highlightedIndex: _this.props.defaultHighlightedIndex\n });\n };\n _this.inputHandleBlur = function () {\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not the body element\n _this.internalSetTimeout(function () {\n var _activeElement$datase;\n if (_this.isMouseDown || !_this.props.environment) {\n return;\n }\n var activeElement = _this.props.environment.document.activeElement;\n var downshiftButtonIsActive = (activeElement == null || (_activeElement$datase = activeElement.dataset) == null ? void 0 : _activeElement$datase.toggle) && _this._rootNode && _this._rootNode.contains(activeElement);\n if (!downshiftButtonIsActive) {\n _this.reset({\n type: blurInput\n });\n }\n });\n };\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ INPUT\n /////////////////////////////// MENU\n _this.menuRef = function (node) {\n _this._menuNode = node;\n };\n _this.getMenuProps = function (_temp5, _temp6) {\n var _extends3;\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n props = _objectWithoutPropertiesLoose(_ref5, _excluded4$2);\n var _ref6 = _temp6 === void 0 ? {} : _temp6,\n _ref6$suppressRefErro = _ref6.suppressRefError,\n suppressRefError = _ref6$suppressRefErro === void 0 ? false : _ref6$suppressRefErro;\n _this.getMenuProps.called = true;\n _this.getMenuProps.refKey = refKey;\n _this.getMenuProps.suppressRefError = suppressRefError;\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, _this.menuRef), _extends3.role = 'listbox', _extends3['aria-labelledby'] = props && props['aria-label'] ? undefined : _this.labelId, _extends3.id = _this.menuId, _extends3), props);\n };\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ MENU\n /////////////////////////////// ITEM\n _this.getItemProps = function (_temp7) {\n var _enabledEventHandlers;\n var _ref7 = _temp7 === void 0 ? {} : _temp7,\n onMouseMove = _ref7.onMouseMove,\n onMouseDown = _ref7.onMouseDown,\n onClick = _ref7.onClick;\n _ref7.onPress;\n var index = _ref7.index,\n _ref7$item = _ref7.item,\n item = _ref7$item === void 0 ? process.env.NODE_ENV === 'production' ? /* istanbul ignore next */undefined : requiredProp('getItemProps', 'item') : _ref7$item,\n rest = _objectWithoutPropertiesLoose(_ref7, _excluded5);\n if (index === undefined) {\n _this.items.push(item);\n index = _this.items.indexOf(item);\n } else {\n _this.items[index] = item;\n }\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n var enabledEventHandlers = (_enabledEventHandlers = {\n // onMouseMove is used over onMouseEnter here. onMouseMove\n // is only triggered on actual mouse movement while onMouseEnter\n // can fire on DOM changes, interrupting keyboard navigation\n onMouseMove: callAllEventHandlers(onMouseMove, function () {\n if (index === _this.getState().highlightedIndex) {\n return;\n }\n _this.setHighlightedIndex(index, {\n type: itemMouseEnter\n });\n\n // We never want to manually scroll when changing state based\n // on `onMouseMove` because we will be moving the element out\n // from under the user which is currently scrolling/moving the\n // cursor\n _this.avoidScrolling = true;\n _this.internalSetTimeout(function () {\n return _this.avoidScrolling = false;\n }, 250);\n }),\n onMouseDown: callAllEventHandlers(onMouseDown, function (event) {\n // This prevents the activeElement from being changed\n // to the item so it can remain with the current activeElement\n // which is a more common use case.\n event.preventDefault();\n })\n }, _enabledEventHandlers[onSelectKey] = callAllEventHandlers(customClickHandler, function () {\n _this.selectItemAtIndex(index, {\n type: clickItem\n });\n }), _enabledEventHandlers);\n\n // Passing down the onMouseDown handler to prevent redirect\n // of the activeElement if clicking on disabled items\n var eventHandlers = rest.disabled ? {\n onMouseDown: enabledEventHandlers.onMouseDown\n } : enabledEventHandlers;\n return _extends({\n id: _this.getItemId(index),\n role: 'option',\n 'aria-selected': _this.getState().highlightedIndex === index\n }, eventHandlers, rest);\n };\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ITEM\n _this.clearItems = function () {\n _this.items = [];\n };\n _this.reset = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n otherStateToSet = pickState(otherStateToSet);\n _this.internalSetState(function (_ref8) {\n var selectedItem = _ref8.selectedItem;\n return _extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n inputValue: _this.props.itemToString(selectedItem)\n }, otherStateToSet);\n }, cb);\n };\n _this.toggleMenu = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n otherStateToSet = pickState(otherStateToSet);\n _this.internalSetState(function (_ref9) {\n var isOpen = _ref9.isOpen;\n return _extends({\n isOpen: !isOpen\n }, isOpen && {\n highlightedIndex: _this.props.defaultHighlightedIndex\n }, otherStateToSet);\n }, function () {\n var _this$getState7 = _this.getState(),\n isOpen = _this$getState7.isOpen,\n highlightedIndex = _this$getState7.highlightedIndex;\n if (isOpen) {\n if (_this.getItemCount() > 0 && typeof highlightedIndex === 'number') {\n _this.setHighlightedIndex(highlightedIndex, otherStateToSet);\n }\n }\n cbToCb(cb)();\n });\n };\n _this.openMenu = function (cb) {\n _this.internalSetState({\n isOpen: true\n }, cb);\n };\n _this.closeMenu = function (cb) {\n _this.internalSetState({\n isOpen: false\n }, cb);\n };\n _this.updateStatus = debounce(function () {\n var _this$props;\n if (!((_this$props = _this.props) != null && (_this$props = _this$props.environment) != null && _this$props.document)) {\n return;\n }\n var state = _this.getState();\n var item = _this.items[state.highlightedIndex];\n var resultCount = _this.getItemCount();\n var status = _this.props.getA11yStatusMessage(_extends({\n itemToString: _this.props.itemToString,\n previousResultCount: _this.previousResultCount,\n resultCount: resultCount,\n highlightedItem: item\n }, state));\n _this.previousResultCount = resultCount;\n setStatus(status, _this.props.environment.document);\n }, 200);\n var _this$props2 = _this.props,\n defaultHighlightedIndex = _this$props2.defaultHighlightedIndex,\n _this$props2$initialH = _this$props2.initialHighlightedIndex,\n _highlightedIndex = _this$props2$initialH === void 0 ? defaultHighlightedIndex : _this$props2$initialH,\n defaultIsOpen = _this$props2.defaultIsOpen,\n _this$props2$initialI = _this$props2.initialIsOpen,\n _isOpen = _this$props2$initialI === void 0 ? defaultIsOpen : _this$props2$initialI,\n _this$props2$initialI2 = _this$props2.initialInputValue,\n _inputValue = _this$props2$initialI2 === void 0 ? '' : _this$props2$initialI2,\n _this$props2$initialS = _this$props2.initialSelectedItem,\n _selectedItem = _this$props2$initialS === void 0 ? null : _this$props2$initialS;\n var _state = _this.getState({\n highlightedIndex: _highlightedIndex,\n isOpen: _isOpen,\n inputValue: _inputValue,\n selectedItem: _selectedItem\n });\n if (_state.selectedItem != null && _this.props.initialInputValue === undefined) {\n _state.inputValue = _this.props.itemToString(_state.selectedItem);\n }\n _this.state = _state;\n return _this;\n }\n _inheritsLoose(Downshift, _Component);\n var _proto = Downshift.prototype;\n /**\n * Clear all running timeouts\n */\n _proto.internalClearTimeouts = function internalClearTimeouts() {\n this.timeoutIds.forEach(function (id) {\n clearTimeout(id);\n });\n this.timeoutIds = [];\n }\n\n /**\n * Gets the state based on internal state or props\n * If a state value is passed via props, then that\n * is the value given, otherwise it's retrieved from\n * stateToMerge\n *\n * @param {Object} stateToMerge defaults to this.state\n * @return {Object} the state\n */;\n _proto.getState = function getState$1(stateToMerge) {\n if (stateToMerge === void 0) {\n stateToMerge = this.state;\n }\n return getState(stateToMerge, this.props);\n };\n _proto.getItemCount = function getItemCount() {\n // things read better this way. They're in priority order:\n // 1. `this.itemCount`\n // 2. `this.props.itemCount`\n // 3. `this.items.length`\n var itemCount = this.items.length;\n if (this.itemCount != null) {\n itemCount = this.itemCount;\n } else if (this.props.itemCount !== undefined) {\n itemCount = this.props.itemCount;\n }\n return itemCount;\n };\n _proto.getItemNodeFromIndex = function getItemNodeFromIndex(index) {\n return this.props.environment ? this.props.environment.document.getElementById(this.getItemId(index)) : null;\n };\n _proto.scrollHighlightedItemIntoView = function scrollHighlightedItemIntoView() {\n /* istanbul ignore else (react-native) */\n {\n var node = this.getItemNodeFromIndex(this.getState().highlightedIndex);\n this.props.scrollIntoView(node, this._menuNode);\n }\n };\n _proto.moveHighlightedIndex = function moveHighlightedIndex(amount, otherStateToSet) {\n var itemCount = this.getItemCount();\n var _this$getState8 = this.getState(),\n highlightedIndex = _this$getState8.highlightedIndex;\n if (itemCount > 0) {\n var nextHighlightedIndex = getHighlightedIndex(highlightedIndex, amount, {\n length: itemCount\n }, this.isItemDisabled, true);\n this.setHighlightedIndex(nextHighlightedIndex, otherStateToSet);\n }\n };\n _proto.getStateAndHelpers = function getStateAndHelpers() {\n var _this$getState9 = this.getState(),\n highlightedIndex = _this$getState9.highlightedIndex,\n inputValue = _this$getState9.inputValue,\n selectedItem = _this$getState9.selectedItem,\n isOpen = _this$getState9.isOpen;\n var itemToString = this.props.itemToString;\n var id = this.id;\n var getRootProps = this.getRootProps,\n getToggleButtonProps = this.getToggleButtonProps,\n getLabelProps = this.getLabelProps,\n getMenuProps = this.getMenuProps,\n getInputProps = this.getInputProps,\n getItemProps = this.getItemProps,\n openMenu = this.openMenu,\n closeMenu = this.closeMenu,\n toggleMenu = this.toggleMenu,\n selectItem = this.selectItem,\n selectItemAtIndex = this.selectItemAtIndex,\n selectHighlightedItem = this.selectHighlightedItem,\n setHighlightedIndex = this.setHighlightedIndex,\n clearSelection = this.clearSelection,\n clearItems = this.clearItems,\n reset = this.reset,\n setItemCount = this.setItemCount,\n unsetItemCount = this.unsetItemCount,\n setState = this.internalSetState;\n return {\n // prop getters\n getRootProps: getRootProps,\n getToggleButtonProps: getToggleButtonProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getInputProps: getInputProps,\n getItemProps: getItemProps,\n // actions\n reset: reset,\n openMenu: openMenu,\n closeMenu: closeMenu,\n toggleMenu: toggleMenu,\n selectItem: selectItem,\n selectItemAtIndex: selectItemAtIndex,\n selectHighlightedItem: selectHighlightedItem,\n setHighlightedIndex: setHighlightedIndex,\n clearSelection: clearSelection,\n clearItems: clearItems,\n setItemCount: setItemCount,\n unsetItemCount: unsetItemCount,\n setState: setState,\n // props\n itemToString: itemToString,\n // derived\n id: id,\n // state\n highlightedIndex: highlightedIndex,\n inputValue: inputValue,\n isOpen: isOpen,\n selectedItem: selectedItem\n };\n };\n _proto.componentDidMount = function componentDidMount() {\n var _this4 = this;\n /* istanbul ignore if (react-native) */\n if (process.env.NODE_ENV !== 'production' && true && this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n\n /* istanbul ignore if (react-native or SSR) */\n if (!this.props.environment) {\n this.cleanup = function () {\n _this4.internalClearTimeouts();\n };\n } else {\n // this.isMouseDown helps us track whether the mouse is currently held down.\n // This is useful when the user clicks on an item in the list, but holds the mouse\n // down long enough for the list to disappear (because the blur event fires on the input)\n // this.isMouseDown is used in the blur handler on the input to determine whether the blur event should\n // trigger hiding the menu.\n var onMouseDown = function onMouseDown() {\n _this4.isMouseDown = true;\n };\n var onMouseUp = function onMouseUp(event) {\n _this4.isMouseDown = false;\n // if the target element or the activeElement is within a downshift node\n // then we don't want to reset downshift\n var contextWithinDownshift = targetWithinDownshift(event.target, [_this4._rootNode, _this4._menuNode], _this4.props.environment);\n if (!contextWithinDownshift && _this4.getState().isOpen) {\n _this4.reset({\n type: mouseUp\n }, function () {\n return _this4.props.onOuterClick(_this4.getStateAndHelpers());\n });\n }\n };\n // Touching an element in iOS gives focus and hover states, but touching out of\n // the element will remove hover, and persist the focus state, resulting in the\n // blur event not being triggered.\n // this.isTouchMove helps us track whether the user is tapping or swiping on a touch screen.\n // If the user taps outside of Downshift, the component should be reset,\n // but not if the user is swiping\n var onTouchStart = function onTouchStart() {\n _this4.isTouchMove = false;\n };\n var onTouchMove = function onTouchMove() {\n _this4.isTouchMove = true;\n };\n var onTouchEnd = function onTouchEnd(event) {\n var contextWithinDownshift = targetWithinDownshift(event.target, [_this4._rootNode, _this4._menuNode], _this4.props.environment, false);\n if (!_this4.isTouchMove && !contextWithinDownshift && _this4.getState().isOpen) {\n _this4.reset({\n type: touchEnd\n }, function () {\n return _this4.props.onOuterClick(_this4.getStateAndHelpers());\n });\n }\n };\n var environment = this.props.environment;\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n this.cleanup = function () {\n _this4.internalClearTimeouts();\n _this4.updateStatus.cancel();\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n };\n }\n };\n _proto.shouldScroll = function shouldScroll(prevState, prevProps) {\n var _ref0 = this.props.highlightedIndex === undefined ? this.getState() : this.props,\n currentHighlightedIndex = _ref0.highlightedIndex;\n var _ref1 = prevProps.highlightedIndex === undefined ? prevState : prevProps,\n prevHighlightedIndex = _ref1.highlightedIndex;\n var scrollWhenOpen = currentHighlightedIndex && this.getState().isOpen && !prevState.isOpen;\n var scrollWhenNavigating = currentHighlightedIndex !== prevHighlightedIndex;\n return scrollWhenOpen || scrollWhenNavigating;\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged(this.state, prevProps, this.props);\n /* istanbul ignore if (react-native) */\n if (this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n }\n if (isControlledProp(this.props, 'selectedItem') && this.props.selectedItemChanged(prevProps.selectedItem, this.props.selectedItem)) {\n this.internalSetState({\n type: controlledPropUpdatedSelectedItem,\n inputValue: this.props.itemToString(this.props.selectedItem)\n });\n }\n if (!this.avoidScrolling && this.shouldScroll(prevState, prevProps)) {\n this.scrollHighlightedItemIntoView();\n }\n\n /* istanbul ignore else (react-native) */\n {\n this.updateStatus();\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cleanup(); // avoids memory leak\n };\n _proto.render = function render() {\n var children = unwrapArray(this.props.children, noop);\n // because the items are rerendered every time we call the children\n // we clear this out each render and it will be populated again as\n // getItemProps is called.\n this.clearItems();\n // we reset this so we know whether the user calls getRootProps during\n // this render. If they do then we don't need to do anything,\n // if they don't then we need to clone the element they return and\n // apply the props for them.\n this.getRootProps.called = false;\n this.getRootProps.refKey = undefined;\n this.getRootProps.suppressRefError = undefined;\n // we do something similar for getMenuProps\n this.getMenuProps.called = false;\n this.getMenuProps.refKey = undefined;\n this.getMenuProps.suppressRefError = undefined;\n // we do something similar for getLabelProps\n this.getLabelProps.called = false;\n // and something similar for getInputProps\n this.getInputProps.called = false;\n var element = unwrapArray(children(this.getStateAndHelpers()));\n if (!element) {\n return null;\n }\n if (this.getRootProps.called || this.props.suppressRefError) {\n if (process.env.NODE_ENV !== 'production' && !this.getRootProps.suppressRefError && !this.props.suppressRefError) {\n validateGetRootPropsCalledCorrectly(element, this.getRootProps);\n }\n return element;\n } else if (isDOMElement(element)) {\n // they didn't apply the root props, but we can clone\n // this and apply the props ourselves\n return /*#__PURE__*/cloneElement(element, this.getRootProps(getElementProps(element)));\n }\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n // they didn't apply the root props, but they need to\n // otherwise we can't query around the autocomplete\n\n throw new Error('downshift: If you return a non-DOM element, you must apply the getRootProps function');\n }\n\n /* istanbul ignore next */\n return undefined;\n };\n return Downshift;\n }(Component);\n Downshift.defaultProps = {\n defaultHighlightedIndex: null,\n defaultIsOpen: false,\n getA11yStatusMessage: getA11yStatusMessage,\n itemToString: function itemToString(i) {\n if (i == null) {\n return '';\n }\n if (process.env.NODE_ENV !== 'production' && isPlainObject(i) && !i.hasOwnProperty('toString')) {\n // eslint-disable-next-line no-console\n console.warn('downshift: An object was passed to the default implementation of `itemToString`. You should probably provide your own `itemToString` implementation. Please refer to the `itemToString` API documentation.', 'The object that was passed:', i);\n }\n return String(i);\n },\n onStateChange: noop,\n onInputValueChange: noop,\n onUserAction: noop,\n onChange: noop,\n onSelect: noop,\n onOuterClick: noop,\n selectedItemChanged: function selectedItemChanged(prevItem, item) {\n return prevItem !== item;\n },\n environment: /* istanbul ignore next (ssr) */\n typeof window === 'undefined' || false ? undefined : window,\n stateReducer: function stateReducer(state, stateToSet) {\n return stateToSet;\n },\n suppressRefError: false,\n scrollIntoView: scrollIntoView\n };\n Downshift.stateChangeTypes = stateChangeTypes$3;\n return Downshift;\n}();\nprocess.env.NODE_ENV !== \"production\" ? Downshift.propTypes = {\n children: PropTypes.func,\n defaultHighlightedIndex: PropTypes.number,\n defaultIsOpen: PropTypes.bool,\n initialHighlightedIndex: PropTypes.number,\n initialSelectedItem: PropTypes.any,\n initialInputValue: PropTypes.string,\n initialIsOpen: PropTypes.bool,\n getA11yStatusMessage: PropTypes.func,\n itemToString: PropTypes.func,\n onChange: PropTypes.func,\n onSelect: PropTypes.func,\n onStateChange: PropTypes.func,\n onInputValueChange: PropTypes.func,\n onUserAction: PropTypes.func,\n onOuterClick: PropTypes.func,\n selectedItemChanged: PropTypes.func,\n stateReducer: PropTypes.func,\n itemCount: PropTypes.number,\n id: PropTypes.string,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func.isRequired,\n removeEventListener: PropTypes.func.isRequired,\n document: PropTypes.shape({\n createElement: PropTypes.func.isRequired,\n getElementById: PropTypes.func.isRequired,\n activeElement: PropTypes.any.isRequired,\n body: PropTypes.any.isRequired\n }).isRequired,\n Node: PropTypes.func.isRequired\n }),\n suppressRefError: PropTypes.bool,\n scrollIntoView: PropTypes.func,\n // things we keep in state for uncontrolled components\n // but can accept as props for controlled components\n /* eslint-disable react/no-unused-prop-types */\n selectedItem: PropTypes.any,\n isOpen: PropTypes.bool,\n inputValue: PropTypes.string,\n highlightedIndex: PropTypes.number,\n labelId: PropTypes.string,\n inputId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func\n /* eslint-enable react/no-unused-prop-types */\n} : void 0;\nfunction validateGetMenuPropsCalledCorrectly(node, _ref10) {\n var refKey = _ref10.refKey;\n if (!node) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from getMenuProps was not applied correctly on your menu element.\");\n }\n}\nfunction validateGetRootPropsCalledCorrectly(element, _ref11) {\n var refKey = _ref11.refKey;\n var refKeySpecified = refKey !== 'ref';\n var isComposite = !isDOMElement(element);\n if (isComposite && !refKeySpecified && !isForwardRef(element)) {\n // eslint-disable-next-line no-console\n console.error('downshift: You returned a non-DOM element. You must specify a refKey in getRootProps');\n } else if (!isComposite && refKeySpecified) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You returned a DOM element. You should not specify a refKey in getRootProps. You specified \\\"\" + refKey + \"\\\"\");\n }\n if (!isForwardRef(element) && !getElementProps(element)[refKey]) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You must apply the ref prop \\\"\" + refKey + \"\\\" from getRootProps onto your root element.\");\n }\n}\n\nvar dropdownDefaultStateValues = {\n highlightedIndex: -1,\n isOpen: false,\n selectedItem: null,\n inputValue: ''\n};\nfunction callOnChangeProps(action, state, newState) {\n var props = action.props,\n type = action.type;\n var changes = {};\n Object.keys(state).forEach(function (key) {\n invokeOnChangeHandler(key, action, state, newState);\n if (newState[key] !== state[key]) {\n changes[key] = newState[key];\n }\n });\n if (props.onStateChange && Object.keys(changes).length) {\n props.onStateChange(_extends({\n type: type\n }, changes));\n }\n}\nfunction invokeOnChangeHandler(key, action, state, newState) {\n var props = action.props,\n type = action.type;\n var handler = \"on\" + capitalizeString(key) + \"Change\";\n if (props[handler] && newState[key] !== undefined && newState[key] !== state[key]) {\n props[handler](_extends({\n type: type\n }, newState));\n }\n}\n\n/**\n * Default state reducer that returns the changes.\n *\n * @param {Object} s state.\n * @param {Object} a action with changes.\n * @returns {Object} changes.\n */\nfunction stateReducer(s, a) {\n return a.changes;\n}\n\n/**\n * Debounced call for updating the a11y message.\n */\nvar updateA11yStatus = debounce(function (status, document) {\n setStatus(status, document);\n}, 200);\n\n// istanbul ignore next\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;\n\n// istanbul ignore next\nvar useElementIds = 'useId' in React // Avoid conditional useId call\n? function useElementIds(_ref) {\n var id = _ref.id,\n labelId = _ref.labelId,\n menuId = _ref.menuId,\n getItemId = _ref.getItemId,\n toggleButtonId = _ref.toggleButtonId,\n inputId = _ref.inputId;\n // Avoid conditional useId call\n var reactId = \"downshift-\" + React.useId();\n if (!id) {\n id = reactId;\n }\n var elementIdsRef = useRef({\n labelId: labelId || id + \"-label\",\n menuId: menuId || id + \"-menu\",\n getItemId: getItemId || function (index) {\n return id + \"-item-\" + index;\n },\n toggleButtonId: toggleButtonId || id + \"-toggle-button\",\n inputId: inputId || id + \"-input\"\n });\n return elementIdsRef.current;\n} : function useElementIds(_ref2) {\n var _ref2$id = _ref2.id,\n id = _ref2$id === void 0 ? \"downshift-\" + generateId() : _ref2$id,\n labelId = _ref2.labelId,\n menuId = _ref2.menuId,\n getItemId = _ref2.getItemId,\n toggleButtonId = _ref2.toggleButtonId,\n inputId = _ref2.inputId;\n var elementIdsRef = useRef({\n labelId: labelId || id + \"-label\",\n menuId: menuId || id + \"-menu\",\n getItemId: getItemId || function (index) {\n return id + \"-item-\" + index;\n },\n toggleButtonId: toggleButtonId || id + \"-toggle-button\",\n inputId: inputId || id + \"-input\"\n });\n return elementIdsRef.current;\n};\nfunction getItemAndIndex(itemProp, indexProp, items, errorMessage) {\n var item, index;\n if (itemProp === undefined) {\n if (indexProp === undefined) {\n throw new Error(errorMessage);\n }\n item = items[indexProp];\n index = indexProp;\n } else {\n index = indexProp === undefined ? items.indexOf(itemProp) : indexProp;\n item = itemProp;\n }\n return [item, index];\n}\nfunction isAcceptedCharacterKey(key) {\n return /^\\S{1}$/.test(key);\n}\nfunction capitalizeString(string) {\n return \"\" + string.slice(0, 1).toUpperCase() + string.slice(1);\n}\nfunction useLatestRef(val) {\n var ref = useRef(val);\n // technically this is not \"concurrent mode safe\" because we're manipulating\n // the value during render (so it's not idempotent). However, the places this\n // hook is used is to support memoizing callbacks which will be called\n // *during* render, so we need the latest values *during* render.\n // If not for this, then we'd probably want to use useLayoutEffect instead.\n ref.current = val;\n return ref;\n}\n\n/**\n * Computes the controlled state using a the previous state, props,\n * two reducers, one from downshift and an optional one from the user.\n * Also calls the onChange handlers for state values that have changed.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} props The hook props, also passed to createInitialState.\n * @param {Function} createInitialState Function that returns the initial state.\n * @param {Function} isStateEqual Function that checks if a previous state is equal to the next.\n * @returns {Array} An array with the state and an action dispatcher.\n */\nfunction useEnhancedReducer(reducer, props, createInitialState, isStateEqual) {\n var prevStateRef = useRef();\n var actionRef = useRef();\n var enhancedReducer = useCallback(function (state, action) {\n actionRef.current = action;\n state = getState(state, action.props);\n var changes = reducer(state, action);\n var newState = action.props.stateReducer(state, _extends({}, action, {\n changes: changes\n }));\n return newState;\n }, [reducer]);\n var _useReducer = useReducer(enhancedReducer, props, createInitialState),\n state = _useReducer[0],\n dispatch = _useReducer[1];\n var propsRef = useLatestRef(props);\n var dispatchWithProps = useCallback(function (action) {\n return dispatch(_extends({\n props: propsRef.current\n }, action));\n }, [propsRef]);\n var action = actionRef.current;\n useEffect(function () {\n var prevState = getState(prevStateRef.current, action == null ? void 0 : action.props);\n var shouldCallOnChangeProps = action && prevStateRef.current && !isStateEqual(prevState, state);\n if (shouldCallOnChangeProps) {\n callOnChangeProps(action, prevState, state);\n }\n prevStateRef.current = state;\n }, [state, action, isStateEqual]);\n return [state, dispatchWithProps];\n}\n\n/**\n * Wraps the useEnhancedReducer and applies the controlled prop values before\n * returning the new state.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} props The hook props, also passed to createInitialState.\n * @param {Function} createInitialState Function that returns the initial state.\n * @param {Function} isStateEqual Function that checks if a previous state is equal to the next.\n * @returns {Array} An array with the state and an action dispatcher.\n */\nfunction useControlledReducer$1(reducer, props, createInitialState, isStateEqual) {\n var _useEnhancedReducer = useEnhancedReducer(reducer, props, createInitialState, isStateEqual),\n state = _useEnhancedReducer[0],\n dispatch = _useEnhancedReducer[1];\n return [getState(state, props), dispatch];\n}\nvar defaultProps$3 = {\n itemToString: function itemToString(item) {\n return item ? String(item) : '';\n },\n itemToKey: function itemToKey(item) {\n return item;\n },\n stateReducer: stateReducer,\n scrollIntoView: scrollIntoView,\n environment: /* istanbul ignore next (ssr) */\n typeof window === 'undefined' || false ? undefined : window\n};\nfunction getDefaultValue$1(props, propKey, defaultStateValues) {\n if (defaultStateValues === void 0) {\n defaultStateValues = dropdownDefaultStateValues;\n }\n var defaultValue = props[\"default\" + capitalizeString(propKey)];\n if (defaultValue !== undefined) {\n return defaultValue;\n }\n return defaultStateValues[propKey];\n}\nfunction getInitialValue$1(props, propKey, defaultStateValues) {\n if (defaultStateValues === void 0) {\n defaultStateValues = dropdownDefaultStateValues;\n }\n var value = props[propKey];\n if (value !== undefined) {\n return value;\n }\n var initialValue = props[\"initial\" + capitalizeString(propKey)];\n if (initialValue !== undefined) {\n return initialValue;\n }\n return getDefaultValue$1(props, propKey, defaultStateValues);\n}\nfunction getInitialState$2(props) {\n var selectedItem = getInitialValue$1(props, 'selectedItem');\n var isOpen = getInitialValue$1(props, 'isOpen');\n var highlightedIndex = getInitialHighlightedIndex(props);\n var inputValue = getInitialValue$1(props, 'inputValue');\n return {\n highlightedIndex: highlightedIndex < 0 && selectedItem && isOpen ? props.items.findIndex(function (item) {\n return props.itemToKey(item) === props.itemToKey(selectedItem);\n }) : highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\nfunction getHighlightedIndexOnOpen(props, state, offset) {\n var items = props.items,\n initialHighlightedIndex = props.initialHighlightedIndex,\n defaultHighlightedIndex = props.defaultHighlightedIndex,\n isItemDisabled = props.isItemDisabled,\n itemToKey = props.itemToKey;\n var selectedItem = state.selectedItem,\n highlightedIndex = state.highlightedIndex;\n if (items.length === 0) {\n return -1;\n }\n\n // initialHighlightedIndex will give value to highlightedIndex on initial state only.\n if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex && !isItemDisabled(items[initialHighlightedIndex], initialHighlightedIndex)) {\n return initialHighlightedIndex;\n }\n if (defaultHighlightedIndex !== undefined && !isItemDisabled(items[defaultHighlightedIndex], defaultHighlightedIndex)) {\n return defaultHighlightedIndex;\n }\n if (selectedItem) {\n return items.findIndex(function (item) {\n return itemToKey(selectedItem) === itemToKey(item);\n });\n }\n if (offset < 0 && !isItemDisabled(items[items.length - 1], items.length - 1)) {\n return items.length - 1;\n }\n if (offset > 0 && !isItemDisabled(items[0], 0)) {\n return 0;\n }\n return -1;\n}\n/**\n * Tracks mouse and touch events, such as mouseDown, touchMove and touchEnd.\n *\n * @param {Window} environment The environment to add the event listeners to, for instance window.\n * @param {() => void} handleBlur The function that is called if mouseDown or touchEnd occured outside the downshiftElements.\n * @param {Array<{current: HTMLElement}>} downshiftElementsRefs The refs for the elements that should not trigger a blur action from mouseDown or touchEnd.\n * @returns {{isMouseDown: boolean, isTouchMove: boolean, isTouchEnd: boolean}} The mouse and touch events information, if any of are happening.\n */\nfunction useMouseAndTouchTracker(environment, handleBlur, downshiftElementsRefs) {\n var mouseAndTouchTrackersRef = useRef({\n isMouseDown: false,\n isTouchMove: false,\n isTouchEnd: false\n });\n useEffect(function () {\n if (!environment) {\n return noop;\n }\n var downshiftElements = downshiftElementsRefs.map(function (ref) {\n return ref.current;\n });\n function onMouseDown() {\n mouseAndTouchTrackersRef.current.isTouchEnd = false; // reset this one.\n mouseAndTouchTrackersRef.current.isMouseDown = true;\n }\n function onMouseUp(event) {\n mouseAndTouchTrackersRef.current.isMouseDown = false;\n if (!targetWithinDownshift(event.target, downshiftElements, environment)) {\n handleBlur();\n }\n }\n function onTouchStart() {\n mouseAndTouchTrackersRef.current.isTouchEnd = false;\n mouseAndTouchTrackersRef.current.isTouchMove = false;\n }\n function onTouchMove() {\n mouseAndTouchTrackersRef.current.isTouchMove = true;\n }\n function onTouchEnd(event) {\n mouseAndTouchTrackersRef.current.isTouchEnd = true;\n if (!mouseAndTouchTrackersRef.current.isTouchMove && !targetWithinDownshift(event.target, downshiftElements, environment, false)) {\n handleBlur();\n }\n }\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n return function cleanup() {\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n };\n }, [downshiftElementsRefs, environment, handleBlur]);\n return mouseAndTouchTrackersRef.current;\n}\n\n/* istanbul ignore next */\n// eslint-disable-next-line import/no-mutable-exports\nvar useGetterPropsCalledChecker = function useGetterPropsCalledChecker() {\n return noop;\n};\n/**\n * Custom hook that checks if getter props are called correctly.\n *\n * @param {...any} propKeys Getter prop names to be handled.\n * @returns {Function} Setter function called inside getter props to set call information.\n */\n/* istanbul ignore next */\nif (process.env.NODE_ENV !== 'production') {\n useGetterPropsCalledChecker = function useGetterPropsCalledChecker() {\n for (var _len = arguments.length, propKeys = new Array(_len), _key = 0; _key < _len; _key++) {\n propKeys[_key] = arguments[_key];\n }\n var getterPropsCalledRef = useRef(propKeys.reduce(function (acc, propKey) {\n acc[propKey] = {};\n return acc;\n }, {}));\n useEffect(function () {\n Object.keys(getterPropsCalledRef.current).forEach(function (propKey) {\n var propCallInfo = getterPropsCalledRef.current[propKey];\n if (!Object.keys(propCallInfo).length) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You forgot to call the \" + propKey + \" getter function on your component / element.\");\n return;\n }\n var suppressRefError = propCallInfo.suppressRefError,\n refKey = propCallInfo.refKey,\n elementRef = propCallInfo.elementRef;\n if (suppressRefError) {\n return;\n }\n if (!(elementRef != null && elementRef.current)) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from \" + propKey + \" was not applied correctly on your element.\");\n }\n });\n }, []);\n var setGetterPropCallInfo = useCallback(function (propKey, suppressRefError, refKey, elementRef) {\n getterPropsCalledRef.current[propKey] = {\n suppressRefError: suppressRefError,\n refKey: refKey,\n elementRef: elementRef\n };\n }, []);\n return setGetterPropCallInfo;\n };\n}\n\n/**\n * Adds an a11y aria live status message if getA11yStatusMessage is passed.\n * @param {(options: Object) => string} getA11yStatusMessage The function that builds the status message.\n * @param {Object} options The options to be passed to getA11yStatusMessage if called.\n * @param {Array<unknown>} dependencyArray The dependency array that triggers the status message setter via useEffect.\n * @param {{document: Document}} environment The environment object containing the document.\n */\nfunction useA11yMessageStatus(getA11yStatusMessage, options, dependencyArray, environment) {\n if (environment === void 0) {\n environment = {};\n }\n var document = environment.document;\n var isInitialMount = useIsInitialMount();\n\n // Adds an a11y aria live status message if getA11yStatusMessage is passed.\n useEffect(function () {\n if (!getA11yStatusMessage || isInitialMount || false || !document) {\n return;\n }\n var status = getA11yStatusMessage(options);\n updateA11yStatus(status, document);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencyArray);\n\n // Cleanup the status message container.\n useEffect(function () {\n return function () {\n updateA11yStatus.cancel();\n cleanupStatusDiv(document);\n };\n }, [document]);\n}\nfunction useScrollIntoView(_ref3) {\n var highlightedIndex = _ref3.highlightedIndex,\n isOpen = _ref3.isOpen,\n itemRefs = _ref3.itemRefs,\n getItemNodeFromIndex = _ref3.getItemNodeFromIndex,\n menuElement = _ref3.menuElement,\n scrollIntoViewProp = _ref3.scrollIntoView;\n // used not to scroll on highlight by mouse.\n var shouldScrollRef = useRef(true);\n // Scroll on highlighted item if change comes from keyboard.\n useIsomorphicLayoutEffect(function () {\n if (highlightedIndex < 0 || !isOpen || !Object.keys(itemRefs.current).length) {\n return;\n }\n if (shouldScrollRef.current === false) {\n shouldScrollRef.current = true;\n } else {\n scrollIntoViewProp(getItemNodeFromIndex(highlightedIndex), menuElement);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [highlightedIndex]);\n return shouldScrollRef;\n}\n\n// eslint-disable-next-line import/no-mutable-exports\nvar useControlPropsValidator = noop;\n/* istanbul ignore next */\nif (process.env.NODE_ENV !== 'production') {\n useControlPropsValidator = function useControlPropsValidator(_ref4) {\n var props = _ref4.props,\n state = _ref4.state;\n // used for checking when props are moving from controlled to uncontrolled.\n var prevPropsRef = useRef(props);\n var isInitialMount = useIsInitialMount();\n useEffect(function () {\n if (isInitialMount) {\n return;\n }\n validateControlledUnchanged(state, prevPropsRef.current, props);\n prevPropsRef.current = props;\n }, [state, props, isInitialMount]);\n };\n}\n\n/**\n * Handles selection on Enter / Alt + ArrowUp. Closes the menu and resets the highlighted index, unless there is a highlighted.\n * In that case, selects the item and resets to defaults for open state and highlighted idex.\n * @param {Object} props The useCombobox props.\n * @param {number} highlightedIndex The index from the state.\n * @param {boolean} inputValue Also return the input value for state.\n * @returns The changes for the state.\n */\nfunction getChangesOnSelection(props, highlightedIndex, inputValue) {\n var _props$items;\n if (inputValue === void 0) {\n inputValue = true;\n }\n var shouldSelect = ((_props$items = props.items) == null ? void 0 : _props$items.length) && highlightedIndex >= 0;\n return _extends({\n isOpen: false,\n highlightedIndex: -1\n }, shouldSelect && _extends({\n selectedItem: props.items[highlightedIndex],\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex')\n }, inputValue && {\n inputValue: props.itemToString(props.items[highlightedIndex])\n }));\n}\n\n/**\n * Check if a state is equal for dropdowns, by comparing isOpen, inputValue, highlightedIndex and selected item.\n * Used by useSelect and useCombobox.\n *\n * @param {Object} prevState\n * @param {Object} newState\n * @returns {boolean} Wheather the states are deeply equal.\n */\nfunction isDropdownsStateEqual(prevState, newState) {\n return prevState.isOpen === newState.isOpen && prevState.inputValue === newState.inputValue && prevState.highlightedIndex === newState.highlightedIndex && prevState.selectedItem === newState.selectedItem;\n}\n\n/**\n * Tracks if it's the first render.\n */\nfunction useIsInitialMount() {\n var isInitialMountRef = React.useRef(true);\n React.useEffect(function () {\n isInitialMountRef.current = false;\n return function () {\n isInitialMountRef.current = true;\n };\n }, []);\n return isInitialMountRef.current;\n}\n\n/**\n * Returns the new highlightedIndex based on the defaultHighlightedIndex prop, if it's not disabled.\n *\n * @param {Object} props Props from useCombobox or useSelect.\n * @returns {number} The highlighted index.\n */\nfunction getDefaultHighlightedIndex(props) {\n var highlightedIndex = getDefaultValue$1(props, 'highlightedIndex');\n if (highlightedIndex > -1 && props.isItemDisabled(props.items[highlightedIndex], highlightedIndex)) {\n return -1;\n }\n return highlightedIndex;\n}\n\n/**\n * Returns the new highlightedIndex based on the initialHighlightedIndex prop, if not disabled.\n *\n * @param {Object} props Props from useCombobox or useSelect.\n * @returns {number} The highlighted index.\n */\nfunction getInitialHighlightedIndex(props) {\n var highlightedIndex = getInitialValue$1(props, 'highlightedIndex');\n if (highlightedIndex > -1 && props.isItemDisabled(props.items[highlightedIndex], highlightedIndex)) {\n return -1;\n }\n return highlightedIndex;\n}\n\n// Shared between all exports.\nvar commonPropTypes = {\n environment: PropTypes.shape({\n addEventListener: PropTypes.func.isRequired,\n removeEventListener: PropTypes.func.isRequired,\n document: PropTypes.shape({\n createElement: PropTypes.func.isRequired,\n getElementById: PropTypes.func.isRequired,\n activeElement: PropTypes.any.isRequired,\n body: PropTypes.any.isRequired\n }).isRequired,\n Node: PropTypes.func.isRequired\n }),\n itemToString: PropTypes.func,\n itemToKey: PropTypes.func,\n stateReducer: PropTypes.func\n};\n\n// Shared between useSelect, useCombobox, Downshift.\nvar commonDropdownPropTypes = _extends({}, commonPropTypes, {\n getA11yStatusMessage: PropTypes.func,\n highlightedIndex: PropTypes.number,\n defaultHighlightedIndex: PropTypes.number,\n initialHighlightedIndex: PropTypes.number,\n isOpen: PropTypes.bool,\n defaultIsOpen: PropTypes.bool,\n initialIsOpen: PropTypes.bool,\n selectedItem: PropTypes.any,\n initialSelectedItem: PropTypes.any,\n defaultSelectedItem: PropTypes.any,\n id: PropTypes.string,\n labelId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func,\n toggleButtonId: PropTypes.string,\n onSelectedItemChange: PropTypes.func,\n onHighlightedIndexChange: PropTypes.func,\n onStateChange: PropTypes.func,\n onIsOpenChange: PropTypes.func,\n scrollIntoView: PropTypes.func\n});\n\nfunction downshiftCommonReducer(state, action, stateChangeTypes) {\n var type = action.type,\n props = action.props;\n var changes;\n switch (type) {\n case stateChangeTypes.ItemMouseMove:\n changes = {\n highlightedIndex: action.disabled ? -1 : action.index\n };\n break;\n case stateChangeTypes.MenuMouseLeave:\n changes = {\n highlightedIndex: -1\n };\n break;\n case stateChangeTypes.ToggleButtonClick:\n case stateChangeTypes.FunctionToggleMenu:\n changes = {\n isOpen: !state.isOpen,\n highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n case stateChangeTypes.FunctionOpenMenu:\n changes = {\n isOpen: true,\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n case stateChangeTypes.FunctionCloseMenu:\n changes = {\n isOpen: false\n };\n break;\n case stateChangeTypes.FunctionSetHighlightedIndex:\n changes = {\n highlightedIndex: props.isItemDisabled(props.items[action.highlightedIndex], action.highlightedIndex) ? -1 : action.highlightedIndex\n };\n break;\n case stateChangeTypes.FunctionSetInputValue:\n changes = {\n inputValue: action.inputValue\n };\n break;\n case stateChangeTypes.FunctionReset:\n changes = {\n highlightedIndex: getDefaultHighlightedIndex(props),\n isOpen: getDefaultValue$1(props, 'isOpen'),\n selectedItem: getDefaultValue$1(props, 'selectedItem'),\n inputValue: getDefaultValue$1(props, 'inputValue')\n };\n break;\n default:\n throw new Error('Reducer called without proper action type.');\n }\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\nfunction getItemIndexByCharacterKey(_a) {\n var keysSoFar = _a.keysSoFar, highlightedIndex = _a.highlightedIndex, items = _a.items, itemToString = _a.itemToString, isItemDisabled = _a.isItemDisabled;\n var lowerCasedKeysSoFar = keysSoFar.toLowerCase();\n for (var index = 0; index < items.length; index++) {\n // if we already have a search query in progress, we also consider the current highlighted item.\n var offsetIndex = (index + highlightedIndex + (keysSoFar.length < 2 ? 1 : 0)) % items.length;\n var item = items[offsetIndex];\n if (item !== undefined &&\n itemToString(item).toLowerCase().startsWith(lowerCasedKeysSoFar) &&\n !isItemDisabled(item, offsetIndex)) {\n return offsetIndex;\n }\n }\n return highlightedIndex;\n}\nvar propTypes$2 = __assign(__assign({}, commonDropdownPropTypes), { items: PropTypes.array.isRequired, isItemDisabled: PropTypes.func });\nvar defaultProps$2 = __assign(__assign({}, defaultProps$3), { isItemDisabled: function () {\n return false;\n } });\n// eslint-disable-next-line import/no-mutable-exports\nvar validatePropTypes$2 = noop;\n/* istanbul ignore next */\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes$2 = function (options, caller) {\n PropTypes.checkPropTypes(propTypes$2, options, 'prop', caller.name);\n };\n}\n\nvar ToggleButtonClick$1 = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 0;\nvar ToggleButtonKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_down__' : 1;\nvar ToggleButtonKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_up__' : 2;\nvar ToggleButtonKeyDownCharacter = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_character__' : 3;\nvar ToggleButtonKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_escape__' : 4;\nvar ToggleButtonKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_home__' : 5;\nvar ToggleButtonKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_end__' : 6;\nvar ToggleButtonKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_enter__' : 7;\nvar ToggleButtonKeyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_space_button__' : 8;\nvar ToggleButtonKeyDownPageUp = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_page_up__' : 9;\nvar ToggleButtonKeyDownPageDown = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_page_down__' : 10;\nvar ToggleButtonBlur = process.env.NODE_ENV !== \"production\" ? '__togglebutton_blur__' : 11;\nvar MenuMouseLeave$1 = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 12;\nvar ItemMouseMove$1 = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 13;\nvar ItemClick$1 = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 14;\nvar FunctionToggleMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 15;\nvar FunctionOpenMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 16;\nvar FunctionCloseMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 17;\nvar FunctionSetHighlightedIndex$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 18;\nvar FunctionSelectItem$1 = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 19;\nvar FunctionSetInputValue$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 20;\nvar FunctionReset$2 = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 21;\n\nvar stateChangeTypes$2 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n FunctionCloseMenu: FunctionCloseMenu$1,\n FunctionOpenMenu: FunctionOpenMenu$1,\n FunctionReset: FunctionReset$2,\n FunctionSelectItem: FunctionSelectItem$1,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex$1,\n FunctionSetInputValue: FunctionSetInputValue$1,\n FunctionToggleMenu: FunctionToggleMenu$1,\n ItemClick: ItemClick$1,\n ItemMouseMove: ItemMouseMove$1,\n MenuMouseLeave: MenuMouseLeave$1,\n ToggleButtonBlur: ToggleButtonBlur,\n ToggleButtonClick: ToggleButtonClick$1,\n ToggleButtonKeyDownArrowDown: ToggleButtonKeyDownArrowDown,\n ToggleButtonKeyDownArrowUp: ToggleButtonKeyDownArrowUp,\n ToggleButtonKeyDownCharacter: ToggleButtonKeyDownCharacter,\n ToggleButtonKeyDownEnd: ToggleButtonKeyDownEnd,\n ToggleButtonKeyDownEnter: ToggleButtonKeyDownEnter,\n ToggleButtonKeyDownEscape: ToggleButtonKeyDownEscape,\n ToggleButtonKeyDownHome: ToggleButtonKeyDownHome,\n ToggleButtonKeyDownPageDown: ToggleButtonKeyDownPageDown,\n ToggleButtonKeyDownPageUp: ToggleButtonKeyDownPageUp,\n ToggleButtonKeyDownSpaceButton: ToggleButtonKeyDownSpaceButton\n});\n\n/* eslint-disable complexity */\nfunction downshiftSelectReducer(state, action) {\n var _props$items;\n var type = action.type,\n props = action.props,\n altKey = action.altKey;\n var changes;\n switch (type) {\n case ItemClick$1:\n changes = {\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultHighlightedIndex(props),\n selectedItem: props.items[action.index]\n };\n break;\n case ToggleButtonKeyDownCharacter:\n {\n var lowercasedKey = action.key;\n var inputValue = \"\" + state.inputValue + lowercasedKey;\n var prevHighlightedIndex = !state.isOpen && state.selectedItem ? props.items.findIndex(function (item) {\n return props.itemToKey(item) === props.itemToKey(state.selectedItem);\n }) : state.highlightedIndex;\n var highlightedIndex = getItemIndexByCharacterKey({\n keysSoFar: inputValue,\n highlightedIndex: prevHighlightedIndex,\n items: props.items,\n itemToString: props.itemToString,\n isItemDisabled: props.isItemDisabled\n });\n changes = {\n inputValue: inputValue,\n highlightedIndex: highlightedIndex,\n isOpen: true\n };\n }\n break;\n case ToggleButtonKeyDownArrowDown:\n {\n var _highlightedIndex = state.isOpen ? getHighlightedIndex(state.highlightedIndex, 1, props.items, props.isItemDisabled) : altKey && state.selectedItem == null ? -1 : getHighlightedIndexOnOpen(props, state, 1);\n changes = {\n highlightedIndex: _highlightedIndex,\n isOpen: true\n };\n }\n break;\n case ToggleButtonKeyDownArrowUp:\n if (state.isOpen && altKey) {\n changes = getChangesOnSelection(props, state.highlightedIndex, false);\n } else {\n var _highlightedIndex2 = state.isOpen ? getHighlightedIndex(state.highlightedIndex, -1, props.items, props.isItemDisabled) : getHighlightedIndexOnOpen(props, state, -1);\n changes = {\n highlightedIndex: _highlightedIndex2,\n isOpen: true\n };\n }\n break;\n // only triggered when menu is open.\n case ToggleButtonKeyDownEnter:\n case ToggleButtonKeyDownSpaceButton:\n changes = getChangesOnSelection(props, state.highlightedIndex, false);\n break;\n case ToggleButtonKeyDownHome:\n changes = {\n highlightedIndex: getNonDisabledIndex(0, false, props.items, props.isItemDisabled),\n isOpen: true\n };\n break;\n case ToggleButtonKeyDownEnd:\n changes = {\n highlightedIndex: getNonDisabledIndex(props.items.length - 1, true, props.items, props.isItemDisabled),\n isOpen: true\n };\n break;\n case ToggleButtonKeyDownPageUp:\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, -10, props.items, props.isItemDisabled)\n };\n break;\n case ToggleButtonKeyDownPageDown:\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, 10, props.items, props.isItemDisabled)\n };\n break;\n case ToggleButtonKeyDownEscape:\n changes = {\n isOpen: false,\n highlightedIndex: -1\n };\n break;\n case ToggleButtonBlur:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, state.highlightedIndex >= 0 && ((_props$items = props.items) == null ? void 0 : _props$items.length) && {\n selectedItem: props.items[state.highlightedIndex]\n });\n break;\n case FunctionSelectItem$1:\n changes = {\n selectedItem: action.selectedItem\n };\n break;\n default:\n return downshiftCommonReducer(state, action, stateChangeTypes$2);\n }\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\nvar _excluded$2 = [\"onClick\"],\n _excluded2$2 = [\"onMouseLeave\", \"refKey\", \"ref\"],\n _excluded3$1 = [\"onBlur\", \"onClick\", \"onPress\", \"onKeyDown\", \"refKey\", \"ref\"],\n _excluded4$1 = [\"item\", \"index\", \"onMouseMove\", \"onClick\", \"onMouseDown\", \"onPress\", \"refKey\", \"disabled\", \"ref\"];\nuseSelect.stateChangeTypes = stateChangeTypes$2;\nfunction useSelect(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n validatePropTypes$2(userProps, useSelect);\n // Props defaults and destructuring.\n var props = _extends({}, defaultProps$2, userProps);\n var scrollIntoView = props.scrollIntoView,\n environment = props.environment,\n getA11yStatusMessage = props.getA11yStatusMessage;\n // Initial state depending on controlled props.\n var _useControlledReducer = useControlledReducer$1(downshiftSelectReducer, props, getInitialState$2, isDropdownsStateEqual),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n var isOpen = state.isOpen,\n highlightedIndex = state.highlightedIndex,\n selectedItem = state.selectedItem,\n inputValue = state.inputValue;\n // Element efs.\n var toggleButtonRef = useRef(null);\n var menuRef = useRef(null);\n var itemRefs = useRef({});\n\n // used to keep the inputValue clearTimeout object between renders.\n var clearTimeoutRef = useRef(null);\n // prevent id re-generation between renders.\n var elementIds = useElementIds(props);\n // utility callback to get item element.\n var latest = useLatestRef({\n state: state,\n props: props\n });\n\n // Some utils.\n var getItemNodeFromIndex = useCallback(function (index) {\n return itemRefs.current[elementIds.getItemId(index)];\n }, [elementIds]);\n\n // Effects.\n // Adds an a11y aria live status message if getA11yStatusMessage is passed.\n useA11yMessageStatus(getA11yStatusMessage, state, [isOpen, highlightedIndex, selectedItem, inputValue], environment);\n // Scroll on highlighted item if change comes from keyboard.\n var shouldScrollRef = useScrollIntoView({\n menuElement: menuRef.current,\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n itemRefs: itemRefs,\n scrollIntoView: scrollIntoView,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n // Sets cleanup for the keysSoFar callback, debounded after 500ms.\n useEffect(function () {\n // init the clean function here as we need access to dispatch.\n clearTimeoutRef.current = debounce(function (outerDispatch) {\n outerDispatch({\n type: FunctionSetInputValue$1,\n inputValue: ''\n });\n }, 500);\n\n // Cancel any pending debounced calls on mount\n return function () {\n clearTimeoutRef.current.cancel();\n };\n }, []);\n // Invokes the keysSoFar callback set up above.\n useEffect(function () {\n if (!inputValue) {\n return;\n }\n clearTimeoutRef.current(dispatch);\n }, [dispatch, inputValue]);\n useControlPropsValidator({\n props: props,\n state: state\n });\n // Focus the toggle button on first render if required.\n useEffect(function () {\n var focusOnOpen = getInitialValue$1(props, 'isOpen');\n if (focusOnOpen && toggleButtonRef.current) {\n toggleButtonRef.current.focus();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, useCallback(function handleBlur() {\n if (latest.current.state.isOpen) {\n dispatch({\n type: ToggleButtonBlur\n });\n }\n }, [dispatch, latest]), useMemo(function () {\n return [menuRef, toggleButtonRef];\n }, [menuRef.current, toggleButtonRef.current]));\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps');\n // Reset itemRefs on close.\n useEffect(function () {\n if (!isOpen) {\n itemRefs.current = {};\n }\n }, [isOpen]);\n\n // Event handler functions.\n var toggleButtonKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowDown,\n altKey: event.altKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowUp,\n altKey: event.altKey\n });\n },\n Home: function Home(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownHome\n });\n },\n End: function End(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownEnd\n });\n },\n Escape: function Escape() {\n if (latest.current.state.isOpen) {\n dispatch({\n type: ToggleButtonKeyDownEscape\n });\n }\n },\n Enter: function Enter(event) {\n event.preventDefault();\n dispatch({\n type: latest.current.state.isOpen ? ToggleButtonKeyDownEnter : ToggleButtonClick$1\n });\n },\n PageUp: function PageUp(event) {\n if (latest.current.state.isOpen) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownPageUp\n });\n }\n },\n PageDown: function PageDown(event) {\n if (latest.current.state.isOpen) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownPageDown\n });\n }\n },\n ' ': function _(event) {\n event.preventDefault();\n var currentState = latest.current.state;\n if (!currentState.isOpen) {\n dispatch({\n type: ToggleButtonClick$1\n });\n return;\n }\n if (currentState.inputValue) {\n dispatch({\n type: ToggleButtonKeyDownCharacter,\n key: ' '\n });\n } else {\n dispatch({\n type: ToggleButtonKeyDownSpaceButton\n });\n }\n }\n };\n }, [dispatch, latest]);\n\n // Action functions.\n var toggleMenu = useCallback(function () {\n dispatch({\n type: FunctionToggleMenu$1\n });\n }, [dispatch]);\n var closeMenu = useCallback(function () {\n dispatch({\n type: FunctionCloseMenu$1\n });\n }, [dispatch]);\n var openMenu = useCallback(function () {\n dispatch({\n type: FunctionOpenMenu$1\n });\n }, [dispatch]);\n var setHighlightedIndex = useCallback(function (newHighlightedIndex) {\n dispatch({\n type: FunctionSetHighlightedIndex$1,\n highlightedIndex: newHighlightedIndex\n });\n }, [dispatch]);\n var selectItem = useCallback(function (newSelectedItem) {\n dispatch({\n type: FunctionSelectItem$1,\n selectedItem: newSelectedItem\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset$2\n });\n }, [dispatch]);\n var setInputValue = useCallback(function (newInputValue) {\n dispatch({\n type: FunctionSetInputValue$1,\n inputValue: newInputValue\n });\n }, [dispatch]);\n // Getter functions.\n var getLabelProps = useCallback(function (_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n onClick = _ref.onClick,\n labelProps = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n var labelHandleClick = function labelHandleClick() {\n var _toggleButtonRef$curr;\n (_toggleButtonRef$curr = toggleButtonRef.current) == null || _toggleButtonRef$curr.focus();\n };\n return _extends({\n id: elementIds.labelId,\n htmlFor: elementIds.toggleButtonId,\n onClick: callAllEventHandlers(onClick, labelHandleClick)\n }, labelProps);\n }, [elementIds]);\n var getMenuProps = useCallback(function (_temp2, _temp3) {\n var _extends2;\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n onMouseLeave = _ref2.onMouseLeave,\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? 'ref' : _ref2$refKey,\n ref = _ref2.ref,\n rest = _objectWithoutPropertiesLoose(_ref2, _excluded2$2);\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n _ref3$suppressRefErro = _ref3.suppressRefError,\n suppressRefError = _ref3$suppressRefErro === void 0 ? false : _ref3$suppressRefErro;\n var menuHandleMouseLeave = function menuHandleMouseLeave() {\n dispatch({\n type: MenuMouseLeave$1\n });\n };\n setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n menuRef.current = menuNode;\n }), _extends2.id = elementIds.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = rest && rest['aria-label'] ? undefined : \"\" + elementIds.labelId, _extends2.onMouseLeave = callAllEventHandlers(onMouseLeave, menuHandleMouseLeave), _extends2), rest);\n }, [dispatch, setGetterPropCallInfo, elementIds]);\n var getToggleButtonProps = useCallback(function (_temp4, _temp5) {\n var _extends3;\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n onBlur = _ref4.onBlur,\n onClick = _ref4.onClick;\n _ref4.onPress;\n var onKeyDown = _ref4.onKeyDown,\n _ref4$refKey = _ref4.refKey,\n refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,\n ref = _ref4.ref,\n rest = _objectWithoutPropertiesLoose(_ref4, _excluded3$1);\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n _ref5$suppressRefErro = _ref5.suppressRefError,\n suppressRefError = _ref5$suppressRefErro === void 0 ? false : _ref5$suppressRefErro;\n var latestState = latest.current.state;\n var toggleButtonHandleClick = function toggleButtonHandleClick() {\n dispatch({\n type: ToggleButtonClick$1\n });\n };\n var toggleButtonHandleBlur = function toggleButtonHandleBlur() {\n if (latestState.isOpen && !mouseAndTouchTrackers.isMouseDown) {\n dispatch({\n type: ToggleButtonBlur\n });\n }\n };\n var toggleButtonHandleKeyDown = function toggleButtonHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n if (key && toggleButtonKeyDownHandlers[key]) {\n toggleButtonKeyDownHandlers[key](event);\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: ToggleButtonKeyDownCharacter,\n key: key\n });\n }\n };\n var toggleProps = _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends3['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends3['aria-controls'] = elementIds.menuId, _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-labelledby'] = rest && rest['aria-label'] ? undefined : \"\" + elementIds.labelId, _extends3.id = elementIds.toggleButtonId, _extends3.role = 'combobox', _extends3.tabIndex = 0, _extends3.onBlur = callAllEventHandlers(onBlur, toggleButtonHandleBlur), _extends3), rest);\n if (!rest.disabled) {\n /* istanbul ignore if (react-native) */\n {\n toggleProps.onClick = callAllEventHandlers(onClick, toggleButtonHandleClick);\n toggleProps.onKeyDown = callAllEventHandlers(onKeyDown, toggleButtonHandleKeyDown);\n }\n }\n setGetterPropCallInfo('getToggleButtonProps', suppressRefError, refKey, toggleButtonRef);\n return toggleProps;\n }, [dispatch, elementIds, latest, mouseAndTouchTrackers, setGetterPropCallInfo, toggleButtonKeyDownHandlers]);\n var getItemProps = useCallback(function (_temp6) {\n var _extends4;\n var _ref6 = _temp6 === void 0 ? {} : _temp6,\n itemProp = _ref6.item,\n indexProp = _ref6.index,\n onMouseMove = _ref6.onMouseMove,\n onClick = _ref6.onClick,\n onMouseDown = _ref6.onMouseDown;\n _ref6.onPress;\n var _ref6$refKey = _ref6.refKey,\n refKey = _ref6$refKey === void 0 ? 'ref' : _ref6$refKey,\n disabledProp = _ref6.disabled,\n ref = _ref6.ref,\n rest = _objectWithoutPropertiesLoose(_ref6, _excluded4$1);\n if (disabledProp !== undefined) {\n console.warn('Passing \"disabled\" as an argument to getItemProps is not supported anymore. Please use the isItemDisabled prop from useSelect.');\n }\n var _latest$current = latest.current,\n latestState = _latest$current.state,\n latestProps = _latest$current.props;\n var _getItemAndIndex = getItemAndIndex(itemProp, indexProp, latestProps.items, 'Pass either item or index to getItemProps!'),\n item = _getItemAndIndex[0],\n index = _getItemAndIndex[1];\n var disabled = latestProps.isItemDisabled(item, index);\n var itemHandleMouseMove = function itemHandleMouseMove() {\n if (mouseAndTouchTrackers.isTouchEnd || index === latestState.highlightedIndex) {\n return;\n }\n shouldScrollRef.current = false;\n dispatch({\n type: ItemMouseMove$1,\n index: index,\n disabled: disabled\n });\n };\n var itemHandleClick = function itemHandleClick() {\n dispatch({\n type: ItemClick$1,\n index: index\n });\n };\n var itemHandleMouseDown = function itemHandleMouseDown(e) {\n return e.preventDefault();\n }; // keep focus on the toggle after item click select.\n\n var itemProps = _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (itemNode) {\n if (itemNode) {\n itemRefs.current[elementIds.getItemId(index)] = itemNode;\n }\n }), _extends4['aria-disabled'] = disabled, _extends4['aria-selected'] = item === latestState.selectedItem, _extends4.id = elementIds.getItemId(index), _extends4.role = 'option', _extends4), rest);\n if (!disabled) {\n /* istanbul ignore next (react-native) */\n {\n itemProps.onClick = callAllEventHandlers(onClick, itemHandleClick);\n }\n }\n itemProps.onMouseMove = callAllEventHandlers(onMouseMove, itemHandleMouseMove);\n itemProps.onMouseDown = callAllEventHandlers(onMouseDown, itemHandleMouseDown);\n return itemProps;\n }, [latest, elementIds, mouseAndTouchTrackers, shouldScrollRef, dispatch]);\n return {\n // prop getters.\n getToggleButtonProps: getToggleButtonProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getItemProps: getItemProps,\n // actions.\n toggleMenu: toggleMenu,\n openMenu: openMenu,\n closeMenu: closeMenu,\n setHighlightedIndex: setHighlightedIndex,\n selectItem: selectItem,\n reset: reset,\n setInputValue: setInputValue,\n // state.\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nvar InputKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__input_keydown_arrow_down__' : 0;\nvar InputKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__input_keydown_arrow_up__' : 1;\nvar InputKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__input_keydown_escape__' : 2;\nvar InputKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__input_keydown_home__' : 3;\nvar InputKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__input_keydown_end__' : 4;\nvar InputKeyDownPageUp = process.env.NODE_ENV !== \"production\" ? '__input_keydown_page_up__' : 5;\nvar InputKeyDownPageDown = process.env.NODE_ENV !== \"production\" ? '__input_keydown_page_down__' : 6;\nvar InputKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__input_keydown_enter__' : 7;\nvar InputChange = process.env.NODE_ENV !== \"production\" ? '__input_change__' : 8;\nvar InputBlur = process.env.NODE_ENV !== \"production\" ? '__input_blur__' : 9;\nvar InputClick = process.env.NODE_ENV !== \"production\" ? '__input_click__' : 10;\nvar MenuMouseLeave = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 11;\nvar ItemMouseMove = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 12;\nvar ItemClick = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 13;\nvar ToggleButtonClick = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 14;\nvar FunctionToggleMenu = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 15;\nvar FunctionOpenMenu = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 16;\nvar FunctionCloseMenu = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 17;\nvar FunctionSetHighlightedIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 18;\nvar FunctionSelectItem = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 19;\nvar FunctionSetInputValue = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 20;\nvar FunctionReset$1 = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 21;\nvar ControlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__controlled_prop_updated_selected_item__' : 22;\n\nvar stateChangeTypes$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ControlledPropUpdatedSelectedItem: ControlledPropUpdatedSelectedItem,\n FunctionCloseMenu: FunctionCloseMenu,\n FunctionOpenMenu: FunctionOpenMenu,\n FunctionReset: FunctionReset$1,\n FunctionSelectItem: FunctionSelectItem,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex,\n FunctionSetInputValue: FunctionSetInputValue,\n FunctionToggleMenu: FunctionToggleMenu,\n InputBlur: InputBlur,\n InputChange: InputChange,\n InputClick: InputClick,\n InputKeyDownArrowDown: InputKeyDownArrowDown,\n InputKeyDownArrowUp: InputKeyDownArrowUp,\n InputKeyDownEnd: InputKeyDownEnd,\n InputKeyDownEnter: InputKeyDownEnter,\n InputKeyDownEscape: InputKeyDownEscape,\n InputKeyDownHome: InputKeyDownHome,\n InputKeyDownPageDown: InputKeyDownPageDown,\n InputKeyDownPageUp: InputKeyDownPageUp,\n ItemClick: ItemClick,\n ItemMouseMove: ItemMouseMove,\n MenuMouseLeave: MenuMouseLeave,\n ToggleButtonClick: ToggleButtonClick\n});\n\nfunction getInitialState$1(props) {\n var initialState = getInitialState$2(props);\n var selectedItem = initialState.selectedItem;\n var inputValue = initialState.inputValue;\n if (inputValue === '' && selectedItem && props.defaultInputValue === undefined && props.initialInputValue === undefined && props.inputValue === undefined) {\n inputValue = props.itemToString(selectedItem);\n }\n return _extends({}, initialState, {\n inputValue: inputValue\n });\n}\nvar propTypes$1 = _extends({}, commonDropdownPropTypes, {\n items: PropTypes.array.isRequired,\n isItemDisabled: PropTypes.func,\n inputValue: PropTypes.string,\n defaultInputValue: PropTypes.string,\n initialInputValue: PropTypes.string,\n inputId: PropTypes.string,\n onInputValueChange: PropTypes.func\n});\n\n/**\n * The useCombobox version of useControlledReducer, which also\n * checks if the controlled prop selectedItem changed between\n * renders. If so, it will also update inputValue with its\n * string equivalent. It uses the common useEnhancedReducer to\n * compute the rest of the state.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} props The hook props, also passed to createInitialState.\n * @param {Function} createInitialState Function that returns the initial state.\n * @param {Function} isStateEqual Function that checks if a previous state is equal to the next.\n * @returns {Array} An array with the state and an action dispatcher.\n */\nfunction useControlledReducer(reducer, props, createInitialState, isStateEqual) {\n var previousSelectedItemRef = useRef();\n var _useEnhancedReducer = useEnhancedReducer(reducer, props, createInitialState, isStateEqual),\n state = _useEnhancedReducer[0],\n dispatch = _useEnhancedReducer[1];\n var isInitialMount = useIsInitialMount();\n useEffect(function () {\n if (!isControlledProp(props, 'selectedItem')) {\n return;\n }\n if (!isInitialMount // on first mount we already have the proper inputValue for a initial selected item.\n ) {\n var shouldCallDispatch = props.itemToKey(props.selectedItem) !== props.itemToKey(previousSelectedItemRef.current);\n if (shouldCallDispatch) {\n dispatch({\n type: ControlledPropUpdatedSelectedItem,\n inputValue: props.itemToString(props.selectedItem)\n });\n }\n }\n previousSelectedItemRef.current = state.selectedItem === previousSelectedItemRef.current ? props.selectedItem : state.selectedItem;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.selectedItem, props.selectedItem]);\n return [getState(state, props), dispatch];\n}\n\n// eslint-disable-next-line import/no-mutable-exports\nvar validatePropTypes$1 = noop;\n/* istanbul ignore next */\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes$1 = function validatePropTypes(options, caller) {\n PropTypes.checkPropTypes(propTypes$1, options, 'prop', caller.name);\n };\n}\nvar defaultProps$1 = _extends({}, defaultProps$3, {\n isItemDisabled: function isItemDisabled() {\n return false;\n }\n});\n\n/* eslint-disable complexity */\nfunction downshiftUseComboboxReducer(state, action) {\n var _props$items;\n var type = action.type,\n props = action.props,\n altKey = action.altKey;\n var changes;\n switch (type) {\n case ItemClick:\n changes = {\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultHighlightedIndex(props),\n selectedItem: props.items[action.index],\n inputValue: props.itemToString(props.items[action.index])\n };\n break;\n case InputKeyDownArrowDown:\n if (state.isOpen) {\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, 1, props.items, props.isItemDisabled, true)\n };\n } else {\n changes = {\n highlightedIndex: altKey && state.selectedItem == null ? -1 : getHighlightedIndexOnOpen(props, state, 1),\n isOpen: props.items.length >= 0\n };\n }\n break;\n case InputKeyDownArrowUp:\n if (state.isOpen) {\n if (altKey) {\n changes = getChangesOnSelection(props, state.highlightedIndex);\n } else {\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, -1, props.items, props.isItemDisabled, true)\n };\n }\n } else {\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, -1),\n isOpen: props.items.length >= 0\n };\n }\n break;\n case InputKeyDownEnter:\n changes = getChangesOnSelection(props, state.highlightedIndex);\n break;\n case InputKeyDownEscape:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, !state.isOpen && {\n selectedItem: null,\n inputValue: ''\n });\n break;\n case InputKeyDownPageUp:\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, -10, props.items, props.isItemDisabled, true)\n };\n break;\n case InputKeyDownPageDown:\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, 10, props.items, props.isItemDisabled, true)\n };\n break;\n case InputKeyDownHome:\n changes = {\n highlightedIndex: getNonDisabledIndex(0, false, props.items, props.isItemDisabled)\n };\n break;\n case InputKeyDownEnd:\n changes = {\n highlightedIndex: getNonDisabledIndex(props.items.length - 1, true, props.items, props.isItemDisabled)\n };\n break;\n case InputBlur:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, state.highlightedIndex >= 0 && ((_props$items = props.items) == null ? void 0 : _props$items.length) && action.selectItem && {\n selectedItem: props.items[state.highlightedIndex],\n inputValue: props.itemToString(props.items[state.highlightedIndex])\n });\n break;\n case InputChange:\n changes = {\n isOpen: true,\n highlightedIndex: getDefaultHighlightedIndex(props),\n inputValue: action.inputValue\n };\n break;\n case InputClick:\n changes = {\n isOpen: !state.isOpen,\n highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n case FunctionSelectItem:\n changes = {\n selectedItem: action.selectedItem,\n inputValue: props.itemToString(action.selectedItem)\n };\n break;\n case ControlledPropUpdatedSelectedItem:\n changes = {\n inputValue: action.inputValue\n };\n break;\n default:\n return downshiftCommonReducer(state, action, stateChangeTypes$1);\n }\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\nvar _excluded$1 = [\"onMouseLeave\", \"refKey\", \"ref\"],\n _excluded2$1 = [\"item\", \"index\", \"refKey\", \"ref\", \"onMouseMove\", \"onMouseDown\", \"onClick\", \"onPress\", \"disabled\"],\n _excluded3 = [\"onClick\", \"onPress\", \"refKey\", \"ref\"],\n _excluded4 = [\"onKeyDown\", \"onChange\", \"onInput\", \"onBlur\", \"onChangeText\", \"onClick\", \"refKey\", \"ref\"];\nuseCombobox.stateChangeTypes = stateChangeTypes$1;\nfunction useCombobox(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n validatePropTypes$1(userProps, useCombobox);\n // Props defaults and destructuring.\n var props = _extends({}, defaultProps$1, userProps);\n var items = props.items,\n scrollIntoView = props.scrollIntoView,\n environment = props.environment,\n getA11yStatusMessage = props.getA11yStatusMessage;\n // Initial state depending on controlled props.\n var _useControlledReducer = useControlledReducer(downshiftUseComboboxReducer, props, getInitialState$1, isDropdownsStateEqual),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n var isOpen = state.isOpen,\n highlightedIndex = state.highlightedIndex,\n selectedItem = state.selectedItem,\n inputValue = state.inputValue;\n\n // Element refs.\n var menuRef = useRef(null);\n var itemRefs = useRef({});\n var inputRef = useRef(null);\n var toggleButtonRef = useRef(null);\n var isInitialMount = useIsInitialMount();\n\n // prevent id re-generation between renders.\n var elementIds = useElementIds(props);\n // used to keep track of how many items we had on previous cycle.\n var previousResultCountRef = useRef();\n // utility callback to get item element.\n var latest = useLatestRef({\n state: state,\n props: props\n });\n var getItemNodeFromIndex = useCallback(function (index) {\n return itemRefs.current[elementIds.getItemId(index)];\n }, [elementIds]);\n\n // Effects.\n // Adds an a11y aria live status message if getA11yStatusMessage is passed.\n useA11yMessageStatus(getA11yStatusMessage, state, [isOpen, highlightedIndex, selectedItem, inputValue], environment);\n // Scroll on highlighted item if change comes from keyboard.\n var shouldScrollRef = useScrollIntoView({\n menuElement: menuRef.current,\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n itemRefs: itemRefs,\n scrollIntoView: scrollIntoView,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n useControlPropsValidator({\n props: props,\n state: state\n });\n // Focus the input on first render if required.\n useEffect(function () {\n var focusOnOpen = getInitialValue$1(props, 'isOpen');\n if (focusOnOpen && inputRef.current) {\n inputRef.current.focus();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n useEffect(function () {\n if (!isInitialMount) {\n previousResultCountRef.current = items.length;\n }\n });\n var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, useCallback(function handleBlur() {\n if (latest.current.state.isOpen) {\n dispatch({\n type: InputBlur,\n selectItem: false\n });\n }\n }, [dispatch, latest]), useMemo(function () {\n return [menuRef, toggleButtonRef, inputRef];\n }, [menuRef.current, toggleButtonRef.current, inputRef.current]));\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getMenuProps');\n // Reset itemRefs on close.\n useEffect(function () {\n if (!isOpen) {\n itemRefs.current = {};\n }\n }, [isOpen]);\n // Reset itemRefs on close.\n useEffect(function () {\n var _inputRef$current;\n if (!isOpen || !(environment != null && environment.document) || !(inputRef != null && (_inputRef$current = inputRef.current) != null && _inputRef$current.focus)) {\n return;\n }\n if (environment.document.activeElement !== inputRef.current) {\n inputRef.current.focus();\n }\n }, [isOpen, environment]);\n\n /* Event handler functions */\n var inputKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowDown,\n altKey: event.altKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowUp,\n altKey: event.altKey\n });\n },\n Home: function Home(event) {\n if (!latest.current.state.isOpen) {\n return;\n }\n event.preventDefault();\n dispatch({\n type: InputKeyDownHome\n });\n },\n End: function End(event) {\n if (!latest.current.state.isOpen) {\n return;\n }\n event.preventDefault();\n dispatch({\n type: InputKeyDownEnd\n });\n },\n Escape: function Escape(event) {\n var latestState = latest.current.state;\n if (latestState.isOpen || latestState.inputValue || latestState.selectedItem || latestState.highlightedIndex > -1) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownEscape\n });\n }\n },\n Enter: function Enter(event) {\n var latestState = latest.current.state;\n // if closed or no highlighted index, do nothing.\n if (!latestState.isOpen || event.which === 229 // if IME composing, wait for next Enter keydown event.\n ) {\n return;\n }\n event.preventDefault();\n dispatch({\n type: InputKeyDownEnter\n });\n },\n PageUp: function PageUp(event) {\n if (latest.current.state.isOpen) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownPageUp\n });\n }\n },\n PageDown: function PageDown(event) {\n if (latest.current.state.isOpen) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownPageDown\n });\n }\n }\n };\n }, [dispatch, latest]);\n\n // Getter props.\n var getLabelProps = useCallback(function (labelProps) {\n return _extends({\n id: elementIds.labelId,\n htmlFor: elementIds.inputId\n }, labelProps);\n }, [elementIds]);\n var getMenuProps = useCallback(function (_temp, _temp2) {\n var _extends2;\n var _ref = _temp === void 0 ? {} : _temp,\n onMouseLeave = _ref.onMouseLeave,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n menuRef.current = menuNode;\n }), _extends2.id = elementIds.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = rest && rest['aria-label'] ? undefined : \"\" + elementIds.labelId, _extends2.onMouseLeave = callAllEventHandlers(onMouseLeave, function () {\n dispatch({\n type: MenuMouseLeave\n });\n }), _extends2), rest);\n }, [dispatch, setGetterPropCallInfo, elementIds]);\n var getItemProps = useCallback(function (_temp3) {\n var _extends3, _ref4;\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n itemProp = _ref3.item,\n indexProp = _ref3.index,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n onMouseMove = _ref3.onMouseMove,\n onMouseDown = _ref3.onMouseDown,\n onClick = _ref3.onClick;\n _ref3.onPress;\n var disabledProp = _ref3.disabled,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded2$1);\n if (disabledProp !== undefined) {\n console.warn('Passing \"disabled\" as an argument to getItemProps is not supported anymore. Please use the isItemDisabled prop from useCombobox.');\n }\n var _latest$current = latest.current,\n latestProps = _latest$current.props,\n latestState = _latest$current.state;\n var _getItemAndIndex = getItemAndIndex(itemProp, indexProp, latestProps.items, 'Pass either item or index to getItemProps!'),\n item = _getItemAndIndex[0],\n index = _getItemAndIndex[1];\n var disabled = latestProps.isItemDisabled(item, index);\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n var itemHandleMouseMove = function itemHandleMouseMove() {\n if (mouseAndTouchTrackers.isTouchEnd || index === latestState.highlightedIndex) {\n return;\n }\n shouldScrollRef.current = false;\n dispatch({\n type: ItemMouseMove,\n index: index,\n disabled: disabled\n });\n };\n var itemHandleClick = function itemHandleClick() {\n dispatch({\n type: ItemClick,\n index: index\n });\n };\n var itemHandleMouseDown = function itemHandleMouseDown(e) {\n return e.preventDefault();\n }; // keep focus on the input after item click select.\n\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (itemNode) {\n if (itemNode) {\n itemRefs.current[elementIds.getItemId(index)] = itemNode;\n }\n }), _extends3['aria-disabled'] = disabled, _extends3['aria-selected'] = index === latestState.highlightedIndex, _extends3.id = elementIds.getItemId(index), _extends3.role = 'option', _extends3), !disabled && (_ref4 = {}, _ref4[onSelectKey] = callAllEventHandlers(customClickHandler, itemHandleClick), _ref4), {\n onMouseMove: callAllEventHandlers(onMouseMove, itemHandleMouseMove),\n onMouseDown: callAllEventHandlers(onMouseDown, itemHandleMouseDown)\n }, rest);\n }, [dispatch, elementIds, latest, mouseAndTouchTrackers, shouldScrollRef]);\n var getToggleButtonProps = useCallback(function (_temp4) {\n var _extends4;\n var _ref5 = _temp4 === void 0 ? {} : _temp4,\n onClick = _ref5.onClick;\n _ref5.onPress;\n var _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n rest = _objectWithoutPropertiesLoose(_ref5, _excluded3);\n var latestState = latest.current.state;\n var toggleButtonHandleClick = function toggleButtonHandleClick() {\n dispatch({\n type: ToggleButtonClick\n });\n };\n return _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends4['aria-controls'] = elementIds.menuId, _extends4['aria-expanded'] = latestState.isOpen, _extends4.id = elementIds.toggleButtonId, _extends4.tabIndex = -1, _extends4), !rest.disabled && _extends({}, {\n onClick: callAllEventHandlers(onClick, toggleButtonHandleClick)\n }), rest);\n }, [dispatch, latest, elementIds]);\n var getInputProps = useCallback(function (_temp5, _temp6) {\n var _extends5;\n var _ref6 = _temp5 === void 0 ? {} : _temp5,\n onKeyDown = _ref6.onKeyDown,\n onChange = _ref6.onChange,\n onInput = _ref6.onInput,\n onBlur = _ref6.onBlur;\n _ref6.onChangeText;\n var onClick = _ref6.onClick,\n _ref6$refKey = _ref6.refKey,\n refKey = _ref6$refKey === void 0 ? 'ref' : _ref6$refKey,\n ref = _ref6.ref,\n rest = _objectWithoutPropertiesLoose(_ref6, _excluded4);\n var _ref7 = _temp6 === void 0 ? {} : _temp6,\n _ref7$suppressRefErro = _ref7.suppressRefError,\n suppressRefError = _ref7$suppressRefErro === void 0 ? false : _ref7$suppressRefErro;\n setGetterPropCallInfo('getInputProps', suppressRefError, refKey, inputRef);\n var latestState = latest.current.state;\n var inputHandleKeyDown = function inputHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n if (key && inputKeyDownHandlers[key]) {\n inputKeyDownHandlers[key](event);\n }\n };\n var inputHandleChange = function inputHandleChange(event) {\n dispatch({\n type: InputChange,\n inputValue: event.target.value\n });\n };\n var inputHandleBlur = function inputHandleBlur(event) {\n /* istanbul ignore else */\n if (environment != null && environment.document && latestState.isOpen && !mouseAndTouchTrackers.isMouseDown) {\n var isBlurByTabChange = event.relatedTarget === null && environment.document.activeElement !== environment.document.body;\n dispatch({\n type: InputBlur,\n selectItem: !isBlurByTabChange\n });\n }\n };\n var inputHandleClick = function inputHandleClick() {\n dispatch({\n type: InputClick\n });\n };\n\n /* istanbul ignore next (preact) */\n var onChangeKey = 'onChange';\n var eventHandlers = {};\n if (!rest.disabled) {\n var _eventHandlers;\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, inputHandleBlur), _eventHandlers.onClick = callAllEventHandlers(onClick, inputHandleClick), _eventHandlers);\n }\n return _extends((_extends5 = {}, _extends5[refKey] = handleRefs(ref, function (inputNode) {\n inputRef.current = inputNode;\n }), _extends5['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIds.menuId, _extends5['aria-expanded'] = latestState.isOpen, _extends5['aria-labelledby'] = rest && rest['aria-label'] ? undefined : elementIds.labelId, _extends5.autoComplete = 'off', _extends5.id = elementIds.inputId, _extends5.role = 'combobox', _extends5.value = latestState.inputValue, _extends5), eventHandlers, rest);\n }, [dispatch, elementIds, environment, inputKeyDownHandlers, latest, mouseAndTouchTrackers, setGetterPropCallInfo]);\n\n // returns\n var toggleMenu = useCallback(function () {\n dispatch({\n type: FunctionToggleMenu\n });\n }, [dispatch]);\n var closeMenu = useCallback(function () {\n dispatch({\n type: FunctionCloseMenu\n });\n }, [dispatch]);\n var openMenu = useCallback(function () {\n dispatch({\n type: FunctionOpenMenu\n });\n }, [dispatch]);\n var setHighlightedIndex = useCallback(function (newHighlightedIndex) {\n dispatch({\n type: FunctionSetHighlightedIndex,\n highlightedIndex: newHighlightedIndex\n });\n }, [dispatch]);\n var selectItem = useCallback(function (newSelectedItem) {\n dispatch({\n type: FunctionSelectItem,\n selectedItem: newSelectedItem\n });\n }, [dispatch]);\n var setInputValue = useCallback(function (newInputValue) {\n dispatch({\n type: FunctionSetInputValue,\n inputValue: newInputValue\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset$1\n });\n }, [dispatch]);\n return {\n // prop getters.\n getItemProps: getItemProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getInputProps: getInputProps,\n getToggleButtonProps: getToggleButtonProps,\n // actions.\n toggleMenu: toggleMenu,\n openMenu: openMenu,\n closeMenu: closeMenu,\n setHighlightedIndex: setHighlightedIndex,\n setInputValue: setInputValue,\n selectItem: selectItem,\n reset: reset,\n // state.\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nvar defaultStateValues = {\n activeIndex: -1,\n selectedItems: []\n};\n\n/**\n * Returns the initial value for a state key in the following order:\n * 1. controlled prop, 2. initial prop, 3. default prop, 4. default\n * value from Downshift.\n *\n * @param {Object} props Props passed to the hook.\n * @param {string} propKey Props key to generate the value for.\n * @returns {any} The initial value for that prop.\n */\nfunction getInitialValue(props, propKey) {\n return getInitialValue$1(props, propKey, defaultStateValues);\n}\n\n/**\n * Returns the default value for a state key in the following order:\n * 1. controlled prop, 2. default prop, 3. default value from Downshift.\n *\n * @param {Object} props Props passed to the hook.\n * @param {string} propKey Props key to generate the value for.\n * @returns {any} The initial value for that prop.\n */\nfunction getDefaultValue(props, propKey) {\n return getDefaultValue$1(props, propKey, defaultStateValues);\n}\n\n/**\n * Gets the initial state based on the provided props. It uses initial, default\n * and controlled props related to state in order to compute the initial value.\n *\n * @param {Object} props Props passed to the hook.\n * @returns {Object} The initial state.\n */\nfunction getInitialState(props) {\n var activeIndex = getInitialValue(props, 'activeIndex');\n var selectedItems = getInitialValue(props, 'selectedItems');\n return {\n activeIndex: activeIndex,\n selectedItems: selectedItems\n };\n}\n\n/**\n * Returns true if dropdown keydown operation is permitted. Should not be\n * allowed on keydown with modifier keys (ctrl, alt, shift, meta), on\n * input element with text content that is either highlighted or selection\n * cursor is not at the starting position.\n *\n * @param {KeyboardEvent} event The event from keydown.\n * @returns {boolean} Whether the operation is allowed.\n */\nfunction isKeyDownOperationPermitted(event) {\n if (event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) {\n return false;\n }\n var element = event.target;\n if (element instanceof HTMLInputElement &&\n // if element is a text input\n element.value !== '' && (\n // and we have text in it\n // and cursor is either not at the start or is currently highlighting text.\n element.selectionStart !== 0 || element.selectionEnd !== 0)) {\n return false;\n }\n return true;\n}\n\n/**\n * Check if a state is equal for taglist, by comparing active index and selected items.\n * Used by useSelect and useCombobox.\n *\n * @param {Object} prevState\n * @param {Object} newState\n * @returns {boolean} Wheather the states are deeply equal.\n */\nfunction isStateEqual(prevState, newState) {\n return prevState.selectedItems === newState.selectedItems && prevState.activeIndex === newState.activeIndex;\n}\nvar propTypes = {\n stateReducer: commonPropTypes.stateReducer,\n itemToKey: commonPropTypes.itemToKey,\n environment: commonPropTypes.environment,\n selectedItems: PropTypes.array,\n initialSelectedItems: PropTypes.array,\n defaultSelectedItems: PropTypes.array,\n getA11yStatusMessage: PropTypes.func,\n activeIndex: PropTypes.number,\n initialActiveIndex: PropTypes.number,\n defaultActiveIndex: PropTypes.number,\n onActiveIndexChange: PropTypes.func,\n onSelectedItemsChange: PropTypes.func,\n keyNavigationNext: PropTypes.string,\n keyNavigationPrevious: PropTypes.string\n};\nvar defaultProps = {\n itemToKey: defaultProps$3.itemToKey,\n stateReducer: defaultProps$3.stateReducer,\n environment: defaultProps$3.environment,\n keyNavigationNext: 'ArrowRight',\n keyNavigationPrevious: 'ArrowLeft'\n};\n\n// eslint-disable-next-line import/no-mutable-exports\nvar validatePropTypes = noop;\n/* istanbul ignore next */\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes = function validatePropTypes(options, caller) {\n PropTypes.checkPropTypes(propTypes, options, 'prop', caller.name);\n };\n}\n\nvar SelectedItemClick = process.env.NODE_ENV !== \"production\" ? '__selected_item_click__' : 0;\nvar SelectedItemKeyDownDelete = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_delete__' : 1;\nvar SelectedItemKeyDownBackspace = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_backspace__' : 2;\nvar SelectedItemKeyDownNavigationNext = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_navigation_next__' : 3;\nvar SelectedItemKeyDownNavigationPrevious = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_navigation_previous__' : 4;\nvar DropdownKeyDownNavigationPrevious = process.env.NODE_ENV !== \"production\" ? '__dropdown_keydown_navigation_previous__' : 5;\nvar DropdownKeyDownBackspace = process.env.NODE_ENV !== \"production\" ? '__dropdown_keydown_backspace__' : 6;\nvar DropdownClick = process.env.NODE_ENV !== \"production\" ? '__dropdown_click__' : 7;\nvar FunctionAddSelectedItem = process.env.NODE_ENV !== \"production\" ? '__function_add_selected_item__' : 8;\nvar FunctionRemoveSelectedItem = process.env.NODE_ENV !== \"production\" ? '__function_remove_selected_item__' : 9;\nvar FunctionSetSelectedItems = process.env.NODE_ENV !== \"production\" ? '__function_set_selected_items__' : 10;\nvar FunctionSetActiveIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_active_index__' : 11;\nvar FunctionReset = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 12;\n\nvar stateChangeTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n DropdownClick: DropdownClick,\n DropdownKeyDownBackspace: DropdownKeyDownBackspace,\n DropdownKeyDownNavigationPrevious: DropdownKeyDownNavigationPrevious,\n FunctionAddSelectedItem: FunctionAddSelectedItem,\n FunctionRemoveSelectedItem: FunctionRemoveSelectedItem,\n FunctionReset: FunctionReset,\n FunctionSetActiveIndex: FunctionSetActiveIndex,\n FunctionSetSelectedItems: FunctionSetSelectedItems,\n SelectedItemClick: SelectedItemClick,\n SelectedItemKeyDownBackspace: SelectedItemKeyDownBackspace,\n SelectedItemKeyDownDelete: SelectedItemKeyDownDelete,\n SelectedItemKeyDownNavigationNext: SelectedItemKeyDownNavigationNext,\n SelectedItemKeyDownNavigationPrevious: SelectedItemKeyDownNavigationPrevious\n});\n\n/* eslint-disable complexity */\nfunction downshiftMultipleSelectionReducer(state, action) {\n var type = action.type,\n index = action.index,\n props = action.props,\n selectedItem = action.selectedItem;\n var activeIndex = state.activeIndex,\n selectedItems = state.selectedItems;\n var changes;\n switch (type) {\n case SelectedItemClick:\n changes = {\n activeIndex: index\n };\n break;\n case SelectedItemKeyDownNavigationPrevious:\n changes = {\n activeIndex: activeIndex - 1 < 0 ? 0 : activeIndex - 1\n };\n break;\n case SelectedItemKeyDownNavigationNext:\n changes = {\n activeIndex: activeIndex + 1 >= selectedItems.length ? -1 : activeIndex + 1\n };\n break;\n case SelectedItemKeyDownBackspace:\n case SelectedItemKeyDownDelete:\n {\n if (activeIndex < 0) {\n break;\n }\n var newActiveIndex = activeIndex;\n if (selectedItems.length === 1) {\n newActiveIndex = -1;\n } else if (activeIndex === selectedItems.length - 1) {\n newActiveIndex = selectedItems.length - 2;\n }\n changes = _extends({\n selectedItems: [].concat(selectedItems.slice(0, activeIndex), selectedItems.slice(activeIndex + 1))\n }, {\n activeIndex: newActiveIndex\n });\n break;\n }\n case DropdownKeyDownNavigationPrevious:\n changes = {\n activeIndex: selectedItems.length - 1\n };\n break;\n case DropdownKeyDownBackspace:\n changes = {\n selectedItems: selectedItems.slice(0, selectedItems.length - 1)\n };\n break;\n case FunctionAddSelectedItem:\n changes = {\n selectedItems: [].concat(selectedItems, [selectedItem])\n };\n break;\n case DropdownClick:\n changes = {\n activeIndex: -1\n };\n break;\n case FunctionRemoveSelectedItem:\n {\n var _newActiveIndex = activeIndex;\n var selectedItemIndex = selectedItems.findIndex(function (item) {\n return props.itemToKey(item) === props.itemToKey(selectedItem);\n });\n if (selectedItemIndex < 0) {\n break;\n }\n if (selectedItems.length === 1) {\n _newActiveIndex = -1;\n } else if (selectedItemIndex === selectedItems.length - 1) {\n _newActiveIndex = selectedItems.length - 2;\n }\n changes = {\n selectedItems: [].concat(selectedItems.slice(0, selectedItemIndex), selectedItems.slice(selectedItemIndex + 1)),\n activeIndex: _newActiveIndex\n };\n break;\n }\n case FunctionSetSelectedItems:\n {\n var newSelectedItems = action.selectedItems;\n changes = {\n selectedItems: newSelectedItems\n };\n break;\n }\n case FunctionSetActiveIndex:\n {\n var _newActiveIndex2 = action.activeIndex;\n changes = {\n activeIndex: _newActiveIndex2\n };\n break;\n }\n case FunctionReset:\n changes = {\n activeIndex: getDefaultValue(props, 'activeIndex'),\n selectedItems: getDefaultValue(props, 'selectedItems')\n };\n break;\n default:\n throw new Error('Reducer called without proper action type.');\n }\n return _extends({}, state, changes);\n}\n\nvar _excluded = [\"refKey\", \"ref\", \"onClick\", \"onKeyDown\", \"selectedItem\", \"index\"],\n _excluded2 = [\"refKey\", \"ref\", \"onKeyDown\", \"onClick\", \"preventKeyAction\"];\nuseMultipleSelection.stateChangeTypes = stateChangeTypes;\nfunction useMultipleSelection(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n validatePropTypes(userProps, useMultipleSelection);\n // Props defaults and destructuring.\n var props = _extends({}, defaultProps, userProps);\n var getA11yStatusMessage = props.getA11yStatusMessage,\n environment = props.environment,\n keyNavigationNext = props.keyNavigationNext,\n keyNavigationPrevious = props.keyNavigationPrevious;\n\n // Reducer init.\n var _useControlledReducer = useControlledReducer$1(downshiftMultipleSelectionReducer, props, getInitialState, isStateEqual),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n var activeIndex = state.activeIndex,\n selectedItems = state.selectedItems;\n\n // Refs.\n var isInitialMount = useIsInitialMount();\n var dropdownRef = useRef(null);\n var selectedItemRefs = useRef();\n selectedItemRefs.current = [];\n var latest = useLatestRef({\n state: state,\n props: props\n });\n\n // Effects.\n // Adds an a11y aria live status message if getA11yStatusMessage is passed.\n useA11yMessageStatus(getA11yStatusMessage, state, [activeIndex, selectedItems], environment);\n // Sets focus on active item.\n useEffect(function () {\n if (isInitialMount) {\n return;\n }\n if (activeIndex === -1 && dropdownRef.current) {\n dropdownRef.current.focus();\n } else if (selectedItemRefs.current[activeIndex]) {\n selectedItemRefs.current[activeIndex].focus();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeIndex]);\n useControlPropsValidator({\n props: props,\n state: state\n });\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getDropdownProps');\n\n // Event handler functions.\n var selectedItemKeyDownHandlers = useMemo(function () {\n var _ref;\n return _ref = {}, _ref[keyNavigationPrevious] = function () {\n dispatch({\n type: SelectedItemKeyDownNavigationPrevious\n });\n }, _ref[keyNavigationNext] = function () {\n dispatch({\n type: SelectedItemKeyDownNavigationNext\n });\n }, _ref.Delete = function Delete() {\n dispatch({\n type: SelectedItemKeyDownDelete\n });\n }, _ref.Backspace = function Backspace() {\n dispatch({\n type: SelectedItemKeyDownBackspace\n });\n }, _ref;\n }, [dispatch, keyNavigationNext, keyNavigationPrevious]);\n var dropdownKeyDownHandlers = useMemo(function () {\n var _ref2;\n return _ref2 = {}, _ref2[keyNavigationPrevious] = function (event) {\n if (isKeyDownOperationPermitted(event)) {\n dispatch({\n type: DropdownKeyDownNavigationPrevious\n });\n }\n }, _ref2.Backspace = function Backspace(event) {\n if (isKeyDownOperationPermitted(event)) {\n dispatch({\n type: DropdownKeyDownBackspace\n });\n }\n }, _ref2;\n }, [dispatch, keyNavigationPrevious]);\n\n // Getter props.\n var getSelectedItemProps = useCallback(function (_temp) {\n var _extends2;\n var _ref3 = _temp === void 0 ? {} : _temp,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n onClick = _ref3.onClick,\n onKeyDown = _ref3.onKeyDown,\n selectedItemProp = _ref3.selectedItem,\n indexProp = _ref3.index,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded);\n var latestState = latest.current.state;\n var _getItemAndIndex = getItemAndIndex(selectedItemProp, indexProp, latestState.selectedItems, 'Pass either item or index to getSelectedItemProps!'),\n index = _getItemAndIndex[1];\n var isFocusable = index > -1 && index === latestState.activeIndex;\n var selectedItemHandleClick = function selectedItemHandleClick() {\n dispatch({\n type: SelectedItemClick,\n index: index\n });\n };\n var selectedItemHandleKeyDown = function selectedItemHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n if (key && selectedItemKeyDownHandlers[key]) {\n selectedItemKeyDownHandlers[key](event);\n }\n };\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (selectedItemNode) {\n if (selectedItemNode) {\n selectedItemRefs.current.push(selectedItemNode);\n }\n }), _extends2.tabIndex = isFocusable ? 0 : -1, _extends2.onClick = callAllEventHandlers(onClick, selectedItemHandleClick), _extends2.onKeyDown = callAllEventHandlers(onKeyDown, selectedItemHandleKeyDown), _extends2), rest);\n }, [dispatch, latest, selectedItemKeyDownHandlers]);\n var getDropdownProps = useCallback(function (_temp2, _temp3) {\n var _extends3;\n var _ref4 = _temp2 === void 0 ? {} : _temp2,\n _ref4$refKey = _ref4.refKey,\n refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,\n ref = _ref4.ref,\n onKeyDown = _ref4.onKeyDown,\n onClick = _ref4.onClick,\n _ref4$preventKeyActio = _ref4.preventKeyAction,\n preventKeyAction = _ref4$preventKeyActio === void 0 ? false : _ref4$preventKeyActio,\n rest = _objectWithoutPropertiesLoose(_ref4, _excluded2);\n var _ref5 = _temp3 === void 0 ? {} : _temp3,\n _ref5$suppressRefErro = _ref5.suppressRefError,\n suppressRefError = _ref5$suppressRefErro === void 0 ? false : _ref5$suppressRefErro;\n setGetterPropCallInfo('getDropdownProps', suppressRefError, refKey, dropdownRef);\n var dropdownHandleKeyDown = function dropdownHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n if (key && dropdownKeyDownHandlers[key]) {\n dropdownKeyDownHandlers[key](event);\n }\n };\n var dropdownHandleClick = function dropdownHandleClick() {\n dispatch({\n type: DropdownClick\n });\n };\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (dropdownNode) {\n if (dropdownNode) {\n dropdownRef.current = dropdownNode;\n }\n }), _extends3), !preventKeyAction && {\n onKeyDown: callAllEventHandlers(onKeyDown, dropdownHandleKeyDown),\n onClick: callAllEventHandlers(onClick, dropdownHandleClick)\n }, rest);\n }, [dispatch, dropdownKeyDownHandlers, setGetterPropCallInfo]);\n\n // returns\n var addSelectedItem = useCallback(function (selectedItem) {\n dispatch({\n type: FunctionAddSelectedItem,\n selectedItem: selectedItem\n });\n }, [dispatch]);\n var removeSelectedItem = useCallback(function (selectedItem) {\n dispatch({\n type: FunctionRemoveSelectedItem,\n selectedItem: selectedItem\n });\n }, [dispatch]);\n var setSelectedItems = useCallback(function (newSelectedItems) {\n dispatch({\n type: FunctionSetSelectedItems,\n selectedItems: newSelectedItems\n });\n }, [dispatch]);\n var setActiveIndex = useCallback(function (newActiveIndex) {\n dispatch({\n type: FunctionSetActiveIndex,\n activeIndex: newActiveIndex\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset\n });\n }, [dispatch]);\n return {\n getSelectedItemProps: getSelectedItemProps,\n getDropdownProps: getDropdownProps,\n addSelectedItem: addSelectedItem,\n removeSelectedItem: removeSelectedItem,\n setSelectedItems: setSelectedItems,\n setActiveIndex: setActiveIndex,\n reset: reset,\n selectedItems: selectedItems,\n activeIndex: activeIndex\n };\n}\n\nexport { Downshift as default, resetIdCounter, useCombobox, useMultipleSelection, useSelect };\n","import React, { useState, useMemo, useRef, useEffect } from \"react\";\nimport { useSelect } from \"downshift\";\nimport styles from \"./MultiSelect.module.css\";\n\nexport interface MultiSelectOption {\n value: string | number;\n label: string;\n disabled?: boolean;\n}\n\nexport interface MultiSelectProps {\n id?: string;\n name?: string;\n options: MultiSelectOption[];\n value?: (string | number)[];\n preferredValues?: (string | number)[];\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n onChange?: (values: (string | number)[]) => void;\n}\n\nconst MultiSelect: React.FC<MultiSelectProps> = ({\n id,\n name,\n options,\n value = [],\n preferredValues = [],\n placeholder = \"Select...\",\n disabled = false,\n className,\n onChange,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [inputValue, setInputValue] = useState(\"\");\n const inputRef = useRef<HTMLInputElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n const preferredSet = useMemo(\n () => new Set(preferredValues),\n [preferredValues],\n );\n\n const filteredOptions = useMemo(() => {\n const filtered = options.filter((option) =>\n option.label.toLowerCase().includes(inputValue.toLowerCase()),\n );\n\n const preferred = filtered.filter((opt) => preferredSet.has(opt.value));\n const others = filtered.filter((opt) => !preferredSet.has(opt.value));\n\n return { preferred, others };\n }, [options, inputValue, preferredSet]);\n\n const selectedOptions = useMemo(\n () => options.filter((opt) => value.includes(opt.value)),\n [options, value],\n );\n\n const {\n isOpen: downshiftIsOpen,\n getToggleButtonProps,\n getMenuProps,\n getItemProps,\n highlightedIndex,\n } = useSelect({\n items: [...filteredOptions.preferred, ...filteredOptions.others],\n selectedItem: null,\n onSelectedItemChange: ({ selectedItem: newSelectedItem }) => {\n if (newSelectedItem) {\n const newValue = newSelectedItem.value;\n const newValues = value.includes(newValue)\n ? value.filter((v) => v !== newValue)\n : [...value, newValue];\n onChange?.(newValues);\n }\n },\n });\n\n useEffect(() => {\n setIsOpen(downshiftIsOpen);\n }, [downshiftIsOpen]);\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n containerRef.current &&\n !containerRef.current.contains(event.target as Node)\n ) {\n setIsOpen(false);\n setInputValue(\"\");\n }\n };\n\n if (isOpen) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [isOpen]);\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(e.target.value);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === \"Escape\") {\n setIsOpen(false);\n setInputValue(\"\");\n inputRef.current?.blur();\n }\n };\n\n const handleMenuClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n };\n\n const handleMenuMouseDown = (e: React.MouseEvent) => {\n e.stopPropagation();\n };\n\n const removeValue = (valueToRemove: string | number) => {\n const newValues = value.filter((v) => v !== valueToRemove);\n onChange?.(newValues);\n };\n\n const toggleDropdown = () => {\n if (!disabled) {\n setIsOpen(!isOpen);\n }\n };\n\n return (\n <div\n ref={containerRef}\n className={`${styles.multiSelect} ${className ?? \"\"}`}\n >\n <div className={`${styles.control} ${disabled ? styles.disabled : \"\"}`}>\n <div className={styles.valueContainer}>\n {selectedOptions.map((option) => (\n <div key={option.value} className={styles.multiValue}>\n <span className={styles.multiValueLabel}>{option.label}</span>\n <button\n type=\"button\"\n className={styles.multiValueRemove}\n onClick={() => removeValue(option.value)}\n disabled={disabled}\n >\n ×\n </button>\n </div>\n ))}\n <input\n ref={inputRef}\n id={id}\n name={name}\n className={styles.input}\n value={inputValue}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n onFocus={() => !disabled && setIsOpen(true)}\n placeholder={selectedOptions.length === 0 ? placeholder : \"\"}\n disabled={disabled}\n autoComplete=\"off\"\n />\n </div>\n <button\n type=\"button\"\n className={styles.dropdownIndicator}\n onClick={toggleDropdown}\n disabled={disabled}\n {...getToggleButtonProps()}\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"6,9 12,15 18,9\" />\n </svg>\n </button>\n </div>\n\n <div\n className={`${styles.menu} ${isOpen ? styles.menuOpen : \"\"}`}\n {...getMenuProps()}\n onClick={handleMenuClick}\n onMouseDown={handleMenuMouseDown}\n >\n <div className={styles.menuList}>\n {filteredOptions.preferred.length > 0 && (\n <>\n <div className={styles.groupHeading}>Preferred</div>\n {filteredOptions.preferred.map((option, index) => {\n const isLastInPreferred =\n index === filteredOptions.preferred.length - 1;\n const isLastOverall =\n isLastInPreferred && filteredOptions.others.length === 0;\n return (\n <div\n key={option.value}\n className={`${styles.option} ${\n highlightedIndex === index ? styles.optionFocused : \"\"\n } ${\n value.includes(option.value) ? styles.optionSelected : \"\"\n } ${option.disabled ? styles.optionDisabled : \"\"} ${\n isLastOverall ? styles.optionLast : \"\"\n }`}\n onClick={handleMenuClick}\n {...getItemProps({\n item: option,\n index,\n disabled: option.disabled,\n })}\n >\n <span className={styles.optionLabel}>{option.label}</span>\n </div>\n );\n })}\n </>\n )}\n\n {filteredOptions.others.length > 0 && (\n <>\n {filteredOptions.preferred.length > 0 && (\n <>\n <div className={styles.groupSeparator} />\n <div className={styles.groupHeading}>All</div>\n </>\n )}\n {filteredOptions.others.map((option, index) => {\n const actualIndex = filteredOptions.preferred.length + index;\n const isLastInOthers =\n index === filteredOptions.others.length - 1;\n return (\n <div\n key={option.value}\n className={`${styles.option} ${\n highlightedIndex === actualIndex\n ? styles.optionFocused\n : \"\"\n } ${\n value.includes(option.value) ? styles.optionSelected : \"\"\n } ${option.disabled ? styles.optionDisabled : \"\"} ${\n isLastInOthers ? styles.optionLast : \"\"\n }`}\n onClick={handleMenuClick}\n {...getItemProps({\n item: option,\n index: actualIndex,\n disabled: option.disabled,\n })}\n >\n <span className={styles.optionLabel}>{option.label}</span>\n </div>\n );\n })}\n </>\n )}\n {filteredOptions.preferred.length === 0 &&\n filteredOptions.others.length === 0 && (\n <div className={styles.noOptions}>No options found</div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default MultiSelect;\n","import React from \"react\";\nimport styles from \"./SelectField.module.css\";\n\nexport interface SelectFieldOption {\n value: string | number;\n label: string;\n disabled?: boolean;\n}\n\nexport interface SelectFieldProps {\n id?: string;\n name?: string;\n value?: string | number;\n options: SelectFieldOption[];\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n onChange?: (value: string | number) => void;\n onBlur?: (event: React.FocusEvent<HTMLSelectElement>) => void;\n onFocus?: (event: React.FocusEvent<HTMLSelectElement>) => void;\n}\n\nconst SelectField: React.FC<SelectFieldProps> = ({\n id,\n name,\n value,\n options = [],\n placeholder = \"Select an option\",\n disabled = false,\n className = \"\",\n onChange,\n onBlur,\n onFocus,\n}) => {\n const handleChange = (event: React.ChangeEvent<HTMLSelectElement>) => {\n const selectedValue = event.target.value;\n const option = options.find(\n (opt) => opt.value.toString() === selectedValue\n );\n\n if (option && onChange) {\n onChange(option.value);\n }\n };\n\n return (\n <div className={`${styles.selectField} ${className}`}>\n <select\n id={id}\n name={name}\n value={value || \"\"}\n disabled={disabled}\n onChange={handleChange}\n onBlur={onBlur}\n onFocus={onFocus}\n className={styles.select}\n >\n {placeholder && (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n )}\n {options.map((option, i) => (\n <option key={`${i}`} value={option.value} disabled={option.disabled}>\n {option.label}\n </option>\n ))}\n </select>\n </div>\n );\n};\n\nexport default SelectField;\n\n","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20600%20600'%20xml:space='preserve'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20fill='currentColor'%20d='M353.286,163.919c16.464,0,29.815,13.351,29.815,29.822%20c0,16.467-13.351,29.819-29.815,29.819c-16.47,0-29.822-13.352-29.822-29.819C323.464,177.27,336.816,163.919,353.286,163.919%20L353.286,163.919z%20M245.838,163.919c16.47,0,29.822,13.351,29.822,29.822c0,16.467-13.352,29.819-29.822,29.819%20c-16.471,0-29.822-13.352-29.822-29.819C216.016,177.27,229.367,163.919,245.838,163.919L245.838,163.919z%20M354.093,338.178%20c22.575,0,40.874,18.299,40.874,40.87c0,22.571-18.299,40.87-40.874,40.87c-22.568,0-40.867-18.299-40.867-40.87%20C313.226,356.477,331.525,338.178,354.093,338.178L354.093,338.178z%20M245.024,338.178c22.575,0,40.874,18.299,40.874,40.87%20c0,22.571-18.299,40.87-40.874,40.87c-22.568,0-40.874-18.299-40.874-40.87C204.151,356.477,222.457,338.178,245.024,338.178%20L245.024,338.178z%20M406.906,244.769c22.575,0,40.874,18.299,40.874,40.87s-18.299,40.87-40.874,40.87%20c-22.568,0-40.867-18.299-40.867-40.87S384.338,244.769,406.906,244.769L406.906,244.769z%20M192.211,244.769%20c22.568,0,40.874,18.299,40.874,40.87s-18.306,40.87-40.874,40.87c-22.575,0-40.874-18.299-40.874-40.87%20S169.636,244.769,192.211,244.769L192.211,244.769z%20M299.559,244.769c22.575,0,40.874,18.299,40.874,40.87%20s-18.299,40.87-40.874,40.87c-22.569,0-40.868-18.299-40.868-40.87S276.99,244.769,299.559,244.769L299.559,244.769z%20M452.99,131.334H146.127c-32.625,37.291-50.332,84.551-50.332,134.107c0,112.541,91.226,203.765,203.764,203.765%20c112.544,0,203.764-91.223,203.764-203.765C503.323,215.889,485.608,168.622,452.99,131.334L452.99,131.334z%20M471.276,105.109%20l-4.672-4.998h-334.09l-4.672,4.998c-40.739,43.6-63.267,100.662-63.267,160.332c0,129.775,105.21,234.988,234.984,234.988%20c129.774,0,234.984-105.213,234.984-234.988C534.542,205.771,512.015,148.709,471.276,105.109L471.276,105.109z%20M480.204,60.027%20H118.914C61.952,110.158,26,183.596,26,265.441C26,416.523,148.48,539,299.559,539c151.085,0,273.558-122.477,273.558-273.559%20C573.117,183.596,537.165,110.158,480.204,60.027z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2022.0.1,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20600%20600'%20enable-background='new%200%200%20600%20600'%20xml:space='preserve'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20fill='currentColor'%20d='M228.887,396.793c20.779,0,37.62,16.841,37.62,37.617%20c0,20.773-16.841,37.617-37.62,37.617c-20.773,0-37.613-16.844-37.613-37.617C191.274,413.634,208.115,396.793,228.887,396.793%20L228.887,396.793z%20M366.03,396.793c20.773,0,37.614,16.841,37.614,37.617c0,20.773-16.841,37.617-37.614,37.617%20c-20.779,0-37.62-16.844-37.62-37.617C328.41,413.634,345.251,396.793,366.03,396.793L366.03,396.793z%20M228.375,325.684%20c-29.03,0-55.41,11.868-74.52,30.976c-41.566,41.573-41.566,113.923,0,155.497c19.111,19.111,45.49,30.979,74.52,30.979h138.168%20c29.023,0,55.41-11.868,74.521-30.979c41.565-41.566,41.565-113.928,0-155.497c-18.336-18.336-43.379-30.003-71.019-30.916%20c63.723-27.868,105.151-90.836,105.151-160.733c0-42.14-13.276-74.632-37.316-108.359H161.794%20c-24.033,33.747-37.309,66.2-37.309,108.359c0,69.852,41.359,132.758,105.012,160.674H228.375L228.375,325.684z%20M366.543,357.791%20H228.375c-20.163,0-38.513,8.265-51.824,21.569c-29.023,29.027-29.023,81.069,0,110.096c13.311,13.308,31.654,21.569,51.824,21.569%20h138.168c20.17,0,38.513-8.261,51.824-21.569c29.023-29.027,29.023-81.069,0-110.096%20C405.056,366.057,386.706,357.791,366.543,357.791L366.543,357.791z%20M421.17,88.762c14.523,23.018,21.915,49.024,21.915,76.248%20c0,79.121-64.131,143.245-143.248,143.245S156.595,244.127,156.595,165.01c0-27.234,7.392-53.222,21.915-76.248H421.17%20L421.17,88.762z%20M331.075,225.95c11.726,0,21.236,9.511,21.236,21.236c0,11.733-9.511,21.24-21.236,21.24%20c-11.733,0-21.236-9.507-21.236-21.24C309.839,235.461,319.342,225.95,331.075,225.95L331.075,225.95z%20M268.605,225.95%20c11.726,0,21.243,9.511,21.243,21.236c0,11.733-9.518,21.24-21.243,21.24c-11.726,0-21.236-9.507-21.236-21.24%20C247.369,235.461,256.879,225.95,268.605,225.95L268.605,225.95z%20M236.882,163.754c11.726,0,21.243,9.508,21.243,21.236%20c0,11.729-9.518,21.24-21.243,21.24c-11.726,0-21.236-9.511-21.236-21.24C215.646,173.261,225.156,163.754,236.882,163.754%20L236.882,163.754z%20M299.837,163.754c11.732,0,21.243,9.508,21.243,21.236c0,11.729-9.511,21.24-21.243,21.24%20c-11.726,0-21.236-9.511-21.236-21.24C278.6,173.261,288.111,163.754,299.837,163.754L299.837,163.754z%20M362.798,163.754%20c11.726,0,21.236,9.508,21.236,21.236c0,11.729-9.511,21.24-21.236,21.24c-11.733,0-21.236-9.511-21.236-21.24%20C341.562,173.261,351.065,163.754,362.798,163.754L362.798,163.754z%20M332.079,116.228c6.86,0,12.417,5.561,12.417,12.417%20c0,6.86-5.558,12.425-12.417,12.425s-12.424-5.566-12.424-12.425C319.654,121.79,325.219,116.228,332.079,116.228L332.079,116.228z%20M267.601,116.228c6.86,0,12.425,5.561,12.425,12.417c0,6.86-5.565,12.425-12.425,12.425c-6.86,0-12.417-5.566-12.417-12.425%20C255.184,121.79,260.742,116.228,267.601,116.228L267.601,116.228z%20M177.153,7.87C129.219,7.87,90,47.086,90,95.02v408.83%20c0,47.934,39.219,87.15,87.153,87.15h246.024c47.934,0,87.147-39.216,87.147-87.15V95.02c0-47.934-39.213-87.15-87.147-87.15%20H177.153z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2022.0.1,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20600%20600'%20enable-background='new%200%200%20600%20600'%20xml:space='preserve'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20fill='currentColor'%20d='M407.111,334.214c16.317,0,29.543,13.226,29.543,29.543%20c0,16.313-13.227,29.543-29.543,29.543c-16.31,0-29.536-13.229-29.536-29.543C377.576,347.44,390.802,334.214,407.111,334.214%20L407.111,334.214z%20M198.69,334.214c16.317,0,29.543,13.226,29.543,29.543c0,16.313-13.226,29.543-29.543,29.543%20s-29.543-13.229-29.543-29.543C169.147,347.44,182.373,334.214,198.69,334.214L198.69,334.214z%20M227.94,180.772%20c24.971,0,45.213,20.242,45.213,45.213c0,24.967-20.243,45.213-45.213,45.213s-45.213-20.245-45.213-45.213%20C182.727,201.014,202.969,180.772,227.94,180.772L227.94,180.772z%20M377.868,180.772c24.968,0,45.213,20.242,45.213,45.213%20c0,24.967-20.245,45.213-45.213,45.213c-24.974,0-45.213-20.245-45.213-45.213C332.655,201.014,352.894,180.772,377.868,180.772%20L377.868,180.772z%20M302.899,361.142c24.974,0,45.22,20.243,45.22,45.213s-20.245,45.213-45.22,45.213%20c-24.968,0-45.21-20.243-45.21-45.213S277.931,361.142,302.899,361.142L302.899,361.142z%20M302.899,100.142%20c-111.485,0-201.855,90.37-201.855,201.858c0,111.489,90.37,201.859,201.855,201.859c111.491,0,201.865-90.37,201.865-201.859%20C504.764,190.512,414.391,100.142,302.899,100.142L302.899,100.142z%20M302.899,69.21C174.338,69.21,70.113,173.44,70.113,302%20c0,128.561,104.226,232.79,232.787,232.79c128.56,0,232.793-104.229,232.793-232.79C535.692,173.44,431.459,69.21,302.899,69.21%20L302.899,69.21z%20M302.899,31C153.234,31,31.902,152.328,31.902,302c0,149.669,121.331,271,270.997,271%20c149.672,0,271.006-121.331,271.006-271C573.906,152.328,452.571,31,302.899,31z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2022.0.1,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20600%20600'%20enable-background='new%200%200%20600%20600'%20xml:space='preserve'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20fill='currentColor'%20d='M246.063,132.777c18.959,0,34.335,15.373,34.335,34.332%20c0,18.965-15.376,34.335-34.335,34.335c-18.961,0-34.332-15.37-34.332-34.335C211.731,148.15,227.102,132.777,246.063,132.777%20L246.063,132.777z%20M357.555,132.777c18.962,0,34.332,15.373,34.332,34.332c0,18.962-15.37,34.335-34.332,34.335%20c-18.961,0-34.331-15.373-34.331-34.335C323.224,148.15,338.594,132.777,357.555,132.777L357.555,132.777z%20M226.875,253.708%20c9.286,0,16.811,7.525,16.811,16.808c0,9.286-7.525,16.811-16.811,16.811c-9.283,0-16.808-7.525-16.808-16.811%20C210.066,261.234,217.592,253.708,226.875,253.708L226.875,253.708z%20M371.359,253.708c9.286,0,16.815,7.525,16.815,16.808%20c0,9.286-7.529,16.811-16.815,16.811c-9.279,0-16.808-7.525-16.808-16.811C354.552,261.234,362.08,253.708,371.359,253.708%20L371.359,253.708z%20M236.304,421.639c19.179,0,34.731,15.548,34.731,34.731c0,19.179-15.552,34.731-34.731,34.731%20c-19.179,0-34.731-15.552-34.731-34.731C201.573,437.187,217.126,421.639,236.304,421.639L236.304,421.639z%20M362.924,421.639%20c19.179,0,34.728,15.548,34.728,34.731c0,19.179-15.549,34.731-34.728,34.731c-19.186,0-34.735-15.552-34.735-34.731%20C328.189,437.187,343.738,421.639,362.924,421.639L362.924,421.639z%20M235.828,355.985c-26.801,0-51.159,10.958-68.804,28.6%20c-38.377,38.383-38.377,105.184,0,143.567c17.645,17.645,42.004,28.602,68.804,28.602h127.568c26.803,0,51.159-10.957,68.804-28.602%20c38.377-38.377,38.377-105.19,0-143.567c-16.91-16.91-39.994-27.679-65.481-28.542c57.148-25.011,97.033-82.036,97.033-148.405%20c0-88.133-70.984-161.938-161.945-161.938c-90.131,0-161.935,73.009-161.935,161.938c0,66.315,39.821,123.302,96.895,148.348%20H235.828L235.828,355.985z%20M159.969,344.666c-6.378,4.464-12.357,9.488-17.866,14.999c-52.137,52.134-52.137,141.271-0.003,193.407%20C167.008,577.982,200.589,592,235.828,592h127.568c35.24,0,68.823-14.018,93.729-38.927c52.137-52.134,52.137-141.276,0-193.41%20c-4.761-4.761-9.874-9.155-15.287-13.143c36.523-36.834,57.159-86.685,57.159-138.883c0-108.993-88.188-197.184-197.19-197.184%20c-108.977,0-197.181,88.207-197.181,197.184C104.627,258.933,124.557,307.996,159.969,344.666L159.969,344.666z%20M363.396,385.629%20H235.828c-18.617,0-35.559,7.631-47.846,19.914c-26.797,26.8-26.797,74.85,0,101.65c12.287,12.286,29.225,19.914,47.846,19.914%20h127.568c18.623,0,35.559-7.628,47.849-19.914c26.797-26.8,26.797-74.85,0-101.65C398.955,393.259,382.013,385.629,363.396,385.629%20L363.396,385.629z%20M301.808,75.381c-73.808,0-132.256,59.869-132.256,132.256c0,72.383,58.448,132.256,132.256,132.256%20c73.815,0,132.265-59.87,132.265-132.256C434.073,135.248,375.622,75.381,301.808,75.381L301.808,75.381z%20M301.808,271.807%20c13.689,0,24.784,11.098,24.784,24.781c0,13.686-11.094,24.78-24.784,24.78c-13.686,0-24.777-11.094-24.777-24.78%20C277.03,282.905,288.122,271.807,301.808,271.807z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20600%20600'%20xml:space='preserve'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20fill='currentColor'%20d='M460.592,75.695C501.794,116.897,525,172.38,525,230.692v136.191%20c0,58.315-23.206,113.795-64.408,154.997c-86.029,86.032-228.158,86.032-314.186,0C105.203,480.679,82,425.199,82,366.884V230.692%20c0-58.312,23.203-113.795,64.405-154.997C232.433-10.337,374.563-10.337,460.592,75.695L460.592,75.695z%20M434.493,101.794%20c-71.625-71.628-190.365-71.628-261.989,0c-33.068,33.068-53.597,78.696-53.597,128.898v136.191%20c0,50.205,20.529,95.834,53.597,128.898c71.624,71.628,190.364,71.628,261.989,0c33.067-33.064,53.596-78.693,53.596-128.898%20V230.692C488.089,180.49,467.56,134.862,434.493,101.794L434.493,101.794z%20M195.699,124.99%20c-27.134,27.137-43.982,64.557-43.982,105.702v136.191c0,41.146,16.848,78.568,43.982,105.702%20c58.806,58.814,156.791,58.814,215.598,0c27.138-27.134,43.982-64.557,43.982-105.702V230.692%20c0-41.146-16.845-78.566-43.982-105.702C352.491,66.18,254.506,66.18,195.699,124.99L195.699,124.99z%20M303.497,401.594%20c-17.304,0-31.334,14.029-31.334,31.337c0,17.304,14.03,31.333,31.334,31.333c17.307,0,31.337-14.029,31.337-31.333%20C334.834,415.623,320.804,401.594,303.497,401.594L303.497,401.594z%20M223.204,305.993c-17.308,0-31.338,14.03-31.338,31.334%20c0,17.308,14.03,31.337,31.338,31.337c17.307,0,31.337-14.029,31.337-31.337C254.541,320.023,240.511,305.993,223.204,305.993%20L223.204,305.993z%20M223.204,208.881c-17.308,0-31.338,14.026-31.338,31.334c0,17.307,14.03,31.337,31.338,31.337%20c17.307,0,31.337-14.03,31.337-31.337C254.541,222.907,240.511,208.881,223.204,208.881L223.204,208.881z%20M383.796,305.993%20c-17.308,0-31.338,14.03-31.338,31.334c0,17.308,14.03,31.337,31.338,31.337c17.307,0,31.333-14.029,31.333-31.337%20C415.129,320.023,401.103,305.993,383.796,305.993L383.796,305.993z%20M383.796,208.881c-17.308,0-31.338,14.026-31.338,31.334%20c0,17.307,14.03,31.337,31.338,31.337c17.307,0,31.333-14.03,31.333-31.337C415.129,222.907,401.103,208.881,383.796,208.881%20L383.796,208.881z%20M354.769,129.256c-12.585,0-22.786,10.201-22.786,22.786s10.2,22.786,22.786,22.786%20c12.585,0,22.786-10.201,22.786-22.786S367.354,129.256,354.769,129.256L354.769,129.256z%20M252.228,129.256%20c-12.585,0-22.786,10.201-22.786,22.786s10.2,22.786,22.786,22.786c12.585,0,22.786-10.201,22.786-22.786%20S264.813,129.256,252.228,129.256z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M17%2012.8108C17%2013.1901%2016.898%2013.5661%2016.6687%2013.8682C15.2357%2015.7558%2012.784%2017%2010%2017C7.21614%2017%204.76431%2015.7557%203.33134%2013.8681C3.10199%2013.566%203%2013.1901%203%2012.8108V7.18924C3%206.80993%203.10199%206.43401%203.33134%206.13189C4.76431%204.24428%207.21614%203%2010%203C12.784%203%2015.2357%204.24423%2016.6687%206.13183C16.898%206.43395%2017%206.80986%2017%207.18918V12.8108ZM10%207C10.5522%207%2011%206.55231%2011%206C11%205.44769%2010.5522%205%2010%205C9.44775%205%209%205.44769%209%206C9%206.55231%209.44775%207%2010%207ZM6.5%2011.5C7.32837%2011.5%208%2010.8284%208%2010C8%209.17157%207.32837%208.5%206.5%208.5C5.67163%208.5%205%209.17157%205%2010C5%2010.8284%205.67163%2011.5%206.5%2011.5ZM11.5%2013.5C11.5%2014.3284%2010.8284%2015%2010%2015C9.17163%2015%208.5%2014.3284%208.5%2013.5C8.5%2012.6716%209.17163%2012%2010%2012C10.8284%2012%2011.5%2012.6716%2011.5%2013.5ZM13.5%2011.5C14.3284%2011.5%2015%2010.8284%2015%2010C15%209.17157%2014.3284%208.5%2013.5%208.5C12.6716%208.5%2012%209.17157%2012%2010C12%2010.8284%2012.6716%2011.5%2013.5%2011.5Z'%20fill='currentColor'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10%201C13.8106%201%2017.1182%202.95715%2018.7732%205.82595C18.9298%206.09752%2019%206.40872%2019%206.72224V13.2778C19%2013.5913%2018.9298%2013.9025%2018.7732%2014.1741C17.1182%2017.0429%2013.8106%2019%2010%2019C6.18943%2019%202.88177%2017.0429%201.22682%2014.1741C1.07016%2013.9025%201%2013.5913%201%2013.2778V6.72224C1%206.40872%201.07016%206.09752%201.22682%205.82595C2.88177%202.95715%206.18943%201%2010%201ZM17.6711%205.64554C17.8973%205.95002%2018%206.32536%2018%206.70467V13.2953C18%2013.6746%2017.8973%2014.05%2017.6711%2014.3545C16.0408%2016.5488%2013.214%2018%2010%2018C6.78594%2018%203.95915%2016.5488%202.32887%2014.3544C2.10268%2014.0499%202%2013.6746%202%2013.2953V6.70472C2%206.32542%202.10268%205.95008%202.32887%205.64561C3.95915%203.45116%206.78594%202%2010%202C13.214%202%2016.0408%203.45116%2017.6711%205.64554Z'%20fill='currentColor'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2022.0.1,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20600%20600'%20enable-background='new%200%200%20600%20600'%20xml:space='preserve'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20fill='currentColor'%20d='M395.264,259.724c21.074,0,38.157,17.083,38.157,38.158%20c0,21.074-17.083,38.164-38.157,38.164c-21.075,0-38.165-17.09-38.165-38.164C357.099,276.806,374.189,259.724,395.264,259.724%20L395.264,259.724z%20M206.743,259.724c21.075,0,38.158,17.083,38.158,38.158c0,21.074-17.083,38.164-38.158,38.164%20c-21.074,0-38.164-17.09-38.164-38.164C168.579,276.806,185.669,259.724,206.743,259.724L206.743,259.724z%20M317.092,89.755v29.841%20h-32.183V89.755c-67.083,5.031-127.459,41.741-163.107,98.796v223.399c35.648,57.055,96.024,93.765,163.107,98.802v-29.841h32.183%20v29.841c67.084-5.038,127.459-41.747,163.114-98.802V188.551C444.551,131.496,384.176,94.787,317.092,89.755L317.092,89.755z%20M301,56.962c-85.858,0-165.124,45.192-209.061,118.921l-2.328,3.902v90.784H58.612v59.364h30.999v90.784l2.328,3.902%20C135.876,498.348,215.143,543.539,301,543.539c85.857,0,165.123-45.184,209.06-118.921l2.328-3.902v-90.784h31.006v-59.364h-31.006%20v-90.784l-2.328-3.902C466.124,102.147,386.857,56.962,301,56.962L301,56.962z%20M301,18.251c-155.741,0-282,126.253-282,282%20c0,155.741,126.26,282,282,282c155.747,0,282-126.26,282-282C583,144.504,456.747,18.251,301,18.251z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2022.0.1,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20600%20600'%20enable-background='new%200%200%20600%20600'%20xml:space='preserve'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20fill='currentColor'%20d='M261.067,178.239c0,7.551,2.198,14.579,5.985,20.491l20.49-20.491%20l-20.49-20.491C263.265,163.659,261.067,170.694,261.067,178.239L261.067,178.239z%20M298.999,216.171%20c-7.545,0-14.58-2.198-20.488-5.981l20.488-20.491l20.491,20.491C313.581,213.972,306.55,216.171,298.999,216.171L298.999,216.171z%20M336.934,178.239c0-7.545-2.198-14.58-5.985-20.491l-20.491,20.491l20.491,20.491C334.736,192.818,336.934,185.79,336.934,178.239%20L336.934,178.239z%20M319.49,146.295l-20.491,20.484l-20.488-20.484c5.907-3.79,12.943-5.988,20.488-5.988%20C306.55,140.307,313.581,142.505,319.49,146.295L319.49,146.295z%20M298.999,124.101c29.864,0,54.141,24.281,54.141,54.138%20c0,29.864-24.277,54.145-54.141,54.145c-29.858,0-54.138-24.281-54.138-54.145C244.861,148.382,269.141,124.101,298.999,124.101%20L298.999,124.101z%20M261.067,417.863c0,7.551,2.198,14.579,5.985,20.491l20.49-20.491l-20.49-20.491%20C263.265,403.283,261.067,410.319,261.067,417.863L261.067,417.863z%20M298.999,455.795c-7.545,0-14.58-2.198-20.488-5.981%20l20.488-20.491l20.491,20.491C313.581,453.597,306.55,455.795,298.999,455.795L298.999,455.795z%20M336.934,417.863%20c0-7.545-2.198-14.58-5.985-20.491l-20.491,20.491l20.491,20.491C334.736,432.443,336.934,425.415,336.934,417.863L336.934,417.863z%20M319.49,385.92l-20.491,20.484l-20.488-20.484c5.907-3.79,12.943-5.988,20.488-5.988C306.55,379.931,313.581,382.13,319.49,385.92%20L319.49,385.92z%20M298.999,363.725c29.864,0,54.141,24.281,54.141,54.138c0,29.864-24.277,54.145-54.141,54.145%20c-29.858,0-54.138-24.281-54.138-54.145C244.861,388.007,269.141,363.725,298.999,363.725L298.999,363.725z%20M180.188,239.928%20c30.094,0,54.49,24.4,54.49,54.494c0,30.095-24.396,54.494-54.49,54.494c-30.095,0-54.494-24.399-54.494-54.494%20C125.694,264.327,150.093,239.928,180.188,239.928L180.188,239.928z%20M417.816,239.928c30.094,0,54.494,24.4,54.494,54.494%20c0,30.095-24.4,54.494-54.494,54.494c-30.095,0-54.494-24.399-54.494-54.494C363.323,264.327,387.722,239.928,417.816,239.928%20L417.816,239.928z%20M298.999,86.511c116.835,0,211.544,94.708,211.544,211.54c0,116.84-94.708,211.54-211.544,211.54%20c-116.836,0-211.54-94.708-211.54-211.54C87.458,181.219,182.163,86.511,298.999,86.511L298.999,86.511z%20M298.999,54.1%20c134.73,0,243.955,109.225,243.955,243.951c0,134.727-109.225,243.952-243.955,243.952c-134.727,0-243.952-109.225-243.952-243.952%20C55.047,163.324,164.271,54.1,298.999,54.1L298.999,54.1z%20M298.999,14.053C455.846,14.053,583,141.2,583,298.051%20c0,156.844-127.154,283.999-284.001,283.999C142.151,582.049,15,454.895,15,298.051C15,141.2,142.151,14.053,298.999,14.053z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2022.0.1,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20600%20600'%20enable-background='new%200%200%20600%20600'%20xml:space='preserve'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20fill='currentColor'%20d='M449.833,45.125C531.521,95.36,586,185.558,586,288.497%20c0,157.672-127.825,285.497-285.503,285.497C142.822,573.994,15,446.169,15,288.497C15,185.558,69.476,95.36,151.167,45.125H449.833%20L449.833,45.125z%20M193.639,256.195c-29.46,0-53.343,23.89-53.343,53.35c0,29.46,23.882,53.343,53.343,53.343%20c29.46,0,53.346-23.882,53.346-53.343C246.985,280.085,223.099,256.195,193.639,256.195L193.639,256.195z%20M407.365,256.195%20c-29.46,0-53.35,23.89-53.35,53.35c0,29.46,23.89,53.343,53.35,53.343c29.46,0,53.343-23.882,53.343-53.343%20C460.708,280.085,436.826,256.195,407.365,256.195L407.365,256.195z%20M442.248,88.407l-4.308-3.053H163.052l-4.304,3.053%20c-64.954,46.088-103.49,120.43-103.49,200.09c0,135.438,109.801,245.239,245.239,245.239c135.437,0,245.245-109.801,245.245-245.239%20C545.742,208.837,507.203,134.495,442.248,88.407L442.248,88.407z%20M427.607,117.937H173.391%20c-54.002,40.321-85.547,103.142-85.547,170.56c0,117.449,95.204,212.656,212.653,212.656c117.455,0,212.663-95.207,212.663-212.656%20C513.16,221.08,481.609,158.258,427.607,117.937L427.607,117.937z%20M300.497,215.65c-11.384,0-20.614,9.226-20.614,20.613%20c0,11.387,9.23,20.614,20.614,20.614c11.387,0,20.62-9.226,20.62-20.614C321.117,224.876,311.883,215.65,300.497,215.65%20L300.497,215.65z%20M300.497,146.275c-11.384,0-20.614,9.226-20.614,20.614c0,11.387,9.23,20.62,20.614,20.62%20c11.387,0,20.62-9.233,20.62-20.62C321.117,155.501,311.883,146.275,300.497,146.275L300.497,146.275z%20M381.735,146.275%20c-11.387,0-20.613,9.226-20.613,20.614c0,11.387,9.226,20.62,20.613,20.62c11.387,0,20.613-9.233,20.613-20.62%20C402.348,155.501,393.122,146.275,381.735,146.275L381.735,146.275z%20M219.265,146.275c-11.387,0-20.616,9.226-20.616,20.614%20c0,11.387,9.23,20.62,20.616,20.62c11.387,0,20.617-9.233,20.617-20.62C239.882,155.501,230.652,146.275,219.265,146.275%20L219.265,146.275z%20M300.497,400.094c-18.881,0-34.186,15.309-34.186,34.189c0,18.887,15.305,34.189,34.186,34.189%20c18.887,0,34.189-15.302,34.189-34.189C334.686,415.403,319.384,400.094,300.497,400.094L300.497,400.094z%20M381.735,417.199%20c-11.387,0-20.613,9.233-20.613,20.62c0,11.38,9.226,20.614,20.613,20.614c11.387,0,20.613-9.233,20.613-20.614%20C402.348,426.433,393.122,417.199,381.735,417.199L381.735,417.199z%20M219.265,417.199c-11.387,0-20.616,9.233-20.616,20.62%20c0,11.38,9.23,20.614,20.616,20.614c11.387,0,20.617-9.233,20.617-20.614C239.882,426.433,230.652,417.199,219.265,417.199z'/%3e%3c/svg%3e\"","import ICON_IEC_62196_T2 from \"../assets/connectors/type2.svg\";\nimport ICON_IEC_62196_T2_COMBO from \"../assets/connectors/combo2.svg\";\nimport ICON_IEC_62196_T1 from \"../assets/connectors/type1.svg\";\nimport ICON_IEC_62196_T1_COMBO from \"../assets/connectors/combo1.svg\";\nimport ICON_IEC_62196_T3 from \"../assets/connectors/type3.svg\";\nimport ICON_IEC_62196_T3A from \"../assets/connectors/type3a.svg\";\nimport ICON_SCHUKO from \"../assets/connectors/schuko.svg\";\nimport ICON_CHADEMO from \"../assets/connectors/chademo.svg\";\nimport ICON_CATARC from \"../assets/connectors/catarc.svg\";\n\nexport default {\n // IEC 62196 Types\n IEC_62196_T1: ICON_IEC_62196_T1,\n IEC_62196_T1_COMBO: ICON_IEC_62196_T1_COMBO,\n IEC_62196_T2: ICON_IEC_62196_T2,\n IEC_62196_T2_COMBO: ICON_IEC_62196_T2_COMBO,\n IEC_62196_T3: ICON_IEC_62196_T3,\n IEC_62196_T3A: ICON_IEC_62196_T3A,\n IEC_62196_T3B: ICON_IEC_62196_T3,\n IEC_62196_T3C: ICON_IEC_62196_T3, // Using T3 as fallback\n\n // DC Fast Charging\n CHADEMO: ICON_CHADEMO,\n CHAOJI: ICON_CHADEMO, // Using CHADEMO as fallback for CHAOJI\n CATARC: ICON_CATARC,\n GBT_AC: ICON_CATARC, // Using CATARC as fallback for GBT AC\n GBT_DC: ICON_CATARC, // Using CATARC as fallback for GBT DC\n\n // AC Domestic Types (using SCHUKO as fallback for most domestic types)\n SCHUKO: ICON_SCHUKO,\n DOMESTIC_A: ICON_SCHUKO,\n DOMESTIC_B: ICON_SCHUKO,\n DOMESTIC_C: ICON_SCHUKO,\n DOMESTIC_D: ICON_SCHUKO,\n DOMESTIC_E: ICON_SCHUKO,\n DOMESTIC_F: ICON_SCHUKO,\n DOMESTIC_G: ICON_SCHUKO,\n DOMESTIC_H: ICON_SCHUKO,\n DOMESTIC_I: ICON_SCHUKO,\n DOMESTIC_J: ICON_SCHUKO,\n DOMESTIC_K: ICON_SCHUKO,\n DOMESTIC_L: ICON_SCHUKO,\n DOMESTIC_M: ICON_SCHUKO,\n DOMESTIC_N: ICON_SCHUKO,\n DOMESTIC_O: ICON_SCHUKO,\n\n // IEC 60309 Industrial Types (using SCHUKO as fallback)\n IEC_60309_2_SINGLE_16: ICON_SCHUKO,\n IEC_60309_2_THREE_16: ICON_SCHUKO,\n IEC_60309_2_THREE_32: ICON_SCHUKO,\n IEC_60309_2_THREE_64: ICON_SCHUKO,\n\n // NEMA Types (using SCHUKO as fallback)\n NEMA_5_20: ICON_SCHUKO,\n NEMA_6_30: ICON_SCHUKO,\n NEMA_6_50: ICON_SCHUKO,\n NEMA_10_30: ICON_SCHUKO,\n NEMA_10_50: ICON_SCHUKO,\n NEMA_14_30: ICON_SCHUKO,\n NEMA_14_50: ICON_SCHUKO,\n\n // Pantograph Types (using CHADEMO as fallback)\n PANTOGRAPH_BOTTOM_UP: ICON_CHADEMO,\n PANTOGRAPH_TOP_DOWN: ICON_CHADEMO,\n\n // Tesla Types (using CHADEMO as fallback)\n TESLA_R: ICON_CHADEMO,\n TESLA_S: ICON_CHADEMO,\n\n // Legacy CONNECTOR_STANDARD_TYPE mappings\n CONNECTOR_STANDARD_TYPE_CHADEMO: ICON_CHADEMO,\n CONNECTOR_STANDARD_TYPE_CHAOJI: ICON_CHADEMO,\n CONNECTOR_STANDARD_TYPE_CATARC: ICON_CATARC,\n CONNECTOR_STANDARD_TYPE_SCHUKO: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_A: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_B: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_C: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_D: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_E: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_F: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_G: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_H: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_I: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_J: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_K: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_L: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_M: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_N: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_O: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_GBT_AC: ICON_CATARC,\n CONNECTOR_STANDARD_TYPE_GBT_DC: ICON_CATARC,\n CONNECTOR_STANDARD_TYPE_IEC_60309_2_SINGLE_16: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_IEC_60309_2_THREE_16: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_IEC_60309_2_THREE_32: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_IEC_60309_2_THREE_64: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_IEC_62196_T1: ICON_IEC_62196_T1,\n CONNECTOR_STANDARD_TYPE_IEC_62196_T1_COMBO: ICON_IEC_62196_T1_COMBO,\n CONNECTOR_STANDARD_TYPE_IEC_62196_T2: ICON_IEC_62196_T2,\n CONNECTOR_STANDARD_TYPE_IEC_62196_T2_COMBO: ICON_IEC_62196_T2_COMBO,\n CONNECTOR_STANDARD_TYPE_IEC_62196_T3A: ICON_IEC_62196_T3A,\n CONNECTOR_STANDARD_TYPE_IEC_62196_T3C: ICON_IEC_62196_T3,\n CONNECTOR_STANDARD_TYPE_NEMA_5_20: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_NEMA_6_30: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_NEMA_6_50: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_NEMA_10_30: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_NEMA_10_50: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_NEMA_14_30: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_NEMA_14_50: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_PANTOGRAPH_BOTTOM_UP: ICON_CHADEMO,\n CONNECTOR_STANDARD_TYPE_PANTOGRAPH_TOP_DOWN: ICON_CHADEMO,\n CONNECTOR_STANDARD_TYPE_TESLA_R: ICON_CHADEMO,\n CONNECTOR_STANDARD_TYPE_TESLA_S: ICON_CHADEMO,\n};\n","export const defaultFilter = {\n minPower: 7,\n operator: [],\n status: [],\n publishingMode: \"\",\n connectorTypes: [],\n noAdditionalCharges: false,\n powerType: undefined,\n operatorOnly: \"\",\n};\n\nexport function hasFilters(filter) {\n const hasFilters =\n (filter.minPower && filter.minPower !== defaultFilter.minPower) ||\n filter?.status?.length ||\n filter?.connectorTypes?.length ||\n filter?.operator?.length ||\n filter?.powerType ||\n filter?.partyId ||\n filter?.noAdditionalCharges ||\n filter?.operatorOnly;\n\n return !!hasFilters;\n}\n","import React, { useEffect, useReducer } from \"react\";\n\nimport styles from \"./filters.module.css\";\nimport Checkbox from \"../../components/Checkbox/Checkbox\";\nimport Button from \"../../components/Button/Button\";\nimport Range from \"../../components/Range/Range\";\nimport MultiSelect from \"../../components/MultiSelect/MultiSelect\";\nimport SelectField from \"../../components/SelectField/SelectField\";\nimport { useMapContext } from \"../../contexts/Map\";\nimport connectorIcons from \"../../components/connectorIcons\";\nimport { useStackContext } from \"../../components/Stack/Stack\";\nimport { defaultFilter } from \"../../utils/filters\";\n\n// confirm if this a correct,\nconst powerRanges = [\n {\n label: 7,\n value: 7,\n },\n {\n label: 11,\n value: 11,\n },\n {\n label: 22,\n value: 22,\n },\n {\n label: 43,\n value: 43,\n },\n {\n label: 50,\n value: 50,\n },\n {\n label: 100,\n value: 100,\n },\n {\n label: 150,\n value: 150,\n },\n {\n label: 200,\n value: 200,\n },\n {\n label: \"250+\",\n value: 250,\n },\n];\n\nconst toggleOption = (\n action: \"remove\" | \"add\",\n existingFilters: string[],\n optionFilters: string[],\n) => {\n switch (action) {\n case \"remove\":\n return existingFilters.filter(\n (filter) => !optionFilters.includes(filter),\n );\n case \"add\":\n return Array.from(new Set([...existingFilters, ...optionFilters]));\n }\n};\n\nfunction useLocalState(initialState) {\n return useReducer((currentState, updatedState) => {\n return { ...currentState, ...updatedState };\n }, initialState);\n}\n\nexport default function FiltersScreen() {\n const {\n setFilters: applyFilters,\n t,\n filters: contextFilters,\n filterConfiguration,\n options,\n } = useMapContext();\n const [filters, setFilters] = useLocalState(defaultFilter);\n\n const { setView: setParentView } = useStackContext();\n\n const showOperatorFilter =\n options.version === \"v2\" && filterConfiguration?.operators?.length > 1;\n\n useEffect(() => {\n setFilters(contextFilters);\n }, []);\n\n useEffect(() => {\n applyFilters(filters);\n }, [filters]);\n\n return (\n <>\n <div className={styles.headerContainer}>\n <div className={styles.header}>{t(\"filters.header\")}</div>\n </div>\n\n <div className={styles.container}>\n <button\n onClick={() => {\n setFilters(defaultFilter);\n applyFilters(defaultFilter);\n }}\n className={styles.actionLinkClearAll}\n >\n {t(\"filters.clearAll\")}\n </button>\n <div className={styles.optionsGroup}>\n <div className={styles.heading}>{t(\"filters.onlyShow\")}</div>\n <label htmlFor=\"dsChargers\" className={styles.rowLabel}>\n <div className={styles.label}>{t(\"filters.dcChargers\")}</div>\n <Checkbox\n id=\"dsChargers\"\n checked={filters.powerType === \"dc\"}\n onChange={(checked) => {\n setFilters({\n powerType: checked ? \"dc\" : undefined,\n });\n }}\n />\n </label>\n\n {options.version !== \"v2\" && (\n <label htmlFor=\"efluxChargers\" className={styles.rowLabel}>\n <div className={styles.label}>{t(\"filters.efluxChargers\")}</div>\n <Checkbox\n id=\"efluxChargers\"\n checked={filters.partyId === \"EFL\"}\n onChange={(checked) => {\n setFilters({\n partyId: checked ? \"EFL\" : undefined,\n });\n }}\n />\n </label>\n )}\n\n {(options.version !== \"v2\" ||\n filterConfiguration?.showNoAdditionalFeeFilter) && (\n <label htmlFor=\"noAdditionalFee\" className={styles.rowLabel}>\n <div className={styles.label}>{t(\"filters.noAdditionalFee\")}</div>\n <Checkbox\n id=\"noAdditionalFee\"\n checked={filters.noAdditionalCharges}\n onChange={(checked) => {\n setFilters({\n noAdditionalCharges: checked ? true : undefined,\n });\n }}\n />\n </label>\n )}\n\n {filterConfiguration.showOperatorOnly && options.version === \"v2\" && (\n <label htmlFor=\"operatorOnly\" className={styles.rowLabel}>\n <div\n className={styles.label}\n >{`Show '${filterConfiguration.showOperatorOnly}' only`}</div>\n <Checkbox\n id=\"operatorOnly\"\n checked={\n filters.operatorOnly === filterConfiguration.showOperatorOnly\n }\n onChange={(checked) => {\n setFilters({\n operatorOnly: checked\n ? filterConfiguration.showOperatorOnly\n : undefined,\n });\n }}\n />\n </label>\n )}\n </div>\n\n {showOperatorFilter && (\n <div className={styles.optionsGroup}>\n <div className={styles.heading}>{\"Operator\"}</div>\n <MultiSelect\n id=\"operator\"\n preferredValues={options.preferredOperators}\n value={filters.operator}\n options={[\n ...(filterConfiguration?.operators?.map((operator: any) => ({\n value: operator?.connectionId,\n label: operator?.name,\n selected: filters.operators?.includes(operator?.connectionId),\n })) || []),\n ]}\n placeholder=\"Select operator\"\n onChange={(value) => {\n setFilters({\n operator: value,\n });\n }}\n />\n </div>\n )}\n\n {filterConfiguration?.showPublishingModeFilter &&\n filterConfiguration?.publishingMode?.length > 1 && (\n <div className={styles.optionsGroup}>\n <div className={styles.heading}>{\"Visibility\"}</div>\n <SelectField\n id=\"publishingMode\"\n value={filters.publishingMode}\n options={[\n { value: \"\", label: \"All locations\" },\n {\n value: \"PUBLISHING_MODE_PUBLIC\",\n label: \"Public locations\",\n },\n {\n value: \"PUBLISHING_MODE_PRIVATE\",\n label: \"Private locations\",\n },\n ]}\n onChange={(value) => {\n setFilters({ publishingMode: value });\n }}\n />\n </div>\n )}\n\n <div className={styles.optionsGroup}>\n <div className={styles.heading}>{t(\"filters.statusHeading\")}</div>\n\n <label htmlFor=\"statusAvailable\" className={styles.rowLabel}>\n <div className={styles.label}>\n <div className={styles.dot} style={{ background: \"#33AC19\" }} />\n {t(\"filters.available\")}\n </div>\n <Checkbox\n id=\"statusAvailable\"\n name=\"status\"\n checked={filters.status.includes(\"AVAILABLE\")}\n onChange={(checked) => {\n setFilters({\n status: toggleOption(\n checked ? \"add\" : \"remove\",\n filters.status,\n [\"AVAILABLE\"],\n ),\n });\n }}\n />\n </label>\n\n <label htmlFor=\"statusCharging\" className={styles.rowLabel}>\n <div className={styles.label}>\n <div className={styles.dot} style={{ background: \"#005CEE\" }} />\n {t(\"filters.charging\")}\n </div>\n <Checkbox\n id=\"statusCharging\"\n checked={filters.status.includes(\"CHARGING\")}\n onChange={(checked) => {\n setFilters({\n status: toggleOption(\n checked ? \"add\" : \"remove\",\n filters.status,\n [\"CHARGING\"],\n ),\n });\n }}\n />\n </label>\n\n <label htmlFor=\"statusError\" className={styles.rowLabel}>\n <div className={styles.label}>\n <div className={styles.dot} style={{ background: \"#EB001B\" }} />\n {t(\"filters.notAvailable\")}\n </div>\n <Checkbox\n id=\"statusError\"\n name=\"status\"\n checked={\n filters.status.includes(\"INOPERATIVE\") &&\n filters.status.includes(\"UNKNOWN\")\n }\n onChange={(checked) => {\n setFilters({\n status: toggleOption(\n checked ? \"add\" : \"remove\",\n filters.status,\n [\"INOPERATIVE\", \"UNKNOWN\"],\n ),\n });\n }}\n />\n </label>\n </div>\n\n <div className={styles.optionsGroup}>\n <div className={styles.heading}>{t(\"filters.chargingPower\")}</div>\n <Range\n value={filters.minPower}\n onChange={(value) => {\n setFilters({ minPower: value });\n }}\n ticks={powerRanges}\n />\n </div>\n\n <div className={styles.optionsGroup}>\n <div className={styles.heading}>{t(\"filters.connectorType\")}</div>\n\n <label htmlFor=\"type1\" className={styles.rowLabel}>\n <div className={styles.label}>\n <img\n src={connectorIcons.IEC_62196_T1}\n className={styles.connectorIcon}\n />\n Type 1 (Yazaki)\n </div>\n <Checkbox\n id=\"type1\"\n checked={filters.connectorTypes.includes(\"IEC_62196_T1\")}\n onChange={(checked) => {\n setFilters({\n connectorTypes: checked\n ? [...filters.connectorTypes, \"IEC_62196_T1\"]\n : filters.connectorTypes.filter(\n (s) => s !== \"IEC_62196_T1\",\n ),\n });\n }}\n />\n </label>\n\n <label htmlFor=\"type2\" className={styles.rowLabel}>\n <div className={styles.label}>\n <img\n src={connectorIcons.IEC_62196_T2}\n className={styles.connectorIcon}\n />\n Type 2 (Mennekes)\n </div>\n <Checkbox\n id=\"type2\"\n checked={filters.connectorTypes.includes(\"IEC_62196_T2\")}\n onChange={(checked) => {\n setFilters({\n connectorTypes: checked\n ? [...filters.connectorTypes, \"IEC_62196_T2\"]\n : filters.connectorTypes.filter(\n (s) => s !== \"IEC_62196_T2\",\n ),\n });\n }}\n />\n </label>\n <label htmlFor=\"type3\" className={styles.rowLabel}>\n <div className={styles.label}>\n <img\n src={connectorIcons.IEC_62196_T3}\n className={styles.connectorIcon}\n />\n Type 3 (Le Grand)\n </div>\n <Checkbox\n id=\"type3\"\n checked={filters.connectorTypes.includes(\"IEC_62196_T3A\")}\n onChange={(checked) => {\n setFilters({\n connectorTypes: checked\n ? [...filters.connectorTypes, \"IEC_62196_T3A\"]\n : filters.connectorTypes.filter(\n (s) => s !== \"IEC_62196_T3A\",\n ),\n });\n }}\n />\n </label>\n <label htmlFor=\"CHAdeMo\" className={styles.rowLabel}>\n <div className={styles.label}>\n <img\n src={connectorIcons.CHADEMO}\n className={styles.connectorIcon}\n />\n CHAdeMo\n </div>\n <Checkbox\n id=\"CHAdeMo\"\n checked={filters.connectorTypes.includes(\"CHADEMO\")}\n onChange={(checked) => {\n setFilters({\n connectorTypes: checked\n ? [...filters.connectorTypes, \"CHADEMO\"]\n : filters.connectorTypes.filter((s) => s !== \"CHADEMO\"),\n });\n }}\n />\n </label>\n <label htmlFor=\"domestic\" className={styles.rowLabel}>\n <div className={styles.label}>\n <img\n src={connectorIcons.DOMESTIC_F}\n className={styles.connectorIcon}\n />\n Domestic\n </div>\n <Checkbox\n id=\"domestic\"\n checked={filters.connectorTypes.includes(\"DOMESTIC_F\")}\n onChange={(checked) => {\n setFilters({\n connectorTypes: checked\n ? [...filters.connectorTypes, \"DOMESTIC_F\"]\n : filters.connectorTypes.filter((s) => s !== \"DOMESTIC_F\"),\n });\n }}\n />\n </label>\n <label htmlFor=\"combo\" className={styles.rowLabel}>\n <div className={styles.label}>\n <img\n src={connectorIcons.IEC_62196_T2_COMBO}\n className={styles.connectorIcon}\n />\n Combo\n </div>\n <Checkbox\n id=\"combo\"\n checked={filters.connectorTypes.includes(\"IEC_62196_T2_COMBO\")}\n onChange={(checked) => {\n setFilters({\n connectorTypes: checked\n ? [...filters.connectorTypes, \"IEC_62196_T2_COMBO\"]\n : filters.connectorTypes.filter(\n (s) => s !== \"IEC_62196_T2_COMBO\",\n ),\n });\n }}\n />\n </label>\n </div>\n </div>\n </>\n );\n}\n","import React, { useEffect } from \"react\";\n\nimport styles from \"./LocationPlaceholder.module.css\";\n\nexport default function LocationPlaceholder() {\n return (\n <div className={styles.container}>\n {/* put in place holders */}\n <div className={styles.header} />\n\n <div className={styles.divider} style={{ marginTop: '15px', marginBottom: '23px' }} />\n\n <div className={styles.iconLine} style={{ width: '60%' }} />\n <div className={styles.iconLine} style={{ width: '45%' }} />\n <div className={styles.iconLine} style={{ width: '50%' }} />\n\n <div className={styles.divider} />\n\n <div className={styles.iconLine} style={{ width: '50%' }} />\n <div className={styles.iconLine} style={{ width: '62%' }} />\n\n <div className={styles.priceLine} />\n\n <div className={styles.divider} />\n\n <div className={styles.iconLine} style={{ width: '50%' }} />\n <div className={styles.iconLine} style={{ width: '57%' }} />\n\n <div className={styles.priceLine} style={{ width: '30%' }} />\n </div>\n );\n}\n\n","import React from \"react\";\n\nexport function ChevronLeft() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 320 512\"\n fill=\"currentColor\"\n >\n <path d=\"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\" />\n </svg>\n );\n}\n\nexport function ChevronRight() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 320 512\"\n fill=\"currentColor\"\n >\n <path d=\"M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\" />\n </svg>\n );\n}\n\nexport function Info() {\n return (\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g>\n <path d=\"M8 0.25C3.72009 0.25 0.25 3.72134 0.25 8C0.25 12.2812 3.72009 15.75 8 15.75C12.2799 15.75 15.75 12.2812 15.75 8C15.75 3.72134 12.2799 0.25 8 0.25ZM8 14.25C4.54588 14.25 1.75 11.4553 1.75 8C1.75 4.54703 4.546 1.75 8 1.75C11.4528 1.75 14.25 4.54597 14.25 8C14.25 11.4541 11.4553 14.25 8 14.25ZM8 3.6875C8.72487 3.6875 9.3125 4.27513 9.3125 5C9.3125 5.72487 8.72487 6.3125 8 6.3125C7.27513 6.3125 6.6875 5.72487 6.6875 5C6.6875 4.27513 7.27513 3.6875 8 3.6875ZM9.75 11.625C9.75 11.8321 9.58209 12 9.375 12H6.625C6.41791 12 6.25 11.8321 6.25 11.625V10.875C6.25 10.6679 6.41791 10.5 6.625 10.5H7V8.5H6.625C6.41791 8.5 6.25 8.33209 6.25 8.125V7.375C6.25 7.16791 6.41791 7 6.625 7H8.625C8.83209 7 9 7.16791 9 7.375V10.5H9.375C9.58209 10.5 9.75 10.6679 9.75 10.875V11.625Z\" />\n </g>\n </svg>\n );\n}\n\n","import React from \"react\";\n\nimport styles from \"./SidebarContainer.module.css\";\n\nexport default function SideBarContainer({ children }) {\n return <div className={styles.container}>{children}</div>;\n}\n\n","import SideBarContainer from \"../SidebarContainer/SidebarContainer\";\nimport styles from \"./Debug.module.css\";\n\nexport default function Debug({ location }) {\n return (\n <div className={styles.container}>\n <SideBarContainer>\n <div>\n <h3>Debug: {location.name}</h3>\n </div>\n <div style={{ marginBottom: \"5px\" }}>\n <button\n onClick={() => {\n navigator.clipboard.writeText(JSON.stringify(location, null, 2));\n }}\n >\n Copy location\n </button>\n </div>\n <div className={styles.content}>\n {location.evses.map((evse) => {\n return (\n <div className={styles.evse}>\n <div className={styles.connectorHeader}>\n Evse: {evse.evseId || evse.evse_id}\n </div>\n <div>\n {evse.connectors.map((connector, i) => {\n return (\n <div>\n <div className={styles.connectorHeader}>\n Connector #{i}\n </div>\n <pre className={styles.code}>\n {JSON.stringify(\n connector.tariff || Array.isArray(location.tariffs)\n ? location.tariffs?.find((t) =>\n connector.tariff_ids.includes(t.id),\n )\n : null,\n null,\n 2,\n )}\n </pre>\n </div>\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n </SideBarContainer>\n </div>\n );\n}\n","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='18'%20height='16'%20viewBox='0%200%2018%2016'%20fill='none'%3e%3cg%20clip-path='url(%23clip0_480_2466)'%3e%3cpath%20d='M3.76781%207H5.0925L4.81812%208.71156C4.77812%208.85969%204.9075%209%205.07875%209C5.17188%209%205.26156%208.95719%205.31063%208.88313L7.40219%205.78062C7.50531%205.62469%207.37656%205.42875%207.17031%205.42875H5.88219L6.14094%204.295C6.18625%204.14625%206.05781%204.00031%205.88219%204.00031H4.36438C4.23%204.00031%204.11656%204.08719%204.09875%204.20375L3.50187%206.735C3.48094%206.87531%203.60594%207%203.76781%207ZM17.5%204H17V2.5C17%202.22375%2016.7763%202%2016.5%202C16.2237%202%2016%202.22375%2016%202.5V4H15V2.5C15%202.22375%2014.7762%202%2014.5%202C14.2238%202%2014%202.22375%2014%202.5V4H13.5C13.2238%204%2013%204.22375%2013%204.5V6C13%207.1175%2013.7381%208.05281%2014.75%208.37281V11.625C14.75%2012.1075%2014.3575%2012.5%2013.875%2012.5C13.3925%2012.5%2013%2012.1075%2013%2011.625V10.75C13%209.23344%2011.7666%208%2010.25%208H10V1.5C10%200.671562%209.32844%200%208.5%200H2.5C1.67156%200%201%200.671562%201%201.5V14.5H0.25C0.111875%2014.5%200%2014.6119%200%2014.75V15.75C0%2015.8881%200.111875%2016%200.25%2016H10.75C10.8881%2016%2011%2015.8881%2011%2015.75V14.75C11%2014.6119%2010.8881%2014.5%2010.75%2014.5H10V9.5H10.25C10.9394%209.5%2011.5%2010.0606%2011.5%2010.75V11.625C11.5%2012.9347%2012.5653%2014%2013.875%2014C15.1847%2014%2016.25%2012.9347%2016.25%2011.625V8.37281C17.2619%208.05281%2018%207.1175%2018%206V4.5C18%204.22375%2017.7763%204%2017.5%204ZM8.5%2014.5H2.5V1.5H8.5V14.5ZM16.5%206C16.5%206.55125%2016.0513%207%2015.5%207C14.9487%207%2014.5%206.55125%2014.5%206V5.5H16.5V6Z'%20fill='black'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_480_2466'%3e%3crect%20width='18'%20height='16'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='14'%20height='16'%20viewBox='0%200%2014%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_480_2468)'%3e%3cpath%20d='M4%204.625V3.375C4%203.16875%204.16875%203%204.375%203H5.625C5.83125%203%206%203.16875%206%203.375V4.625C6%204.83125%205.83125%205%205.625%205H4.375C4.16875%205%204%204.83125%204%204.625ZM8.375%205H9.625C9.83125%205%2010%204.83125%2010%204.625V3.375C10%203.16875%209.83125%203%209.625%203H8.375C8.16875%203%208%203.16875%208%203.375V4.625C8%204.83125%208.16875%205%208.375%205ZM4.375%208H5.625C5.83125%208%206%207.83125%206%207.625V6.375C6%206.16875%205.83125%206%205.625%206H4.375C4.16875%206%204%206.16875%204%206.375V7.625C4%207.83125%204.16875%208%204.375%208ZM8.375%208H9.625C9.83125%208%2010%207.83125%2010%207.625V6.375C10%206.16875%209.83125%206%209.625%206H8.375C8.16875%206%208%206.16875%208%206.375V7.625C8%207.83125%208.16875%208%208.375%208ZM6%2010.625V9.375C6%209.16875%205.83125%209%205.625%209H4.375C4.16875%209%204%209.16875%204%209.375V10.625C4%2010.8313%204.16875%2011%204.375%2011H5.625C5.83125%2011%206%2010.8313%206%2010.625ZM8.375%2011H9.625C9.83125%2011%2010%2010.8313%2010%2010.625V9.375C10%209.16875%209.83125%209%209.625%209H8.375C8.16875%209%208%209.16875%208%209.375V10.625C8%2010.8313%208.16875%2011%208.375%2011ZM14%2014.875V16H0V14.875C0%2014.6687%200.16875%2014.5%200.375%2014.5H0.984375V0.75C0.984375%200.334375%201.31875%200%201.73438%200H12.2656C12.6812%200%2013.0156%200.334375%2013.0156%200.75V14.5H13.625C13.8313%2014.5%2014%2014.6687%2014%2014.875ZM2.48438%2014.4688H6V12.375C6%2012.1687%206.16875%2012%206.375%2012H7.625C7.83125%2012%208%2012.1687%208%2012.375V14.4688H11.5156V1.53125L2.5%201.5L2.48438%2014.4688Z'%20fill='black'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_480_2468'%3e%3crect%20width='14'%20height='16'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='20'%20height='16'%20viewBox='0%200%2020%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17%206H16.5L13.1003%201.75063C12.913%201.51641%2012.6754%201.32734%2012.405%201.19741C12.1347%201.06747%2011.8387%201.00001%2011.5387%201H4.85406C4.03625%201%203.30094%201.49781%202.99719%202.25719L1.5%206V6.07062C0.63875%206.29375%200%207.06906%200%208V11.5C0%2011.7762%200.22375%2012%200.5%2012H2C2%2013.6569%203.34312%2015%205%2015C6.65688%2015%208%2013.6569%208%2012H12C12%2013.6569%2013.3431%2015%2015%2015C16.6569%2015%2018%2013.6569%2018%2012H19.5C19.7763%2012%2020%2011.7762%2020%2011.5V9C20%207.34312%2018.6569%206%2017%206ZM8.75%202.5H11.5387C11.6916%202.5%2011.8338%202.56844%2011.9291%202.6875L14.5791%206H8.75V2.5ZM4.38969%202.81437C4.46625%202.62344%204.64844%202.5%204.85406%202.5H7.25V6H3.11562L4.38969%202.81437ZM5%2013.5C4.17156%2013.5%203.5%2012.8284%203.5%2012C3.5%2011.1716%204.17156%2010.5%205%2010.5C5.82844%2010.5%206.5%2011.1716%206.5%2012C6.5%2012.8284%205.82844%2013.5%205%2013.5ZM15%2013.5C14.1716%2013.5%2013.5%2012.8284%2013.5%2012C13.5%2011.1716%2014.1716%2010.5%2015%2010.5C15.8284%2010.5%2016.5%2011.1716%2016.5%2012C16.5%2012.8284%2015.8284%2013.5%2015%2013.5ZM18.5%2010.5H17.5841C17.0644%209.60719%2016.1078%209%2015%209C13.8922%209%2012.9359%209.60719%2012.4159%2010.5H7.58406C7.06437%209.60719%206.10781%209%205%209C3.89219%209%202.93594%209.60719%202.41594%2010.5H1.5V8C1.5%207.72437%201.72438%207.5%202%207.5H17C17.8272%207.5%2018.5%208.17281%2018.5%209V10.5Z'%20fill='black'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='12'%20height='16'%20viewBox='0%200%2012%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_480_2435)'%3e%3cpath%20d='M11.8068%205.24687C11.5506%204.8%2011.0849%204.53125%2010.5693%204.53125H7.61932L8.51619%201.79688C8.63182%201.36563%208.54119%200.9125%208.26932%200.55625C7.99432%200.203125%207.57869%200%207.13182%200H3.05369C2.34118%200%201.73181%200.534375%201.65368%201.15937L0.0161813%207.79063C-0.0431938%208.22188%200.0849314%208.65625%200.369307%208.98438C0.653682%209.3125%201.06618%209.5%201.50056%209.5H4.56619L3.47556%2014.2406C3.37556%2014.6688%203.47244%2015.1125%203.74431%2015.4563C4.01619%2015.8031%204.42556%2016%204.86619%2016C5.37556%2016%205.85057%2015.725%206.07869%2015.325L11.8037%206.67812C12.0662%206.23125%2012.0662%205.69375%2011.8068%205.24687ZM5.00369%2014.2937L6.45057%208H1.48493L3.05369%201.5L7.04119%201.47187L5.54744%206.03125H10.4381L5.00369%2014.2937Z'%20fill='%232A2A2A'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_480_2435'%3e%3crect%20width='12'%20height='16'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='18'%20height='12'%20viewBox='0%200%2018%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M16.2857%200H0.857143C0.383839%200%200%200.383839%200%200.857143V11.1429C0%2011.6162%200.383839%2012%200.857143%2012H16.2857C16.759%2012%2017.1429%2011.6162%2017.1429%2011.1429V0.857143C17.1429%200.383839%2016.759%200%2016.2857%200ZM15.8571%2010.7143H1.28571V1.28571H15.8571V10.7143ZM7.92857%207.71429H10.0714C10.1898%207.71429%2010.2857%207.61839%2010.2857%207.5V6.64286C10.2857%206.52446%2010.1898%206.42857%2010.0714%206.42857H7.92857C7.81018%206.42857%207.71429%206.52446%207.71429%206.64286V7.5C7.71429%207.61839%207.81018%207.71429%207.92857%207.71429ZM14.3571%206.42857H12.2143C12.0959%206.42857%2012%206.52446%2012%206.64286V7.5C12%207.61839%2012.0959%207.71429%2012.2143%207.71429H14.3571C14.4755%207.71429%2014.5714%207.61839%2014.5714%207.5V6.64286C14.5714%206.52446%2014.4755%206.42857%2014.3571%206.42857ZM7.92857%205.57143H14.3571C14.4755%205.57143%2014.5714%205.47554%2014.5714%205.35714V4.5C14.5714%204.38161%2014.4755%204.28571%2014.3571%204.28571H7.92857C7.81018%204.28571%207.71429%204.38161%207.71429%204.5V5.35714C7.71429%205.47554%207.81018%205.57143%207.92857%205.57143ZM3.60857%206.04607L4.73866%206.3525C4.85089%206.38304%204.92857%206.47437%204.92857%206.57482C4.92857%206.70339%204.80804%206.80786%204.65911%206.80786H3.95357C3.84241%206.80786%203.73312%206.78%203.6383%206.72884C3.5558%206.68411%203.45509%206.69214%203.3908%206.76045L3.0675%207.10143C2.9842%207.18929%202.99786%207.33286%203.09777%207.40116C3.32009%207.5525%203.58152%207.63902%203.85714%207.65616V7.92857C3.85714%208.04696%203.95304%208.14286%204.07143%208.14286H4.5C4.61839%208.14286%204.71429%208.04696%204.71429%207.92857V7.65402C5.30839%207.62455%205.78571%207.15661%205.78571%206.57455C5.78571%206.08786%205.44768%205.65634%204.96286%205.52536L3.83277%205.21893C3.72054%205.18839%203.64286%205.09705%203.64286%204.99661C3.64286%204.86804%203.76339%204.76357%203.91232%204.76357H4.61786C4.72902%204.76357%204.8383%204.79143%204.93312%204.84259C5.01562%204.88705%205.11634%204.87929%205.18062%204.81098L5.50393%204.47C5.58723%204.38214%205.57357%204.23857%205.47366%204.17027C5.25134%204.01893%204.98991%203.93241%204.71429%203.91527V3.64286C4.71429%203.52446%204.61839%203.42857%204.5%203.42857H4.07143C3.95304%203.42857%203.85714%203.52446%203.85714%203.64286V3.91741C3.26304%203.94688%202.78571%204.41482%202.78571%204.99688C2.78571%205.48357%203.12375%205.91509%203.60857%206.04607Z'%20fill='%232A2A2A'/%3e%3c/svg%3e\"","import connectorIcons from \"../components/connectorIcons\";\nimport { MapContextType } from \"../contexts/Map\";\nimport { getColorForStatus } from \"./location\";\n\nexport function getSocketIcon(connector) {\n return connectorIcons[connector.standard || connector.connectorStandardType];\n}\n\nexport function formatNumber(language, value) {\n return new Intl.NumberFormat(language, {\n maximumFractionDigits: 2,\n }).format(value);\n}\n\nexport const connectorPowerTypes = {\n CONNECTOR_POWER_TYPE_UNSPECIFIED: \"Unspecified\",\n CONNECTOR_POWER_TYPE_AC_1_PHASE: \"AC x 1\",\n CONNECTOR_POWER_TYPE_AC_2_PHASE: \"AC x 2\",\n CONNECTOR_POWER_TYPE_AC_2_PHASE_SPLIT: \"AC x 2 Split\",\n CONNECTOR_POWER_TYPE_AC_3_PHASE: \"AC x 3\",\n CONNECTOR_POWER_TYPE_DC: \"DC\",\n CONNECTOR_POWER_TYPE_AC: \"AC\",\n AC_3_PHASE: \"AC x 3\",\n AC_1_PHASE: \"AC x 1\",\n DC: \"DC\",\n};\n\nexport function getSocketText(connector) {\n return [\n formatConnectorStandard(\n connector.standard || connector.connectorStandardType,\n ),\n connectorPowerTypes[\n connector.powerType ||\n connector.power_type ||\n connector.connectorPowerType\n ],\n \"Socket\",\n ].join(\", \");\n}\n\nexport function formatConnectorStandard(value) {\n value = (value || \"\").replace(\"CONNECTOR_STANDARD_TYPE_\", \"\");\n\n if (value === \"IEC_62196_T1\") return \"Type 1\";\n if (value === \"IEC_62196_T1_COMBO\") return \"Type 1 Combo\";\n if (value === \"IEC_62196_T2\") return \"Type 2\";\n if (value === \"IEC_62196_T2_COMBO\") return \"Type 2 Combo\";\n if (value === \"IEC_62196_T3A\") return \"Type 3A\";\n if (value === \"IEC_62196_T3C\") return \"Type 3C\";\n if (value === \"CHADEMO\") return \"CHAdeMO\";\n if (value === \"DOMESTIC_F\") return \"Domestic F\";\n if (value === \"DOMESTIC_E\") return \"Domestic E\";\n if (value === \"DOMESTIC_B\") return \"Domestic B\";\n if (value === \"CATARC\") return \"Catarc\";\n return value;\n}\n\nexport function getStatusLabel(t: MapContextType[\"t\"], status) {\n switch (status) {\n case \"AVAILABLE\":\n return t(`evse.statusAvailable`);\n case \"CHARGING\":\n return t(`evse.statusCharging`);\n case \"UNAVAILABLE\":\n return t(`evse.statusUnavailable`);\n case \"ERROR\":\n return t(`evse.statusError`);\n case \"UNKNOWN\":\n return t(`evse.statusUnknown`);\n case \"REMOVED\":\n return t(`evse.statusRemoved`);\n case \"PLANNED\":\n return t(`evse.statusPlanned`);\n case \"RESERVED\":\n return t(`evse.statusReserved`);\n case \"INOPERATIVE\":\n return t(`evse.statusInoperative`);\n case \"OUTOFORDER\":\n return t(`evse.statusOutOfOrder`);\n default:\n return t(`evse.statusUnknown`);\n }\n}\n\nexport function getLocationLabel(t: MapContextType[\"t\"], location) {\n if (location?.type === \"ON_STREET\") {\n return t(`locationType.onStreet`);\n }\n if (location?.type === \"PARKING_GARAGE\") {\n return t(`locationType.parkingGarage`);\n }\n if (location?.type === \"UNDERGROUND_GARAGE\") {\n return t(`locationType.undergroundGarage`);\n }\n if (location?.type === \"PARKING_LOT\") {\n return t(`locationType.parkingLot`);\n }\n\n return t(`locationType.other`);\n}\n\nexport function getStatusColorFromEvses(evses: any[] = []) {\n if (evses.some((evse) => evse.status === \"AVAILABLE\")) {\n return getColorForStatus(\"AVAILABLE\");\n }\n\n if (evses.some((evse) => evse.status === \"CHARGING\")) {\n return getColorForStatus(\"CHARGING\");\n }\n\n return getColorForStatus(\"UNKNOWN\");\n}\n","/**\n * Note there could be bugs here. This is waiting for the Temporal API\n * Or if we cant wait use a library like moment-timezone or similar for more reliable timezone support\n */\n\n// Return offset on date for loc in ±H[:mm] format. Minutes only included if not zero\n// This is a bit special see https://stackoverflow.com/questions/62130983/get-offset-of-the-other-location-in-javascript for explanation\nexport function getTimezoneOffset(date, timeZone) {\n // Try English to get offset. If get abbreviation, use French\n let offset;\n [\"en\", \"fr\"].some((lang) => {\n // Get parts - can't get just timeZoneName, must get one other part at least\n let parts = new Intl.DateTimeFormat(lang, {\n minute: \"numeric\",\n timeZone,\n timeZoneName: \"short\",\n }).formatToParts(date);\n // Get offset from parts\n let tzName = parts.filter(\n (part) => part.type == \"timeZoneName\" && part.value\n );\n // timeZoneName starting with GMT or UTC is offset - keep and stop looping\n // Otherwise it's an abbreviation, keep looping\n if (/^(GMT|UTC)/.test(tzName[0].value)) {\n offset = tzName[0].value.replace(/GMT|UTC/, \"\") || \"+0\";\n return true;\n }\n });\n // Format offset as ±HH:mm\n // Normalise minus sign as ASCII minus (charCode 45)\n let sign = offset[0] == \"\\x2b\" ? \"\\x2b\" : \"\\x2d\";\n let [h, m] = offset.substring(1).split(\":\");\n return sign + h.padStart(2, \"0\") + \":\" + (m || \"00\");\n}\n\n// Convert offset string in ±HH:mm to minutes\nfunction offsetToMins(offset) {\n let sign = /^-/.test(offset) ? -1 : 1;\n let [h, m] = offset.match(/\\d\\d/g);\n return sign * (h * 60 + Number(m));\n}\n\nfunction formatYMD(timeZone, date) {\n const z = (n) => (\"0\" + n).slice(-2);\n const { year, month, day } = new Intl.DateTimeFormat(\"en\", {\n timeZone: timeZone,\n })\n .formatToParts(date)\n .reduce((acc, part) => {\n acc[part.type] = part.value;\n return part;\n }, Object.create(null));\n return `${year}-${z(month)}-${z(day)}`;\n}\n\nexport function tzDate(timeZone, date = new Date()) {\n const offset = getTimezoneOffset(date, timeZone);\n const offMins = offsetToMins(offset);\n const d = new Date(+date);\n d.setUTCMinutes(d.getUTCMinutes() + offMins);\n return d;\n}\n\nexport function startOfDay(timeZone, date = new Date()) {\n const offset = getTimezoneOffset(date, timeZone);\n const offMins = offsetToMins(offset);\n const d = new Date(+date);\n d.setUTCHours(0, -offMins, 0, 0);\n // If date is + or - original date, adjust\n const oDateTS = formatYMD(timeZone, date);\n const sodDateTS = formatYMD(timeZone, d);\n if (sodDateTS > oDateTS) {\n d.setUTCDate(d.getUTCDate() - 1);\n } else if (sodDateTS < oDateTS) {\n d.setUTCDate(d.getUTCDate() + 1);\n }\n return d;\n}\n\nexport function endOfDate(timeZone, date = new Date()) {\n return new Date(startOfDay(timeZone, date).valueOf() + 86399999);\n}\n\n// Could be bugs here\nexport function getNextDayOfWeek(\n date: Date,\n dayOfWeek: number,\n timeZone?: string\n) {\n const resultDate = tzDate(timeZone, date);\n if (resultDate.getUTCDate() !== dayOfWeek) {\n resultDate.setUTCDate(\n date.getUTCDate() + ((7 + dayOfWeek - date.getUTCDay() - 1) % 7) + 1\n );\n }\n\n return {\n start: startOfDay(timeZone, resultDate),\n end: endOfDate(timeZone, resultDate),\n };\n}\n\nexport function getDay(date: Date, timeZone?: string) {\n return tzDate(timeZone, date).getUTCDay();\n}\n","import {\n TariffElement,\n TariffRestrictions,\n DayOfWeek,\n PriceComponent,\n OcpiTariff,\n OcpiTariffElement,\n} from \"../types\";\n\nimport { getDay, getNextDayOfWeek } from \"../utils/date\";\n\nexport function convertTimeToMinutes(time: string) {\n const [hours, minutes] = time.split(\":\");\n return parseInt(hours) * 60 + parseInt(minutes);\n}\n\nfunction convertToTimeSlot(element: TariffElement): Timeslot {\n if (!element?.restrictions?.startTime) {\n return {\n elements: [element],\n priceComponents: element.priceComponents,\n startTime: 0,\n endTime: 24 * 60,\n isFullDay: true,\n };\n }\n\n const startTime = convertTimeToMinutes(element.restrictions.startTime);\n const endTime = convertTimeToMinutes(element.restrictions.endTime);\n\n return {\n elements: [element],\n priceComponents: element.priceComponents,\n isFullDay: startTime === 0 && endTime === 24 * 60,\n startTime,\n endTime,\n };\n}\n\ntype Timeslot = {\n isActive?: boolean;\n isFullDay: boolean;\n startTime: number;\n endTime: number;\n elements?: TariffElement[];\n priceComponents: PriceComponent[];\n};\n\n// TODO write this nicer\nexport function getScheduleItems(\n items: Timeslot[],\n isDayActive: boolean,\n now: Date,\n): Timeslot[] {\n const currentTime = (now.getHours() * 60 + now.getMinutes()) % 60;\n\n if (items.length <= 1) {\n return items.map((item) => {\n item.isActive =\n isDayActive &&\n item.startTime <= currentTime &&\n item.endTime >= currentTime;\n\n return item;\n });\n }\n items = items.sort((a, b) => a.startTime - b.startTime);\n\n let scheduleItems = [items[0]];\n for (let i = 1; i < items.length; i++) {\n const current = items[i];\n\n const refItem = scheduleItems.findLast(\n (item) => item.startTime <= current.startTime,\n );\n if (!refItem) {\n scheduleItems = scheduleItems.filter(\n (item) => item.endTime > current.endTime,\n );\n scheduleItems.unshift(current);\n } else {\n const oldEndTime = refItem.endTime;\n refItem.endTime = current.startTime;\n\n const toAppend = [current];\n if (oldEndTime > current.endTime) {\n toAppend.push({\n ...refItem,\n startTime: current.endTime,\n endTime: oldEndTime,\n });\n }\n scheduleItems.splice(scheduleItems.indexOf(refItem) + 1, 0, ...toAppend);\n }\n\n let maxEndTime = 0;\n scheduleItems = scheduleItems\n .map((item, i) => {\n const prevItem = scheduleItems[i - 1];\n\n if (item.endTime > maxEndTime) {\n maxEndTime = item.endTime;\n } else {\n return null;\n }\n if (prevItem && prevItem.endTime !== item.startTime) {\n item.startTime = prevItem.endTime;\n }\n return item;\n })\n .filter(Boolean);\n }\n\n return scheduleItems.map((item) => {\n item.isActive =\n isDayActive &&\n item.startTime <= currentTime &&\n item.endTime >= currentTime;\n\n item.isFullDay = item.startTime === 0 && item.endTime === 24 * 60;\n\n return item;\n });\n}\n\nexport function isBaseTariffOCPI(tariffElement: OcpiTariffElement) {\n return (\n //elements without restrictions are always base tariff\n !tariffElement?.restrictions ||\n // elements without time restirctions are also base tariff\n (!tariffElement?.restrictions?.start_date &&\n !tariffElement?.restrictions?.end_date &&\n !tariffElement?.restrictions?.start_time &&\n !tariffElement?.restrictions?.end_time &&\n !tariffElement?.restrictions?.day_of_week &&\n !tariffElement?.restrictions?.day_of_week)\n );\n}\n\nexport function isBaseTarif(tariffElement: TariffElement) {\n return (\n //elements without restrictions are always base tariff\n !tariffElement?.restrictions ||\n // elements without time restirctions are also base tariff\n (!tariffElement?.restrictions?.startDate &&\n !tariffElement?.restrictions?.endDate &&\n !tariffElement?.restrictions?.startTime &&\n !tariffElement?.restrictions?.startTime &&\n !tariffElement?.restrictions?.dayOfWeek)\n );\n}\n\ntype DynamicTariff = {\n date: Date;\n items: Timeslot[];\n};\n\ntype getDynamicTariffProps = {\n elements: TariffElement[];\n limit?: number;\n now: Date;\n};\n\nexport function getDynamicTariffOCPI(\n elements: OcpiTariffElement[],\n limit: number = 6,\n now: Date = new Date(),\n): DynamicTariff[] {\n const filteredElements = [...elements]\n .filter((c) => !isBaseTariffOCPI(c))\n .map((el) => {\n return {\n ...el,\n restrictions: {\n _startDate: new Date(\n `${el.restrictions.start_date}T${el.restrictions.start_time}`,\n ),\n ...el.restrictions,\n },\n };\n })\n .sort((a, b) => {\n return (\n a.restrictions._startDate.valueOf() -\n b.restrictions._startDate.valueOf()\n );\n })\n .filter((c) => {\n return (\n c.restrictions._startDate.valueOf() > now.valueOf() - 180 * 60 * 1000\n );\n })\n .slice(0, limit);\n\n const splitByDay = filteredElements.reduce((acc, curr) => {\n const day = curr.restrictions._startDate.getDate();\n acc[day] = {\n date: new Date(curr.restrictions.start_date),\n items: [...(acc[day]?.items || []), curr],\n };\n return acc;\n }, []);\n\n return Object.keys(splitByDay).map((key) => {\n const { date, items }: { date: Date; items: any[] } = splitByDay[key];\n const formattedItems = items\n .map(({ restrictions, ...c }) => {\n const { _startDate, ...partialRestrictions } = restrictions;\n return {\n ...c,\n restrictions: {\n ...partialRestrictions,\n },\n };\n })\n .map(convertToTimeSlot)\n .map((item) => {\n const isDayActive = getDay(now) === getDay(date);\n const currentTime = now.getHours() * 60 + now.getMinutes();\n\n const isActive =\n isDayActive &&\n item.startTime <= currentTime &&\n item.endTime - 1 >= currentTime;\n\n return {\n ...item,\n isActive,\n };\n });\n\n return {\n date,\n items: formattedItems,\n };\n });\n}\n\nexport function getDynamicTariff({\n elements,\n limit = 6,\n now = new Date(),\n}: getDynamicTariffProps): DynamicTariff[] {\n const filteredElements = [...elements]\n .filter((c) => !isBaseTarif(c))\n .map((el) => {\n // we are displaying these in the local timezone\n return {\n ...el,\n restrictions: {\n _startDate: new Date(\n `${el.restrictions.startDate}T${el.restrictions.startTime}`,\n ),\n ...el.restrictions,\n },\n };\n })\n .sort((a, b) => {\n return (\n a.restrictions._startDate.valueOf() -\n b.restrictions._startDate.valueOf()\n );\n })\n .filter((c) => {\n return (\n c.restrictions._startDate.valueOf() > now.valueOf() - 180 * 60 * 1000\n );\n })\n .slice(0, limit);\n\n const splitByDay = filteredElements.reduce((acc, curr) => {\n const day = curr.restrictions._startDate.getDate();\n acc[day] = {\n date: new Date(curr.restrictions.startDate),\n items: [...(acc[day]?.items || []), curr],\n };\n return acc;\n }, []);\n\n return Object.keys(splitByDay).map((key) => {\n const { date, items }: { date: Date; items: any[] } = splitByDay[key];\n const formattedItems = items\n .map(({ restrictions, ...c }) => {\n const { _startDate, ...partialRestrictions } = restrictions;\n return {\n ...c,\n restrictions: {\n ...partialRestrictions,\n },\n };\n })\n .map(convertToTimeSlot)\n .map((item) => {\n const isDayActive = getDay(now) === getDay(date);\n const currentTime = now.getHours() * 60 + now.getMinutes();\n\n const isActive =\n isDayActive &&\n item.startTime <= currentTime &&\n item.endTime - 1 >= currentTime;\n\n return {\n ...item,\n isActive,\n };\n });\n\n return {\n date,\n items: formattedItems,\n };\n });\n}\n\nexport function getScheduledTariff(\n elements: TariffElement[],\n locationTimezone: string,\n) {\n // TODO this timezone from locations\n const today = new Date();\n\n return [...elements].reduce(\n (acc, curr) => {\n const {\n startDate: start_date,\n endDate: end_date,\n dayOfWeek: day_of_week = [],\n } = (curr.restrictions as TariffRestrictions) || {};\n\n // filtering out elements without restrictions\n if (!Object.keys(curr.restrictions || {}).length) {\n return acc;\n }\n\n // TODO not sure this is correct consider timezone + should start_time be included\n const startDate = start_date ? new Date(start_date) : null;\n\n if (start_date) {\n if (startDate.valueOf() > Date.now()) {\n return acc;\n }\n }\n\n // TODO not sure this is correct consider timezone + should end_time be included\n const endDate = end_date ? new Date(end_date) : null;\n\n if (end_date) {\n if (endDate.valueOf() < Date.now()) {\n return acc;\n }\n }\n\n [\n \"SUNDAY\",\n \"MONDAY\",\n \"TUESDAY\",\n \"WEDNESDAY\",\n \"THURSDAY\",\n \"FRIDAY\",\n \"SATURDAY\",\n ].forEach((day: DayOfWeek, index) => {\n // note this does not work for timezones yet, until we load a timezone library\n const { start, end } = getNextDayOfWeek(today, index, locationTimezone);\n\n if (startDate) {\n if (startDate.valueOf() > start.valueOf()) {\n return;\n }\n }\n\n if (endDate) {\n if (endDate.valueOf() < end.valueOf()) {\n return;\n }\n }\n if (day_of_week.length && !day_of_week.includes(day)) return;\n\n acc[day] = [...acc[day], curr];\n });\n return acc;\n },\n {\n MONDAY: [],\n TUESDAY: [],\n WEDNESDAY: [],\n THURSDAY: [],\n FRIDAY: [],\n SATURDAY: [],\n SUNDAY: [],\n },\n );\n}\n\nfunction omitFields(obj, fields) {\n return Object.keys(obj).reduce((acc, curr) => {\n if (!fields.includes(curr)) {\n acc[curr] = obj[curr];\n }\n return acc;\n }, {});\n}\n\nfunction isSame(a, b) {\n const aWithoutActive = a.map((item) => omitFields(item, [\"isActive\"]));\n const bWithoutActive = b.map((item) => omitFields(item, [\"isActive\"]));\n return JSON.stringify(aWithoutActive) === JSON.stringify(bWithoutActive);\n}\n\n//merge timeslots that have the same start and end time\nfunction mergeDuplicatesTimeslots(timeslots: Timeslot[]) {\n return timeslots.reduce((acc, cur) => {\n const existing = acc.find((item) => {\n return item.startTime === cur.startTime && item.endTime === cur.endTime;\n });\n if (existing) {\n existing.elements.push(...cur.elements);\n } else {\n acc.push(cur);\n }\n return acc;\n }, []);\n}\n\ntype Schedule = {\n days: DayOfWeek[];\n isActive: boolean;\n items: Timeslot[];\n};\n\nexport function getSchedule(\n elements: TariffElement[],\n locationTimezone,\n now,\n): Schedule[] {\n const days = getScheduledTariff(\n elements.concat().filter((c) => !isBaseTarif(c)),\n locationTimezone,\n );\n\n const { SUNDAY, ...rest } = days;\n\n // fixing order sunday has to be first for the getDay function to work\n const [firstDay, ...restDays] = Object.keys({\n SUNDAY: days.SUNDAY,\n ...rest,\n }).map((key, index) => {\n const dayElements = days[key];\n const isActive = getDay(now, locationTimezone) === index;\n\n return {\n day: key,\n isActive,\n items: getScheduleItems(\n mergeDuplicatesTimeslots(dayElements.map(convertToTimeSlot)),\n isActive,\n now,\n ),\n };\n });\n\n // switching order back\n return [...restDays, firstDay]\n .reduce((acc, curr, index, items) => {\n const prevEntry = acc[acc.length - 1];\n const prevTimeslots = prevEntry?.items;\n if (!prevTimeslots || !isSame(prevTimeslots, curr.items)) {\n const { day, ...rest } = curr;\n acc.push({\n ...rest,\n days: [curr.day],\n });\n } else {\n prevEntry.days = [prevEntry.days[0], curr.day];\n prevEntry.isActive = prevEntry.isActive || curr.isActive;\n }\n return acc;\n }, [])\n .filter((c) => {\n return !!c.items.length;\n });\n}\n\nexport function getConnectorTariffTypeV2(tariff: OcpiTariff) {\n if (!tariff) {\n return \"none\";\n }\n\n const hasPriceComponents = tariff.elements?.some(\n (element) => element?.price_components?.length > 0,\n );\n if (!hasPriceComponents) {\n return \"none\";\n }\n\n const baseTarifElements = tariff.elements.filter(isBaseTariffOCPI);\n if (baseTarifElements.length === tariff.elements.length) {\n return \"base\";\n }\n\n const dynamicTariffs = getDynamicTariffOCPI(tariff.elements, 6, new Date());\n\n if (dynamicTariffs.length) {\n return \"dynamic\";\n }\n\n return \"scheduled\";\n}\n\nexport function getConnectorTariffType(connectorTarif) {\n const { elements = [] } = connectorTarif;\n const hasPriceComponents = elements?.some(\n (element) => element?.priceComponents?.length > 0,\n );\n\n if (!hasPriceComponents) {\n return \"none\";\n }\n\n const baseTarifElements = elements.filter(isBaseTarif);\n\n if (baseTarifElements.length === elements.length) {\n return \"base\";\n }\n\n const dynamicTariffs = getDynamicTariff({\n elements,\n limit: 6,\n now: new Date(),\n });\n if (dynamicTariffs.length) {\n return \"dynamic\";\n }\n return \"scheduled\";\n}\n\n// Connector Power Type constants\nexport const ConnectorPowerType = {\n CONNECTOR_POWER_TYPE_UNSPECIFIED: \"CONNECTOR_POWER_TYPE_UNSPECIFIED\",\n CONNECTOR_POWER_TYPE_AC_1_PHASE: \"CONNECTOR_POWER_TYPE_AC_1_PHASE\",\n CONNECTOR_POWER_TYPE_AC_2_PHASE: \"CONNECTOR_POWER_TYPE_AC_2_PHASE\",\n CONNECTOR_POWER_TYPE_AC_2_PHASE_SPLIT:\n \"CONNECTOR_POWER_TYPE_AC_2_PHASE_SPLIT\",\n CONNECTOR_POWER_TYPE_AC_3_PHASE: \"CONNECTOR_POWER_TYPE_AC_3_PHASE\",\n CONNECTOR_POWER_TYPE_DC: \"CONNECTOR_POWER_TYPE_DC\",\n CONNECTOR_POWER_TYPE_AC: \"CONNECTOR_POWER_TYPE_AC\",\n} as const;\n\nexport type ConnectorPowerType =\n (typeof ConnectorPowerType)[keyof typeof ConnectorPowerType];\n\nexport function calculateMaxPower(connector: {\n power: {\n maxWatts: number;\n maxVoltage: number;\n maxAmperage: number;\n };\n connectorPowerType: ConnectorPowerType;\n}): number {\n switch (connector.connectorPowerType) {\n case ConnectorPowerType.CONNECTOR_POWER_TYPE_AC_1_PHASE:\n case ConnectorPowerType.CONNECTOR_POWER_TYPE_DC:\n return (connector.power.maxVoltage * connector.power.maxAmperage) / 1000;\n\n case ConnectorPowerType.CONNECTOR_POWER_TYPE_AC_2_PHASE:\n case ConnectorPowerType.CONNECTOR_POWER_TYPE_AC_2_PHASE_SPLIT:\n return (\n (connector.power.maxVoltage * connector.power.maxAmperage * 2) / 1000\n );\n\n case ConnectorPowerType.CONNECTOR_POWER_TYPE_AC_3_PHASE:\n return (\n (connector.power.maxVoltage * connector.power.maxAmperage * 3) / 1000\n );\n\n default:\n return 0;\n }\n}\n","import React from \"react\";\nimport styles from \"./Price.module.css\";\nimport { useMapContext } from \"../../contexts/Map\";\nimport { PriceComponent as PriceComponentType, TariffElement } from \"../../types\";\n\nfunction formatCurrency(value, props) {\n return new Intl.NumberFormat(undefined, {\n style: \"currency\",\n currency: props.currency || \"EUR\",\n maximumFractionDigits: 2,\n }).format(value);\n}\n\ntype PriceComponentsProps = {\n priceComponent: PriceComponentType;\n restrictions?: TariffElement[\"restrictions\"];\n currency: string;\n};\n\nfunction getPrice(priceComponent: PriceComponentType) {\n const vat = !priceComponent.vat ? 0 : priceComponent.vat / 100;\n return priceComponent.price + priceComponent.price * vat;\n}\n\nexport default function PriceComponent({\n priceComponent,\n restrictions = {},\n currency,\n}: PriceComponentsProps) {\n const { t } = useMapContext();\n\n const stringByType = {\n ENERGY: \"tariffPriceComponent.energy\",\n TIME: \"tariffPriceComponent.time\",\n FLAT: \"tariffPriceComponent.flat\",\n PARKING_TIME: \"tariffPriceComponent.parkingTime\",\n };\n\n if (\n restrictions?.minDuration === 0 &&\n restrictions?.maxDuration &&\n priceComponent.type === \"PARKING_TIME\"\n ) {\n return (\n <div className={styles.tariffItem}>\n {t(\"tariffPriceComponent.parkingTimeWait\", {\n minutes: Math.floor(restrictions.maxDuration / 60),\n })}\n </div>\n );\n }\n\n if (!stringByType[priceComponent.type]) return null;\n\n return (\n <div className={styles.tariffItem}>\n {t(stringByType[priceComponent.type] as any, {\n total: formatCurrency(getPrice(priceComponent), {\n currency: currency,\n }),\n })}\n </div>\n );\n}\n\n","import React from \"react\";\n\nimport { PriceComponent, TariffElement } from \"../../types\";\n\nimport Price from \"../Price/Price\";\n\nimport styles from \"./PriceComponents.module.css\";\nimport { useMapContext } from \"../../contexts/Map\";\n\ntype PriceComponentsProps = {\n elements: TariffElement[];\n currency: string;\n};\n\nconst displayOrder = [\"ENERGY\", \"TIME\", \"FLAT\", \"PARKING_TIME\"];\n\ntype SortedElements = {\n type: PriceComponent[\"type\"];\n elements: {\n priceComponent: PriceComponent;\n restrictions: TariffElement[\"restrictions\"];\n }[];\n};\n\nexport default function PriceComponents({\n elements,\n currency,\n}: PriceComponentsProps) {\n const { t } = useMapContext();\n\n // get elements from by type\n const elementsByType = elements.reduce((acc, element) => {\n element.priceComponents.forEach((priceComponent) => {\n if (!acc[priceComponent.type]) acc[priceComponent.type] = [];\n acc[priceComponent.type].push({\n priceComponent,\n restrictions: element.restrictions,\n });\n });\n return acc;\n }, {});\n\n const sortedElements = Object.keys(elementsByType)\n .map((type) => {\n return {\n type,\n elements: elementsByType[type],\n };\n })\n .sort((a: any, b: any) => {\n const aIndex = displayOrder.indexOf(a.type);\n const bIndex = displayOrder.indexOf(b.type);\n if (aIndex === -1) return 1;\n if (bIndex === -1) return -1;\n return aIndex - bIndex;\n }) as SortedElements[];\n\n return (\n <div className={styles.container}>\n {sortedElements.map(({ type, elements }, i) => {\n return elements.reverse().map((element, q) => {\n return (\n <Price\n currency={currency}\n key={`${type}-${i}-${q}`}\n priceComponent={element.priceComponent}\n restrictions={element.restrictions}\n />\n );\n });\n })}\n </div>\n );\n}\n\n","import React from \"react\";\n\nimport { CdrAdditionalCharge, PriceComponent, TariffElement } from \"../../types\";\n\nfunction formatCurrency(value, props) {\n return new Intl.NumberFormat(undefined, {\n style: \"currency\",\n currency: props.currency || \"EUR\",\n maximumFractionDigits: 2,\n }).format(value);\n}\n\n// note reuse of price css module\nimport styles from \"../Price/Price.module.css\";\nimport { useMapContext } from \"../../contexts/Map\";\n\ntype CdrPriceComponentsProps = {\n cdrAdditionalCharge: CdrAdditionalCharge;\n currency: string;\n};\n\nfunction getPrice({ vat, price }: { vat?: number; price: number }) {\n const vatAmount = !vat ? 0 : vat / 100;\n return price + price * vatAmount;\n}\n\nexport default function CdrPriceComponent({\n cdrAdditionalCharge,\n currency,\n}: CdrPriceComponentsProps) {\n const { t } = useMapContext();\n\n const stringByType = {\n FLAT_FEE: t(\"cdrPrice.flatFee\", {\n total: formatCurrency(getPrice(cdrAdditionalCharge), {\n currency: currency,\n }),\n }),\n };\n\n return (\n <div className={styles.tariffItem}>\n {stringByType[cdrAdditionalCharge.type]}\n </div>\n );\n}\n\n","import React, { Fragment } from \"react\";\nimport { useMapContext } from \"../../contexts/Map\";\nimport { Tariff, CdrAdditionalCharge } from \"../../types\";\nimport { getSchedule, isBaseTarif, getDynamicTariff } from \"../../utils/ocpi\";\n\nimport styles from \"./ConnectorTariff.module.css\";\n\nimport PriceComponents from \"../PriceComponents/PriceComponents\";\nimport CdrPrice from \"../CdrPrice/CdrPrice\";\n\ntype ConnectorTariffProps = {\n tariff: Tariff;\n timezone?: string;\n compact?: boolean;\n cdrAdditionalCharges?: CdrAdditionalCharge[];\n};\n\nfunction formatTime(language, minutes: number) {\n const date = new Date(0);\n const hours = Math.floor(minutes / 60);\n const mins = minutes % 60;\n date.setHours(hours, mins, 0, 0);\n // hardcoding to nl for now, because i think people will understand it better in EU\n return date.toLocaleTimeString(\"nl\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n}\n\nconst defaultTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\nfunction daysForLocale(language: string) {\n const { format } = new Intl.DateTimeFormat(language, { weekday: \"long\" });\n return [\n \"SUNDAY\",\n \"MONDAY\",\n \"TUESDAY\",\n \"WEDNESDAY\",\n \"THURSDAY\",\n \"FRIDAY\",\n \"SATURDAY\",\n ].reduce((acc, day, index) => {\n acc[day] = format(new Date(Date.UTC(2023, 9, index + 1)));\n return acc;\n }, {});\n}\n\nfunction CdrAdditionalChargeComponent({\n currency,\n cdrAdditionalCharges,\n}: {\n currency: string;\n cdrAdditionalCharges: CdrAdditionalCharge[];\n}) {\n return cdrAdditionalCharges.map((c) => {\n return <CdrPrice key={c.id} currency={currency} cdrAdditionalCharge={c} />;\n });\n}\n\nexport default function ConnectorTariff({\n timezone = defaultTimeZone,\n tariff,\n compact = true,\n cdrAdditionalCharges = [],\n}: ConnectorTariffProps) {\n const { t, language } = useMapContext();\n const i18nDays = daysForLocale(language);\n\n if (!tariff) return null;\n\n const elements = tariff.elements || [];\n const currency = tariff.currency || \"\";\n\n const hasPriceComponents = elements.some(\n (element) => element.priceComponents && element.priceComponents.length > 0,\n );\n\n const dynamicTariffs = getDynamicTariff({\n elements,\n limit: compact ? 6 : 40,\n now: new Date(),\n });\n\n const scheduledTariffs = dynamicTariffs.length\n ? []\n : getSchedule(elements, timezone, new Date());\n\n const baseTarifElements = elements.filter(isBaseTarif);\n\n if (!hasPriceComponents) {\n return (\n <>\n <div className={styles.tariffNote}>\n {t(\"tariffPriceComponent.noTariff\")}\n </div>\n {cdrAdditionalCharges.length > 0 && (\n <div className={styles.container}>\n <CdrAdditionalChargeComponent\n currency={currency}\n cdrAdditionalCharges={cdrAdditionalCharges}\n />\n </div>\n )}\n </>\n );\n }\n\n const isBaseActive = !scheduledTariffs.some((element) => element.isActive);\n\n if (scheduledTariffs.length) {\n return (\n <div className={styles.container}>\n {baseTarifElements.length > 0 && (\n <div className={[styles.tariffList, styles.bold].join(\" \")}>\n <div className={styles.tariffHeader}>\n {t(\"tariffPriceComponent.baseTariff\")}\n\n {isBaseActive && (\n <span className={styles.activeNowLabel}>\n {t(\"tariffPriceComponent.active\")}\n </span>\n )}\n </div>\n <PriceComponents elements={baseTarifElements} currency={currency} />\n\n <CdrAdditionalChargeComponent\n currency={currency}\n cdrAdditionalCharges={cdrAdditionalCharges}\n />\n </div>\n )}\n\n {scheduledTariffs.map((schedule) => {\n return (\n <div key={schedule.days.join(\"-\")} className={styles.tariffList}>\n <div className={styles.tariffHeader}>\n {schedule.days.map((day) => i18nDays[day]).join(\" - \")}\n\n {schedule.isActive && (\n <span className={styles.activeNowLabel}>\n {t(\"tariffPriceComponent.active\")}\n </span>\n )}\n </div>\n {schedule.items.map((item) => {\n return (\n <div\n key={item.startTime}\n className={item.isActive && styles.bold}\n >\n {!item.isFullDay && (\n <div className={styles.tariffLabel}>\n {formatTime(language, item.startTime)} -{\" \"}\n {formatTime(language, item.endTime)}\n </div>\n )}\n <div>\n <PriceComponents\n elements={item.elements}\n currency={currency}\n />\n <CdrAdditionalChargeComponent\n currency={currency}\n cdrAdditionalCharges={cdrAdditionalCharges}\n />\n </div>\n </div>\n );\n })}\n </div>\n );\n })}\n </div>\n );\n }\n\n return (\n <div className={styles.container}>\n {baseTarifElements.length > 0 && (\n <div className={styles.tariffList}>\n <PriceComponents elements={baseTarifElements} currency={currency} />\n <CdrAdditionalChargeComponent\n currency={currency}\n cdrAdditionalCharges={cdrAdditionalCharges}\n />\n </div>\n )}\n {dynamicTariffs.length > 0 && (\n <>\n {dynamicTariffs.map((dynamicTariff, index) => {\n return (\n <>\n <div className={styles.tariffHeader}>\n {t(\"tariffPriceComponent.dynamicTariffHeader\", {\n date: new Intl.DateTimeFormat(language, {\n weekday: \"long\",\n month: \"short\",\n day: \"numeric\",\n }).format(dynamicTariff.date),\n })}\n </div>\n <div className={styles.dynamicTariffList}>\n {dynamicTariff.items.map((item, index) => {\n return (\n <div\n key={[item.startTime, item.endTime, index].join()}\n className={[\n styles.dynamicTariffItem,\n item.isActive && styles.bold,\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n <div className={styles.dynamicTariffItemRange}>\n {formatTime(language, item.startTime)} &ndash;{\" \"}\n {formatTime(language, item.endTime)}\n </div>\n <PriceComponents\n elements={item.elements}\n currency={currency}\n />\n <CdrAdditionalChargeComponent\n currency={currency}\n cdrAdditionalCharges={cdrAdditionalCharges}\n />\n {item.isActive && (\n <span className={styles.activeNowLabel}>\n {t(\"tariffPriceComponent.active\")}\n </span>\n )}\n </div>\n );\n })}\n </div>\n </>\n );\n })}\n </>\n )}\n </div>\n );\n}\n","import { Location, OcpiLocation } from \"../types\";\n\nexport function getNotes(\n t,\n location: Location | OcpiLocation,\n type: \"dynamic\" | \"scheduled\" | \"base\" | \"none\",\n) {\n const notes = [];\n\n if ((location as Location)?.customNote) {\n notes.push((location as Location)?.customNote);\n }\n\n if (type === \"none\") {\n return notes.length ? notes : [t(\"tariffNote.baseTariffNote\")];\n }\n\n if (type === \"dynamic\") {\n notes.push(t(\"tariffNote.dynamicScheduledTariffNote\"));\n }\n\n // is e-flux location\n if (\n (location as Location)?.infraProviderId === \"NLEFL\" ||\n (location as OcpiLocation)?.party_id === \"EFL\"\n ) {\n if (type === \"scheduled\") {\n notes.push(t(\"tariffNote.eFluxScheduledTariffNote\"));\n }\n // if only base tariff\n return notes;\n }\n\n if (type === \"scheduled\") {\n notes.push(\n t(\"tariffNote.baseTariffNote\"),\n t(\"tariffNote.scheduledTariffNote\"),\n );\n } else {\n notes.push(t(\"tariffNote.baseTariffNote\"));\n }\n\n return notes;\n}\n","import React from \"react\";\nimport styles from \"./locations.module.css\";\nimport StationIcon from \"../../assets/station-icon.svg\";\nimport BuildingIcon from \"../../assets/building-icon.svg\";\nimport CarIcon from \"../../assets/car-icon.svg\";\nimport BoltIcon from \"../../assets/bolt-icon.svg\";\nimport PricingIcon from \"../../assets/pricing-icon.svg\";\nimport { Info } from \"../../components/Icons/Icons\";\nimport {\n getStatusColorFromEvses,\n getLocationLabel,\n getStatusLabel,\n getSocketIcon,\n getSocketText,\n} from \"../../utils/formatters\";\nimport ConnectorTariff from \"../../components/ConnectorTariff/ConnectorTariff\";\nimport { getColorForStatus } from \"../../utils/location\";\nimport { getConnectorTariffType } from \"../../utils/ocpi\";\nimport { getNotes } from \"../../utils/notes\";\nimport { formatNumber } from \"../../utils/formatters\";\nimport { useMapContext } from \"../../contexts/Map\";\n\ninterface Props {\n currentLocation: any;\n setView(view: string, args?: any): void;\n evses: any[];\n cdrAdditionalCharges: any[];\n}\n\nconst LocationDetailsV1: React.FC<Props> = ({\n currentLocation,\n evses,\n setView,\n cdrAdditionalCharges,\n}) => {\n const { options, t, language } = useMapContext();\n const availableEvse = evses.filter((evse) => evse.status === \"AVAILABLE\");\n return (\n <div className={styles.container}>\n <div className={styles.row}>\n <img className={styles.icon} src={StationIcon} alt=\"station icon\" />\n <div className={styles.text}>\n {options.locationBaseUrl && (\n <a href={`${options.locationBaseUrl}/${currentLocation.id}`}>\n {currentLocation.name || \"-\"}\n </a>\n )}\n {!options.locationBaseUrl && currentLocation.name}\n </div>\n </div>\n <div className={styles.row}>\n <div className={styles.icon}>\n <div\n style={{\n background: getStatusColorFromEvses(currentLocation.evses),\n }}\n className={styles.statusIcon}\n />\n </div>\n <div className={styles.text}>\n {availableEvse.length} / {evses.length} {t(\"evse.statusAvailable\")}\n </div>\n </div>\n {currentLocation.subOperator?.name && (\n <div className={styles.row}>\n <img className={styles.icon} src={BuildingIcon} alt=\"building icon\" />\n <div className={styles.text}>{currentLocation.subOperator?.name}</div>\n </div>\n )}\n\n {currentLocation.parkingType !== \"UNKNOWN\" && (\n <div className={styles.row}>\n <img className={styles.icon} src={CarIcon} alt=\"parking icon\" />\n <div className={styles.text}>\n {getLocationLabel(t, currentLocation.parkingType)}\n </div>\n </div>\n )}\n\n {evses.map((evse) => {\n return (\n <div key={evse.evseId}>\n <hr className={styles.divider} />\n <div className={styles.row}>\n <img className={styles.icon} src={BoltIcon} alt=\"power icon\" />\n <div className={styles.text}>{evse.evseId}</div>\n </div>\n <div className={styles.row}>\n <div\n style={{\n background: getColorForStatus(evse.status),\n }}\n className={styles.statusIcon}\n />\n <div className={styles.text}>\n {[\n getStatusLabel(t, evse.status),\n evse.maxPower &&\n `${formatNumber(language, Math.floor(evse.maxPower))}kW`,\n ]\n .filter(Boolean)\n .join(\", \")}\n </div>\n </div>\n {evse.connectors.map((connector, i) => {\n const connectorType = getConnectorTariffType(connector.tariff);\n const notes = getNotes(t, currentLocation, connectorType);\n return (\n <div key={`connector-${i}`}>\n {\" \"}\n <div className={styles.row}>\n <img\n className={styles.icon}\n src={getSocketIcon(connector)}\n alt=\"socket type\"\n />\n <div className={styles.text}>\n {getSocketText(connector)}\n </div>\n </div>\n <div className={styles.row}>\n <img\n className={styles.icon}\n src={PricingIcon}\n alt=\"pricing\"\n />\n <div className={styles.text}>{t(\"evse.pricing\")}</div>\n </div>\n <ConnectorTariff\n tariff={connector.tariff}\n cdrAdditionalCharges={cdrAdditionalCharges}\n />\n {connectorType === \"dynamic\" && (\n <div\n className={styles.tariffNoteLink}\n onClick={() => {\n setView(\"dynamicTariff\", {\n connector: connector,\n evseId: evse.evseId,\n notes: notes,\n locationName: currentLocation.name,\n });\n }}\n >\n {t(\"location.viewAllHourlyPrices\")}\n </div>\n )}\n {notes.length > 0 && (\n <div\n className={styles.tariffNoteLink}\n onClick={() => {\n setView(\"tariffNote\", {\n locationName: currentLocation.name,\n evseId: evse.evseId,\n notes: getNotes(t, currentLocation, connectorType),\n });\n }}\n >\n <Info /> {t(\"tariffPriceComponent.viewTariff\")}\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default LocationDetailsV1;\n","import React from \"react\";\nimport ConnectorTariff from \"../../../components/ConnectorTariff/ConnectorTariff\";\nimport { CdrAdditionalCharge, OcpiTariff, Tariff } from \"../../../types\";\n\nexport function transformTariff(tariff: OcpiTariff): Tariff {\n if (!tariff?.currency) return null;\n return {\n currency: tariff.currency,\n id: tariff.id,\n country_code: tariff.country_code,\n party_id: tariff.party_id,\n elements: (tariff?.elements || []).map((element) => ({\n priceComponents: (element?.price_components || []).map((component) => ({\n type: (() => {\n switch (component.type) {\n case \"FLAT\":\n return \"FLAT\";\n case \"TIME\":\n return \"TIME\";\n case \"ENERGY\":\n return \"ENERGY\";\n case \"PARKING_TIME\":\n return \"PARKING_TIME\";\n }\n })() as \"FLAT\" | \"TIME\" | \"ENERGY\" | \"PARKING_TIME\",\n price: component.price,\n vat: component.vat,\n stepSize: component.step_size,\n })),\n ...(element?.restrictions\n ? {\n restrictions: {\n startTime: element?.restrictions?.start_time,\n endTime: element?.restrictions?.end_time,\n startDate: element?.restrictions?.start_date,\n endDate: element?.restrictions?.end_date,\n dayOfWeek: element?.restrictions?.day_of_week,\n },\n }\n : {}),\n })),\n };\n}\n\ninterface Props {\n tariff: any;\n additionalCharges: CdrAdditionalCharge[];\n}\n\nconst TariffV2: React.FC<Props> = ({ tariff, additionalCharges }) => {\n return (\n <ConnectorTariff\n tariff={transformTariff(tariff as any)}\n cdrAdditionalCharges={additionalCharges}\n />\n );\n};\n\nexport default TariffV2;\n","import React, { useEffect, useState } from \"react\";\nimport styles from \"./locations.module.css\";\nimport StationIcon from \"../../assets/station-icon.svg\";\nimport BuildingIcon from \"../../assets/building-icon.svg\";\nimport CarIcon from \"../../assets/car-icon.svg\";\nimport BoltIcon from \"../../assets/bolt-icon.svg\";\nimport PricingIcon from \"../../assets/pricing-icon.svg\";\nimport { Info } from \"../../components/Icons/Icons\";\nimport {\n getStatusColorFromEvses,\n getLocationLabel,\n getStatusLabel,\n getSocketIcon,\n getSocketText,\n} from \"../../utils/formatters\";\nimport { getColorForStatus } from \"../../utils/location\";\nimport {\n calculateMaxPower,\n getConnectorTariffTypeV2,\n ConnectorPowerType,\n} from \"../../utils/ocpi\";\nimport { getNotes } from \"../../utils/notes\";\nimport { formatNumber } from \"../../utils/formatters\";\nimport TariffV2, { transformTariff } from \"./v2/Tariff\";\nimport { useMapContext } from \"../../contexts/Map\";\nimport { CurrentLocation, OcpiTariff } from \"../../types\";\n\ninterface Props {\n currentLocation: CurrentLocation;\n setView(view: string, args?: any): void;\n}\n\nconst LocationDetailsV2: React.FC<Props> = ({ currentLocation, setView }) => {\n const { options, t, language } = useMapContext();\n\n const availableEvse =\n currentLocation?.evses?.filter((evse) => evse.status === \"AVAILABLE\") || [];\n\n return (\n <div className={styles.container}>\n {options.context === \"cpo\" && (\n <div className={styles.publishingMode}>\n {currentLocation?.publish ? \"Public location\" : \"Private location\"}\n </div>\n )}\n <div className={styles.row}>\n <img className={styles.icon} src={StationIcon} alt=\"station icon\" />\n <div className={styles.text}>\n {options.locationBaseUrl && (\n <a href={`${options.locationBaseUrl}/${currentLocation?.id}`}>\n {currentLocation?.name || \"-\"}\n </a>\n )}\n {!options.locationBaseUrl && currentLocation?.name}\n </div>\n </div>\n <div className={styles.row}>\n <div className={styles.icon}>\n <div\n style={{\n background: getStatusColorFromEvses(currentLocation.evses),\n }}\n className={styles.statusIcon}\n />\n </div>\n <div className={styles.text}>\n {availableEvse?.length} / {currentLocation?.evses?.length}{\" \"}\n {t(\"evse.statusAvailable\")}\n </div>\n </div>\n {currentLocation?.suboperator?.name && (\n <div className={styles.row}>\n <img className={styles.icon} src={BuildingIcon} alt=\"building icon\" />\n <div className={styles.text}>\n {currentLocation?.suboperator?.name}\n </div>\n </div>\n )}\n\n {currentLocation.parkingType !== \"PARKING_TYPE_UNKNOWN\" && (\n <div className={styles.row}>\n <img className={styles.icon} src={CarIcon} alt=\"parking icon\" />\n <div className={styles.text}>\n {getLocationLabel(t, currentLocation.parkingType)}\n </div>\n </div>\n )}\n\n {currentLocation?.evses?.map((evse) => {\n return (\n <div key={`${evse.evse_id}-${evse.uid}`}>\n <hr className={styles.divider} />\n <div className={styles.row}>\n <img className={styles.icon} src={BoltIcon} alt=\"power icon\" />\n <div className={styles.text}>{evse.evse_id}</div>\n </div>\n <div className={styles.row}>\n <div\n style={{\n background: getColorForStatus(evse.status),\n }}\n className={styles.statusIcon}\n />\n <div className={styles.text}>\n {[\n getStatusLabel(t, evse.status),\n evse.connectors[0]?.power &&\n evse.connectors[0]?.connectorPowerType\n ? `${formatNumber(\n language,\n Math.floor(\n calculateMaxPower(\n evse.connectors[0] as {\n power: {\n maxWatts: number;\n maxVoltage: number;\n maxAmperage: number;\n };\n connectorPowerType: ConnectorPowerType;\n },\n ),\n ),\n )}kW`\n : null,\n ]\n .filter(Boolean)\n .join(\", \")}\n </div>\n </div>\n {evse.connectors.map((connector, i) => {\n const connectorTariff = currentLocation?.tariffs?.find(\n (tariff) => tariff.id === connector?.tariff_ids?.[0],\n );\n\n const connectorType = getConnectorTariffTypeV2(\n connectorTariff as unknown as OcpiTariff,\n );\n const notes = getNotes(t, currentLocation, connectorType);\n return (\n <div key={`connector-${i}`}>\n {\" \"}\n <div className={styles.row}>\n <img\n className={styles.icon}\n src={getSocketIcon(connector)}\n alt=\"socket type\"\n />\n <div className={styles.text}>\n {getSocketText(connector)}\n </div>\n </div>\n <div className={styles.row}>\n <img\n className={styles.icon}\n src={PricingIcon}\n alt=\"pricing\"\n />\n <div className={styles.text}>{t(\"evse.pricing\")}</div>\n </div>\n <TariffV2\n tariff={connectorTariff}\n additionalCharges={\n currentLocation?.cdrAdditionalCharges || []\n }\n />\n {connectorType === \"dynamic\" && (\n <div\n className={styles.tariffNoteLink}\n onClick={() => {\n setView(\"dynamicTariff\", {\n connector: connector,\n evseId: evse.evse_id,\n notes: notes,\n tariff: connectorTariff,\n additionalCharges:\n currentLocation?.cdrAdditionalCharges || [],\n locationName: currentLocation.name,\n });\n }}\n >\n {t(\"location.viewAllHourlyPrices\")}\n </div>\n )}\n {options.context !== \"cpo\" && notes?.length > 0 && (\n <div\n className={styles.tariffNoteLink}\n onClick={() => {\n setView(\"tariffNote\", {\n locationName: currentLocation.name,\n evseId: evse.evse_id,\n notes: getNotes(t, currentLocation, connectorType),\n });\n }}\n >\n <Info /> {t(\"tariffPriceComponent.viewTariff\")}\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default LocationDetailsV2;\n","import React, { useEffect, useState } from \"react\";\nimport styles from \"./locations.module.css\";\nimport LocationPlaceholder from \"../../components/LocationPlaceholder/LocationPlaceholder\";\nimport { ChevronLeft, ChevronRight } from \"../../components/Icons/Icons\";\nimport Debug from \"../../components/Debug/Debug\";\nimport { useMapContext } from \"../../contexts/Map\";\nimport { useStackContext } from \"../../components/Stack/Stack\";\nimport LocationDetailsV1 from \"./LocationDetailsV1\";\nimport LocationDetailsV2 from \"./LocationDetailsV2\";\nimport { OcpiLocation } from \"../../types\";\n\ninterface Props {}\n\nconst Locations: React.FC<Props> = () => {\n const { setView } = useStackContext();\n const { locations, locationsStatus, options } = useMapContext();\n const [locationIndex, setLocationIndex] = useState(0);\n\n useEffect(() => {\n setLocationIndex(0);\n }, [locations]);\n\n const currentLocation = locations[locationIndex];\n\n if (locationsStatus.type === \"loading\" || !currentLocation) {\n return (\n <div className={styles.container}>\n <LocationPlaceholder />\n </div>\n );\n }\n\n const { evses = [], cdrAdditionalCharges } = currentLocation;\n\n const canNext = locationIndex < locations.length - 1;\n const canPrev = locationIndex > 0;\n\n const debugMode = window.location?.search?.includes(\"debug\");\n\n const label = () => {\n switch (options.version) {\n case \"v2\":\n return [currentLocation?.address, currentLocation?.city];\n default:\n //@ts-ignore\n return [currentLocation?.address, currentLocation?.city];\n }\n };\n const isV2 = options.version === \"v2\";\n\n return (\n <>\n {debugMode && currentLocation && <Debug location={currentLocation} />}\n <div className={styles.headerContainer}>\n <div className={styles.header}>\n {locations.length > 1 && (\n <div className={styles.pagingation}>\n <span>\n {locationIndex + 1} / {locations.length}\n </span>\n\n <button\n disabled={!canPrev}\n onClick={() => {\n setLocationIndex(Math.max(0, locationIndex - 1));\n }}\n >\n <ChevronLeft />\n </button>\n <button\n disabled={!canNext}\n onClick={() =>\n setLocationIndex(\n Math.min(locations.length - 1, locationIndex + 1),\n )\n }\n >\n <ChevronRight />\n </button>\n </div>\n )}\n {label().filter(Boolean).join(\", \")}\n </div>\n </div>\n {!isV2 && (\n <LocationDetailsV1\n setView={setView}\n cdrAdditionalCharges={cdrAdditionalCharges}\n currentLocation={currentLocation}\n evses={evses}\n />\n )}\n {isV2 && (\n <LocationDetailsV2\n setView={setView}\n currentLocation={currentLocation as unknown as OcpiLocation}\n />\n )}\n </>\n );\n};\n\nexport default Locations;\n","import React from \"react\";\n\nimport styles from \"./BackButton.module.css\";\n\nimport { ChevronLeft } from \"../Icons/Icons\";\nimport { useMapContext } from \"../../contexts/Map\";\n\nexport default function BackButton({ onClick = () => {} }) {\n const { t } = useMapContext();\n return (\n <button onClick={onClick} className={styles.backButton}>\n <ChevronLeft />\n {t(\"backButton.backTo\")}\n </button>\n );\n}\n","import React, { useEffect, useState, useTransition } from \"react\";\n\nimport { useStackContext } from \"../../components/Stack/Stack\";\n\nimport BackButton from \"../../components/BackButton/BackButton\";\nimport { useMapContext } from \"../../contexts/Map\";\nimport styles from \"./locations.module.css\";\n\nimport BoltIcon from \"../../assets/bolt-icon.svg\";\n\nexport default function TariffNote() {\n const { t } = useMapContext();\n const { current, setView } = useStackContext();\n const { notes = [], evseId, locationName } = current?.args || {};\n\n return (\n <>\n <div className={styles.headerContainer}>\n <div\n className={styles.header}\n onClick={() => setView(\"locations\")}\n style={{ cursor: \"pointer\" }}\n >\n <BackButton />\n {locationName?.text || locationName}\n </div>\n </div>\n <div className={styles.container}>\n <div className={styles.subheader}>{t(\"tariffNote.subHeader\")}</div>\n\n {evseId && (\n <div className={styles.row}>\n <img className={styles.icon} src={BoltIcon} alt=\"power icon\" />\n <div className={styles.text}>{evseId}</div>\n </div>\n )}\n\n {notes.map((note) => (\n <p className={styles.note} key={note}>\n {note}\n </p>\n ))}\n </div>\n </>\n );\n}\n","import { useStackContext } from \"../../components/Stack/Stack\";\n\nimport BackButton from \"../../components/BackButton/BackButton\";\nimport { useMapContext } from \"../../contexts/Map\";\nimport styles from \"./locations.module.css\";\nimport { Info } from \"../../components/Icons/Icons\";\nimport BoltIcon from \"../../assets/bolt-icon.svg\";\nimport ConnectorTariff from \"../../components/ConnectorTariff/ConnectorTariff\";\nimport TariffV2 from \"./v2/Tariff\";\n\nexport default function DynamicTariffs() {\n const { t } = useMapContext();\n const { current, setView } = useStackContext();\n const { connector, tariff, additionalCharges, locationName, evseId, notes } =\n current?.args || {};\n\n const connectorTariff = tariff || connector?.tariff;\n\n if (!connectorTariff) return null;\n\n return (\n <>\n <div className={styles.headerContainer}>\n <div\n className={styles.header}\n onClick={() => setView(\"locations\")}\n style={{ cursor: \"pointer\" }}\n >\n <BackButton />\n {locationName}\n </div>\n </div>\n <div className={styles.container}>\n <div className={styles.subheader}>{t(\"dynamicTariffs.subHeader\")}</div>\n <div className={styles.row}>\n <img className={styles.icon} src={BoltIcon} alt=\"power icon\" />\n <div className={styles.text}>{evseId}</div>\n </div>\n {tariff && (\n <TariffV2 tariff={tariff} additionalCharges={additionalCharges} />\n )}\n {connector.tariff && (\n <ConnectorTariff tariff={connector.tariff} compact={false} />\n )}\n <div\n className={styles.tariffNoteLink}\n onClick={() => {\n setView(\"tariffNote\", {\n locationName: locationName,\n evseId: evseId,\n notes: notes,\n });\n }}\n >\n <Info /> {t(\"tariffPriceComponent.viewTariff\")}\n </div>\n </div>\n </>\n );\n}\n","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='10'%20height='11'%20viewBox='0%200%2010%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6.48751%205.99758L9.85376%202.63133C10.0484%202.43664%2010.0484%202.1207%209.85376%201.9257L9.07157%201.14351C8.87688%200.948826%208.56095%200.948826%208.36595%201.14351L5.00001%204.51008L1.63376%201.14383C1.43907%200.949138%201.12313%200.949138%200.928135%201.14383L0.14626%201.9257C-0.0484277%202.12039%20-0.0484277%202.43633%200.14626%202.63133L3.51251%205.99758L0.14626%209.36383C-0.0484277%209.55851%20-0.0484277%209.87445%200.14626%2010.0695L0.928447%2010.8516C1.12313%2011.0463%201.43907%2011.0463%201.63407%2010.8516L5.00001%207.48508L8.36626%2010.8513C8.56095%2011.046%208.87688%2011.046%209.07188%2010.8513L9.85407%2010.0691C10.0488%209.87445%2010.0488%209.55851%209.85407%209.36351L6.48751%205.99758Z'%20fill='black'/%3e%3c/svg%3e\"","import React from \"react\";\n\nimport CloseIcon from \"../../assets/close-icon.svg\";\nimport styles from \"./CloseButton.module.css\";\n\nexport default function CloseButton({ onClick }) {\n return (\n <button onClick={onClick} className={styles.closeButton}>\n <img src={CloseIcon} />\n </button>\n );\n}\n","import React, { useState } from \"react\";\n\nimport Locations from \"./Locations\";\nimport TariffNote from \"./TariffNote\";\nimport DynamicTariff from \"./DynamicTariffs\";\nimport Stack from \"../../components/Stack\";\nimport CloseButton from \"../../components/CloseButton/CloseButton\";\nimport SideBarContainer from \"../../components/SidebarContainer/SidebarContainer\";\nimport { useStackContext } from \"../../components/Stack/Stack\";\n\nexport default function LocationsScreeen() {\n const [view, setView] = useState<string>(\"locations\");\n const { setView: setParentView } = useStackContext();\n\n return (\n <Stack name=\"locations\" currentView={view} onViewChange={setView}>\n <Stack.View name=\"locations\">\n <SideBarContainer>\n <CloseButton onClick={() => setParentView(\"none\")} />\n <Locations />\n </SideBarContainer>\n </Stack.View>\n\n <Stack.View name=\"tariffNote\">\n <SideBarContainer>\n <TariffNote />\n </SideBarContainer>\n </Stack.View>\n <Stack.View name=\"dynamicTariff\">\n <SideBarContainer>\n <DynamicTariff />\n </SideBarContainer>\n </Stack.View>\n </Stack>\n );\n}\n","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20%3e%3cpath%20d='M14.4985%200H1.50178C0.169343%200%20-0.502939%201.61659%200.441124%202.56066L5.5%207.62131V13C5.5%2013.4721%205.72228%2013.9167%206.1%2014.25L8.1%2015.7208C9.07728%2016.4038%2010.5%2015.7689%2010.5%2014.5208V7.62131L15.5592%202.56066C16.5013%201.6185%2015.8336%200%2014.4985%200ZM9%207V14.5L7%2013V7L1.5%201.5H14.5L9%207Z'%20fill='currentColor'%20/%3e%3c/svg%3e\"","import React, { useEffect } from \"react\";\n\nimport { useMapContext } from \"./contexts/Map\";\n\nimport Stack from \"./components/Stack\";\n\nimport styles from \"./router.module.css\";\nimport SearchInput from \"./components/SearchInput/SearchInput\";\n\nimport Filters from \"./screens/Filters\";\nimport Locations from \"./screens/Locations\";\n\nimport filterIcon from \"./assets/filter-icon.svg\";\n\nimport CloseButton from \"./components/CloseButton/CloseButton\";\nimport SideBarContainer from \"./components/SidebarContainer/SidebarContainer\";\n\nimport { hasFilters } from \"./utils/filters\";\n\nexport default function Controls() {\n const { locationIds, fetchLocations, filters, isSearching } = useMapContext();\n const [view, setView] = React.useState<string>(\"none\");\n\n useEffect(() => {\n if (locationIds.length > 0) {\n setView(\"locations\");\n }\n }, [locationIds, setView]);\n\n return (\n <div className={styles.container}>\n <div className={styles.controlsContainer}>\n <SearchInput\n onFocus={() => {\n setView(\"none\");\n }}\n />\n\n <div\n className={styles.filterButton}\n onClick={() => {\n setView(\"filters\");\n }}\n >\n {isSearching ?? false ? (\n <div className={styles.spinner}></div>\n ) : (\n <img className={styles.filterIcon} src={filterIcon} />\n )}\n {hasFilters(filters) && !(isSearching ?? false) && (\n <span className={styles.filterCounter}></span>\n )}\n </div>\n </div>\n\n <div className={styles.stackContainer}>\n <Stack\n name=\"router\"\n currentView={view}\n onViewChange={(view) => {\n setView(view);\n }}\n >\n <Stack.View name=\"locations\">\n <Locations />\n </Stack.View>\n <Stack.View name=\"filters\">\n <SideBarContainer>\n <CloseButton onClick={() => setView(\"none\")} />\n <Filters />\n </SideBarContainer>\n </Stack.View>\n </Stack>\n </div>\n </div>\n );\n}\n","import React, { useEffect } from \"react\";\nimport { createRoot, Root } from \"react-dom/client\";\nimport Boot from \"./Boot\";\nimport { MapProvider } from \"./contexts/Map\";\nimport Map from \"./components/Map/Map\";\nimport Router from \"./Router\";\nimport { RoadMapOptions } from \"./types\";\nimport { useRef } from \"react\";\n\nexport default function RoadMap(props: RoadMapOptions) {\n if (!props.shadowRoot && props?.theming?.backgroundColor) {\n return <ShadowMapWrapper {...props} />;\n }\n return (\n <MapProvider options={props} language={props.language}>\n <Boot height={props?.height}>\n <Router />\n <Map />\n </Boot>\n </MapProvider>\n );\n}\n\n// This wrapper is used to create a shadow root if one is not provided by the end user\nconst ShadowMapWrapper: React.FC<RoadMapOptions> = (props) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const rootRef = useRef<Root | null>(null);\n const shadowRootRef = useRef<ShadowRoot | null>(null);\n const isInitializedRef = useRef<boolean>(false);\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container || isInitializedRef.current) return;\n\n const shadowRoot = container.attachShadow({ mode: \"open\" });\n shadowRootRef.current = shadowRoot;\n\n // We default to the most recent version of the sdk stylesheet\n let styleHref = `https://mapsdk.road.io/styles.css`;\n if (props.sdkRoot) {\n styleHref = props.sdkRoot + \"/styles.css\";\n }\n\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.type = \"text/css\";\n link.href = styleHref;\n\n // Append link to shadow root BEFORE rendering\n shadowRoot.appendChild(link);\n\n // Create React root\n const root = createRoot(shadowRoot);\n rootRef.current = root;\n isInitializedRef.current = true;\n\n return () => {\n if (rootRef.current) {\n rootRef.current.unmount();\n rootRef.current = null;\n }\n shadowRootRef.current = null;\n isInitializedRef.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (!rootRef.current || !shadowRootRef.current) return;\n const roadMapElement = React.createElement(RoadMap, {\n ...props,\n shadowRoot: shadowRootRef.current,\n });\n rootRef.current.render(roadMapElement);\n }, [props]);\n\n return <div ref={containerRef} style={{ height: \"100%\", width: \"100%\" }} />;\n};\n"],"names":["f","require$$0","k","l","m","n","p","q","a","g","b","d","e","h","reactJsxRuntime_production_min","React","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_OFFSCREEN_TYPE","MAYBE_ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","maybeIterator","ReactSharedInternals","error","format","_len2","args","_key2","printWarning","level","ReactDebugCurrentFrame","stack","argsWithFormat","item","enableScopeAPI","enableCacheElement","enableTransitionTracing","enableLegacyHidden","enableDebugTracing","REACT_MODULE_REFERENCE","isValidElementType","type","getWrappedName","outerType","innerType","wrapperName","displayName","functionName","getContextName","getComponentNameFromType","context","provider","outerName","lazyComponent","payload","init","assign","disabledDepth","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledLog","disableLogs","props","reenableLogs","ReactCurrentDispatcher","prefix","describeBuiltInComponentFrame","name","source","ownerFn","x","match","reentry","componentFrameCache","PossiblyWeakMap","describeNativeComponentFrame","fn","construct","frame","control","previousPrepareStackTrace","previousDispatcher","Fake","sample","sampleLines","controlLines","s","c","_frame","syntheticFrame","describeFunctionComponentFrame","shouldConstruct","Component","prototype","describeUnknownElementTypeFrameInDEV","hasOwnProperty","loggedTypeFailures","setCurrentlyValidatingElement","element","owner","checkPropTypes","typeSpecs","values","location","componentName","has","typeSpecName","error$1","err","ex","isArrayImpl","isArray","typeName","value","hasToStringTag","willCoercionThrow","testStringCoercion","checkKeyStringCoercion","ReactCurrentOwner","RESERVED_PROPS","specialPropKeyWarningShown","specialPropRefWarningShown","hasValidRef","config","getter","hasValidKey","warnIfStringRefCannotBeAutoConverted","self","defineKeyPropWarningGetter","warnAboutAccessingKey","defineRefPropWarningGetter","warnAboutAccessingRef","ReactElement","key","ref","jsxDEV","maybeKey","propName","defaultProps","ReactCurrentOwner$1","ReactDebugCurrentFrame$1","setCurrentlyValidatingElement$1","propTypesMisspellWarningShown","isValidElement","object","getDeclarationErrorAddendum","getSourceInfoErrorAddendum","ownerHasKeyUseWarning","getCurrentComponentErrorInfo","parentType","info","parentName","validateExplicitKey","currentComponentErrorInfo","childOwner","validateChildKeys","node","i","child","iteratorFn","iterator","step","validatePropTypes","propTypes","_name","validateFragmentProps","fragment","keys","didWarnAboutKeySpread","jsxWithValidation","isStaticChildren","validType","sourceInfo","typeString","children","beforeExample","afterExample","jsxWithValidationStatic","jsxWithValidationDynamic","jsx","jsxs","reactJsxRuntime_development","jsxRuntimeModule","require$$1","client","o","useOnScreen","wasIntersecting","setWasIntersecting","useState","observer","useMemo","entry","useEffect","getLanguage","lng","language","en","nl","de","fr","it","es","strings","request","url","options","response","_fetchGeohashes","apiRoot","version","authorization","limitToLocationIds","precision","bbox","_fetchTariffs","origin","ids","_fetchLocations","status","loadRemoteConfig","MapContext","createContext","MapProvider","setOptions","filterConfiguration","setFilterConfiguration","setError","place","setPlace","position","setPosition","filters","setFilters","locationIds","setLocationsIds","locations","setLocations","locationsStatus","setLocationsStatus","isSearching","setIsSearching","isDebug","t","p1","mapKey","fetchGeohashes","fetchLocations","fetchTariffs","onFetchLocations","data","rc","theming","shadowRoot","style","isReady","providerValue","useMapContext","Boot","useContext","useRef","loaded","styles","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","reject","fulfilled","rejected","result","getDefaultExportFromCjs","fastDeepEqual","equal","length","isEqual","DEFAULT_ID","LoaderStatus","Loader","apiKey","authReferrerPolicy","channel","id","libraries","mapIds","nonce","region","retries","script","_a","_b","params","r","u","libraryPromises","library","event","delay","cb","instance","getLoader","loader","base32","Geohash","lat","lon","hash","posn","idx","bit","evenBit","geohash","latMin","latMax","lonMin","lonMax","lonMid","latMid","bounds","chr","bitN","direction","neighbour","border","lastCh","parent","createOverlay","container","pane","Overlay","point","OverlayView","map","zIndex","div","overlay","createPortal","getColorForStatus","formatter","formatNumber","num","CustomMarker","onClick","highlight","handleClick","useCallback","styleColor","geoHashZoom","zoomToHashChars","zoom","getNormalizedBounds","zoomLevel","mapSWPoint","mapNEPoint","SWGeohash","geohashSWBounds","latStep","lngStep","neLat","neLng","isSameBounds","bounds1","bounds2","MapMarkers","onMarkerClicked","setData","mapConfig","setMapConfig","currentZoomLevel","currentBounds","newZoomLevel","newMapConfig","appendData","newData","oldData","ignore","_onMarkerClicked","Fragment","MapWrapper","setMap","mapContainerRef","Map","_extends","_objectWithoutPropertiesLoose","_setPrototypeOf","_inheritsLoose","setPrototypeOf","v","w","y","z","A","reactIs_production_min","hasSymbol","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","typeOf","$$typeof","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","reactIs_development","reactIsModule","getOwnPropertySymbols","propIsEnumerable","toObject","val","shouldUseNative","test1","test2","order2","test3","letter","objectAssign","target","from","to","symbols","ReactPropTypesSecret","ReactPropTypesSecret_1","text","message","getStack","checkPropTypes_1","ReactIs","require$$2","require$$3","require$$4","emptyFunctionThatReturnsNull","factoryWithTypeCheckers","throwOnDirectAccess","ITERATOR_SYMBOL","ANONYMOUS","ReactPropTypes","createPrimitiveTypeChecker","createAnyTypeChecker","createArrayOfTypeChecker","createElementTypeChecker","createElementTypeTypeChecker","createInstanceTypeChecker","createNodeChecker","createObjectOfTypeChecker","createEnumTypeChecker","createUnionTypeChecker","createShapeTypeChecker","createStrictShapeTypeChecker","is","PropTypeError","createChainableTypeChecker","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","propFullName","secret","cacheKey","chainedCheckType","expectedType","propValue","propType","getPropType","preciseType","getPreciseType","typeChecker","expectedClass","expectedClassName","actualClassName","getClassName","expectedValues","valuesString","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","expectedTypesMessage","isNode","invalidValidatorError","shapeTypes","allKeys","isSymbol","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","getShim","propTypesModule","hasClass","className","addClass","replaceClassName","origClass","classToRemove","removeClass","timeoutsShape","PropTypes","classNamesShape","TransitionGroupContext","forceReflow","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","_this","parentGroup","appear","initialStatus","_ref","prevState","nextIn","_proto","prevProps","nextStatus","timeout","exit","enter","mounting","ReactDOM","_this2","appearing","_ref2","maybeNode","maybeAppearing","timeouts","enterTimeout","_this3","nextState","callback","_this4","active","handler","doesNotHaveTimeoutOrListener","_ref3","maybeNextCallback","_this$props","childProps","pt","_len","_key","noop","_addClass","classes","addOneClass","removeOneClass","CSSTransition","_this$resolveArgument","_this$resolveArgument2","_this$resolveArgument3","_this$resolveArgument4","_this$resolveArgument5","_this$resolveArgument6","classNames","isStringClassNames","baseClassName","activeClassName","doneClassName","phase","_this$getClassNames","_this$appliedClasses$","_leaveRenders","_enterRenders","areChildrenDifferent","oldChildren","newChildren","modes","callHook","_element$props","leaveRenders","current","changeState","enterRenders","_ref4","SwitchTransition","state","mode","_this$state","component","StackView","StackContext","useStackContext","Stack","currentView","onViewChange","elements","createRef","currentRef","setCurrentRef","View","setArgs","contextValue","view","opt","done","SearchInput","onFocus","inputRef","places","autocomplete","CheckboxToggle","checked","onChange","isChecked","setIsChecked","onChangeCallback","Range","ticks","convertValue","tick","bgSize","REACT_SERVER_CONTEXT_TYPE","SuspenseList","hasWarnedAboutDeprecatedIsConcurrentMode","isSuspenseList","W","H","M","E","C","I","R","T","B","V","D","L","F","S","X","Y","__assign","idCounter","cbToCb","scrollIntoView","menuNode","actions","compute","el","top","left","isOrContainsNode","environment","debounce","time","timeoutId","cancel","wrapper","callAllEventHandlers","fns","_len3","_key3","handleRefs","_len4","refs","_key4","generateId","getA11yStatusMessage","isOpen","resultCount","previousResultCount","unwrapArray","arg","defaultValue","isDOMElement","getElementProps","requiredProp","fnName","stateKeys","pickState","getState","isControlledProp","normalizeArrowKey","keyCode","isPlainObject","obj","getHighlightedIndex","start","offset","items","isItemDisabled","circular","count","itemsLastIndex","highlightedIndex","getNonDisabledIndex","backwards","index","_index","targetWithinDownshift","downshiftElements","checkActiveElement","contextNode","validateControlledUnchanged","nextProps","warningDescription","propKey","cleanupStatus","documentProp","getStatusDiv","statusDiv","setStatus","cleanupStatusDiv","unknown","mouseUp","itemMouseEnter","keyDownArrowUp","keyDownArrowDown","keyDownEscape","keyDownEnter","keyDownHome","keyDownEnd","clickItem","blurInput","changeInput","keyDownSpaceButton","clickButton","blurButton","controlledPropUpdatedSelectedItem","touchEnd","stateChangeTypes$3","_excluded$3","_excluded2$3","_excluded3$2","_excluded4$2","_excluded5","Downshift","_Component","_props","_item","currentElementNode","otherStateToSet","itemIndex","stateToSet","isItemSelected","onChangeArg","onStateChangeArg","isStateToSetFunction","_newStateToSet","newStateToSet","hasMoreStateThanType","_temp","_temp2","_extends2","_ref$refKey","refKey","rest","_ref2$suppressRefErro","suppressRefError","_this$getState","amount","itemCount","_this2$getState","nextHighlightedIndex","_this3$getState","_this$getState2","itemNode","_this$getState3","newHighlightedIndex","_this$getState4","_temp3","onKeyDown","onKeyUp","onBlur","_this$getState5","enabledEventHandlers","eventHandlers","_this$props$environme","body","activeElement","blurTarget","_temp4","onInput","onChangeKey","_this$getState6","inputValue","_eventHandlers","_activeElement$datase","downshiftButtonIsActive","_temp5","_temp6","_extends3","_ref5","_ref5$refKey","_ref6","_ref6$suppressRefErro","_temp7","_enabledEventHandlers","_ref7","onMouseMove","onMouseDown","_ref7$item","onSelectKey","customClickHandler","_ref8","selectedItem","_ref9","_this$getState7","_this$props2","defaultHighlightedIndex","_this$props2$initialH","_highlightedIndex","defaultIsOpen","_this$props2$initialI","_isOpen","_this$props2$initialI2","_inputValue","_this$props2$initialS","_selectedItem","_state","stateToMerge","_this$getState8","_this$getState9","itemToString","getRootProps","getToggleButtonProps","getLabelProps","getMenuProps","getInputProps","getItemProps","openMenu","closeMenu","toggleMenu","selectItem","selectItemAtIndex","selectHighlightedItem","setHighlightedIndex","clearSelection","clearItems","reset","setItemCount","unsetItemCount","setState","validateGetMenuPropsCalledCorrectly","onMouseUp","contextWithinDownshift","onTouchStart","onTouchMove","onTouchEnd","_ref0","currentHighlightedIndex","_ref1","prevHighlightedIndex","scrollWhenOpen","scrollWhenNavigating","validateGetRootPropsCalledCorrectly","cloneElement","prevItem","_ref10","_ref11","refKeySpecified","isComposite","dropdownDefaultStateValues","callOnChangeProps","action","newState","changes","invokeOnChangeHandler","capitalizeString","stateReducer","updateA11yStatus","document","useIsomorphicLayoutEffect","useLayoutEffect","useElementIds","labelId","menuId","getItemId","toggleButtonId","inputId","reactId","elementIdsRef","_ref2$id","getItemAndIndex","itemProp","indexProp","errorMessage","isAcceptedCharacterKey","string","useLatestRef","useEnhancedReducer","reducer","createInitialState","isStateEqual","prevStateRef","actionRef","enhancedReducer","_useReducer","useReducer","dispatch","propsRef","dispatchWithProps","shouldCallOnChangeProps","useControlledReducer$1","_useEnhancedReducer","defaultProps$3","getDefaultValue$1","defaultStateValues","getInitialValue$1","initialValue","getInitialState$2","getInitialHighlightedIndex","getHighlightedIndexOnOpen","initialHighlightedIndex","itemToKey","useMouseAndTouchTracker","handleBlur","downshiftElementsRefs","mouseAndTouchTrackersRef","useGetterPropsCalledChecker","propKeys","getterPropsCalledRef","acc","propCallInfo","elementRef","setGetterPropCallInfo","useA11yMessageStatus","dependencyArray","isInitialMount","useIsInitialMount","useScrollIntoView","itemRefs","getItemNodeFromIndex","menuElement","scrollIntoViewProp","shouldScrollRef","useControlPropsValidator","prevPropsRef","getChangesOnSelection","_props$items","shouldSelect","isDropdownsStateEqual","isInitialMountRef","getDefaultHighlightedIndex","commonPropTypes","commonDropdownPropTypes","downshiftCommonReducer","stateChangeTypes","getItemIndexByCharacterKey","keysSoFar","lowerCasedKeysSoFar","offsetIndex","propTypes$2","defaultProps$2","validatePropTypes$2","caller","ToggleButtonClick$1","ToggleButtonKeyDownArrowDown","ToggleButtonKeyDownArrowUp","ToggleButtonKeyDownCharacter","ToggleButtonKeyDownEscape","ToggleButtonKeyDownHome","ToggleButtonKeyDownEnd","ToggleButtonKeyDownEnter","ToggleButtonKeyDownSpaceButton","ToggleButtonKeyDownPageUp","ToggleButtonKeyDownPageDown","ToggleButtonBlur","MenuMouseLeave$1","ItemMouseMove$1","ItemClick$1","FunctionToggleMenu$1","FunctionOpenMenu$1","FunctionCloseMenu$1","FunctionSetHighlightedIndex$1","FunctionSelectItem$1","FunctionSetInputValue$1","FunctionReset$2","stateChangeTypes$2","downshiftSelectReducer","altKey","lowercasedKey","_highlightedIndex2","_excluded$2","_excluded2$2","_excluded3$1","_excluded4$1","useSelect","userProps","_useControlledReducer","toggleButtonRef","menuRef","clearTimeoutRef","elementIds","latest","outerDispatch","focusOnOpen","mouseAndTouchTrackers","toggleButtonKeyDownHandlers","currentState","newSelectedItem","setInputValue","newInputValue","labelProps","labelHandleClick","_toggleButtonRef$curr","onMouseLeave","_ref2$refKey","_ref3$suppressRefErro","menuHandleMouseLeave","_ref4$refKey","_ref5$suppressRefErro","latestState","toggleButtonHandleClick","toggleButtonHandleBlur","toggleButtonHandleKeyDown","toggleProps","toggleButtonNode","_extends4","_ref6$refKey","disabledProp","_latest$current","latestProps","_getItemAndIndex","disabled","itemHandleMouseMove","itemHandleClick","itemHandleMouseDown","itemProps","MultiSelect","preferredValues","placeholder","setIsOpen","containerRef","preferredSet","filteredOptions","filtered","option","preferred","others","selectedOptions","downshiftIsOpen","newValue","newValues","handleClickOutside","handleInputChange","handleKeyDown","handleMenuClick","handleMenuMouseDown","removeValue","valueToRemove","toggleDropdown","isLastOverall","actualIndex","isLastInOthers","SelectField","handleChange","selectedValue","ICON_IEC_62196_T2","ICON_IEC_62196_T2_COMBO","ICON_IEC_62196_T1","ICON_IEC_62196_T1_COMBO","ICON_IEC_62196_T3","ICON_IEC_62196_T3A","ICON_SCHUKO","ICON_CHADEMO","ICON_CATARC","connectorIcons","defaultFilter","hasFilters","filter","powerRanges","toggleOption","existingFilters","optionFilters","useLocalState","initialState","updatedState","FiltersScreen","applyFilters","contextFilters","setParentView","showOperatorFilter","Checkbox","operator","LocationPlaceholder","ChevronLeft","ChevronRight","Info","SideBarContainer","Debug","evse","connector","StationIcon","BuildingIcon","CarIcon","BoltIcon","PricingIcon","getSocketIcon","connectorPowerTypes","getSocketText","formatConnectorStandard","getStatusLabel","getLocationLabel","getStatusColorFromEvses","evses","getTimezoneOffset","date","timeZone","lang","tzName","part","sign","offsetToMins","formatYMD","year","month","day","tzDate","offMins","startOfDay","oDateTS","sodDateTS","endOfDate","getNextDayOfWeek","dayOfWeek","resultDate","getDay","convertTimeToMinutes","hours","minutes","convertToTimeSlot","startTime","endTime","getScheduleItems","isDayActive","now","currentTime","scheduleItems","refItem","oldEndTime","toAppend","maxEndTime","isBaseTariffOCPI","tariffElement","isBaseTarif","getDynamicTariffOCPI","limit","splitByDay","curr","formattedItems","restrictions","_startDate","partialRestrictions","isActive","getDynamicTariff","getScheduledTariff","locationTimezone","today","start_date","end_date","day_of_week","startDate","endDate","end","omitFields","fields","isSame","aWithoutActive","bWithoutActive","mergeDuplicatesTimeslots","timeslots","cur","existing","getSchedule","days","SUNDAY","firstDay","restDays","dayElements","prevEntry","prevTimeslots","getConnectorTariffTypeV2","tariff","getConnectorTariffType","connectorTarif","ConnectorPowerType","calculateMaxPower","formatCurrency","getPrice","priceComponent","vat","PriceComponent","currency","stringByType","displayOrder","PriceComponents","elementsByType","sortedElements","aIndex","bIndex","Price","price","vatAmount","CdrPriceComponent","cdrAdditionalCharge","formatTime","mins","defaultTimeZone","daysForLocale","CdrAdditionalChargeComponent","cdrAdditionalCharges","CdrPrice","ConnectorTariff","timezone","compact","i18nDays","hasPriceComponents","dynamicTariffs","scheduledTariffs","baseTarifElements","isBaseActive","schedule","dynamicTariff","getNotes","notes","LocationDetailsV1","currentLocation","setView","availableEvse","connectorType","transformTariff","TariffV2","additionalCharges","LocationDetailsV2","connectorTariff","Locations","locationIndex","setLocationIndex","canNext","canPrev","debugMode","label","isV2","BackButton","TariffNote","evseId","locationName","note","DynamicTariffs","CloseIcon","CloseButton","LocationsScreeen","DynamicTariff","filterIcon","Controls","Filters","RoadMap","ShadowMapWrapper","Router","rootRef","shadowRootRef","isInitializedRef","styleHref","link","root","createRoot","roadMapElement"],"mappings":"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","x_google_ignoreList":[0,1,2,3,9,11,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,46,47,48,49,50,51]}
1
+ {"version":3,"file":"index.js","sources":["../src/hooks/useOnScreen.ts","../src/i18n.ts","../src/utils/request.ts","../src/contexts/Map.tsx","../src/Boot.tsx","../node_modules/@googlemaps/js-api-loader/dist/index.mjs","../src/utils/loader.ts","../node_modules/latlon-geohash/latlon-geohash.js","../src/components/OverlayView/OverlayView.tsx","../src/utils/location.ts","../src/components/CustomMarker/CustomMarker.tsx","../src/components/MapMarkers/MapMarkers.tsx","../src/components/Map/Map.tsx","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/utils/PropTypes.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/react-transition-group/esm/SwitchTransition.js","../src/components/Stack/View.tsx","../src/components/Stack/Stack.tsx","../src/components/SearchInput/SearchInput.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Range/Range.tsx","../node_modules/downshift/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/downshift/node_modules/react-is/cjs/react-is.development.js","../node_modules/downshift/node_modules/react-is/index.js","../node_modules/compute-scroll-into-view/dist/index.js","../node_modules/tslib/tslib.es6.mjs","../node_modules/downshift/dist/downshift.esm.js","../src/components/MultiSelect/MultiSelect.tsx","../src/components/SelectField/SelectField.tsx","../src/assets/connectors/type2.svg","../src/assets/connectors/combo2.svg","../src/assets/connectors/type1.svg","../src/assets/connectors/combo1.svg","../src/assets/connectors/type3.svg","../src/assets/connectors/type3a.svg","../src/assets/connectors/schuko.svg","../src/assets/connectors/chademo.svg","../src/assets/connectors/catarc.svg","../src/components/connectorIcons.ts","../src/utils/filters.ts","../src/screens/Filters/index.tsx","../src/components/LocationPlaceholder/LocationPlaceholder.tsx","../src/components/Icons/Icons.tsx","../src/components/SidebarContainer/SidebarContainer.tsx","../src/components/Debug/Debug.tsx","../src/assets/station-icon.svg","../src/assets/building-icon.svg","../src/assets/car-icon.svg","../src/assets/bolt-icon.svg","../src/assets/pricing-icon.svg","../src/utils/formatters.ts","../src/utils/date.ts","../src/utils/ocpi.ts","../src/components/Price/Price.tsx","../src/components/PriceComponents/PriceComponents.tsx","../src/components/CdrPrice/CdrPrice.tsx","../src/components/ConnectorTariff/ConnectorTariff.tsx","../src/utils/notes.ts","../src/screens/Locations/LocationDetailsV1.tsx","../src/screens/Locations/v2/Tariff.tsx","../src/screens/Locations/LocationDetailsV2.tsx","../src/screens/Locations/Locations.tsx","../src/components/BackButton/BackButton.tsx","../src/screens/Locations/TariffNote.tsx","../src/screens/Locations/DynamicTariffs.tsx","../src/assets/close-icon.svg","../src/components/CloseButton/CloseButton.tsx","../src/screens/Locations/index.tsx","../src/assets/filter-icon.svg","../src/Router.tsx","../src/App.tsx"],"sourcesContent":["import { useEffect, useMemo, useState, RefObject } from \"react\";\n\nexport default function useOnScreen(ref: RefObject<HTMLElement>) {\n const [wasIntersecting, setWasIntersecting] = useState(false);\n\n const observer = useMemo(\n () =>\n new IntersectionObserver(([entry]) => {\n if (entry.isIntersecting) {\n setWasIntersecting(true);\n observer.disconnect();\n }\n }),\n [ref],\n );\n\n useEffect(() => {\n if (!ref.current) return;\n observer.observe(ref.current);\n return () => observer.disconnect();\n }, [ref.current]);\n\n return wasIntersecting;\n}\n","export function getLanguage(lng) {\n const language = lng || window.navigator.language.toLowerCase();\n\n const dutchLangCodes = [\"nl\", \"nl-be\", \"nl-nl\"];\n if (dutchLangCodes.includes(language)) {\n return \"nl\";\n }\n\n const englishLangCodes = [\n \"en\",\n \"en-us\",\n \"en-eg\",\n \"en-au\",\n \"en-gb\",\n \"en-ca\",\n \"en-nz\",\n \"en-ie\",\n \"en-za\",\n \"en-jm\",\n \"en-bz\",\n \"en-tt\",\n ];\n\n if (englishLangCodes.includes(language)) {\n return \"en\";\n }\n\n const germanLangCodes = [\"de\", \"de-ch\", \"de-at\", \"de-lu\", \"de-li\", \"de-de\"];\n if (germanLangCodes.includes(language)) {\n return \"de\";\n }\n\n const frenchLangCodes = [\"fr\", \"fr-be\", \"fr-ca\", \"fr-fr\", \"fr-lu\", \"fr-ch\"];\n if (frenchLangCodes.includes(language)) {\n return \"fr\";\n }\n\n const italianLangCodes = [\"it\", \"it-ch\", \"it-it\"];\n if (italianLangCodes.includes(language)) {\n return \"it\";\n }\n\n const spanishLangCodes = [\n \"es\",\n \"es-ar\",\n \"es-bo\",\n \"es-cl\",\n \"es-co\",\n \"es-cr\",\n \"es-do\",\n \"es-ec\",\n \"es-sv\",\n \"es-gt\",\n \"es-hn\",\n \"es-mx\",\n \"es-ni\",\n \"es-pa\",\n \"es-py\",\n \"es-pe\",\n \"es-pr\",\n \"es-es\",\n \"es-uy\",\n \"es-ve\",\n ];\n\n if (spanishLangCodes.includes(language)) {\n return \"es\";\n }\n\n return \"en\";\n}\n\nexport type LabelsType = {\n \"search.placeholder\": string;\n \"cdrPrice.flatFee\": string;\n \"tariffPriceComponent.dynamicTariffHeader\": string;\n \"tariffPriceComponent.noTariff\": string;\n \"tariffPriceComponent.energy\": string;\n \"tariffPriceComponent.time\": string;\n \"tariffPriceComponent.parkingTime\": string;\n \"tariffPriceComponent.parkingTimeWait\": string;\n \"tariffPriceComponent.flat\": string;\n \"tariffPriceComponent.baseTariff\": string;\n \"tariffPriceComponent.active\": string;\n \"tariffPriceComponent.viewTariff\": string;\n \"tariffNote.subHeader\": string;\n \"tariffNote.eFluxScheduledTariffNote\";\n \"tariffNote.dynamicScheduledTariffNote\";\n \"tariffNote.scheduledTariffNote\";\n \"tariffNote.baseTariffNote\";\n \"tariff.congestionPricing\": string;\n \"evse.statusAvailable\": string;\n \"evse.statusCharging\": string;\n \"evse.statusUnavailable\": string;\n \"evse.statusRemoved\": string;\n \"evse.statusPlanned\": string;\n \"evse.statusReserved\": string;\n \"evse.statusInoperative\": string;\n \"evse.statusOutOfOrder\": string;\n \"evse.statusError\": string;\n \"evse.statusUnknown\": string;\n \"evse.pricing\": string;\n \"filters.header\": string;\n \"filters.dcChargers\": string;\n \"filters.efluxChargers\": string;\n \"filters.noAdditionalFee\": string;\n \"filters.available\": string;\n \"filters.charging\": string;\n \"filters.notAvailable\": string;\n \"filters.chargingPower\": string;\n \"filters.connectorType\": string;\n \"filters.apply\": string;\n \"filters.clearAll\": string;\n \"filters.onlyShow\": string;\n \"filters.statusHeading\": string;\n \"filters.chargingAccessibility\": string;\n \"filters.accessibilityAll\": string;\n \"filters.accessibilityTesla\": string;\n \"filters.allAccessibility\": string;\n \"locationType.onStreet\": string;\n \"locationType.parkingGarage\": string;\n \"locationType.undergroundGarage\": string;\n \"locationType.parkingLot\": string;\n \"locationType.other\": string;\n \"locationType.unknown\": string;\n \"dynamicTariffs.subHeader\": string;\n \"location.viewAllHourlyPrices\": string;\n \"backButton.backTo\": string;\n};\n\nexport const en: LabelsType = {\n \"search.placeholder\": \"Enter a location...\",\n \"cdrPrice.flatFee\": \"additional fee {{total}} / session\",\n \"tariffPriceComponent.dynamicTariffHeader\": \"Dynamic Tariff - {{date}}\",\n \"tariffPriceComponent.flat\": \"{{total}} / session\",\n \"tariffPriceComponent.time\": \"{{total}} / hour\",\n \"tariffPriceComponent.energy\": \"{{total}} / kWh\",\n \"tariffPriceComponent.parkingTime\": \"{{total}} / hour idle fee\",\n \"tariffPriceComponent.parkingTimeWait\":\n \"{{minutes}} min. wait time before idle fee\",\n \"tariffPriceComponent.noTariff\": \"No tariff available\",\n \"tariffPriceComponent.baseTariff\": \"Base Tariff\",\n \"tariffPriceComponent.active\": \"Active now\",\n \"filters.header\": \"Filters\",\n \"filters.dcChargers\": \"Fast Chargers\",\n \"filters.efluxChargers\": \"E-Flux Chargers\",\n \"filters.noAdditionalFee\": \"Without additional fee per session\",\n \"filters.available\": \"Available\",\n \"filters.charging\": \"Charging\",\n \"filters.notAvailable\": \"Not Available\",\n \"filters.chargingPower\": \"Charging Power [kW]\",\n \"filters.connectorType\": \"Connector Type\",\n \"filters.apply\": \"Apply Filters\",\n \"filters.clearAll\": \"Clear All Filters\",\n \"filters.onlyShow\": \"Only Show\",\n \"filters.statusHeading\": \"Status\",\n \"filters.chargingAccessibility\": \"Vehicle Accessibility\",\n \"filters.accessibilityAll\": \"All vehicles\",\n \"filters.accessibilityTesla\": \"Tesla only\",\n \"filters.allAccessibility\": \"All accessibility types\",\n \"evse.statusAvailable\": \"Available\",\n \"evse.statusCharging\": \"Charging\",\n \"evse.statusUnavailable\": \"Unavailable\",\n \"evse.statusRemoved\": \"Removed\",\n \"evse.statusPlanned\": \"Planned\",\n \"evse.statusReserved\": \"Reserved\",\n \"evse.statusInoperative\": \"Inoperative\",\n \"evse.statusOutOfOrder\": \"Out of Order\",\n \"evse.statusError\": \"Error\",\n \"evse.statusUnknown\": \"Unknown\",\n \"locationType.onStreet\": \"On Street\",\n \"locationType.parkingGarage\": \"Parking Garage\",\n \"locationType.undergroundGarage\": \"Underground Garage\",\n \"locationType.parkingLot\": \"Parking Lot\",\n \"locationType.other\": \"Other\",\n \"locationType.unknown\": \"Unknown\",\n \"tariffPriceComponent.viewTariff\": \"View Tariff notes\",\n \"tariffNote.subHeader\": \"Tariff notes\",\n \"tariffNote.eFluxScheduledTariffNote\":\n \"A scheduled tariff overrides base tariff prices for specific time period.\",\n \"tariffNote.dynamicScheduledTariffNote\":\n \"Dynamic price is adjusted automatically based on energy market price (1 hour interval).\",\n \"tariffNote.scheduledTariffNote\":\n \"A scheduled tariff overrides base tariff prices for specific time period.\",\n \"tariffNote.baseTariffNote\":\n \"Tariffs shown here have been sent to E-Flux by roaming partner. Accuracy may vary depending on provider.\",\n \"tariff.congestionPricing\": \"Congestion pricing may apply\",\n \"evse.pricing\": \"Pricing\",\n \"dynamicTariffs.subHeader\": \"Hourly Prices\",\n \"location.viewAllHourlyPrices\": \"View All Hourly Prices\",\n \"backButton.backTo\": \"Back To\",\n};\n\nexport const nl: LabelsType = {\n \"search.placeholder\": \"Voer een locatie in...\",\n \"cdrPrice.flatFee\": \"Extra vergoeding {{total}} / sessie\",\n \"tariffPriceComponent.dynamicTariffHeader\": \"Dynamisch Tarief - {{date}}\",\n \"tariffPriceComponent.flat\": \"{{total}} / sessie\",\n \"tariffPriceComponent.time\": \"{{total}} / uur\",\n \"tariffPriceComponent.energy\": \"{{total}} / kWh\",\n \"tariffPriceComponent.parkingTime\": \"{{total}} / uur blokkeertarief\",\n \"tariffPriceComponent.parkingTimeWait\":\n \"{{minutes}} min. wachttijd voor blokkeertarief\",\n \"tariffPriceComponent.noTariff\": \"Geen beschikbaar tarief\",\n \"tariffPriceComponent.baseTariff\": \"Basistarief\",\n \"tariffPriceComponent.active\": \"Nu actief\",\n \"filters.header\": \"Filters\",\n \"filters.dcChargers\": \"DC-laders\",\n \"filters.efluxChargers\": \"E-Flux-laders\",\n \"filters.noAdditionalFee\": \"Zonder extra kosten per sessie\",\n \"filters.available\": \"Beschikbaar\",\n \"filters.charging\": \"Laden\",\n \"filters.notAvailable\": \"Niet beschikbaar\",\n \"filters.chargingPower\": \"Laadvermogen [kW]\",\n \"filters.connectorType\": \"Aansluitingstype\",\n \"filters.apply\": \"Filters toepassen\",\n \"filters.clearAll\": \"Alle filters wissen\",\n \"filters.onlyShow\": \"Alleen tonen\",\n \"filters.statusHeading\": \"Status\",\n \"filters.chargingAccessibility\": \"Voertuigtoegang\",\n \"filters.accessibilityAll\": \"Alle voertuigen\",\n \"filters.accessibilityTesla\": \"Alleen Tesla\",\n \"filters.allAccessibility\": \"Alle toegankelijkheidstypes\",\n \"evse.statusAvailable\": \"Beschikbaar\",\n \"evse.statusCharging\": \"Laden\",\n \"evse.statusUnavailable\": \"Niet beschikbaar\",\n \"evse.statusError\": \"Fout\",\n \"evse.statusRemoved\": \"Verwijderd\",\n \"evse.statusPlanned\": \"Gepland\",\n \"evse.statusReserved\": \"Gereserveerd\",\n \"evse.statusInoperative\": \"Inoperative\",\n \"evse.statusOutOfOrder\": \"Uit van orde\",\n \"evse.statusUnknown\": \"Onbekend\",\n \"locationType.onStreet\": \"Op straat\",\n \"locationType.parkingGarage\": \"Parkeergarage\",\n \"locationType.undergroundGarage\": \"Ondergrondse garage\",\n \"locationType.parkingLot\": \"Parkeerterrein\",\n \"locationType.other\": \"Anders\",\n \"locationType.unknown\": \"Onbekend\",\n \"tariffPriceComponent.viewTariff\": \"Tariefnotitie bekijken\",\n \"tariffNote.subHeader\": \"Tariefnotities\",\n \"tariffNote.eFluxScheduledTariffNote\":\n \"Een gepland tarief overschrijft de basis tariefprijzen voor een specifieke periode.\",\n \"tariffNote.dynamicScheduledTariffNote\":\n \"De dynamische prijs wordt automatisch aangepast op basis van de energiemarktprijs (interval van 1 uur).\",\n \"tariffNote.scheduledTariffNote\":\n \"Een gepland tarief overschrijft de basis tariefprijzen voor een specifieke periode.\",\n \"tariffNote.baseTariffNote\":\n \"De hier getoonde tarieven zijn door de roamingpartner aan E-Flux verstrekt. De nauwkeurigheid kan variëren afhankelijk van de aanbieder.\",\n \"tariff.congestionPricing\": \"Congestietarief kan van toepassing zijn\",\n \"evse.pricing\": \"Tarieven\",\n \"dynamicTariffs.subHeader\": \"Uurtarieven\",\n \"location.viewAllHourlyPrices\": \"Bekijk Alle Uurprijzen\",\n \"backButton.backTo\": \"Terug Naar\",\n};\n\nexport const de: LabelsType = {\n \"search.placeholder\": \"Geben Sie einen Ort ein...\",\n \"cdrPrice.flatFee\": \"Zusätzliche Gebühr {{total}} / Sitzung\",\n \"tariffPriceComponent.dynamicTariffHeader\": \"Dynamischer Tarif - {{date}}\",\n \"tariffPriceComponent.flat\": \"{{total}} / Sitzung\",\n \"tariffPriceComponent.time\": \"{{total}} / Stunde\",\n \"tariffPriceComponent.energy\": \"{{total}} / kWh\",\n \"tariffPriceComponent.parkingTime\": \"{{total}} / Stunde Blockiergebühr\",\n \"tariffPriceComponent.parkingTimeWait\":\n \"{{minutes}} Min. Wartezeit vor der Blockiergebühr\",\n \"tariffPriceComponent.noTariff\": \"Kein Tarif verfügbar\",\n \"tariffPriceComponent.baseTariff\": \"Grundtarif\",\n \"tariffPriceComponent.active\": \"Aktuell aktiv\",\n \"filters.header\": \"Filter\",\n \"filters.dcChargers\": \"Gleichstrom-Ladegeräte\",\n \"filters.efluxChargers\": \"E-Flux-Ladegeräte\",\n \"filters.noAdditionalFee\": \"Ohne zusätzliche Gebühr pro Sitzung\",\n \"filters.available\": \"Verfügbar\",\n \"filters.charging\": \"Lädt\",\n \"filters.notAvailable\": \"Nicht verfügbar\",\n \"filters.chargingPower\": \"Ladeleistung [kW]\",\n \"filters.connectorType\": \"Steckertyp\",\n \"filters.apply\": \"Filter anwenden\",\n \"filters.clearAll\": \"Alle Filter löschen\",\n \"filters.onlyShow\": \"Nur anzeigen\",\n \"filters.statusHeading\": \"Status\",\n \"filters.chargingAccessibility\": \"Fahrzeugzugänglichkeit\",\n \"filters.accessibilityAll\": \"Alle Fahrzeuge\",\n \"filters.accessibilityTesla\": \"Nur Tesla\",\n \"filters.allAccessibility\": \"Alle Zugänglichkeitstypen\",\n \"evse.statusAvailable\": \"Verfügbar\",\n \"evse.statusCharging\": \"Lädt\",\n \"evse.statusUnavailable\": \"Nicht verfügbar\",\n \"evse.statusRemoved\": \"Entfernt\",\n \"evse.statusPlanned\": \"Geplant\",\n \"evse.statusReserved\": \"Reserviert\",\n \"evse.statusInoperative\": \"Inoperative\",\n \"evse.statusOutOfOrder\": \"Ausgeschaltet\",\n \"evse.statusError\": \"Fehler\",\n \"evse.statusUnknown\": \"Unbekannt\",\n \"evse.pricing\": \"Preisbildung\",\n \"locationType.onStreet\": \"Straße\",\n \"locationType.parkingGarage\": \"Parkhaus\",\n \"locationType.undergroundGarage\": \"Tiefgarage\",\n \"locationType.parkingLot\": \"Parkplatz\",\n \"locationType.other\": \"Andere\",\n \"locationType.unknown\": \"Unbekannt\",\n \"tariffPriceComponent.viewTariff\": \"Tarif anzeigen\",\n \"tariffNote.subHeader\": \"Tarifhinweise\",\n \"tariffNote.eFluxScheduledTariffNote\":\n \"Ein geplanter Tarif überschreibt die Basistarifpreise für einen bestimmten Zeitraum.\",\n \"tariffNote.dynamicScheduledTariffNote\":\n \"Der dynamische Preis wird automatisch basierend auf dem Energiepreis auf dem Markt angepasst (im Intervall von 1 Stunde).\",\n \"tariffNote.scheduledTariffNote\":\n \"Ein geplanter Tarif überschreibt die Basistarifpreise für einen bestimmten Zeitraum.\",\n \"tariffNote.baseTariffNote\":\n \"Die hier angezeigten Tarife wurden von einem Roaming-Partner an E-Flux gesendet. Die Genauigkeit kann je nach Anbieter variieren.\",\n \"tariff.congestionPricing\": \"Überlastungstarif kann anfallen\",\n \"dynamicTariffs.subHeader\": \"Stundentarife\",\n \"location.viewAllHourlyPrices\": \"Alle Stundenpreise anzeigen\",\n \"backButton.backTo\": \"Zurück zu\",\n};\n\nexport const fr: LabelsType = {\n \"search.placeholder\": \"Entrez un lieu...\",\n \"cdrPrice.flatFee\": \"Frais supplémentaires {{total}} / session\",\n \"tariffPriceComponent.dynamicTariffHeader\": \"Tarif Dynamique - {{date}}\",\n \"tariffPriceComponent.flat\": \"{{total}} / session\",\n \"tariffPriceComponent.time\": \"{{total}} / heure\",\n \"tariffPriceComponent.energy\": \"{{total}} / kWh\",\n \"tariffPriceComponent.parkingTime\":\n \"{{total}} / frais d'occupation par heure\",\n \"tariffPriceComponent.parkingTimeWait\":\n \"{{minutes}} min. avant frais d'occupation\",\n \"tariffPriceComponent.noTariff\": \"Aucun tarif disponible\",\n \"tariffPriceComponent.baseTariff\": \"Tarif de base\",\n \"tariffPriceComponent.active\": \"Actuellement actif\",\n \"filters.header\": \"Filtres\",\n \"filters.dcChargers\": \"Chargeurs à courant continu\",\n \"filters.efluxChargers\": \"Chargeurs E-Flux\",\n \"filters.noAdditionalFee\": \"Sans frais supplémentaires par séance\",\n \"filters.available\": \"Disponible\",\n \"filters.charging\": \"En charge\",\n \"filters.notAvailable\": \"Indisponible\",\n \"filters.chargingPower\": \"Puissance de charge [kW]\",\n \"filters.connectorType\": \"Type de connecteur\",\n \"filters.apply\": \"Appliquer les filtres\",\n \"filters.clearAll\": \"Effacer tous les filtres\",\n \"filters.onlyShow\": \"Afficher uniquement\",\n \"filters.statusHeading\": \"Statut\",\n \"filters.chargingAccessibility\": \"Accessibilité véhicule\",\n \"filters.accessibilityAll\": \"Tous véhicules\",\n \"filters.accessibilityTesla\": \"Tesla seulement\",\n \"filters.allAccessibility\": \"Tous types d'accessibilité\",\n \"evse.statusAvailable\": \"Disponible\",\n \"evse.statusCharging\": \"En charge\",\n \"evse.statusUnavailable\": \"Indisponible\",\n \"evse.statusRemoved\": \"Supprimé\",\n \"evse.statusPlanned\": \"Planifié\",\n \"evse.statusReserved\": \"Réservé\",\n \"evse.statusInoperative\": \"Hors service\",\n \"evse.statusOutOfOrder\": \"En panne\",\n \"evse.statusError\": \"Erreur\",\n \"evse.statusUnknown\": \"Inconnu\",\n \"evse.pricing\": \"Tarification\",\n \"locationType.onStreet\": \"Dans la rue\",\n \"locationType.parkingGarage\": \"Parking couvert\",\n \"locationType.undergroundGarage\": \"Parking souterrain\",\n \"locationType.parkingLot\": \"Parking\",\n \"locationType.other\": \"Autre\",\n \"locationType.unknown\": \"Inconnu\",\n \"tariffPriceComponent.viewTariff\": \"Voir le tarif\",\n \"tariffNote.subHeader\": \"Notes tarifaires\",\n \"tariffNote.eFluxScheduledTariffNote\":\n \"Un tarif programmé remplace les prix de base du tarif pour une période spécifique.\",\n \"tariffNote.dynamicScheduledTariffNote\":\n \"Le prix dynamique est ajusté automatiquement en fonction du prix du marché de l'énergie (intervalle d'une heure).\",\n \"tariffNote.scheduledTariffNote\":\n \"Un tarif programmé remplace les prix de base du tarif pour une période spécifique.\",\n \"tariffNote.baseTariffNote\":\n \"Les tarifs affichés ici ont été transmis à E-Flux par le partenaire d'itinérance. La précision peut varier en fonction du fournisseur.\",\n \"tariff.congestionPricing\": \"Tarification de congestion peut s'appliquer\",\n \"dynamicTariffs.subHeader\": \"Tarifs horaires\",\n \"location.viewAllHourlyPrices\": \"Voir tous les tarifs horaires\",\n \"backButton.backTo\": \"Retour à\",\n};\n\nexport const it: LabelsType = {\n \"search.placeholder\": \"Inserisci una posizione...\",\n \"cdrPrice.flatFee\": \"Costo aggiuntivo {{total}} / sessione\",\n \"tariffPriceComponent.dynamicTariffHeader\": \"Tariffa dinamica - {{date}}\",\n \"tariffPriceComponent.flat\": \"{{total}} / sessione\",\n \"tariffPriceComponent.time\": \"{{total}} / ora\",\n \"tariffPriceComponent.energy\": \"{{total}} / kWh\",\n \"tariffPriceComponent.parkingTime\": \"{{total}} / ora tariffa di inattività\",\n \"tariffPriceComponent.parkingTimeWait\":\n \"{{minutes}} min. tempo di attesa prima della tariffa di inattività\",\n \"tariffPriceComponent.noTariff\": \"Nessuna tariffa disponibile\",\n \"tariffPriceComponent.baseTariff\": \"Tariffa base\",\n \"tariffPriceComponent.active\": \"Attivo ora\",\n \"filters.header\": \"Filtri\",\n \"filters.dcChargers\": \"Caricabatterie DC\",\n \"filters.efluxChargers\": \"Caricabatterie E-Flux\",\n \"filters.noAdditionalFee\": \"Senza costi aggiuntivi per sessione\",\n \"filters.available\": \"Disponibile\",\n \"filters.charging\": \"In carica\",\n \"filters.notAvailable\": \"Non disponibile\",\n \"filters.chargingPower\": \"Potenza di ricarica [kW]\",\n \"filters.connectorType\": \"Tipo di connettore\",\n \"filters.apply\": \"Applica filtri\",\n \"filters.clearAll\": \"Cancella tutti i filtri\",\n \"filters.onlyShow\": \"Mostra solo\",\n \"filters.statusHeading\": \"Stato\",\n \"filters.chargingAccessibility\": \"Accessibilità del veicolo\",\n \"filters.accessibilityAll\": \"Tutti i veicoli\",\n \"filters.accessibilityTesla\": \"Solo Tesla\",\n \"filters.allAccessibility\": \"Tutti i tipi di accessibilità\",\n \"evse.statusAvailable\": \"Disponibile\",\n \"evse.statusCharging\": \"In carica\",\n \"evse.statusUnavailable\": \"Non disponibile\",\n \"evse.statusRemoved\": \"Rimossa\",\n \"evse.statusPlanned\": \"Pianificata\",\n \"evse.statusReserved\": \"Réservé\",\n \"evse.statusInoperative\": \"Inoperativo\",\n \"evse.statusOutOfOrder\": \"Fuori servizio\",\n \"evse.statusError\": \"Errore\",\n \"evse.statusUnknown\": \"Sconosciuto\",\n \"locationType.onStreet\": \"In strada\",\n \"locationType.parkingGarage\": \"Garage per il parcheggio\",\n \"locationType.undergroundGarage\": \"Garage sotterraneo\",\n \"locationType.parkingLot\": \"Parcheggio\",\n \"locationType.other\": \"Altro\",\n \"locationType.unknown\": \"Sconosciuto\",\n \"tariffPriceComponent.viewTariff\": \"Visualizza note tariffarie\",\n \"tariffNote.subHeader\": \"Note tariffarie\",\n \"tariffNote.eFluxScheduledTariffNote\":\n \"Una tariffa programmata sostituisce i prezzi della tariffa base per un periodo di tempo specifico.\",\n \"tariffNote.dynamicScheduledTariffNote\":\n \"Il prezzo dinamico si regola automaticamente in base al prezzo del mercato dell'energia (intervallo di 1 ora).\",\n \"tariffNote.scheduledTariffNote\":\n \"Una tariffa programmata sostituisce i prezzi della tariffa base per un periodo di tempo specifico.\",\n \"tariffNote.baseTariffNote\":\n \"Le tariffe mostrate qui sono state inviate a E-Flux dal partner di roaming. L'accuratezza può variare a seconda del fornitore.\",\n \"tariff.congestionPricing\":\n \"Potrebbero essere applicate tariffe di congestione\",\n \"evse.pricing\": \"Prezzi\",\n \"dynamicTariffs.subHeader\": \"Prezzi orari\",\n \"location.viewAllHourlyPrices\": \"Visualizza tutti i prezzi orari\",\n \"backButton.backTo\": \"Torna a\",\n};\n\nexport const es: LabelsType = {\n \"search.placeholder\": \"Ingrese una ubicación...\",\n \"cdrPrice.flatFee\": \"Tarifa adicional {{total}} / sesión\",\n \"tariffPriceComponent.dynamicTariffHeader\": \"Tarifa Dinámica - {{date}}\",\n \"tariffPriceComponent.flat\": \"{{total}} / sesión\",\n \"tariffPriceComponent.time\": \"{{total}} / hora\",\n \"tariffPriceComponent.energy\": \"{{total}} / kWh\",\n \"tariffPriceComponent.parkingTime\": \"{{total}} / hora tarifa de inactividad\",\n \"tariffPriceComponent.parkingTimeWait\":\n \"{{minutes}} min. tiempo de espera antes de la tarifa de inactividad\",\n \"tariffPriceComponent.noTariff\": \"Tarifa no disponible\",\n \"tariffPriceComponent.baseTariff\": \"Tarifa Base\",\n \"tariffPriceComponent.active\": \"Activo ahora\",\n \"filters.header\": \"Filtros\",\n \"filters.dcChargers\": \"Cargadores DC\",\n \"filters.efluxChargers\": \"Cargadores E-Flux\",\n \"filters.noAdditionalFee\": \"Sin tarifa adicional por sesión\",\n \"filters.available\": \"Disponible\",\n \"filters.charging\": \"Cargando\",\n \"filters.notAvailable\": \"No Disponible\",\n \"filters.chargingPower\": \"Potencia de Carga [kW]\",\n \"filters.connectorType\": \"Tipo de Conector\",\n \"filters.apply\": \"Aplicar Filtros\",\n \"filters.clearAll\": \"Limpiar Todos los Filtros\",\n \"filters.onlyShow\": \"Mostrar Solo\",\n \"filters.statusHeading\": \"Estado\",\n \"filters.chargingAccessibility\": \"Accesibilidad del vehículo\",\n \"filters.accessibilityAll\": \"Todos los vehículos\",\n \"filters.accessibilityTesla\": \"Solo Tesla\",\n \"filters.allAccessibility\": \"Todos los tipos de accesibilidad\",\n \"evse.statusRemoved\": \"Eliminado\",\n \"evse.statusPlanned\": \"Planificado\",\n \"evse.statusReserved\": \"Reservado\",\n \"evse.statusInoperative\": \"Fuera de servicio\",\n \"evse.statusOutOfOrder\": \"Averiado\",\n \"evse.statusAvailable\": \"Disponible\",\n \"evse.statusCharging\": \"Cargando\",\n \"evse.statusUnavailable\": \"No Disponible\",\n \"evse.statusError\": \"Error\",\n \"evse.statusUnknown\": \"Desconocido\",\n \"locationType.onStreet\": \"En la calle\",\n \"locationType.parkingGarage\": \"Garaje para Estacionar\",\n \"locationType.undergroundGarage\": \"Garaje Subterráneo\",\n \"locationType.parkingLot\": \"Estacionamiento\",\n \"locationType.other\": \"Otro\",\n \"locationType.unknown\": \"Desconocido\",\n \"tariffPriceComponent.viewTariff\": \"Ver notas de tarifas\",\n \"tariffNote.subHeader\": \"Notas de Tarifas\",\n \"tariffNote.eFluxScheduledTariffNote\":\n \"Una tarifa programada anula los precios de la tarifa base para un período de tiempo específico.\",\n \"tariffNote.dynamicScheduledTariffNote\":\n \"El precio dinámico se ajusta automáticamente según el precio del mercado de la energía (intervalo de 1 hora).\",\n \"tariffNote.scheduledTariffNote\":\n \"Una tarifa programada anula los precios de la tarifa base para un período de tiempo específico.\",\n \"tariffNote.baseTariffNote\":\n \"Las tarifas mostradas aquí han sido enviadas a E-Flux por el socio de roaming. La precisión puede variar según el proveedor.\",\n \"tariff.congestionPricing\": \"Puede aplicarse tarifa por congestión\",\n \"evse.pricing\": \"Precios\",\n \"dynamicTariffs.subHeader\": \"Precios por Hora\",\n \"location.viewAllHourlyPrices\": \"Ver Todos los Precios por Hora\",\n \"backButton.backTo\": \"Volver a\",\n};\n\nexport const strings = {\n en,\n nl,\n de,\n fr,\n it,\n es,\n};\n","import { RemoteConfig } from \"../types\";\n\ntype RequestOptionsType = {\n method?: string;\n body?: string;\n authorization?: string;\n version?: string;\n headers?: {\n \"Content-Type\": string;\n };\n};\n\nexport async function request(url: string, options?: RequestOptionsType) {\n try {\n const response = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...(options.version && {\n version: options.version,\n }),\n ...(options.authorization &&\n options.version === \"v2\" && {\n Authorization: `Bearer ${options.authorization}`,\n }),\n },\n ...options,\n });\n\n switch (response.status) {\n case 200:\n return response.json();\n case 400:\n throw new Error(\"Bad request\");\n case 404:\n throw new Error(\"Not Found\");\n case 500:\n throw new Error(\"Server Error\");\n case 503:\n throw new Error(\"Timeout!\");\n default:\n throw new Error(`Unexpected status: ${response.status}`);\n }\n } catch (e) {\n if (e instanceof DOMException) {\n return null;\n }\n throw e;\n }\n}\n\nexport async function _fetchGeohashes(\n apiRoot,\n version,\n authorization,\n limitToLocationIds,\n { precision, bbox, ...props },\n): Promise<any> {\n return request(`${apiRoot}/1/map/search`, {\n method: \"POST\",\n version,\n authorization,\n body: JSON.stringify({\n gridPrecision: precision,\n bbox,\n ...(limitToLocationIds?.length > 0 && {\n locationIds: limitToLocationIds,\n }),\n ...props,\n ...(props?.operatorOnly ? { operator: [props.operatorOnly] } : {}),\n ...(props?.chargingAccessibility &&\n props.chargingAccessibility !== \"ALL\" && {\n chargingAccessibility: props.chargingAccessibility,\n }),\n }),\n });\n}\n\nexport async function _fetchTariffs(\n apiRoot,\n version,\n authorization,\n { origin, ids },\n): Promise<any> {\n return request(`${apiRoot}/1/map/tariff`, {\n method: \"POST\",\n version,\n authorization,\n body: JSON.stringify({\n connection_id: origin.connectionId,\n country_code: origin.countryCode,\n party_id: origin.partyId,\n tariff_ids: ids,\n }),\n });\n}\n\nexport async function _fetchLocations(\n apiRoot,\n version,\n authorization,\n { ids, status },\n): Promise<any> {\n return request(`${apiRoot}/1/map/locations`, {\n method: \"POST\",\n version,\n authorization,\n body: JSON.stringify({\n ids,\n ...(version === \"v2\" ? { status } : {}),\n }),\n });\n}\n\nexport async function loadRemoteConfig(\n apiRoot: string,\n version: string,\n authorization: string,\n): Promise<RemoteConfig> {\n const response = await request(`${apiRoot}/1/map/config`, {\n version: version,\n authorization: authorization,\n });\n\n return response?.data as RemoteConfig;\n}\n","import React, { useState, useMemo, useEffect, createContext } from \"react\";\nimport { LabelsType, strings, getLanguage } from \"../i18n\";\nimport {\n _fetchGeohashes,\n _fetchLocations,\n _fetchTariffs,\n loadRemoteConfig,\n} from \"../utils/request\";\nimport {\n Location,\n Position,\n RoadMapOptions,\n Status,\n FilterConfiguration,\n} from \"../types\";\n\nexport type MapContextType = {\n t: (key: keyof LabelsType, props?: any) => string;\n isReady: boolean;\n options?: RoadMapOptions;\n setPlace: (place: any) => void;\n place?: google.maps.places.PlaceResult;\n fetchGeohashes?: ({ precision, bbox }) => Promise<any>;\n fetchLocations?: ({ ids }) => Promise<any>;\n fetchTariffs?: ({ origin, ids }) => Promise<any>;\n filters?: any;\n setLocationsIds?: (ids: string[]) => void;\n locationIds?: string[];\n filterConfiguration?: FilterConfiguration;\n setFilters?: (filters: any) => void;\n language: string;\n position?: Position;\n locations?: Location[];\n locationsStatus?: Status;\n isSearching?: boolean;\n setIsSearching?: (isSearching: boolean) => void;\n};\n\n// MapContext is the context that is used to store the map data include the initial configuration\n// passed to the widget\nexport const MapContext = createContext<MapContextType>({\n isReady: false,\n setPlace: () => {},\n t: (key: string) => `Translate ${key}`,\n language: \"en\",\n});\n\ninterface Props {\n children: React.ReactNode;\n options: RoadMapOptions;\n language: string;\n}\n\nexport const MapProvider: React.FC<Props> = ({ children, ...props }) => {\n const [options, setOptions] = useState<RoadMapOptions>(props.options);\n const [filterConfiguration, setFilterConfiguration] =\n useState<FilterConfiguration>({\n preferredOperators: props.options.preferredOperators,\n showOperatorOnly: props.options.showOperatorOnly,\n showNoAdditionalFeeFilter: props.options.showNoAdditionalFeeFilter,\n showPublishingModeFilter: props.options.showPublishingModeFilter,\n showVehicleAvailabilityFilter:\n props.options.showVehicleAvailabilityFilter,\n });\n const [error, setError] = useState();\n const [place, setPlace] = useState();\n const [position, setPosition] = useState<Position>(props.options.position);\n const [filters, setFilters] = useState<{ status?: string }>({});\n const [locationIds, setLocationsIds] = useState<string[]>(\n [props.options.locationId].filter(Boolean),\n );\n const [locations, setLocations] = useState<Location[]>([]);\n const [locationsStatus, setLocationsStatus] = useState<Status>({\n type: \"success\",\n });\n const [isSearching, setIsSearching] = useState<boolean>(false);\n\n // check if debug flag\n const isDebug = window.location.search.includes(\"debug=true\");\n if (isDebug) {\n console.log(\"map-context options\", props.options);\n }\n\n const language = useMemo(\n () => getLanguage(props.options.language || \"en\"),\n [props.options.language],\n );\n const t = useMemo(() => {\n return (key: keyof LabelsType, props): string => {\n return strings[language][key].replace(/\\{\\{(\\w+)\\}\\}/g, (match, p1) => {\n return props[p1];\n });\n };\n }, [language]);\n\n const apiRoot = (() => {\n // if the apiRoot is set and contains `.dev`, use the configured value,\n // otherwise we use the default endpoint\n if (props.options.apiRoot && props.options.apiRoot.includes(\".dev\")) {\n return props.options.apiRoot;\n }\n switch (props.options.version) {\n case \"v2\":\n return \"https://roaming.road.io/v2/map-search\";\n default:\n return \"https://api.road.io\";\n }\n })();\n\n let version = props.options.version;\n let authorization = props.options.authorization;\n\n // if the request URL contains a map_key, override the authorization to enable\n // linking to bespoke map instances without multiple deployments\n const mapKey = window.location.search.split(\"map_key=\")[1];\n if (mapKey) {\n authorization = mapKey;\n version = \"v2\"; // force v2 for map key\n }\n\n const fetchGeohashes = _fetchGeohashes.bind(\n null,\n apiRoot,\n version,\n authorization,\n props.options.limitToLocationIds || [],\n );\n\n const fetchLocations = _fetchLocations.bind(\n null,\n apiRoot,\n version,\n authorization,\n );\n\n const fetchTariffs = _fetchTariffs.bind(\n null,\n apiRoot,\n version,\n authorization,\n );\n\n async function onFetchLocations({ ids, status }) {\n setLocationsStatus({ type: \"loading\" });\n try {\n const { data } = await fetchLocations({\n ids,\n ...(version === \"v2\" ? { status } : {}),\n });\n setLocations(data.filter((location) => location?.evses?.length));\n setLocationsStatus({ type: \"success\" });\n return data;\n } catch (e) {\n setLocationsStatus({ type: \"error\", error: e });\n }\n }\n\n useEffect(() => {\n if (!props.options.locationId) {\n return;\n }\n onFetchLocations({\n ids: [props.options.locationId],\n status: filters.status,\n }).then((data) => {\n if (data?.length) {\n const location = data[0];\n if (location.geoLocation?.coordinates) {\n setPosition({\n lng: location.geoLocation?.coordinates[0],\n lat: location.geoLocation?.coordinates[1],\n });\n }\n }\n });\n }, [props.options.locationId]);\n\n useEffect(() => {\n loadRemoteConfig(apiRoot, version, authorization)\n .then((rc) => {\n if (isDebug) {\n console.log(\"retrieved remote config\", rc);\n }\n // merge the remote configuration, with the locally defined configuration\n setFilterConfiguration({\n ...rc,\n ...filterConfiguration,\n });\n setOptions({\n googleApiKey: rc.googleMapsApiKey,\n ...options,\n ...rc,\n });\n if (!options.locationId && !options?.position?.lat && rc.ipLatitude) {\n if (isDebug) {\n console.debug(\"setting position from ip latitude and longitude\");\n }\n setPosition({\n lat: rc.ipLatitude,\n lng: rc.ipLongitude,\n });\n // if the has not set a location id and we have a position\n } else if (!options.locationId) {\n if (isDebug) {\n console.debug(\"setting position from options position\");\n }\n setPosition(\n options?.position?.lat\n ? options.position\n : {\n lat: 52.3676,\n lng: 4.9041,\n },\n );\n }\n })\n .catch((err) => setError(err));\n }, []);\n\n useEffect(() => {\n if (locationIds?.length) {\n onFetchLocations({\n ids: locationIds,\n status: filters.status,\n });\n }\n }, [locationIds]);\n\n useEffect(() => {\n const { theming, shadowRoot } = props.options;\n\n if (shadowRoot) {\n const style =\n shadowRoot.querySelectorAll(\"#road-map-styles\")[0] ||\n document.createElement(\"style\");\n style.setAttribute(\"type\", \"text/css\");\n style.setAttribute(\"id\", \"road-map-styles\");\n style.innerHTML = `\n :host {\n --roadmap-brand-color: ${theming?.brandColor || \"#6102d3\"};\n --roadmap-background-color: ${theming?.backgroundColor || \"#ffffff\"};\n --roadmap-text-color: ${theming?.textColor || \"#2a2a2a\"};\n --roadmap-border-color: ${theming?.borderColor || \"#dddddd\"};\n --roadmap-font-family: ${theming?.fontFamily || \"Inter\"};\n }\n `;\n shadowRoot.appendChild(style);\n }\n }, [props.options.theming]);\n\n const isReady = Boolean(position && options?.googleApiKey);\n\n const providerValue = useMemo(() => {\n return {\n options,\n setPlace,\n place,\n t,\n language,\n fetchGeohashes,\n locations,\n locationsStatus,\n filterConfiguration,\n setFilters,\n setLocationsIds,\n locationIds,\n filters,\n fetchTariffs,\n fetchLocations,\n isReady,\n position,\n isSearching,\n setIsSearching,\n };\n }, [\n position,\n language,\n locations,\n locationsStatus,\n fetchTariffs,\n props.options,\n place,\n setPlace,\n setFilters,\n filters,\n filterConfiguration,\n locationIds,\n setLocationsIds,\n t,\n fetchGeohashes,\n fetchLocations,\n isReady,\n isSearching,\n ]);\n\n return (\n <MapContext.Provider value={providerValue}>{children}</MapContext.Provider>\n );\n};\n\nexport function useMapContext(): MapContextType {\n const context = React.useContext(MapContext);\n if (context === undefined) {\n throw new Error(\"useMapContext must be used within a MapProvider\");\n }\n return context;\n}\n","import React, { useRef, useContext } from \"react\";\nimport styles from \"./app.module.css\";\nimport useOnScreen from \"./hooks/useOnScreen\";\nimport { MapContext } from \"./contexts/Map\";\n\ninterface Props {\n children?: React.ReactNode;\n height?: number;\n}\n\nexport default function Boot(props: Props) {\n const { isReady } = useContext(MapContext);\n const ref = useRef(null);\n const isVisible = useOnScreen(ref);\n const loaded = isVisible && isReady;\n return (\n <div\n ref={ref}\n className={styles.container}\n style={{\n height: `${props.height}px`,\n }}\n >\n {!loaded && <div className={styles.loader}>Loading...</div>}\n {loaded && props.children}\n </div>\n );\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nvar fastDeepEqual = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n\nvar isEqual = /*@__PURE__*/getDefaultExportFromCjs(fastDeepEqual);\n\n/**\n * Copyright 2019 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at.\n *\n * Http://www.apache.org/licenses/LICENSE-2.0.\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst DEFAULT_ID = \"__googleMapsScriptId\";\n/**\n * The status of the [[Loader]].\n */\nvar LoaderStatus;\n(function (LoaderStatus) {\n LoaderStatus[LoaderStatus[\"INITIALIZED\"] = 0] = \"INITIALIZED\";\n LoaderStatus[LoaderStatus[\"LOADING\"] = 1] = \"LOADING\";\n LoaderStatus[LoaderStatus[\"SUCCESS\"] = 2] = \"SUCCESS\";\n LoaderStatus[LoaderStatus[\"FAILURE\"] = 3] = \"FAILURE\";\n})(LoaderStatus || (LoaderStatus = {}));\n/**\n * [[Loader]] makes it easier to add Google Maps JavaScript API to your application\n * dynamically using\n * [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\n * It works by dynamically creating and appending a script node to the the\n * document head and wrapping the callback function so as to return a promise.\n *\n * ```\n * const loader = new Loader({\n * apiKey: \"\",\n * version: \"weekly\",\n * libraries: [\"places\"]\n * });\n *\n * loader.load().then((google) => {\n * const map = new google.maps.Map(...)\n * })\n * ```\n */\nclass Loader {\n /**\n * Creates an instance of Loader using [[LoaderOptions]]. No defaults are set\n * using this library, instead the defaults are set by the Google Maps\n * JavaScript API server.\n *\n * ```\n * const loader = Loader({apiKey, version: 'weekly', libraries: ['places']});\n * ```\n */\n constructor({ apiKey, authReferrerPolicy, channel, client, id = DEFAULT_ID, language, libraries = [], mapIds, nonce, region, retries = 3, url = \"https://maps.googleapis.com/maps/api/js\", version, }) {\n this.callbacks = [];\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.apiKey = apiKey;\n this.authReferrerPolicy = authReferrerPolicy;\n this.channel = channel;\n this.client = client;\n this.id = id || DEFAULT_ID; // Do not allow empty string\n this.language = language;\n this.libraries = libraries;\n this.mapIds = mapIds;\n this.nonce = nonce;\n this.region = region;\n this.retries = retries;\n this.url = url;\n this.version = version;\n if (Loader.instance) {\n if (!isEqual(this.options, Loader.instance.options)) {\n throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(Loader.instance.options)}`);\n }\n return Loader.instance;\n }\n Loader.instance = this;\n }\n get options() {\n return {\n version: this.version,\n apiKey: this.apiKey,\n channel: this.channel,\n client: this.client,\n id: this.id,\n libraries: this.libraries,\n language: this.language,\n region: this.region,\n mapIds: this.mapIds,\n nonce: this.nonce,\n url: this.url,\n authReferrerPolicy: this.authReferrerPolicy,\n };\n }\n get status() {\n if (this.errors.length) {\n return LoaderStatus.FAILURE;\n }\n if (this.done) {\n return LoaderStatus.SUCCESS;\n }\n if (this.loading) {\n return LoaderStatus.LOADING;\n }\n return LoaderStatus.INITIALIZED;\n }\n get failed() {\n return this.done && !this.loading && this.errors.length >= this.retries + 1;\n }\n /**\n * CreateUrl returns the Google Maps JavaScript API script url given the [[LoaderOptions]].\n *\n * @ignore\n * @deprecated\n */\n createUrl() {\n let url = this.url;\n url += `?callback=__googleMapsCallback&loading=async`;\n if (this.apiKey) {\n url += `&key=${this.apiKey}`;\n }\n if (this.channel) {\n url += `&channel=${this.channel}`;\n }\n if (this.client) {\n url += `&client=${this.client}`;\n }\n if (this.libraries.length > 0) {\n url += `&libraries=${this.libraries.join(\",\")}`;\n }\n if (this.language) {\n url += `&language=${this.language}`;\n }\n if (this.region) {\n url += `&region=${this.region}`;\n }\n if (this.version) {\n url += `&v=${this.version}`;\n }\n if (this.mapIds) {\n url += `&map_ids=${this.mapIds.join(\",\")}`;\n }\n if (this.authReferrerPolicy) {\n url += `&auth_referrer_policy=${this.authReferrerPolicy}`;\n }\n return url;\n }\n deleteScript() {\n const script = document.getElementById(this.id);\n if (script) {\n script.remove();\n }\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n * @deprecated, use importLibrary() instead.\n */\n load() {\n return this.loadPromise();\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n *\n * @ignore\n * @deprecated, use importLibrary() instead.\n */\n loadPromise() {\n return new Promise((resolve, reject) => {\n this.loadCallback((err) => {\n if (!err) {\n resolve(window.google);\n }\n else {\n reject(err.error);\n }\n });\n });\n }\n importLibrary(name) {\n this.execute();\n return google.maps.importLibrary(name);\n }\n /**\n * Load the Google Maps JavaScript API script with a callback.\n * @deprecated, use importLibrary() instead.\n */\n loadCallback(fn) {\n this.callbacks.push(fn);\n this.execute();\n }\n /**\n * Set the script on document.\n */\n setScript() {\n var _a, _b;\n if (document.getElementById(this.id)) {\n // TODO wrap onerror callback for cases where the script was loaded elsewhere\n this.callback();\n return;\n }\n const params = {\n key: this.apiKey,\n channel: this.channel,\n client: this.client,\n libraries: this.libraries.length && this.libraries,\n v: this.version,\n mapIds: this.mapIds,\n language: this.language,\n region: this.region,\n authReferrerPolicy: this.authReferrerPolicy,\n };\n // keep the URL minimal:\n Object.keys(params).forEach(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (key) => !params[key] && delete params[key]);\n if (!((_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.importLibrary)) {\n // tweaked copy of https://developers.google.com/maps/documentation/javascript/load-maps-js-api#dynamic-library-import\n // which also sets the base url, the id, and the nonce\n /* eslint-disable */\n ((g) => {\n // @ts-ignore\n let h, a, k, p = \"The Google Maps JavaScript API\", c = \"google\", l = \"importLibrary\", q = \"__ib__\", m = document, b = window;\n // @ts-ignore\n b = b[c] || (b[c] = {});\n // @ts-ignore\n const d = b.maps || (b.maps = {}), r = new Set(), e = new URLSearchParams(), u = () => \n // @ts-ignore\n h || (h = new Promise((f, n) => __awaiter(this, void 0, void 0, function* () {\n var _a;\n yield (a = m.createElement(\"script\"));\n a.id = this.id;\n e.set(\"libraries\", [...r] + \"\");\n // @ts-ignore\n for (k in g)\n e.set(k.replace(/[A-Z]/g, (t) => \"_\" + t[0].toLowerCase()), g[k]);\n e.set(\"callback\", c + \".maps.\" + q);\n a.src = this.url + `?` + e;\n d[q] = f;\n a.onerror = () => (h = n(Error(p + \" could not load.\")));\n // @ts-ignore\n a.nonce = this.nonce || ((_a = m.querySelector(\"script[nonce]\")) === null || _a === void 0 ? void 0 : _a.nonce) || \"\";\n m.head.append(a);\n })));\n // @ts-ignore\n d[l] ? console.warn(p + \" only loads once. Ignoring:\", g) : (d[l] = (f, ...n) => r.add(f) && u().then(() => d[l](f, ...n)));\n })(params);\n /* eslint-enable */\n }\n // While most libraries populate the global namespace when loaded via bootstrap params,\n // this is not the case for \"marker\" when used with the inline bootstrap loader\n // (and maybe others in the future). So ensure there is an importLibrary for each:\n const libraryPromises = this.libraries.map((library) => this.importLibrary(library));\n // ensure at least one library, to kick off loading...\n if (!libraryPromises.length) {\n libraryPromises.push(this.importLibrary(\"core\"));\n }\n Promise.all(libraryPromises).then(() => this.callback(), (error) => {\n const event = new ErrorEvent(\"error\", { error }); // for backwards compat\n this.loadErrorCallback(event);\n });\n }\n /**\n * Reset the loader state.\n */\n reset() {\n this.deleteScript();\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.onerrorEvent = null;\n }\n resetIfRetryingFailed() {\n if (this.failed) {\n this.reset();\n }\n }\n loadErrorCallback(e) {\n this.errors.push(e);\n if (this.errors.length <= this.retries) {\n const delay = this.errors.length * Math.pow(2, this.errors.length);\n console.error(`Failed to load Google Maps script, retrying in ${delay} ms.`);\n setTimeout(() => {\n this.deleteScript();\n this.setScript();\n }, delay);\n }\n else {\n this.onerrorEvent = e;\n this.callback();\n }\n }\n callback() {\n this.done = true;\n this.loading = false;\n this.callbacks.forEach((cb) => {\n cb(this.onerrorEvent);\n });\n this.callbacks = [];\n }\n execute() {\n this.resetIfRetryingFailed();\n if (this.done) {\n this.callback();\n }\n else {\n // short circuit and warn if google.maps is already loaded\n if (window.google && window.google.maps && window.google.maps.version) {\n console.warn(\"Google Maps already loaded outside @googlemaps/js-api-loader.\" +\n \"This may result in undesirable behavior as options and script parameters may not match.\");\n this.callback();\n return;\n }\n if (this.loading) ;\n else {\n this.loading = true;\n this.setScript();\n }\n }\n }\n}\n\nexport { DEFAULT_ID, Loader, LoaderStatus };\n//# sourceMappingURL=index.mjs.map\n","import { Loader } from \"@googlemaps/js-api-loader\";\n\nlet instance;\nexport function getLoader(apiKey, language): Loader {\n if (instance) return instance;\n\n const loader = new Loader({\n apiKey: apiKey, // Replace with your Google Maps API key\n version: \"weekly\",\n language,\n });\n instance = loader;\n return loader;\n}\n","/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n/* Geohash encoding/decoding and associated functions (c) Chris Veness 2014-2019 / MIT Licence */\n/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\nconst base32 = '0123456789bcdefghjkmnpqrstuvwxyz'; // (geohash-specific) Base32 map\n\n\n/**\n * Geohash: Gustavo Niemeyer’s geocoding system.\n */\nclass Geohash {\n\n /**\n * Encodes latitude/longitude to geohash, either to specified precision or to automatically\n * evaluated precision.\n *\n * @param {number} lat - Latitude in degrees.\n * @param {number} lon - Longitude in degrees.\n * @param {number} [precision] - Number of characters in resulting geohash.\n * @returns {string} Geohash of supplied latitude/longitude.\n * @throws Invalid geohash.\n *\n * @example\n * const geohash = Geohash.encode(52.205, 0.119, 7); // => 'u120fxw'\n */\n static encode(lat, lon, precision) {\n // infer precision?\n if (typeof precision == 'undefined') {\n // refine geohash until it matches precision of supplied lat/lon\n for (let p=1; p<=12; p++) {\n const hash = Geohash.encode(lat, lon, p);\n const posn = Geohash.decode(hash);\n if (posn.lat==lat && posn.lon==lon) return hash;\n }\n precision = 12; // set to maximum\n }\n\n lat = Number(lat);\n lon = Number(lon);\n precision = Number(precision);\n\n if (isNaN(lat) || isNaN(lon) || isNaN(precision)) throw new Error('Invalid geohash');\n\n let idx = 0; // index into base32 map\n let bit = 0; // each char holds 5 bits\n let evenBit = true;\n let geohash = '';\n\n let latMin = -90, latMax = 90;\n let lonMin = -180, lonMax = 180;\n\n while (geohash.length < precision) {\n if (evenBit) {\n // bisect E-W longitude\n const lonMid = (lonMin + lonMax) / 2;\n if (lon >= lonMid) {\n idx = idx*2 + 1;\n lonMin = lonMid;\n } else {\n idx = idx*2;\n lonMax = lonMid;\n }\n } else {\n // bisect N-S latitude\n const latMid = (latMin + latMax) / 2;\n if (lat >= latMid) {\n idx = idx*2 + 1;\n latMin = latMid;\n } else {\n idx = idx*2;\n latMax = latMid;\n }\n }\n evenBit = !evenBit;\n\n if (++bit == 5) {\n // 5 bits gives us a character: append it and start over\n geohash += base32.charAt(idx);\n bit = 0;\n idx = 0;\n }\n }\n\n return geohash;\n }\n\n\n /**\n * Decode geohash to latitude/longitude (location is approximate centre of geohash cell,\n * to reasonable precision).\n *\n * @param {string} geohash - Geohash string to be converted to latitude/longitude.\n * @returns {{lat:number, lon:number}} (Center of) geohashed location.\n * @throws Invalid geohash.\n *\n * @example\n * const latlon = Geohash.decode('u120fxw'); // => { lat: 52.205, lon: 0.1188 }\n */\n static decode(geohash) {\n\n const bounds = Geohash.bounds(geohash); // <-- the hard work\n // now just determine the centre of the cell...\n\n const latMin = bounds.sw.lat, lonMin = bounds.sw.lon;\n const latMax = bounds.ne.lat, lonMax = bounds.ne.lon;\n\n // cell centre\n let lat = (latMin + latMax)/2;\n let lon = (lonMin + lonMax)/2;\n\n // round to close to centre without excessive precision: ⌊2-log10(Δ°)⌋ decimal places\n lat = lat.toFixed(Math.floor(2-Math.log(latMax-latMin)/Math.LN10));\n lon = lon.toFixed(Math.floor(2-Math.log(lonMax-lonMin)/Math.LN10));\n\n return { lat: Number(lat), lon: Number(lon) };\n }\n\n\n /**\n * Returns SW/NE latitude/longitude bounds of specified geohash.\n *\n * @param {string} geohash - Cell that bounds are required of.\n * @returns {{sw: {lat: number, lon: number}, ne: {lat: number, lon: number}}}\n * @throws Invalid geohash.\n */\n static bounds(geohash) {\n if (geohash.length == 0) throw new Error('Invalid geohash');\n\n geohash = geohash.toLowerCase();\n\n let evenBit = true;\n let latMin = -90, latMax = 90;\n let lonMin = -180, lonMax = 180;\n\n for (let i=0; i<geohash.length; i++) {\n const chr = geohash.charAt(i);\n const idx = base32.indexOf(chr);\n if (idx == -1) throw new Error('Invalid geohash');\n\n for (let n=4; n>=0; n--) {\n const bitN = idx >> n & 1;\n if (evenBit) {\n // longitude\n const lonMid = (lonMin+lonMax) / 2;\n if (bitN == 1) {\n lonMin = lonMid;\n } else {\n lonMax = lonMid;\n }\n } else {\n // latitude\n const latMid = (latMin+latMax) / 2;\n if (bitN == 1) {\n latMin = latMid;\n } else {\n latMax = latMid;\n }\n }\n evenBit = !evenBit;\n }\n }\n\n const bounds = {\n sw: { lat: latMin, lon: lonMin },\n ne: { lat: latMax, lon: lonMax },\n };\n\n return bounds;\n }\n\n\n /**\n * Determines adjacent cell in given direction.\n *\n * @param geohash - Cell to which adjacent cell is required.\n * @param direction - Direction from geohash (N/S/E/W).\n * @returns {string} Geocode of adjacent cell.\n * @throws Invalid geohash.\n */\n static adjacent(geohash, direction) {\n // based on github.com/davetroy/geohash-js\n\n geohash = geohash.toLowerCase();\n direction = direction.toLowerCase();\n\n if (geohash.length == 0) throw new Error('Invalid geohash');\n if ('nsew'.indexOf(direction) == -1) throw new Error('Invalid direction');\n\n const neighbour = {\n n: [ 'p0r21436x8zb9dcf5h7kjnmqesgutwvy', 'bc01fg45238967deuvhjyznpkmstqrwx' ],\n s: [ '14365h7k9dcfesgujnmqp0r2twvyx8zb', '238967debc01fg45kmstqrwxuvhjyznp' ],\n e: [ 'bc01fg45238967deuvhjyznpkmstqrwx', 'p0r21436x8zb9dcf5h7kjnmqesgutwvy' ],\n w: [ '238967debc01fg45kmstqrwxuvhjyznp', '14365h7k9dcfesgujnmqp0r2twvyx8zb' ],\n };\n const border = {\n n: [ 'prxz', 'bcfguvyz' ],\n s: [ '028b', '0145hjnp' ],\n e: [ 'bcfguvyz', 'prxz' ],\n w: [ '0145hjnp', '028b' ],\n };\n\n const lastCh = geohash.slice(-1); // last character of hash\n let parent = geohash.slice(0, -1); // hash without last character\n\n const type = geohash.length % 2;\n\n // check for edge-cases which don't share common prefix\n if (border[direction][type].indexOf(lastCh) != -1 && parent != '') {\n parent = Geohash.adjacent(parent, direction);\n }\n\n // append letter for direction to parent\n return parent + base32.charAt(neighbour[direction][type].indexOf(lastCh));\n }\n\n\n /**\n * Returns all 8 adjacent cells to specified geohash.\n *\n * @param {string} geohash - Geohash neighbours are required of.\n * @returns {{n,ne,e,se,s,sw,w,nw: string}}\n * @throws Invalid geohash.\n */\n static neighbours(geohash) {\n return {\n 'n': Geohash.adjacent(geohash, 'n'),\n 'ne': Geohash.adjacent(Geohash.adjacent(geohash, 'n'), 'e'),\n 'e': Geohash.adjacent(geohash, 'e'),\n 'se': Geohash.adjacent(Geohash.adjacent(geohash, 's'), 'e'),\n 's': Geohash.adjacent(geohash, 's'),\n 'sw': Geohash.adjacent(Geohash.adjacent(geohash, 's'), 'w'),\n 'w': Geohash.adjacent(geohash, 'w'),\n 'nw': Geohash.adjacent(Geohash.adjacent(geohash, 'n'), 'w'),\n };\n }\n\n}\n\n/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\nexport default Geohash;\n","import { PropsWithChildren, useEffect, useMemo } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nexport function createOverlay(\n container: HTMLElement,\n pane: keyof google.maps.MapPanes,\n position: google.maps.LatLng | google.maps.LatLngLiteral\n) {\n class Overlay extends google.maps.OverlayView {\n container: HTMLElement;\n pane: keyof google.maps.MapPanes;\n position: google.maps.LatLng | google.maps.LatLngLiteral;\n\n constructor(\n container: HTMLElement,\n pane: keyof google.maps.MapPanes,\n position: google.maps.LatLng | google.maps.LatLngLiteral\n ) {\n super();\n this.container = container;\n this.pane = pane;\n this.position = position;\n }\n\n onAdd(): void {\n const pane = this.getPanes()?.[this.pane];\n pane?.appendChild(this.container);\n }\n\n draw(): void {\n const projection = this.getProjection();\n const point = projection.fromLatLngToDivPixel(this.position);\n\n if (point === null) {\n return;\n }\n\n this.container.style.transform = `translate(${point.x}px, ${point.y}px)`;\n }\n\n onRemove(): void {\n if (this.container.parentNode !== null) {\n this.container.parentNode.removeChild(this.container);\n }\n }\n }\n return new Overlay(container, pane, position);\n}\n\ntype OverlayProps = PropsWithChildren<{\n position: {\n lat: number;\n lon: number;\n };\n pane?: keyof google.maps.MapPanes;\n map: google.maps.Map;\n zIndex?: number;\n}>;\n\nexport default function OverlayView({\n position,\n pane = \"floatPane\",\n map,\n zIndex,\n children,\n}: OverlayProps) {\n const container = useMemo(() => {\n const div = document.createElement(\"div\");\n div.style.position = \"absolute\";\n return div;\n }, []);\n\n const overlay = useMemo(() => {\n return createOverlay(container, pane, {\n lat: position.lat,\n lng: position.lon,\n });\n }, [container, pane, position]);\n\n useEffect(() => {\n overlay?.setMap(map);\n return () => {\n overlay?.setMap(null);\n };\n }, [map, overlay]);\n\n useEffect(() => {\n container.style.zIndex = `${zIndex}`;\n }, [zIndex, container]);\n\n return createPortal(children, container);\n}\n\n","export function getColorForStatus(status) {\n switch (status) {\n case \"AVAILABLE\":\n return \"#33AC19\";\n case \"CHARGING\":\n return \"#005CEE\";\n default:\n return \"#EB001B\";\n }\n}\n","import React, { useCallback, useMemo } from \"react\";\nimport { GeohashItem } from \"../../types\";\nimport OverlayView from \"../OverlayView/OverlayView\";\nimport { getColorForStatus } from \"../../utils/location\";\nimport styles from \"./CustomMarker.module.css\";\n\nconst formatter = new Intl.NumberFormat(undefined, {\n maximumSignificantDigits: 3,\n});\n\nconst formatNumber = (num: number) => {\n return formatter.format(num);\n};\n\ninterface Props {\n data: GeohashItem;\n map?: google.maps.Map;\n onClick: (payload: GeohashItem) => void;\n highlight?: boolean;\n}\n\nconst CustomMarker: React.FC<Props> = ({ data, map, onClick, highlight }) => {\n const handleClick = useCallback(() => {\n onClick(data);\n }, [onClick, data]);\n\n const styleColor = useMemo(() => {\n if (data.statuses.find((status) => status.name === \"AVAILABLE\")) {\n return { background: getColorForStatus(\"AVAILABLE\") };\n }\n if (data.statuses.find((status) => status.name === \"CHARGING\")) {\n return { background: getColorForStatus(\"CHARGING\") };\n }\n return { background: getColorForStatus(\"UNAVAILABLE\") };\n }, [data]);\n\n return (\n <OverlayView position={data.centroid} map={map} zIndex={highlight ? 99 : 0}>\n <button\n className={styles.container}\n onClick={handleClick}\n style={styleColor}\n // seems to be useful for ios safari\n onTouchEndCapture={handleClick}\n >\n {data.count > 1 ? formatNumber(data.count) : \"\"}\n </button>\n </OverlayView>\n );\n};\n\nexport default CustomMarker;\n","import { useCallback, useEffect, useState } from \"react\";\nimport Geohash from \"latlon-geohash\";\nimport CustomMarker from \"../CustomMarker/CustomMarker\";\nimport { GeohashItem } from \"../../types\";\nimport { useMapContext } from \"../../contexts/Map\";\n\nconst geoHashZoom = [\n 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 6, 6, 6, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9,\n];\n\nfunction zoomToHashChars(zoom) {\n return geoHashZoom[zoom];\n}\n\nfunction getNormalizedBounds(bounds, zoomLevel) {\n const mapSWPoint = bounds.getSouthWest().toJSON();\n const mapNEPoint = bounds.getNorthEast().toJSON();\n\n const SWGeohash = Geohash.encode(mapSWPoint.lat, mapSWPoint.lng, zoomLevel);\n\n const geohashSWBounds = Geohash.bounds(SWGeohash);\n\n const latStep = Math.abs(geohashSWBounds.sw.lat - geohashSWBounds.ne.lat);\n const lngStep = Math.abs(geohashSWBounds.sw.lon - geohashSWBounds.ne.lon);\n\n let neLat = geohashSWBounds.sw.lat;\n while (neLat <= mapNEPoint.lat) {\n neLat = neLat + latStep;\n }\n\n let neLng = geohashSWBounds.sw.lon;\n while (neLng <= mapNEPoint.lng) {\n neLng = neLng + lngStep;\n }\n\n return {\n nwLat: neLat,\n nwLng: geohashSWBounds.sw.lon,\n seLat: geohashSWBounds.sw.lat,\n seLng: neLng,\n };\n}\n\nfunction isSameBounds(bounds1, bounds2) {\n return (\n bounds1.nwLat === bounds2.nwLat &&\n bounds1.nwLng === bounds2.nwLng &&\n bounds1.seLat === bounds2.seLat &&\n bounds1.seLng === bounds2.seLng\n );\n}\n\nexport default function MapMarkers({\n map,\n filters,\n fetchGeohashes,\n onMarkerClicked,\n}) {\n const { setIsSearching } = useMapContext();\n const [data, setData] = useState<GeohashItem[]>([]);\n\n const [mapConfig, setMapConfig] = useState({\n zoom: zoomToHashChars(map.getZoom()),\n normalizedBounds: getNormalizedBounds(\n map.getBounds(),\n zoomToHashChars(map.getZoom()),\n ),\n });\n\n useEffect(() => {\n let currentZoomLevel = mapConfig.zoom;\n let currentBounds = undefined;\n\n map.addListener(\"idle\", () => {\n const newZoomLevel = zoomToHashChars(map.getZoom());\n\n const newMapConfig = {\n ...mapConfig,\n zoom: newZoomLevel,\n };\n const bounds = getNormalizedBounds(map.getBounds(), currentZoomLevel);\n\n if (currentBounds && isSameBounds(currentBounds, bounds)) {\n return;\n }\n currentBounds = bounds;\n setMapConfig({\n ...newMapConfig,\n normalizedBounds: bounds,\n });\n });\n }, []);\n\n // appends the data to the existing data\n // make sure to not duplicate data\n // keeping the old object that are still availabe in the new data to prevert re-rendering\n function appendData(newData) {\n const oldData = data.filter((c) => {\n return newData.find((n) => n.key === c.key);\n });\n\n setData([\n ...oldData,\n ...newData.filter((c) => {\n return !oldData.find((o) => o.key === c.key);\n }),\n ]);\n }\n\n useEffect(() => {\n if (!mapConfig.normalizedBounds) return;\n let ignore = false;\n\n setIsSearching(true);\n fetchGeohashes({\n precision: mapConfig.zoom,\n bbox: mapConfig.normalizedBounds,\n ...filters,\n })\n .then(({ data }) => {\n if (ignore) return;\n appendData(data);\n setIsSearching(false);\n })\n .catch((e) => {\n // deal with error\n setIsSearching(false);\n });\n\n return () => {\n ignore = true;\n setIsSearching(false);\n };\n }, [mapConfig, filters]);\n\n const _onMarkerClicked = useCallback(\n (data: GeohashItem) => {\n const ids = data.ids;\n if (ids.length == 100) {\n map.setZoom(map.getZoom() + 2);\n }\n map.panTo({ lat: data.centroid.lat, lng: data.centroid.lon });\n if (ids.length !== 100) {\n onMarkerClicked(ids);\n }\n },\n [map, onMarkerClicked],\n );\n\n return (\n <>\n {data.filter(Boolean).map((item: GeohashItem, i) => (\n <CustomMarker\n map={map}\n key={item.key}\n data={item}\n onClick={_onMarkerClicked}\n />\n ))}\n </>\n );\n}\n","import React, { useEffect, useRef, useState } from \"react\";\n\nimport { useMapContext } from \"../../contexts/Map\";\n\nimport styles from \"./Map.module.css\";\nimport { getLoader } from \"../../utils/loader\";\n\nimport MapMarkers from \"../MapMarkers/MapMarkers\";\n\n/*\nconst gridParts = [];\n\nfunction eraseGrid() {\n for (var i = 0; i < gridParts.length; i++) {\n gridParts[i].setMap(null);\n }\n gridParts.length = 0;\n}\n\nconst defaults = {\n zoom: 3,\n maxDisplay: 2 * 10240,\n geohashPrecision: 12,\n};\n\n\nfunction drawGrid(map) {\n const level = zoomToHashChars(map.getZoom());\n console.log(level, map.getZoom());\n\n const bounds = map.getBounds();\n const ne = bounds.getNorthEast();\n const sw = bounds.getSouthWest();\n const neHash = Geohash.encode(ne.lat(), ne.lng(), level);\n const nwHash = Geohash.encode(ne.lat(), sw.lng(), level);\n const swHash = Geohash.encode(sw.lat(), sw.lng(), level);\n const seHash = Geohash.encode(sw.lat(), ne.lng(), level);\n\n let current = neHash;\n let eastBound = neHash;\n let westBound = nwHash;\n let maxHash = defaults.maxDisplay;\n\n eraseGrid();\n while (maxHash-- > 0) {\n drawBox(map, current);\n do {\n current = Geohash.adjacent(current, \"w\");\n drawBox(map, current);\n } while (maxHash-- > 0 && current != westBound);\n if (current == swHash) {\n return;\n }\n westBound = Geohash.adjacent(current, \"s\");\n current = eastBound = Geohash.adjacent(eastBound, \"s\");\n }\n alert(\"defaults.maxDisplay limit reached\");\n eraseGrid();\n}\n\n\nfunction drawBox(map, hash) {\n const b = Geohash.bounds(hash);\n const gb = new google.maps.LatLngBounds(\n new google.maps.LatLng(b.sw.lat, b.sw.lon),\n new google.maps.LatLng(b.ne.lat, b.ne.lon)\n );\n const rect = new google.maps.Rectangle({\n map: map,\n bounds: gb,\n strokeColor: \"#3333AA\",\n strokeOpacity: 0.8,\n strokeWeight: 1,\n fillColor: \"#222222\",\n fillOpacity: 0.1,\n });\n const marker = new google.maps.Marker({\n map: map,\n position: gb.getCenter(),\n icon: \" \",\n });\n gridParts.push(rect);\n gridParts.push(marker);\n}\n*/\n\nexport default function MapWrapper() {\n const {\n place,\n options,\n fetchGeohashes,\n setLocationsIds,\n language,\n filters,\n position,\n } = useMapContext();\n\n const apiKey = options.googleApiKey;\n const [map, setMap] = useState<google.maps.Map>();\n\n const mapContainerRef = useRef(null);\n const loader = getLoader(apiKey, language);\n\n useEffect(() => {\n if (map && place?.geometry?.viewport) {\n map.fitBounds(place.geometry.viewport);\n }\n if (map && place?.geometry?.location) {\n /*\n const icon = {\n url: place.icon as string,\n size: new google.maps.Size(71, 71),\n origin: new google.maps.Point(0, 0),\n anchor: new google.maps.Point(17, 34),\n scaledSize: new google.maps.Size(25, 25),\n };\n const marker = new google.maps.Marker({\n map,\n icon,\n title: place.name,\n position: place.geometry.location,\n });\n setMarker(marker);\n */\n map.setCenter(place.geometry.location);\n }\n }, [map, place]);\n\n useEffect(() => {\n loader.importLibrary(\"maps\").then(({ Map }) => {\n const map = new Map(mapContainerRef.current, {\n mapId: \"ced50d4165f3a695\",\n center: position as any, // Initial map center coordinates\n zoom: 12, // Initial zoom level,\n zoomControl: true,\n mapTypeControl: false,\n scaleControl: false,\n streetViewControl: false,\n rotateControl: false,\n fullscreenControl: false,\n controlSize: 32,\n clickableIcons: false,\n gestureHandling: options.gestureHandling || \"auto\",\n });\n map.addListener(\"idle\", () => {\n setMap(map);\n });\n return () => {\n console.log(\"unmounting\");\n };\n });\n }, [apiKey]);\n\n return (\n <div className={styles.container} ref={mapContainerRef}>\n {map && map.getBounds() && (\n <MapMarkers\n filters={filters}\n onMarkerClicked={(ids) => {\n setLocationsIds([...ids]);\n }}\n map={map}\n fetchGeohashes={fetchGeohashes}\n />\n )}\n </div>\n );\n}\n\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends 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 _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","export default {\n disabled: false\n};","import PropTypes from 'prop-types';\nexport var timeoutsShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n enter: PropTypes.number,\n exit: PropTypes.number,\n appear: PropTypes.number\n}).isRequired]) : null;\nexport var classNamesShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string,\n active: PropTypes.string\n}), PropTypes.shape({\n enter: PropTypes.string,\n enterDone: PropTypes.string,\n enterActive: PropTypes.string,\n exit: PropTypes.string,\n exitDone: PropTypes.string,\n exitActive: PropTypes.string\n})]) : null;","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `<CSSTransition>` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\nimport { forceReflow } from './utils/reflow';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <CSSTransition in={inProp} timeout={200} classNames=\"my-node\">\n * <div>\n * {\"I'll receive my-node-* classes\"}\n * </div>\n * </CSSTransition>\n * <button type=\"button\" onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\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 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n if (node) forceReflow(node);\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\n\nvar _leaveRenders, _enterRenders;\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { ENTERED, ENTERING, EXITING } from './Transition';\nimport TransitionGroupContext from './TransitionGroupContext';\n\nfunction areChildrenDifferent(oldChildren, newChildren) {\n if (oldChildren === newChildren) return false;\n\n if (React.isValidElement(oldChildren) && React.isValidElement(newChildren) && oldChildren.key != null && oldChildren.key === newChildren.key) {\n return false;\n }\n\n return true;\n}\n/**\n * Enum of modes for SwitchTransition component\n * @enum { string }\n */\n\n\nexport var modes = {\n out: 'out-in',\n in: 'in-out'\n};\n\nvar callHook = function callHook(element, name, cb) {\n return function () {\n var _element$props;\n\n element.props[name] && (_element$props = element.props)[name].apply(_element$props, arguments);\n cb();\n };\n};\n\nvar leaveRenders = (_leaveRenders = {}, _leaveRenders[modes.out] = function (_ref) {\n var current = _ref.current,\n changeState = _ref.changeState;\n return React.cloneElement(current, {\n in: false,\n onExited: callHook(current, 'onExited', function () {\n changeState(ENTERING, null);\n })\n });\n}, _leaveRenders[modes.in] = function (_ref2) {\n var current = _ref2.current,\n changeState = _ref2.changeState,\n children = _ref2.children;\n return [current, React.cloneElement(children, {\n in: true,\n onEntered: callHook(children, 'onEntered', function () {\n changeState(ENTERING);\n })\n })];\n}, _leaveRenders);\nvar enterRenders = (_enterRenders = {}, _enterRenders[modes.out] = function (_ref3) {\n var children = _ref3.children,\n changeState = _ref3.changeState;\n return React.cloneElement(children, {\n in: true,\n onEntered: callHook(children, 'onEntered', function () {\n changeState(ENTERED, React.cloneElement(children, {\n in: true\n }));\n })\n });\n}, _enterRenders[modes.in] = function (_ref4) {\n var current = _ref4.current,\n children = _ref4.children,\n changeState = _ref4.changeState;\n return [React.cloneElement(current, {\n in: false,\n onExited: callHook(current, 'onExited', function () {\n changeState(ENTERED, React.cloneElement(children, {\n in: true\n }));\n })\n }), React.cloneElement(children, {\n in: true\n })];\n}, _enterRenders);\n/**\n * A transition component inspired by the [vue transition modes](https://vuejs.org/v2/guide/transitions.html#Transition-Modes).\n * You can use it when you want to control the render between state transitions.\n * Based on the selected mode and the child's key which is the `Transition` or `CSSTransition` component, the `SwitchTransition` makes a consistent transition between them.\n *\n * If the `out-in` mode is selected, the `SwitchTransition` waits until the old child leaves and then inserts a new child.\n * If the `in-out` mode is selected, the `SwitchTransition` inserts a new child first, waits for the new child to enter and then removes the old child.\n *\n * **Note**: If you want the animation to happen simultaneously\n * (that is, to have the old child removed and a new child inserted **at the same time**),\n * you should use\n * [`TransitionGroup`](https://reactcommunity.org/react-transition-group/transition-group)\n * instead.\n *\n * ```jsx\n * function App() {\n * const [state, setState] = useState(false);\n * return (\n * <SwitchTransition>\n * <CSSTransition\n * key={state ? \"Goodbye, world!\" : \"Hello, world!\"}\n * addEndListener={(node, done) => node.addEventListener(\"transitionend\", done, false)}\n * classNames='fade'\n * >\n * <button onClick={() => setState(state => !state)}>\n * {state ? \"Goodbye, world!\" : \"Hello, world!\"}\n * </button>\n * </CSSTransition>\n * </SwitchTransition>\n * );\n * }\n * ```\n *\n * ```css\n * .fade-enter{\n * opacity: 0;\n * }\n * .fade-exit{\n * opacity: 1;\n * }\n * .fade-enter-active{\n * opacity: 1;\n * }\n * .fade-exit-active{\n * opacity: 0;\n * }\n * .fade-enter-active,\n * .fade-exit-active{\n * transition: opacity 500ms;\n * }\n * ```\n */\n\nvar SwitchTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(SwitchTransition, _React$Component);\n\n function SwitchTransition() {\n var _this;\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 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.state = {\n status: ENTERED,\n current: null\n };\n _this.appeared = false;\n\n _this.changeState = function (status, current) {\n if (current === void 0) {\n current = _this.state.current;\n }\n\n _this.setState({\n status: status,\n current: current\n });\n };\n\n return _this;\n }\n\n var _proto = SwitchTransition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n };\n\n SwitchTransition.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n if (props.children == null) {\n return {\n current: null\n };\n }\n\n if (state.status === ENTERING && props.mode === modes.in) {\n return {\n status: ENTERING\n };\n }\n\n if (state.current && areChildrenDifferent(state.current, props.children)) {\n return {\n status: EXITING\n };\n }\n\n return {\n current: React.cloneElement(props.children, {\n in: true\n })\n };\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n mode = _this$props.mode,\n _this$state = this.state,\n status = _this$state.status,\n current = _this$state.current;\n var data = {\n children: children,\n current: current,\n changeState: this.changeState,\n status: status\n };\n var component;\n\n switch (status) {\n case ENTERING:\n component = enterRenders[mode](data);\n break;\n\n case EXITING:\n component = leaveRenders[mode](data);\n break;\n\n case ENTERED:\n component = current;\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: {\n isMounting: !this.appeared\n }\n }, component);\n };\n\n return SwitchTransition;\n}(React.Component);\n\nSwitchTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * Transition modes.\n * `out-in`: Current element transitions out first, then when complete, the new element transitions in.\n * `in-out`: New element transitions in first, then when complete, the current element transitions out.\n *\n * @type {'out-in'|'in-out'}\n */\n mode: PropTypes.oneOf([modes.in, modes.out]),\n\n /**\n * Any `Transition` or `CSSTransition` component.\n */\n children: PropTypes.oneOfType([PropTypes.element.isRequired])\n} : {};\nSwitchTransition.defaultProps = {\n mode: modes.out\n};\nexport default SwitchTransition;","import React from \"react\";\n\nimport styles from \"./stack.module.css\";\n\nexport default function StackView({ name, children }) {\n return <div className={styles.stack}>{children}</div>;\n}\n","import React, {\n createRef,\n useEffect,\n useState,\n createContext,\n useMemo,\n} from \"react\";\nimport { SwitchTransition, CSSTransition } from \"react-transition-group\";\nimport View from \"./View\";\n\nimport styles from \"./stack.module.css\";\n\ntype StackProps = {\n name?: string;\n currentView: string;\n onViewChange: (view: string, args: any) => void;\n children: React.ReactNode;\n};\n\ntype MapContextType = {\n setView: (view: string, args?: any) => void;\n current: {\n name: string;\n args?: any;\n };\n};\n\nexport const StackContext = createContext<MapContextType>({\n setView: () => {},\n current: {\n name: \"none\",\n },\n});\n\nexport function useStackContext() {\n return React.useContext(StackContext);\n}\n\nexport default function Stack({\n name,\n currentView,\n onViewChange,\n children,\n}: StackProps) {\n const elements = {\n none: {\n name: \"none\",\n ref: createRef(),\n view: null,\n },\n };\n\n React.Children.forEach(children, (element) => {\n if (!React.isValidElement(element)) return;\n const { name } = element.props as any;\n if (!name) {\n throw new Error(\"name is required for Stack.View\");\n }\n elements[name] = {\n name: name,\n ref: createRef(),\n view: element,\n };\n });\n\n const [currentRef, setCurrentRef] = useState(elements[currentView].ref);\n\n useEffect(() => {\n setCurrentRef(elements[currentView].ref);\n }, [currentView]);\n\n const { view: View } = elements[currentView];\n\n const [args, setArgs] = useState<any>({});\n\n const contextValue = useMemo(() => {\n return {\n current: {\n name: currentView,\n args: args,\n },\n setView: (view, opt) => {\n setArgs(opt);\n onViewChange(view, opt);\n },\n };\n }, [currentView, onViewChange, args, setArgs]);\n\n return (\n <StackContext.Provider value={contextValue}>\n <SwitchTransition mode=\"out-in\">\n <CSSTransition\n classNames={{\n enter: styles.slideEnter,\n enterActive: styles.slideEnterActive,\n enterDone: styles.slideEnterDone,\n exit: styles.slideExit,\n exitActive: styles.slideExitActive,\n exitDone: styles.slideExitDone,\n }}\n mountOnEnter\n unmountOnExit\n timeout={300}\n key={currentView}\n nodeRef={currentRef}\n addEndListener={(done) => {\n currentRef.current.addEventListener(\"transitionend\", done, false);\n }}\n >\n <div className={styles.stack} ref={currentRef}>\n {View}\n </div>\n </CSSTransition>\n </SwitchTransition>\n </StackContext.Provider>\n );\n}\n\nStack.View = View;\n","import React, { useState, useRef, useEffect, useContext } from \"react\";\nimport { getLoader } from \"../../utils/loader\";\nimport { useMapContext } from \"../../contexts/Map\";\n\nimport styles from \"./SearchInput.module.css\";\n\nexport default function SearchInput({ onFocus }) {\n const { options, setPlace, t, language } = useMapContext();\n const apiKey = options.googleApiKey;\n\n const inputRef = useRef(null);\n\n const loader = getLoader(apiKey, language);\n\n useEffect(() => {\n if (!inputRef.current) return;\n loader.importLibrary(\"places\").then((places) => {\n const autocomplete = new places.Autocomplete(inputRef.current, {\n fields: [\"geometry\"],\n });\n autocomplete.addListener(\"place_changed\", () => {\n const place = autocomplete.getPlace();\n setPlace(place);\n });\n });\n }, [inputRef]);\n\n // Doc for styling the autocomplete\n // https://developers.google.com/maps/documentation/javascript/place-autocomplete#style-autocomplete\n return (\n <div className={styles.container}>\n <input\n onFocus={onFocus}\n ref={inputRef}\n className={styles.searchInput}\n type=\"text\"\n placeholder={t(\"search.placeholder\")}\n />\n </div>\n );\n}\n\n","import React, { useEffect } from \"react\";\n\nimport styles from \"./Checkbox.module.css\";\n\ntype CheckboxToggleProps = {\n id?: string;\n checked: boolean;\n name?: string;\n onChange: (value: boolean) => void;\n type?: \"checkbox\" | \"radio\";\n};\n\nexport default function CheckboxToggle({\n id,\n name,\n checked,\n onChange,\n type = \"checkbox\",\n}: CheckboxToggleProps) {\n const [isChecked, setIsChecked] = React.useState(checked || false);\n\n const onChangeCallback = React.useCallback(\n (e) => {\n setIsChecked(e.target.checked);\n onChange(e.target.checked);\n },\n [onChange],\n );\n\n useEffect(() => {\n setIsChecked(checked);\n }, [checked]);\n\n return (\n <div className={styles.container}>\n <input\n name={name}\n id={id}\n type={type}\n value={isChecked as any}\n checked={isChecked as any}\n onChange={onChangeCallback}\n />\n <span className={styles.box}>\n <svg\n className=\"checkmark\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n width=\"12\"\n height=\"12\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </span>\n </div>\n );\n}\n","import React, { CSSProperties } from \"react\";\n\nimport styles from \"./Range.module.css\";\n\nexport default function Range({ ticks, value, onChange }) {\n const inputRef = React.useRef(null);\n\n const convertValue = ticks.findIndex((tick) => tick.value === value);\n\n const bgSize = (convertValue / (ticks.length - 1)) * 100;\n\n return (\n <div className={styles.container}>\n <input\n value={convertValue}\n onChange={(e) => {\n onChange(ticks[e.target.value].value);\n }}\n ref={inputRef}\n className={styles.input}\n type=\"range\"\n list=\"tickmarks\"\n step=\"1\"\n min=\"0\"\n max=\"8\"\n style={{ \"--roadmap-range-bgize\": `${bgSize}%` } as CSSProperties}\n />\n\n <div className={styles.ticksContainer}>\n {ticks.map((tick, i) => {\n return (\n <div\n onClick={(e) => {\n onChange(ticks[i].value);\n }}\n key={tick.label}\n className={styles.tick}\n >\n {tick.label}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_SERVER_CONTEXT_TYPE:\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\nfunction isSuspenseList(object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.SuspenseList = SuspenseList;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isSuspenseList = isSuspenseList;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","const t=t=>\"object\"==typeof t&&null!=t&&1===t.nodeType,e=(t,e)=>(!e||\"hidden\"!==t)&&(\"visible\"!==t&&\"clip\"!==t),n=(t,n)=>{if(t.clientHeight<t.scrollHeight||t.clientWidth<t.scrollWidth){const o=getComputedStyle(t,null);return e(o.overflowY,n)||e(o.overflowX,n)||(t=>{const e=(t=>{if(!t.ownerDocument||!t.ownerDocument.defaultView)return null;try{return t.ownerDocument.defaultView.frameElement}catch(t){return null}})(t);return!!e&&(e.clientHeight<t.scrollHeight||e.clientWidth<t.scrollWidth)})(t)}return!1},o=(t,e,n,o,l,r,i,s)=>r<t&&i>e||r>t&&i<e?0:r<=t&&s<=n||i>=e&&s>=n?r-t-o:i>e&&s<n||r<t&&s>n?i-e+l:0,l=t=>{const e=t.parentElement;return null==e?t.getRootNode().host||null:e},r=(e,r)=>{var i,s,d,h;if(\"undefined\"==typeof document)return[];const{scrollMode:c,block:f,inline:u,boundary:a,skipOverflowHiddenElements:g}=r,p=\"function\"==typeof a?a:t=>t!==a;if(!t(e))throw new TypeError(\"Invalid target\");const m=document.scrollingElement||document.documentElement,w=[];let W=e;for(;t(W)&&p(W);){if(W=l(W),W===m){w.push(W);break}null!=W&&W===document.body&&n(W)&&!n(document.documentElement)||null!=W&&n(W,g)&&w.push(W)}const b=null!=(s=null==(i=window.visualViewport)?void 0:i.width)?s:innerWidth,H=null!=(h=null==(d=window.visualViewport)?void 0:d.height)?h:innerHeight,{scrollX:y,scrollY:M}=window,{height:v,width:E,top:x,right:C,bottom:I,left:R}=e.getBoundingClientRect(),{top:T,right:B,bottom:F,left:V}=(t=>{const e=window.getComputedStyle(t);return{top:parseFloat(e.scrollMarginTop)||0,right:parseFloat(e.scrollMarginRight)||0,bottom:parseFloat(e.scrollMarginBottom)||0,left:parseFloat(e.scrollMarginLeft)||0}})(e);let k=\"start\"===f||\"nearest\"===f?x-T:\"end\"===f?I+F:x+v/2-T+F,D=\"center\"===u?R+E/2-V+B:\"end\"===u?C+B:R-V;const L=[];for(let t=0;t<w.length;t++){const e=w[t],{height:l,width:r,top:i,right:s,bottom:d,left:h}=e.getBoundingClientRect();if(\"if-needed\"===c&&x>=0&&R>=0&&I<=H&&C<=b&&(e===m&&!n(e)||x>=i&&I<=d&&R>=h&&C<=s))return L;const a=getComputedStyle(e),g=parseInt(a.borderLeftWidth,10),p=parseInt(a.borderTopWidth,10),W=parseInt(a.borderRightWidth,10),T=parseInt(a.borderBottomWidth,10);let B=0,F=0;const V=\"offsetWidth\"in e?e.offsetWidth-e.clientWidth-g-W:0,S=\"offsetHeight\"in e?e.offsetHeight-e.clientHeight-p-T:0,X=\"offsetWidth\"in e?0===e.offsetWidth?0:r/e.offsetWidth:0,Y=\"offsetHeight\"in e?0===e.offsetHeight?0:l/e.offsetHeight:0;if(m===e)B=\"start\"===f?k:\"end\"===f?k-H:\"nearest\"===f?o(M,M+H,H,p,T,M+k,M+k+v,v):k-H/2,F=\"start\"===u?D:\"center\"===u?D-b/2:\"end\"===u?D-b:o(y,y+b,b,g,W,y+D,y+D+E,E),B=Math.max(0,B+M),F=Math.max(0,F+y);else{B=\"start\"===f?k-i-p:\"end\"===f?k-d+T+S:\"nearest\"===f?o(i,d,l,p,T+S,k,k+v,v):k-(i+l/2)+S/2,F=\"start\"===u?D-h-g:\"center\"===u?D-(h+r/2)+V/2:\"end\"===u?D-s+W+V:o(h,s,r,g,W+V,D,D+E,E);const{scrollLeft:t,scrollTop:n}=e;B=0===Y?0:Math.max(0,Math.min(n+B/Y,e.scrollHeight-l/Y+S)),F=0===X?0:Math.max(0,Math.min(t+F/X,e.scrollWidth-r/X+V)),k+=n-B,D+=t-F}L.push({el:e,top:B,left:F})}return L};export{r as compute};//# sourceMappingURL=index.js.map\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport React, { cloneElement, Component, useRef, useEffect, useLayoutEffect, useCallback, useReducer, useMemo } from 'react';\nimport { isForwardRef } from 'react-is';\nimport { compute } from 'compute-scroll-into-view';\nimport { __assign } from 'tslib';\n\nvar idCounter = 0;\n\n/**\n * Accepts a parameter and returns it if it's a function\n * or a noop function if it's not. This allows us to\n * accept a callback, but not worry about it if it's not\n * passed.\n * @param {Function} cb the callback\n * @return {Function} a function\n */\nfunction cbToCb(cb) {\n return typeof cb === 'function' ? cb : noop;\n}\nfunction noop() {}\n\n/**\n * Scroll node into view if necessary\n * @param {HTMLElement} node the element that should scroll into view\n * @param {HTMLElement} menuNode the menu element of the component\n */\nfunction scrollIntoView(node, menuNode) {\n if (!node) {\n return;\n }\n var actions = compute(node, {\n boundary: menuNode,\n block: 'nearest',\n scrollMode: 'if-needed'\n });\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n el.scrollTop = top;\n el.scrollLeft = left;\n });\n}\n\n/**\n * @param {HTMLElement} parent the parent node\n * @param {HTMLElement} child the child node\n * @param {Window} environment The window context where downshift renders.\n * @return {Boolean} whether the parent is the child or the child is in the parent\n */\nfunction isOrContainsNode(parent, child, environment) {\n var result = parent === child || child instanceof environment.Node && parent.contains && parent.contains(child);\n return result;\n}\n\n/**\n * Simple debounce implementation. Will call the given\n * function once after the time given has passed since\n * it was last called.\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n * @return {Function} the debounced function\n */\nfunction debounce(fn, time) {\n var timeoutId;\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n function wrapper() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n cancel();\n timeoutId = setTimeout(function () {\n timeoutId = null;\n fn.apply(void 0, args);\n }, time);\n }\n wrapper.cancel = cancel;\n return wrapper;\n}\n\n/**\n * This is intended to be used to compose event handlers.\n * They are executed in order until one of them sets\n * `event.preventDownshiftDefault = true`.\n * @param {...Function} fns the event handler functions\n * @return {Function} the event handler to add to an element\n */\nfunction callAllEventHandlers() {\n for (var _len2 = arguments.length, fns = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n fns[_key2] = arguments[_key2];\n }\n return function (event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return fns.some(function (fn) {\n if (fn) {\n fn.apply(void 0, [event].concat(args));\n }\n return event.preventDownshiftDefault || event.hasOwnProperty('nativeEvent') && event.nativeEvent.preventDownshiftDefault;\n });\n };\n}\nfunction handleRefs() {\n for (var _len4 = arguments.length, refs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n refs[_key4] = arguments[_key4];\n }\n return function (node) {\n refs.forEach(function (ref) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n });\n };\n}\n\n/**\n * This generates a unique ID for an instance of Downshift\n * @return {String} the unique ID\n */\nfunction generateId() {\n return String(idCounter++);\n}\n\n/**\n * Resets idCounter to 0. Used for SSR.\n */\nfunction resetIdCounter() {\n // istanbul ignore next\n if ('useId' in React) {\n console.warn(\"It is not necessary to call resetIdCounter when using React 18+\");\n return;\n }\n idCounter = 0;\n}\n\n/**\n * Default implementation for status message. Only added when menu is open.\n * Will specify if there are results in the list, and if so, how many,\n * and what keys are relevant.\n *\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\nfunction getA11yStatusMessage(_ref2) {\n var isOpen = _ref2.isOpen,\n resultCount = _ref2.resultCount,\n previousResultCount = _ref2.previousResultCount;\n if (!isOpen) {\n return '';\n }\n if (!resultCount) {\n return 'No results are available.';\n }\n if (resultCount !== previousResultCount) {\n return resultCount + \" result\" + (resultCount === 1 ? ' is' : 's are') + \" available, use up and down arrow keys to navigate. Press Enter key to select.\";\n }\n return '';\n}\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array\n * otherwise returns the argument\n * @param {*} arg the maybe-array\n * @param {*} defaultValue the value if arg is falsey not defined\n * @return {*} the arg or it's first item\n */\nfunction unwrapArray(arg, defaultValue) {\n arg = Array.isArray(arg) ? /* istanbul ignore next (preact) */arg[0] : arg;\n if (!arg && defaultValue) {\n return defaultValue;\n } else {\n return arg;\n }\n}\n\n/**\n * @param {Object} element (P)react element\n * @return {Boolean} whether it's a DOM element\n */\nfunction isDOMElement(element) {\n\n // then we assume this is react\n return typeof element.type === 'string';\n}\n\n/**\n * @param {Object} element (P)react element\n * @return {Object} the props\n */\nfunction getElementProps(element) {\n return element.props;\n}\n\n/**\n * Throws a helpful error message for required properties. Useful\n * to be used as a default in destructuring or object params.\n * @param {String} fnName the function name\n * @param {String} propName the prop name\n */\nfunction requiredProp(fnName, propName) {\n // eslint-disable-next-line no-console\n console.error(\"The property \\\"\" + propName + \"\\\" is required in \\\"\" + fnName + \"\\\"\");\n}\nvar stateKeys = ['highlightedIndex', 'inputValue', 'isOpen', 'selectedItem', 'type'];\n/**\n * @param {Object} state the state object\n * @return {Object} state that is relevant to downshift\n */\nfunction pickState(state) {\n if (state === void 0) {\n state = {};\n }\n var result = {};\n stateKeys.forEach(function (k) {\n if (state.hasOwnProperty(k)) {\n result[k] = state[k];\n }\n });\n return result;\n}\n\n/**\n * This will perform a shallow merge of the given state object\n * with the state coming from props\n * (for the controlled component scenario)\n * This is used in state updater functions so they're referencing\n * the right state regardless of where it comes from.\n *\n * @param {Object} state The state of the component/hook.\n * @param {Object} props The props that may contain controlled values.\n * @returns {Object} The merged controlled state.\n */\nfunction getState(state, props) {\n if (!state || !props) {\n return state;\n }\n return Object.keys(state).reduce(function (prevState, key) {\n prevState[key] = isControlledProp(props, key) ? props[key] : state[key];\n return prevState;\n }, {});\n}\n\n/**\n * This determines whether a prop is a \"controlled prop\" meaning it is\n * state which is controlled by the outside of this component rather\n * than within this component.\n *\n * @param {Object} props The props that may contain controlled values.\n * @param {String} key the key to check\n * @return {Boolean} whether it is a controlled controlled prop\n */\nfunction isControlledProp(props, key) {\n return props[key] !== undefined;\n}\n\n/**\n * Normalizes the 'key' property of a KeyboardEvent in IE/Edge\n * @param {Object} event a keyboardEvent object\n * @return {String} keyboard key\n */\nfunction normalizeArrowKey(event) {\n var key = event.key,\n keyCode = event.keyCode;\n /* istanbul ignore next (ie) */\n if (keyCode >= 37 && keyCode <= 40 && key.indexOf('Arrow') !== 0) {\n return \"Arrow\" + key;\n }\n return key;\n}\n\n/**\n * Simple check if the value passed is object literal\n * @param {*} obj any things\n * @return {Boolean} whether it's object literal\n */\nfunction isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n\n/**\n * Returns the next non-disabled highlightedIndex value.\n *\n * @param {number} start The current highlightedIndex.\n * @param {number} offset The offset from the current highlightedIndex to start searching.\n * @param {unknown[]} items The items array.\n * @param {(item: unknown, index: number) => boolean} isItemDisabled Function that tells if an item is disabled or not.\n * @param {boolean?} circular If the search reaches the end, if it can search again starting from the other end.\n * @returns {number} The next highlightedIndex.\n */\nfunction getHighlightedIndex(start, offset, items, isItemDisabled, circular) {\n if (circular === void 0) {\n circular = false;\n }\n var count = items.length;\n if (count === 0) {\n return -1;\n }\n var itemsLastIndex = count - 1;\n if (typeof start !== 'number' || start < 0 || start > itemsLastIndex) {\n start = offset > 0 ? -1 : itemsLastIndex + 1;\n }\n var current = start + offset;\n if (current < 0) {\n current = circular ? itemsLastIndex : 0;\n } else if (current > itemsLastIndex) {\n current = circular ? 0 : itemsLastIndex;\n }\n var highlightedIndex = getNonDisabledIndex(current, offset < 0, items, isItemDisabled, circular);\n if (highlightedIndex === -1) {\n return start >= count ? -1 : start;\n }\n return highlightedIndex;\n}\n\n/**\n * Returns the next non-disabled highlightedIndex value.\n *\n * @param {number} start The current highlightedIndex.\n * @param {boolean} backwards If true, it will search backwards from the start.\n * @param {unknown[]} items The items array.\n * @param {(item: unknown, index: number) => boolean} isItemDisabled Function that tells if an item is disabled or not.\n * @param {boolean} circular If the search reaches the end, if it can search again starting from the other end.\n * @returns {number} The next non-disabled index.\n */\nfunction getNonDisabledIndex(start, backwards, items, isItemDisabled, circular) {\n if (circular === void 0) {\n circular = false;\n }\n var count = items.length;\n if (backwards) {\n for (var index = start; index >= 0; index--) {\n if (!isItemDisabled(items[index], index)) {\n return index;\n }\n }\n } else {\n for (var _index = start; _index < count; _index++) {\n if (!isItemDisabled(items[_index], _index)) {\n return _index;\n }\n }\n }\n if (circular) {\n return getNonDisabledIndex(backwards ? count - 1 : 0, backwards, items, isItemDisabled);\n }\n return -1;\n}\n\n/**\n * Checks if event target is within the downshift elements.\n *\n * @param {EventTarget} target Target to check.\n * @param {HTMLElement[]} downshiftElements The elements that form downshift (list, toggle button etc).\n * @param {Window} environment The window context where downshift renders.\n * @param {boolean} checkActiveElement Whether to also check activeElement.\n *\n * @returns {boolean} Whether or not the target is within downshift elements.\n */\nfunction targetWithinDownshift(target, downshiftElements, environment, checkActiveElement) {\n if (checkActiveElement === void 0) {\n checkActiveElement = true;\n }\n return environment && downshiftElements.some(function (contextNode) {\n return contextNode && (isOrContainsNode(contextNode, target, environment) || checkActiveElement && isOrContainsNode(contextNode, environment.document.activeElement, environment));\n });\n}\n\n// eslint-disable-next-line import/no-mutable-exports\nvar validateControlledUnchanged = noop;\n/* istanbul ignore next */\nif (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged = function validateControlledUnchanged(state, prevProps, nextProps) {\n var warningDescription = \"This prop should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled Downshift element for the lifetime of the component. More info: https://github.com/downshift-js/downshift#control-props\";\n Object.keys(state).forEach(function (propKey) {\n if (prevProps[propKey] !== undefined && nextProps[propKey] === undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the controlled prop \\\"\" + propKey + \"\\\" to be uncontrolled. \" + warningDescription);\n } else if (prevProps[propKey] === undefined && nextProps[propKey] !== undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the uncontrolled prop \\\"\" + propKey + \"\\\" to be controlled. \" + warningDescription);\n }\n });\n };\n}\n\nvar cleanupStatus = debounce(function (documentProp) {\n getStatusDiv(documentProp).textContent = '';\n}, 500);\n\n/**\n * Get the status node or create it if it does not already exist.\n * @param {Object} documentProp document passed by the user.\n * @return {HTMLElement} the status node.\n */\nfunction getStatusDiv(documentProp) {\n var statusDiv = documentProp.getElementById('a11y-status-message');\n if (statusDiv) {\n return statusDiv;\n }\n statusDiv = documentProp.createElement('div');\n statusDiv.setAttribute('id', 'a11y-status-message');\n statusDiv.setAttribute('role', 'status');\n statusDiv.setAttribute('aria-live', 'polite');\n statusDiv.setAttribute('aria-relevant', 'additions text');\n Object.assign(statusDiv.style, {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n width: '1px'\n });\n documentProp.body.appendChild(statusDiv);\n return statusDiv;\n}\n\n/**\n * @param {String} status the status message\n * @param {Object} documentProp document passed by the user.\n */\nfunction setStatus(status, documentProp) {\n if (!status || !documentProp) {\n return;\n }\n var div = getStatusDiv(documentProp);\n div.textContent = status;\n cleanupStatus(documentProp);\n}\n\n/**\n * Removes the status element from the DOM\n * @param {Document} documentProp \n */\nfunction cleanupStatusDiv(documentProp) {\n var statusDiv = documentProp == null ? void 0 : documentProp.getElementById('a11y-status-message');\n if (statusDiv) {\n statusDiv.remove();\n }\n}\n\nvar unknown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_unknown__' : 0;\nvar mouseUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_mouseup__' : 1;\nvar itemMouseEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_item_mouseenter__' : 2;\nvar keyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_up__' : 3;\nvar keyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_down__' : 4;\nvar keyDownEscape = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_escape__' : 5;\nvar keyDownEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_enter__' : 6;\nvar keyDownHome = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_home__' : 7;\nvar keyDownEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_end__' : 8;\nvar clickItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_item__' : 9;\nvar blurInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_input__' : 10;\nvar changeInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_change_input__' : 11;\nvar keyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_space_button__' : 12;\nvar clickButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_button__' : 13;\nvar blurButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_button__' : 14;\nvar controlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_controlled_prop_updated_selected_item__' : 15;\nvar touchEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_touchend__' : 16;\n\nvar stateChangeTypes$3 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n blurButton: blurButton,\n blurInput: blurInput,\n changeInput: changeInput,\n clickButton: clickButton,\n clickItem: clickItem,\n controlledPropUpdatedSelectedItem: controlledPropUpdatedSelectedItem,\n itemMouseEnter: itemMouseEnter,\n keyDownArrowDown: keyDownArrowDown,\n keyDownArrowUp: keyDownArrowUp,\n keyDownEnd: keyDownEnd,\n keyDownEnter: keyDownEnter,\n keyDownEscape: keyDownEscape,\n keyDownHome: keyDownHome,\n keyDownSpaceButton: keyDownSpaceButton,\n mouseUp: mouseUp,\n touchEnd: touchEnd,\n unknown: unknown\n});\n\nvar _excluded$3 = [\"refKey\", \"ref\"],\n _excluded2$3 = [\"onClick\", \"onPress\", \"onKeyDown\", \"onKeyUp\", \"onBlur\"],\n _excluded3$2 = [\"onKeyDown\", \"onBlur\", \"onChange\", \"onInput\", \"onChangeText\"],\n _excluded4$2 = [\"refKey\", \"ref\"],\n _excluded5 = [\"onMouseMove\", \"onMouseDown\", \"onClick\", \"onPress\", \"index\", \"item\"];\nvar Downshift = /*#__PURE__*/function () {\n var Downshift = /*#__PURE__*/function (_Component) {\n function Downshift(_props) {\n var _this;\n _this = _Component.call(this, _props) || this;\n // fancy destructuring + defaults + aliases\n // this basically says each value of state should either be set to\n // the initial value or the default value if the initial value is not provided\n _this.id = _this.props.id || \"downshift-\" + generateId();\n _this.menuId = _this.props.menuId || _this.id + \"-menu\";\n _this.labelId = _this.props.labelId || _this.id + \"-label\";\n _this.inputId = _this.props.inputId || _this.id + \"-input\";\n _this.getItemId = _this.props.getItemId || function (index) {\n return _this.id + \"-item-\" + index;\n };\n _this.items = [];\n // itemCount can be changed asynchronously\n // from within downshift (so it can't come from a prop)\n // this is why we store it as an instance and use\n // getItemCount rather than just use items.length\n // (to support windowing + async)\n _this.itemCount = null;\n _this.previousResultCount = 0;\n _this.timeoutIds = [];\n /**\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n */\n _this.internalSetTimeout = function (fn, time) {\n var id = setTimeout(function () {\n _this.timeoutIds = _this.timeoutIds.filter(function (i) {\n return i !== id;\n });\n fn();\n }, time);\n _this.timeoutIds.push(id);\n };\n _this.setItemCount = function (count) {\n _this.itemCount = count;\n };\n _this.unsetItemCount = function () {\n _this.itemCount = null;\n };\n _this.isItemDisabled = function (_item, index) {\n var currentElementNode = _this.getItemNodeFromIndex(index);\n return currentElementNode && currentElementNode.hasAttribute('disabled');\n };\n _this.setHighlightedIndex = function (highlightedIndex, otherStateToSet) {\n if (highlightedIndex === void 0) {\n highlightedIndex = _this.props.defaultHighlightedIndex;\n }\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n otherStateToSet = pickState(otherStateToSet);\n _this.internalSetState(_extends({\n highlightedIndex: highlightedIndex\n }, otherStateToSet));\n };\n _this.clearSelection = function (cb) {\n _this.internalSetState({\n selectedItem: null,\n inputValue: '',\n highlightedIndex: _this.props.defaultHighlightedIndex,\n isOpen: _this.props.defaultIsOpen\n }, cb);\n };\n _this.selectItem = function (item, otherStateToSet, cb) {\n otherStateToSet = pickState(otherStateToSet);\n _this.internalSetState(_extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n selectedItem: item,\n inputValue: _this.props.itemToString(item)\n }, otherStateToSet), cb);\n };\n _this.selectItemAtIndex = function (itemIndex, otherStateToSet, cb) {\n var item = _this.items[itemIndex];\n if (item == null) {\n return;\n }\n _this.selectItem(item, otherStateToSet, cb);\n };\n _this.selectHighlightedItem = function (otherStateToSet, cb) {\n return _this.selectItemAtIndex(_this.getState().highlightedIndex, otherStateToSet, cb);\n };\n // any piece of our state can live in two places:\n // 1. Uncontrolled: it's internal (this.state)\n // We will call this.setState to update that state\n // 2. Controlled: it's external (this.props)\n // We will call this.props.onStateChange to update that state\n //\n // In addition, we'll call this.props.onChange if the\n // selectedItem is changed.\n _this.internalSetState = function (stateToSet, cb) {\n var isItemSelected, onChangeArg;\n var onStateChangeArg = {};\n var isStateToSetFunction = typeof stateToSet === 'function';\n\n // we want to call `onInputValueChange` before the `setState` call\n // so someone controlling the `inputValue` state gets notified of\n // the input change as soon as possible. This avoids issues with\n // preserving the cursor position.\n // See https://github.com/downshift-js/downshift/issues/217 for more info.\n if (!isStateToSetFunction && stateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(stateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), stateToSet));\n }\n return _this.setState(function (state) {\n var _newStateToSet;\n state = _this.getState(state);\n var newStateToSet = isStateToSetFunction ? stateToSet(state) : stateToSet;\n\n // Your own function that could modify the state that will be set.\n newStateToSet = _this.props.stateReducer(state, newStateToSet);\n\n // checks if an item is selected, regardless of if it's different from\n // what was selected before\n // used to determine if onSelect and onChange callbacks should be called\n isItemSelected = newStateToSet.hasOwnProperty('selectedItem');\n // this keeps track of the object we want to call with setState\n var nextState = {};\n // we need to call on change if the outside world is controlling any of our state\n // and we're trying to update that state. OR if the selection has changed and we're\n // trying to update the selection\n if (isItemSelected && newStateToSet.selectedItem !== state.selectedItem) {\n onChangeArg = newStateToSet.selectedItem;\n }\n (_newStateToSet = newStateToSet).type || (_newStateToSet.type = unknown);\n Object.keys(newStateToSet).forEach(function (key) {\n // onStateChangeArg should only have the state that is\n // actually changing\n if (state[key] !== newStateToSet[key]) {\n onStateChangeArg[key] = newStateToSet[key];\n }\n // the type is useful for the onStateChangeArg\n // but we don't actually want to set it in internal state.\n // this is an undocumented feature for now... Not all internalSetState\n // calls support it and I'm not certain we want them to yet.\n // But it enables users controlling the isOpen state to know when\n // the isOpen state changes due to mouseup events which is quite handy.\n if (key === 'type') {\n return;\n }\n newStateToSet[key];\n // if it's coming from props, then we don't care to set it internally\n if (!isControlledProp(_this.props, key)) {\n nextState[key] = newStateToSet[key];\n }\n });\n\n // if stateToSet is a function, then we weren't able to call onInputValueChange\n // earlier, so we'll call it now that we know what the inputValue state will be.\n if (isStateToSetFunction && newStateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(newStateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), newStateToSet));\n }\n return nextState;\n }, function () {\n // call the provided callback if it's a function\n cbToCb(cb)();\n\n // only call the onStateChange and onChange callbacks if\n // we have relevant information to pass them.\n var hasMoreStateThanType = Object.keys(onStateChangeArg).length > 1;\n if (hasMoreStateThanType) {\n _this.props.onStateChange(onStateChangeArg, _this.getStateAndHelpers());\n }\n if (isItemSelected) {\n _this.props.onSelect(stateToSet.selectedItem, _this.getStateAndHelpers());\n }\n if (onChangeArg !== undefined) {\n _this.props.onChange(onChangeArg, _this.getStateAndHelpers());\n }\n // this is currently undocumented and therefore subject to change\n // We'll try to not break it, but just be warned.\n _this.props.onUserAction(onStateChangeArg, _this.getStateAndHelpers());\n });\n };\n //////////////////////////// ROOT\n _this.rootRef = function (node) {\n return _this._rootNode = node;\n };\n _this.getRootProps = function (_temp, _temp2) {\n var _extends2;\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n // this is used in the render to know whether the user has called getRootProps.\n // It uses that to know whether to apply the props automatically\n _this.getRootProps.called = true;\n _this.getRootProps.refKey = refKey;\n _this.getRootProps.suppressRefError = suppressRefError;\n var _this$getState = _this.getState(),\n isOpen = _this$getState.isOpen;\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, _this.rootRef), _extends2.role = 'combobox', _extends2['aria-expanded'] = isOpen, _extends2['aria-haspopup'] = 'listbox', _extends2['aria-owns'] = isOpen ? _this.menuId : undefined, _extends2['aria-labelledby'] = _this.labelId, _extends2), rest);\n };\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ROOT\n _this.keyDownHandlers = {\n ArrowDown: function ArrowDown(event) {\n var _this2 = this;\n event.preventDefault();\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? 5 : 1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowDown\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowDown\n }, function () {\n var itemCount = _this2.getItemCount();\n if (itemCount > 0) {\n var _this2$getState = _this2.getState(),\n highlightedIndex = _this2$getState.highlightedIndex;\n var nextHighlightedIndex = getHighlightedIndex(highlightedIndex, 1, {\n length: itemCount\n }, _this2.isItemDisabled, true);\n _this2.setHighlightedIndex(nextHighlightedIndex, {\n type: keyDownArrowDown\n });\n }\n });\n }\n },\n ArrowUp: function ArrowUp(event) {\n var _this3 = this;\n event.preventDefault();\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? -5 : -1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowUp\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowUp\n }, function () {\n var itemCount = _this3.getItemCount();\n if (itemCount > 0) {\n var _this3$getState = _this3.getState(),\n highlightedIndex = _this3$getState.highlightedIndex;\n var nextHighlightedIndex = getHighlightedIndex(highlightedIndex, -1, {\n length: itemCount\n }, _this3.isItemDisabled, true);\n _this3.setHighlightedIndex(nextHighlightedIndex, {\n type: keyDownArrowUp\n });\n }\n });\n }\n },\n Enter: function Enter(event) {\n if (event.which === 229) {\n return;\n }\n var _this$getState2 = this.getState(),\n isOpen = _this$getState2.isOpen,\n highlightedIndex = _this$getState2.highlightedIndex;\n if (isOpen && highlightedIndex != null) {\n event.preventDefault();\n var item = this.items[highlightedIndex];\n var itemNode = this.getItemNodeFromIndex(highlightedIndex);\n if (item == null || itemNode && itemNode.hasAttribute('disabled')) {\n return;\n }\n this.selectHighlightedItem({\n type: keyDownEnter\n });\n }\n },\n Escape: function Escape(event) {\n event.preventDefault();\n this.reset(_extends({\n type: keyDownEscape\n }, !this.state.isOpen && {\n selectedItem: null,\n inputValue: ''\n }));\n }\n };\n //////////////////////////// BUTTON\n _this.buttonKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n ' ': function _(event) {\n event.preventDefault();\n this.toggleMenu({\n type: keyDownSpaceButton\n });\n }\n });\n _this.inputKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n Home: function Home(event) {\n var _this$getState3 = this.getState(),\n isOpen = _this$getState3.isOpen;\n if (!isOpen) {\n return;\n }\n event.preventDefault();\n var itemCount = this.getItemCount();\n if (itemCount <= 0 || !isOpen) {\n return;\n }\n\n // get next non-disabled starting downwards from 0 if that's disabled.\n var newHighlightedIndex = getNonDisabledIndex(0, false, {\n length: itemCount\n }, this.isItemDisabled);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownHome\n });\n },\n End: function End(event) {\n var _this$getState4 = this.getState(),\n isOpen = _this$getState4.isOpen;\n if (!isOpen) {\n return;\n }\n event.preventDefault();\n var itemCount = this.getItemCount();\n if (itemCount <= 0 || !isOpen) {\n return;\n }\n\n // get next non-disabled starting upwards from last index if that's disabled.\n var newHighlightedIndex = getNonDisabledIndex(itemCount - 1, true, {\n length: itemCount\n }, this.isItemDisabled);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownEnd\n });\n }\n });\n _this.getToggleButtonProps = function (_temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n onClick = _ref3.onClick;\n _ref3.onPress;\n var onKeyDown = _ref3.onKeyDown,\n onKeyUp = _ref3.onKeyUp,\n onBlur = _ref3.onBlur,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded2$3);\n var _this$getState5 = _this.getState(),\n isOpen = _this$getState5.isOpen;\n var enabledEventHandlers = {\n onClick: callAllEventHandlers(onClick, _this.buttonHandleClick),\n onKeyDown: callAllEventHandlers(onKeyDown, _this.buttonHandleKeyDown),\n onKeyUp: callAllEventHandlers(onKeyUp, _this.buttonHandleKeyUp),\n onBlur: callAllEventHandlers(onBlur, _this.buttonHandleBlur)\n };\n var eventHandlers = rest.disabled ? {} : enabledEventHandlers;\n return _extends({\n type: 'button',\n role: 'button',\n 'aria-label': isOpen ? 'close menu' : 'open menu',\n 'aria-haspopup': true,\n 'data-toggle': true\n }, eventHandlers, rest);\n };\n _this.buttonHandleKeyUp = function (event) {\n // Prevent click event from emitting in Firefox\n event.preventDefault();\n };\n _this.buttonHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n if (_this.buttonKeyDownHandlers[key]) {\n _this.buttonKeyDownHandlers[key].call(_this, event);\n }\n };\n _this.buttonHandleClick = function (event) {\n event.preventDefault();\n // handle odd case for Safari and Firefox which\n // don't give the button the focus properly.\n /* istanbul ignore if (can't reasonably test this) */\n if (_this.props.environment) {\n var _this$props$environme = _this.props.environment.document,\n body = _this$props$environme.body,\n activeElement = _this$props$environme.activeElement;\n if (body && body === activeElement) {\n event.target.focus();\n }\n }\n // to simplify testing components that use downshift, we'll not wrap this in a setTimeout\n // if the NODE_ENV is test. With the proper build system, this should be dead code eliminated\n // when building for production and should therefore have no impact on production code.\n if (process.env.NODE_ENV === 'test') {\n _this.toggleMenu({\n type: clickButton\n });\n } else {\n // Ensure that toggle of menu occurs after the potential blur event in iOS\n _this.internalSetTimeout(function () {\n return _this.toggleMenu({\n type: clickButton\n });\n });\n }\n };\n _this.buttonHandleBlur = function (event) {\n var blurTarget = event.target; // Save blur target for comparison with activeElement later\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not body element\n _this.internalSetTimeout(function () {\n if (_this.isMouseDown || !_this.props.environment) {\n return;\n }\n var activeElement = _this.props.environment.document.activeElement;\n if ((activeElement == null || activeElement.id !== _this.inputId) && activeElement !== blurTarget // Do nothing if we refocus the same element again (to solve issue in Safari on iOS)\n ) {\n _this.reset({\n type: blurButton\n });\n }\n });\n };\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ BUTTON\n /////////////////////////////// LABEL\n _this.getLabelProps = function (props) {\n return _extends({\n htmlFor: _this.inputId,\n id: _this.labelId\n }, props);\n };\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ LABEL\n /////////////////////////////// INPUT\n _this.getInputProps = function (_temp4) {\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n onKeyDown = _ref4.onKeyDown,\n onBlur = _ref4.onBlur,\n onChange = _ref4.onChange,\n onInput = _ref4.onInput;\n _ref4.onChangeText;\n var rest = _objectWithoutPropertiesLoose(_ref4, _excluded3$2);\n var onChangeKey;\n var eventHandlers = {};\n\n /* istanbul ignore next (preact) */\n {\n onChangeKey = 'onChange';\n }\n var _this$getState6 = _this.getState(),\n inputValue = _this$getState6.inputValue,\n isOpen = _this$getState6.isOpen,\n highlightedIndex = _this$getState6.highlightedIndex;\n if (!rest.disabled) {\n var _eventHandlers;\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, _this.inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, _this.inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, _this.inputHandleBlur), _eventHandlers);\n }\n return _extends({\n 'aria-autocomplete': 'list',\n 'aria-activedescendant': isOpen && typeof highlightedIndex === 'number' && highlightedIndex >= 0 ? _this.getItemId(highlightedIndex) : undefined,\n 'aria-controls': isOpen ? _this.menuId : undefined,\n 'aria-labelledby': rest && rest['aria-label'] ? undefined : _this.labelId,\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n autoComplete: 'off',\n value: inputValue,\n id: _this.inputId\n }, eventHandlers, rest);\n };\n _this.inputHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n if (key && _this.inputKeyDownHandlers[key]) {\n _this.inputKeyDownHandlers[key].call(_this, event);\n }\n };\n _this.inputHandleChange = function (event) {\n _this.internalSetState({\n type: changeInput,\n isOpen: true,\n inputValue: event.target.value,\n highlightedIndex: _this.props.defaultHighlightedIndex\n });\n };\n _this.inputHandleBlur = function () {\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not the body element\n _this.internalSetTimeout(function () {\n var _activeElement$datase;\n if (_this.isMouseDown || !_this.props.environment) {\n return;\n }\n var activeElement = _this.props.environment.document.activeElement;\n var downshiftButtonIsActive = (activeElement == null || (_activeElement$datase = activeElement.dataset) == null ? void 0 : _activeElement$datase.toggle) && _this._rootNode && _this._rootNode.contains(activeElement);\n if (!downshiftButtonIsActive) {\n _this.reset({\n type: blurInput\n });\n }\n });\n };\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ INPUT\n /////////////////////////////// MENU\n _this.menuRef = function (node) {\n _this._menuNode = node;\n };\n _this.getMenuProps = function (_temp5, _temp6) {\n var _extends3;\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n props = _objectWithoutPropertiesLoose(_ref5, _excluded4$2);\n var _ref6 = _temp6 === void 0 ? {} : _temp6,\n _ref6$suppressRefErro = _ref6.suppressRefError,\n suppressRefError = _ref6$suppressRefErro === void 0 ? false : _ref6$suppressRefErro;\n _this.getMenuProps.called = true;\n _this.getMenuProps.refKey = refKey;\n _this.getMenuProps.suppressRefError = suppressRefError;\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, _this.menuRef), _extends3.role = 'listbox', _extends3['aria-labelledby'] = props && props['aria-label'] ? undefined : _this.labelId, _extends3.id = _this.menuId, _extends3), props);\n };\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ MENU\n /////////////////////////////// ITEM\n _this.getItemProps = function (_temp7) {\n var _enabledEventHandlers;\n var _ref7 = _temp7 === void 0 ? {} : _temp7,\n onMouseMove = _ref7.onMouseMove,\n onMouseDown = _ref7.onMouseDown,\n onClick = _ref7.onClick;\n _ref7.onPress;\n var index = _ref7.index,\n _ref7$item = _ref7.item,\n item = _ref7$item === void 0 ? process.env.NODE_ENV === 'production' ? /* istanbul ignore next */undefined : requiredProp('getItemProps', 'item') : _ref7$item,\n rest = _objectWithoutPropertiesLoose(_ref7, _excluded5);\n if (index === undefined) {\n _this.items.push(item);\n index = _this.items.indexOf(item);\n } else {\n _this.items[index] = item;\n }\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n var enabledEventHandlers = (_enabledEventHandlers = {\n // onMouseMove is used over onMouseEnter here. onMouseMove\n // is only triggered on actual mouse movement while onMouseEnter\n // can fire on DOM changes, interrupting keyboard navigation\n onMouseMove: callAllEventHandlers(onMouseMove, function () {\n if (index === _this.getState().highlightedIndex) {\n return;\n }\n _this.setHighlightedIndex(index, {\n type: itemMouseEnter\n });\n\n // We never want to manually scroll when changing state based\n // on `onMouseMove` because we will be moving the element out\n // from under the user which is currently scrolling/moving the\n // cursor\n _this.avoidScrolling = true;\n _this.internalSetTimeout(function () {\n return _this.avoidScrolling = false;\n }, 250);\n }),\n onMouseDown: callAllEventHandlers(onMouseDown, function (event) {\n // This prevents the activeElement from being changed\n // to the item so it can remain with the current activeElement\n // which is a more common use case.\n event.preventDefault();\n })\n }, _enabledEventHandlers[onSelectKey] = callAllEventHandlers(customClickHandler, function () {\n _this.selectItemAtIndex(index, {\n type: clickItem\n });\n }), _enabledEventHandlers);\n\n // Passing down the onMouseDown handler to prevent redirect\n // of the activeElement if clicking on disabled items\n var eventHandlers = rest.disabled ? {\n onMouseDown: enabledEventHandlers.onMouseDown\n } : enabledEventHandlers;\n return _extends({\n id: _this.getItemId(index),\n role: 'option',\n 'aria-selected': _this.getState().highlightedIndex === index\n }, eventHandlers, rest);\n };\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ITEM\n _this.clearItems = function () {\n _this.items = [];\n };\n _this.reset = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n otherStateToSet = pickState(otherStateToSet);\n _this.internalSetState(function (_ref8) {\n var selectedItem = _ref8.selectedItem;\n return _extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n inputValue: _this.props.itemToString(selectedItem)\n }, otherStateToSet);\n }, cb);\n };\n _this.toggleMenu = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n otherStateToSet = pickState(otherStateToSet);\n _this.internalSetState(function (_ref9) {\n var isOpen = _ref9.isOpen;\n return _extends({\n isOpen: !isOpen\n }, isOpen && {\n highlightedIndex: _this.props.defaultHighlightedIndex\n }, otherStateToSet);\n }, function () {\n var _this$getState7 = _this.getState(),\n isOpen = _this$getState7.isOpen,\n highlightedIndex = _this$getState7.highlightedIndex;\n if (isOpen) {\n if (_this.getItemCount() > 0 && typeof highlightedIndex === 'number') {\n _this.setHighlightedIndex(highlightedIndex, otherStateToSet);\n }\n }\n cbToCb(cb)();\n });\n };\n _this.openMenu = function (cb) {\n _this.internalSetState({\n isOpen: true\n }, cb);\n };\n _this.closeMenu = function (cb) {\n _this.internalSetState({\n isOpen: false\n }, cb);\n };\n _this.updateStatus = debounce(function () {\n var _this$props;\n if (!((_this$props = _this.props) != null && (_this$props = _this$props.environment) != null && _this$props.document)) {\n return;\n }\n var state = _this.getState();\n var item = _this.items[state.highlightedIndex];\n var resultCount = _this.getItemCount();\n var status = _this.props.getA11yStatusMessage(_extends({\n itemToString: _this.props.itemToString,\n previousResultCount: _this.previousResultCount,\n resultCount: resultCount,\n highlightedItem: item\n }, state));\n _this.previousResultCount = resultCount;\n setStatus(status, _this.props.environment.document);\n }, 200);\n var _this$props2 = _this.props,\n defaultHighlightedIndex = _this$props2.defaultHighlightedIndex,\n _this$props2$initialH = _this$props2.initialHighlightedIndex,\n _highlightedIndex = _this$props2$initialH === void 0 ? defaultHighlightedIndex : _this$props2$initialH,\n defaultIsOpen = _this$props2.defaultIsOpen,\n _this$props2$initialI = _this$props2.initialIsOpen,\n _isOpen = _this$props2$initialI === void 0 ? defaultIsOpen : _this$props2$initialI,\n _this$props2$initialI2 = _this$props2.initialInputValue,\n _inputValue = _this$props2$initialI2 === void 0 ? '' : _this$props2$initialI2,\n _this$props2$initialS = _this$props2.initialSelectedItem,\n _selectedItem = _this$props2$initialS === void 0 ? null : _this$props2$initialS;\n var _state = _this.getState({\n highlightedIndex: _highlightedIndex,\n isOpen: _isOpen,\n inputValue: _inputValue,\n selectedItem: _selectedItem\n });\n if (_state.selectedItem != null && _this.props.initialInputValue === undefined) {\n _state.inputValue = _this.props.itemToString(_state.selectedItem);\n }\n _this.state = _state;\n return _this;\n }\n _inheritsLoose(Downshift, _Component);\n var _proto = Downshift.prototype;\n /**\n * Clear all running timeouts\n */\n _proto.internalClearTimeouts = function internalClearTimeouts() {\n this.timeoutIds.forEach(function (id) {\n clearTimeout(id);\n });\n this.timeoutIds = [];\n }\n\n /**\n * Gets the state based on internal state or props\n * If a state value is passed via props, then that\n * is the value given, otherwise it's retrieved from\n * stateToMerge\n *\n * @param {Object} stateToMerge defaults to this.state\n * @return {Object} the state\n */;\n _proto.getState = function getState$1(stateToMerge) {\n if (stateToMerge === void 0) {\n stateToMerge = this.state;\n }\n return getState(stateToMerge, this.props);\n };\n _proto.getItemCount = function getItemCount() {\n // things read better this way. They're in priority order:\n // 1. `this.itemCount`\n // 2. `this.props.itemCount`\n // 3. `this.items.length`\n var itemCount = this.items.length;\n if (this.itemCount != null) {\n itemCount = this.itemCount;\n } else if (this.props.itemCount !== undefined) {\n itemCount = this.props.itemCount;\n }\n return itemCount;\n };\n _proto.getItemNodeFromIndex = function getItemNodeFromIndex(index) {\n return this.props.environment ? this.props.environment.document.getElementById(this.getItemId(index)) : null;\n };\n _proto.scrollHighlightedItemIntoView = function scrollHighlightedItemIntoView() {\n /* istanbul ignore else (react-native) */\n {\n var node = this.getItemNodeFromIndex(this.getState().highlightedIndex);\n this.props.scrollIntoView(node, this._menuNode);\n }\n };\n _proto.moveHighlightedIndex = function moveHighlightedIndex(amount, otherStateToSet) {\n var itemCount = this.getItemCount();\n var _this$getState8 = this.getState(),\n highlightedIndex = _this$getState8.highlightedIndex;\n if (itemCount > 0) {\n var nextHighlightedIndex = getHighlightedIndex(highlightedIndex, amount, {\n length: itemCount\n }, this.isItemDisabled, true);\n this.setHighlightedIndex(nextHighlightedIndex, otherStateToSet);\n }\n };\n _proto.getStateAndHelpers = function getStateAndHelpers() {\n var _this$getState9 = this.getState(),\n highlightedIndex = _this$getState9.highlightedIndex,\n inputValue = _this$getState9.inputValue,\n selectedItem = _this$getState9.selectedItem,\n isOpen = _this$getState9.isOpen;\n var itemToString = this.props.itemToString;\n var id = this.id;\n var getRootProps = this.getRootProps,\n getToggleButtonProps = this.getToggleButtonProps,\n getLabelProps = this.getLabelProps,\n getMenuProps = this.getMenuProps,\n getInputProps = this.getInputProps,\n getItemProps = this.getItemProps,\n openMenu = this.openMenu,\n closeMenu = this.closeMenu,\n toggleMenu = this.toggleMenu,\n selectItem = this.selectItem,\n selectItemAtIndex = this.selectItemAtIndex,\n selectHighlightedItem = this.selectHighlightedItem,\n setHighlightedIndex = this.setHighlightedIndex,\n clearSelection = this.clearSelection,\n clearItems = this.clearItems,\n reset = this.reset,\n setItemCount = this.setItemCount,\n unsetItemCount = this.unsetItemCount,\n setState = this.internalSetState;\n return {\n // prop getters\n getRootProps: getRootProps,\n getToggleButtonProps: getToggleButtonProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getInputProps: getInputProps,\n getItemProps: getItemProps,\n // actions\n reset: reset,\n openMenu: openMenu,\n closeMenu: closeMenu,\n toggleMenu: toggleMenu,\n selectItem: selectItem,\n selectItemAtIndex: selectItemAtIndex,\n selectHighlightedItem: selectHighlightedItem,\n setHighlightedIndex: setHighlightedIndex,\n clearSelection: clearSelection,\n clearItems: clearItems,\n setItemCount: setItemCount,\n unsetItemCount: unsetItemCount,\n setState: setState,\n // props\n itemToString: itemToString,\n // derived\n id: id,\n // state\n highlightedIndex: highlightedIndex,\n inputValue: inputValue,\n isOpen: isOpen,\n selectedItem: selectedItem\n };\n };\n _proto.componentDidMount = function componentDidMount() {\n var _this4 = this;\n /* istanbul ignore if (react-native) */\n if (process.env.NODE_ENV !== 'production' && true && this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n\n /* istanbul ignore if (react-native or SSR) */\n if (!this.props.environment) {\n this.cleanup = function () {\n _this4.internalClearTimeouts();\n };\n } else {\n // this.isMouseDown helps us track whether the mouse is currently held down.\n // This is useful when the user clicks on an item in the list, but holds the mouse\n // down long enough for the list to disappear (because the blur event fires on the input)\n // this.isMouseDown is used in the blur handler on the input to determine whether the blur event should\n // trigger hiding the menu.\n var onMouseDown = function onMouseDown() {\n _this4.isMouseDown = true;\n };\n var onMouseUp = function onMouseUp(event) {\n _this4.isMouseDown = false;\n // if the target element or the activeElement is within a downshift node\n // then we don't want to reset downshift\n var contextWithinDownshift = targetWithinDownshift(event.target, [_this4._rootNode, _this4._menuNode], _this4.props.environment);\n if (!contextWithinDownshift && _this4.getState().isOpen) {\n _this4.reset({\n type: mouseUp\n }, function () {\n return _this4.props.onOuterClick(_this4.getStateAndHelpers());\n });\n }\n };\n // Touching an element in iOS gives focus and hover states, but touching out of\n // the element will remove hover, and persist the focus state, resulting in the\n // blur event not being triggered.\n // this.isTouchMove helps us track whether the user is tapping or swiping on a touch screen.\n // If the user taps outside of Downshift, the component should be reset,\n // but not if the user is swiping\n var onTouchStart = function onTouchStart() {\n _this4.isTouchMove = false;\n };\n var onTouchMove = function onTouchMove() {\n _this4.isTouchMove = true;\n };\n var onTouchEnd = function onTouchEnd(event) {\n var contextWithinDownshift = targetWithinDownshift(event.target, [_this4._rootNode, _this4._menuNode], _this4.props.environment, false);\n if (!_this4.isTouchMove && !contextWithinDownshift && _this4.getState().isOpen) {\n _this4.reset({\n type: touchEnd\n }, function () {\n return _this4.props.onOuterClick(_this4.getStateAndHelpers());\n });\n }\n };\n var environment = this.props.environment;\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n this.cleanup = function () {\n _this4.internalClearTimeouts();\n _this4.updateStatus.cancel();\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n };\n }\n };\n _proto.shouldScroll = function shouldScroll(prevState, prevProps) {\n var _ref0 = this.props.highlightedIndex === undefined ? this.getState() : this.props,\n currentHighlightedIndex = _ref0.highlightedIndex;\n var _ref1 = prevProps.highlightedIndex === undefined ? prevState : prevProps,\n prevHighlightedIndex = _ref1.highlightedIndex;\n var scrollWhenOpen = currentHighlightedIndex && this.getState().isOpen && !prevState.isOpen;\n var scrollWhenNavigating = currentHighlightedIndex !== prevHighlightedIndex;\n return scrollWhenOpen || scrollWhenNavigating;\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged(this.state, prevProps, this.props);\n /* istanbul ignore if (react-native) */\n if (this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n }\n if (isControlledProp(this.props, 'selectedItem') && this.props.selectedItemChanged(prevProps.selectedItem, this.props.selectedItem)) {\n this.internalSetState({\n type: controlledPropUpdatedSelectedItem,\n inputValue: this.props.itemToString(this.props.selectedItem)\n });\n }\n if (!this.avoidScrolling && this.shouldScroll(prevState, prevProps)) {\n this.scrollHighlightedItemIntoView();\n }\n\n /* istanbul ignore else (react-native) */\n {\n this.updateStatus();\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cleanup(); // avoids memory leak\n };\n _proto.render = function render() {\n var children = unwrapArray(this.props.children, noop);\n // because the items are rerendered every time we call the children\n // we clear this out each render and it will be populated again as\n // getItemProps is called.\n this.clearItems();\n // we reset this so we know whether the user calls getRootProps during\n // this render. If they do then we don't need to do anything,\n // if they don't then we need to clone the element they return and\n // apply the props for them.\n this.getRootProps.called = false;\n this.getRootProps.refKey = undefined;\n this.getRootProps.suppressRefError = undefined;\n // we do something similar for getMenuProps\n this.getMenuProps.called = false;\n this.getMenuProps.refKey = undefined;\n this.getMenuProps.suppressRefError = undefined;\n // we do something similar for getLabelProps\n this.getLabelProps.called = false;\n // and something similar for getInputProps\n this.getInputProps.called = false;\n var element = unwrapArray(children(this.getStateAndHelpers()));\n if (!element) {\n return null;\n }\n if (this.getRootProps.called || this.props.suppressRefError) {\n if (process.env.NODE_ENV !== 'production' && !this.getRootProps.suppressRefError && !this.props.suppressRefError) {\n validateGetRootPropsCalledCorrectly(element, this.getRootProps);\n }\n return element;\n } else if (isDOMElement(element)) {\n // they didn't apply the root props, but we can clone\n // this and apply the props ourselves\n return /*#__PURE__*/cloneElement(element, this.getRootProps(getElementProps(element)));\n }\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n // they didn't apply the root props, but they need to\n // otherwise we can't query around the autocomplete\n\n throw new Error('downshift: If you return a non-DOM element, you must apply the getRootProps function');\n }\n\n /* istanbul ignore next */\n return undefined;\n };\n return Downshift;\n }(Component);\n Downshift.defaultProps = {\n defaultHighlightedIndex: null,\n defaultIsOpen: false,\n getA11yStatusMessage: getA11yStatusMessage,\n itemToString: function itemToString(i) {\n if (i == null) {\n return '';\n }\n if (process.env.NODE_ENV !== 'production' && isPlainObject(i) && !i.hasOwnProperty('toString')) {\n // eslint-disable-next-line no-console\n console.warn('downshift: An object was passed to the default implementation of `itemToString`. You should probably provide your own `itemToString` implementation. Please refer to the `itemToString` API documentation.', 'The object that was passed:', i);\n }\n return String(i);\n },\n onStateChange: noop,\n onInputValueChange: noop,\n onUserAction: noop,\n onChange: noop,\n onSelect: noop,\n onOuterClick: noop,\n selectedItemChanged: function selectedItemChanged(prevItem, item) {\n return prevItem !== item;\n },\n environment: /* istanbul ignore next (ssr) */\n typeof window === 'undefined' || false ? undefined : window,\n stateReducer: function stateReducer(state, stateToSet) {\n return stateToSet;\n },\n suppressRefError: false,\n scrollIntoView: scrollIntoView\n };\n Downshift.stateChangeTypes = stateChangeTypes$3;\n return Downshift;\n}();\nprocess.env.NODE_ENV !== \"production\" ? Downshift.propTypes = {\n children: PropTypes.func,\n defaultHighlightedIndex: PropTypes.number,\n defaultIsOpen: PropTypes.bool,\n initialHighlightedIndex: PropTypes.number,\n initialSelectedItem: PropTypes.any,\n initialInputValue: PropTypes.string,\n initialIsOpen: PropTypes.bool,\n getA11yStatusMessage: PropTypes.func,\n itemToString: PropTypes.func,\n onChange: PropTypes.func,\n onSelect: PropTypes.func,\n onStateChange: PropTypes.func,\n onInputValueChange: PropTypes.func,\n onUserAction: PropTypes.func,\n onOuterClick: PropTypes.func,\n selectedItemChanged: PropTypes.func,\n stateReducer: PropTypes.func,\n itemCount: PropTypes.number,\n id: PropTypes.string,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func.isRequired,\n removeEventListener: PropTypes.func.isRequired,\n document: PropTypes.shape({\n createElement: PropTypes.func.isRequired,\n getElementById: PropTypes.func.isRequired,\n activeElement: PropTypes.any.isRequired,\n body: PropTypes.any.isRequired\n }).isRequired,\n Node: PropTypes.func.isRequired\n }),\n suppressRefError: PropTypes.bool,\n scrollIntoView: PropTypes.func,\n // things we keep in state for uncontrolled components\n // but can accept as props for controlled components\n /* eslint-disable react/no-unused-prop-types */\n selectedItem: PropTypes.any,\n isOpen: PropTypes.bool,\n inputValue: PropTypes.string,\n highlightedIndex: PropTypes.number,\n labelId: PropTypes.string,\n inputId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func\n /* eslint-enable react/no-unused-prop-types */\n} : void 0;\nfunction validateGetMenuPropsCalledCorrectly(node, _ref10) {\n var refKey = _ref10.refKey;\n if (!node) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from getMenuProps was not applied correctly on your menu element.\");\n }\n}\nfunction validateGetRootPropsCalledCorrectly(element, _ref11) {\n var refKey = _ref11.refKey;\n var refKeySpecified = refKey !== 'ref';\n var isComposite = !isDOMElement(element);\n if (isComposite && !refKeySpecified && !isForwardRef(element)) {\n // eslint-disable-next-line no-console\n console.error('downshift: You returned a non-DOM element. You must specify a refKey in getRootProps');\n } else if (!isComposite && refKeySpecified) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You returned a DOM element. You should not specify a refKey in getRootProps. You specified \\\"\" + refKey + \"\\\"\");\n }\n if (!isForwardRef(element) && !getElementProps(element)[refKey]) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You must apply the ref prop \\\"\" + refKey + \"\\\" from getRootProps onto your root element.\");\n }\n}\n\nvar dropdownDefaultStateValues = {\n highlightedIndex: -1,\n isOpen: false,\n selectedItem: null,\n inputValue: ''\n};\nfunction callOnChangeProps(action, state, newState) {\n var props = action.props,\n type = action.type;\n var changes = {};\n Object.keys(state).forEach(function (key) {\n invokeOnChangeHandler(key, action, state, newState);\n if (newState[key] !== state[key]) {\n changes[key] = newState[key];\n }\n });\n if (props.onStateChange && Object.keys(changes).length) {\n props.onStateChange(_extends({\n type: type\n }, changes));\n }\n}\nfunction invokeOnChangeHandler(key, action, state, newState) {\n var props = action.props,\n type = action.type;\n var handler = \"on\" + capitalizeString(key) + \"Change\";\n if (props[handler] && newState[key] !== undefined && newState[key] !== state[key]) {\n props[handler](_extends({\n type: type\n }, newState));\n }\n}\n\n/**\n * Default state reducer that returns the changes.\n *\n * @param {Object} s state.\n * @param {Object} a action with changes.\n * @returns {Object} changes.\n */\nfunction stateReducer(s, a) {\n return a.changes;\n}\n\n/**\n * Debounced call for updating the a11y message.\n */\nvar updateA11yStatus = debounce(function (status, document) {\n setStatus(status, document);\n}, 200);\n\n// istanbul ignore next\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;\n\n// istanbul ignore next\nvar useElementIds = 'useId' in React // Avoid conditional useId call\n? function useElementIds(_ref) {\n var id = _ref.id,\n labelId = _ref.labelId,\n menuId = _ref.menuId,\n getItemId = _ref.getItemId,\n toggleButtonId = _ref.toggleButtonId,\n inputId = _ref.inputId;\n // Avoid conditional useId call\n var reactId = \"downshift-\" + React.useId();\n if (!id) {\n id = reactId;\n }\n var elementIdsRef = useRef({\n labelId: labelId || id + \"-label\",\n menuId: menuId || id + \"-menu\",\n getItemId: getItemId || function (index) {\n return id + \"-item-\" + index;\n },\n toggleButtonId: toggleButtonId || id + \"-toggle-button\",\n inputId: inputId || id + \"-input\"\n });\n return elementIdsRef.current;\n} : function useElementIds(_ref2) {\n var _ref2$id = _ref2.id,\n id = _ref2$id === void 0 ? \"downshift-\" + generateId() : _ref2$id,\n labelId = _ref2.labelId,\n menuId = _ref2.menuId,\n getItemId = _ref2.getItemId,\n toggleButtonId = _ref2.toggleButtonId,\n inputId = _ref2.inputId;\n var elementIdsRef = useRef({\n labelId: labelId || id + \"-label\",\n menuId: menuId || id + \"-menu\",\n getItemId: getItemId || function (index) {\n return id + \"-item-\" + index;\n },\n toggleButtonId: toggleButtonId || id + \"-toggle-button\",\n inputId: inputId || id + \"-input\"\n });\n return elementIdsRef.current;\n};\nfunction getItemAndIndex(itemProp, indexProp, items, errorMessage) {\n var item, index;\n if (itemProp === undefined) {\n if (indexProp === undefined) {\n throw new Error(errorMessage);\n }\n item = items[indexProp];\n index = indexProp;\n } else {\n index = indexProp === undefined ? items.indexOf(itemProp) : indexProp;\n item = itemProp;\n }\n return [item, index];\n}\nfunction isAcceptedCharacterKey(key) {\n return /^\\S{1}$/.test(key);\n}\nfunction capitalizeString(string) {\n return \"\" + string.slice(0, 1).toUpperCase() + string.slice(1);\n}\nfunction useLatestRef(val) {\n var ref = useRef(val);\n // technically this is not \"concurrent mode safe\" because we're manipulating\n // the value during render (so it's not idempotent). However, the places this\n // hook is used is to support memoizing callbacks which will be called\n // *during* render, so we need the latest values *during* render.\n // If not for this, then we'd probably want to use useLayoutEffect instead.\n ref.current = val;\n return ref;\n}\n\n/**\n * Computes the controlled state using a the previous state, props,\n * two reducers, one from downshift and an optional one from the user.\n * Also calls the onChange handlers for state values that have changed.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} props The hook props, also passed to createInitialState.\n * @param {Function} createInitialState Function that returns the initial state.\n * @param {Function} isStateEqual Function that checks if a previous state is equal to the next.\n * @returns {Array} An array with the state and an action dispatcher.\n */\nfunction useEnhancedReducer(reducer, props, createInitialState, isStateEqual) {\n var prevStateRef = useRef();\n var actionRef = useRef();\n var enhancedReducer = useCallback(function (state, action) {\n actionRef.current = action;\n state = getState(state, action.props);\n var changes = reducer(state, action);\n var newState = action.props.stateReducer(state, _extends({}, action, {\n changes: changes\n }));\n return newState;\n }, [reducer]);\n var _useReducer = useReducer(enhancedReducer, props, createInitialState),\n state = _useReducer[0],\n dispatch = _useReducer[1];\n var propsRef = useLatestRef(props);\n var dispatchWithProps = useCallback(function (action) {\n return dispatch(_extends({\n props: propsRef.current\n }, action));\n }, [propsRef]);\n var action = actionRef.current;\n useEffect(function () {\n var prevState = getState(prevStateRef.current, action == null ? void 0 : action.props);\n var shouldCallOnChangeProps = action && prevStateRef.current && !isStateEqual(prevState, state);\n if (shouldCallOnChangeProps) {\n callOnChangeProps(action, prevState, state);\n }\n prevStateRef.current = state;\n }, [state, action, isStateEqual]);\n return [state, dispatchWithProps];\n}\n\n/**\n * Wraps the useEnhancedReducer and applies the controlled prop values before\n * returning the new state.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} props The hook props, also passed to createInitialState.\n * @param {Function} createInitialState Function that returns the initial state.\n * @param {Function} isStateEqual Function that checks if a previous state is equal to the next.\n * @returns {Array} An array with the state and an action dispatcher.\n */\nfunction useControlledReducer$1(reducer, props, createInitialState, isStateEqual) {\n var _useEnhancedReducer = useEnhancedReducer(reducer, props, createInitialState, isStateEqual),\n state = _useEnhancedReducer[0],\n dispatch = _useEnhancedReducer[1];\n return [getState(state, props), dispatch];\n}\nvar defaultProps$3 = {\n itemToString: function itemToString(item) {\n return item ? String(item) : '';\n },\n itemToKey: function itemToKey(item) {\n return item;\n },\n stateReducer: stateReducer,\n scrollIntoView: scrollIntoView,\n environment: /* istanbul ignore next (ssr) */\n typeof window === 'undefined' || false ? undefined : window\n};\nfunction getDefaultValue$1(props, propKey, defaultStateValues) {\n if (defaultStateValues === void 0) {\n defaultStateValues = dropdownDefaultStateValues;\n }\n var defaultValue = props[\"default\" + capitalizeString(propKey)];\n if (defaultValue !== undefined) {\n return defaultValue;\n }\n return defaultStateValues[propKey];\n}\nfunction getInitialValue$1(props, propKey, defaultStateValues) {\n if (defaultStateValues === void 0) {\n defaultStateValues = dropdownDefaultStateValues;\n }\n var value = props[propKey];\n if (value !== undefined) {\n return value;\n }\n var initialValue = props[\"initial\" + capitalizeString(propKey)];\n if (initialValue !== undefined) {\n return initialValue;\n }\n return getDefaultValue$1(props, propKey, defaultStateValues);\n}\nfunction getInitialState$2(props) {\n var selectedItem = getInitialValue$1(props, 'selectedItem');\n var isOpen = getInitialValue$1(props, 'isOpen');\n var highlightedIndex = getInitialHighlightedIndex(props);\n var inputValue = getInitialValue$1(props, 'inputValue');\n return {\n highlightedIndex: highlightedIndex < 0 && selectedItem && isOpen ? props.items.findIndex(function (item) {\n return props.itemToKey(item) === props.itemToKey(selectedItem);\n }) : highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\nfunction getHighlightedIndexOnOpen(props, state, offset) {\n var items = props.items,\n initialHighlightedIndex = props.initialHighlightedIndex,\n defaultHighlightedIndex = props.defaultHighlightedIndex,\n isItemDisabled = props.isItemDisabled,\n itemToKey = props.itemToKey;\n var selectedItem = state.selectedItem,\n highlightedIndex = state.highlightedIndex;\n if (items.length === 0) {\n return -1;\n }\n\n // initialHighlightedIndex will give value to highlightedIndex on initial state only.\n if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex && !isItemDisabled(items[initialHighlightedIndex], initialHighlightedIndex)) {\n return initialHighlightedIndex;\n }\n if (defaultHighlightedIndex !== undefined && !isItemDisabled(items[defaultHighlightedIndex], defaultHighlightedIndex)) {\n return defaultHighlightedIndex;\n }\n if (selectedItem) {\n return items.findIndex(function (item) {\n return itemToKey(selectedItem) === itemToKey(item);\n });\n }\n if (offset < 0 && !isItemDisabled(items[items.length - 1], items.length - 1)) {\n return items.length - 1;\n }\n if (offset > 0 && !isItemDisabled(items[0], 0)) {\n return 0;\n }\n return -1;\n}\n/**\n * Tracks mouse and touch events, such as mouseDown, touchMove and touchEnd.\n *\n * @param {Window} environment The environment to add the event listeners to, for instance window.\n * @param {() => void} handleBlur The function that is called if mouseDown or touchEnd occured outside the downshiftElements.\n * @param {Array<{current: HTMLElement}>} downshiftElementsRefs The refs for the elements that should not trigger a blur action from mouseDown or touchEnd.\n * @returns {{isMouseDown: boolean, isTouchMove: boolean, isTouchEnd: boolean}} The mouse and touch events information, if any of are happening.\n */\nfunction useMouseAndTouchTracker(environment, handleBlur, downshiftElementsRefs) {\n var mouseAndTouchTrackersRef = useRef({\n isMouseDown: false,\n isTouchMove: false,\n isTouchEnd: false\n });\n useEffect(function () {\n if (!environment) {\n return noop;\n }\n var downshiftElements = downshiftElementsRefs.map(function (ref) {\n return ref.current;\n });\n function onMouseDown() {\n mouseAndTouchTrackersRef.current.isTouchEnd = false; // reset this one.\n mouseAndTouchTrackersRef.current.isMouseDown = true;\n }\n function onMouseUp(event) {\n mouseAndTouchTrackersRef.current.isMouseDown = false;\n if (!targetWithinDownshift(event.target, downshiftElements, environment)) {\n handleBlur();\n }\n }\n function onTouchStart() {\n mouseAndTouchTrackersRef.current.isTouchEnd = false;\n mouseAndTouchTrackersRef.current.isTouchMove = false;\n }\n function onTouchMove() {\n mouseAndTouchTrackersRef.current.isTouchMove = true;\n }\n function onTouchEnd(event) {\n mouseAndTouchTrackersRef.current.isTouchEnd = true;\n if (!mouseAndTouchTrackersRef.current.isTouchMove && !targetWithinDownshift(event.target, downshiftElements, environment, false)) {\n handleBlur();\n }\n }\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n return function cleanup() {\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n };\n }, [downshiftElementsRefs, environment, handleBlur]);\n return mouseAndTouchTrackersRef.current;\n}\n\n/* istanbul ignore next */\n// eslint-disable-next-line import/no-mutable-exports\nvar useGetterPropsCalledChecker = function useGetterPropsCalledChecker() {\n return noop;\n};\n/**\n * Custom hook that checks if getter props are called correctly.\n *\n * @param {...any} propKeys Getter prop names to be handled.\n * @returns {Function} Setter function called inside getter props to set call information.\n */\n/* istanbul ignore next */\nif (process.env.NODE_ENV !== 'production') {\n useGetterPropsCalledChecker = function useGetterPropsCalledChecker() {\n for (var _len = arguments.length, propKeys = new Array(_len), _key = 0; _key < _len; _key++) {\n propKeys[_key] = arguments[_key];\n }\n var getterPropsCalledRef = useRef(propKeys.reduce(function (acc, propKey) {\n acc[propKey] = {};\n return acc;\n }, {}));\n useEffect(function () {\n Object.keys(getterPropsCalledRef.current).forEach(function (propKey) {\n var propCallInfo = getterPropsCalledRef.current[propKey];\n if (!Object.keys(propCallInfo).length) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You forgot to call the \" + propKey + \" getter function on your component / element.\");\n return;\n }\n var suppressRefError = propCallInfo.suppressRefError,\n refKey = propCallInfo.refKey,\n elementRef = propCallInfo.elementRef;\n if (suppressRefError) {\n return;\n }\n if (!(elementRef != null && elementRef.current)) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from \" + propKey + \" was not applied correctly on your element.\");\n }\n });\n }, []);\n var setGetterPropCallInfo = useCallback(function (propKey, suppressRefError, refKey, elementRef) {\n getterPropsCalledRef.current[propKey] = {\n suppressRefError: suppressRefError,\n refKey: refKey,\n elementRef: elementRef\n };\n }, []);\n return setGetterPropCallInfo;\n };\n}\n\n/**\n * Adds an a11y aria live status message if getA11yStatusMessage is passed.\n * @param {(options: Object) => string} getA11yStatusMessage The function that builds the status message.\n * @param {Object} options The options to be passed to getA11yStatusMessage if called.\n * @param {Array<unknown>} dependencyArray The dependency array that triggers the status message setter via useEffect.\n * @param {{document: Document}} environment The environment object containing the document.\n */\nfunction useA11yMessageStatus(getA11yStatusMessage, options, dependencyArray, environment) {\n if (environment === void 0) {\n environment = {};\n }\n var document = environment.document;\n var isInitialMount = useIsInitialMount();\n\n // Adds an a11y aria live status message if getA11yStatusMessage is passed.\n useEffect(function () {\n if (!getA11yStatusMessage || isInitialMount || false || !document) {\n return;\n }\n var status = getA11yStatusMessage(options);\n updateA11yStatus(status, document);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencyArray);\n\n // Cleanup the status message container.\n useEffect(function () {\n return function () {\n updateA11yStatus.cancel();\n cleanupStatusDiv(document);\n };\n }, [document]);\n}\nfunction useScrollIntoView(_ref3) {\n var highlightedIndex = _ref3.highlightedIndex,\n isOpen = _ref3.isOpen,\n itemRefs = _ref3.itemRefs,\n getItemNodeFromIndex = _ref3.getItemNodeFromIndex,\n menuElement = _ref3.menuElement,\n scrollIntoViewProp = _ref3.scrollIntoView;\n // used not to scroll on highlight by mouse.\n var shouldScrollRef = useRef(true);\n // Scroll on highlighted item if change comes from keyboard.\n useIsomorphicLayoutEffect(function () {\n if (highlightedIndex < 0 || !isOpen || !Object.keys(itemRefs.current).length) {\n return;\n }\n if (shouldScrollRef.current === false) {\n shouldScrollRef.current = true;\n } else {\n scrollIntoViewProp(getItemNodeFromIndex(highlightedIndex), menuElement);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [highlightedIndex]);\n return shouldScrollRef;\n}\n\n// eslint-disable-next-line import/no-mutable-exports\nvar useControlPropsValidator = noop;\n/* istanbul ignore next */\nif (process.env.NODE_ENV !== 'production') {\n useControlPropsValidator = function useControlPropsValidator(_ref4) {\n var props = _ref4.props,\n state = _ref4.state;\n // used for checking when props are moving from controlled to uncontrolled.\n var prevPropsRef = useRef(props);\n var isInitialMount = useIsInitialMount();\n useEffect(function () {\n if (isInitialMount) {\n return;\n }\n validateControlledUnchanged(state, prevPropsRef.current, props);\n prevPropsRef.current = props;\n }, [state, props, isInitialMount]);\n };\n}\n\n/**\n * Handles selection on Enter / Alt + ArrowUp. Closes the menu and resets the highlighted index, unless there is a highlighted.\n * In that case, selects the item and resets to defaults for open state and highlighted idex.\n * @param {Object} props The useCombobox props.\n * @param {number} highlightedIndex The index from the state.\n * @param {boolean} inputValue Also return the input value for state.\n * @returns The changes for the state.\n */\nfunction getChangesOnSelection(props, highlightedIndex, inputValue) {\n var _props$items;\n if (inputValue === void 0) {\n inputValue = true;\n }\n var shouldSelect = ((_props$items = props.items) == null ? void 0 : _props$items.length) && highlightedIndex >= 0;\n return _extends({\n isOpen: false,\n highlightedIndex: -1\n }, shouldSelect && _extends({\n selectedItem: props.items[highlightedIndex],\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex')\n }, inputValue && {\n inputValue: props.itemToString(props.items[highlightedIndex])\n }));\n}\n\n/**\n * Check if a state is equal for dropdowns, by comparing isOpen, inputValue, highlightedIndex and selected item.\n * Used by useSelect and useCombobox.\n *\n * @param {Object} prevState\n * @param {Object} newState\n * @returns {boolean} Wheather the states are deeply equal.\n */\nfunction isDropdownsStateEqual(prevState, newState) {\n return prevState.isOpen === newState.isOpen && prevState.inputValue === newState.inputValue && prevState.highlightedIndex === newState.highlightedIndex && prevState.selectedItem === newState.selectedItem;\n}\n\n/**\n * Tracks if it's the first render.\n */\nfunction useIsInitialMount() {\n var isInitialMountRef = React.useRef(true);\n React.useEffect(function () {\n isInitialMountRef.current = false;\n return function () {\n isInitialMountRef.current = true;\n };\n }, []);\n return isInitialMountRef.current;\n}\n\n/**\n * Returns the new highlightedIndex based on the defaultHighlightedIndex prop, if it's not disabled.\n *\n * @param {Object} props Props from useCombobox or useSelect.\n * @returns {number} The highlighted index.\n */\nfunction getDefaultHighlightedIndex(props) {\n var highlightedIndex = getDefaultValue$1(props, 'highlightedIndex');\n if (highlightedIndex > -1 && props.isItemDisabled(props.items[highlightedIndex], highlightedIndex)) {\n return -1;\n }\n return highlightedIndex;\n}\n\n/**\n * Returns the new highlightedIndex based on the initialHighlightedIndex prop, if not disabled.\n *\n * @param {Object} props Props from useCombobox or useSelect.\n * @returns {number} The highlighted index.\n */\nfunction getInitialHighlightedIndex(props) {\n var highlightedIndex = getInitialValue$1(props, 'highlightedIndex');\n if (highlightedIndex > -1 && props.isItemDisabled(props.items[highlightedIndex], highlightedIndex)) {\n return -1;\n }\n return highlightedIndex;\n}\n\n// Shared between all exports.\nvar commonPropTypes = {\n environment: PropTypes.shape({\n addEventListener: PropTypes.func.isRequired,\n removeEventListener: PropTypes.func.isRequired,\n document: PropTypes.shape({\n createElement: PropTypes.func.isRequired,\n getElementById: PropTypes.func.isRequired,\n activeElement: PropTypes.any.isRequired,\n body: PropTypes.any.isRequired\n }).isRequired,\n Node: PropTypes.func.isRequired\n }),\n itemToString: PropTypes.func,\n itemToKey: PropTypes.func,\n stateReducer: PropTypes.func\n};\n\n// Shared between useSelect, useCombobox, Downshift.\nvar commonDropdownPropTypes = _extends({}, commonPropTypes, {\n getA11yStatusMessage: PropTypes.func,\n highlightedIndex: PropTypes.number,\n defaultHighlightedIndex: PropTypes.number,\n initialHighlightedIndex: PropTypes.number,\n isOpen: PropTypes.bool,\n defaultIsOpen: PropTypes.bool,\n initialIsOpen: PropTypes.bool,\n selectedItem: PropTypes.any,\n initialSelectedItem: PropTypes.any,\n defaultSelectedItem: PropTypes.any,\n id: PropTypes.string,\n labelId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func,\n toggleButtonId: PropTypes.string,\n onSelectedItemChange: PropTypes.func,\n onHighlightedIndexChange: PropTypes.func,\n onStateChange: PropTypes.func,\n onIsOpenChange: PropTypes.func,\n scrollIntoView: PropTypes.func\n});\n\nfunction downshiftCommonReducer(state, action, stateChangeTypes) {\n var type = action.type,\n props = action.props;\n var changes;\n switch (type) {\n case stateChangeTypes.ItemMouseMove:\n changes = {\n highlightedIndex: action.disabled ? -1 : action.index\n };\n break;\n case stateChangeTypes.MenuMouseLeave:\n changes = {\n highlightedIndex: -1\n };\n break;\n case stateChangeTypes.ToggleButtonClick:\n case stateChangeTypes.FunctionToggleMenu:\n changes = {\n isOpen: !state.isOpen,\n highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n case stateChangeTypes.FunctionOpenMenu:\n changes = {\n isOpen: true,\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n case stateChangeTypes.FunctionCloseMenu:\n changes = {\n isOpen: false\n };\n break;\n case stateChangeTypes.FunctionSetHighlightedIndex:\n changes = {\n highlightedIndex: props.isItemDisabled(props.items[action.highlightedIndex], action.highlightedIndex) ? -1 : action.highlightedIndex\n };\n break;\n case stateChangeTypes.FunctionSetInputValue:\n changes = {\n inputValue: action.inputValue\n };\n break;\n case stateChangeTypes.FunctionReset:\n changes = {\n highlightedIndex: getDefaultHighlightedIndex(props),\n isOpen: getDefaultValue$1(props, 'isOpen'),\n selectedItem: getDefaultValue$1(props, 'selectedItem'),\n inputValue: getDefaultValue$1(props, 'inputValue')\n };\n break;\n default:\n throw new Error('Reducer called without proper action type.');\n }\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\nfunction getItemIndexByCharacterKey(_a) {\n var keysSoFar = _a.keysSoFar, highlightedIndex = _a.highlightedIndex, items = _a.items, itemToString = _a.itemToString, isItemDisabled = _a.isItemDisabled;\n var lowerCasedKeysSoFar = keysSoFar.toLowerCase();\n for (var index = 0; index < items.length; index++) {\n // if we already have a search query in progress, we also consider the current highlighted item.\n var offsetIndex = (index + highlightedIndex + (keysSoFar.length < 2 ? 1 : 0)) % items.length;\n var item = items[offsetIndex];\n if (item !== undefined &&\n itemToString(item).toLowerCase().startsWith(lowerCasedKeysSoFar) &&\n !isItemDisabled(item, offsetIndex)) {\n return offsetIndex;\n }\n }\n return highlightedIndex;\n}\nvar propTypes$2 = __assign(__assign({}, commonDropdownPropTypes), { items: PropTypes.array.isRequired, isItemDisabled: PropTypes.func });\nvar defaultProps$2 = __assign(__assign({}, defaultProps$3), { isItemDisabled: function () {\n return false;\n } });\n// eslint-disable-next-line import/no-mutable-exports\nvar validatePropTypes$2 = noop;\n/* istanbul ignore next */\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes$2 = function (options, caller) {\n PropTypes.checkPropTypes(propTypes$2, options, 'prop', caller.name);\n };\n}\n\nvar ToggleButtonClick$1 = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 0;\nvar ToggleButtonKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_down__' : 1;\nvar ToggleButtonKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_up__' : 2;\nvar ToggleButtonKeyDownCharacter = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_character__' : 3;\nvar ToggleButtonKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_escape__' : 4;\nvar ToggleButtonKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_home__' : 5;\nvar ToggleButtonKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_end__' : 6;\nvar ToggleButtonKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_enter__' : 7;\nvar ToggleButtonKeyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_space_button__' : 8;\nvar ToggleButtonKeyDownPageUp = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_page_up__' : 9;\nvar ToggleButtonKeyDownPageDown = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_page_down__' : 10;\nvar ToggleButtonBlur = process.env.NODE_ENV !== \"production\" ? '__togglebutton_blur__' : 11;\nvar MenuMouseLeave$1 = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 12;\nvar ItemMouseMove$1 = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 13;\nvar ItemClick$1 = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 14;\nvar FunctionToggleMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 15;\nvar FunctionOpenMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 16;\nvar FunctionCloseMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 17;\nvar FunctionSetHighlightedIndex$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 18;\nvar FunctionSelectItem$1 = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 19;\nvar FunctionSetInputValue$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 20;\nvar FunctionReset$2 = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 21;\n\nvar stateChangeTypes$2 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n FunctionCloseMenu: FunctionCloseMenu$1,\n FunctionOpenMenu: FunctionOpenMenu$1,\n FunctionReset: FunctionReset$2,\n FunctionSelectItem: FunctionSelectItem$1,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex$1,\n FunctionSetInputValue: FunctionSetInputValue$1,\n FunctionToggleMenu: FunctionToggleMenu$1,\n ItemClick: ItemClick$1,\n ItemMouseMove: ItemMouseMove$1,\n MenuMouseLeave: MenuMouseLeave$1,\n ToggleButtonBlur: ToggleButtonBlur,\n ToggleButtonClick: ToggleButtonClick$1,\n ToggleButtonKeyDownArrowDown: ToggleButtonKeyDownArrowDown,\n ToggleButtonKeyDownArrowUp: ToggleButtonKeyDownArrowUp,\n ToggleButtonKeyDownCharacter: ToggleButtonKeyDownCharacter,\n ToggleButtonKeyDownEnd: ToggleButtonKeyDownEnd,\n ToggleButtonKeyDownEnter: ToggleButtonKeyDownEnter,\n ToggleButtonKeyDownEscape: ToggleButtonKeyDownEscape,\n ToggleButtonKeyDownHome: ToggleButtonKeyDownHome,\n ToggleButtonKeyDownPageDown: ToggleButtonKeyDownPageDown,\n ToggleButtonKeyDownPageUp: ToggleButtonKeyDownPageUp,\n ToggleButtonKeyDownSpaceButton: ToggleButtonKeyDownSpaceButton\n});\n\n/* eslint-disable complexity */\nfunction downshiftSelectReducer(state, action) {\n var _props$items;\n var type = action.type,\n props = action.props,\n altKey = action.altKey;\n var changes;\n switch (type) {\n case ItemClick$1:\n changes = {\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultHighlightedIndex(props),\n selectedItem: props.items[action.index]\n };\n break;\n case ToggleButtonKeyDownCharacter:\n {\n var lowercasedKey = action.key;\n var inputValue = \"\" + state.inputValue + lowercasedKey;\n var prevHighlightedIndex = !state.isOpen && state.selectedItem ? props.items.findIndex(function (item) {\n return props.itemToKey(item) === props.itemToKey(state.selectedItem);\n }) : state.highlightedIndex;\n var highlightedIndex = getItemIndexByCharacterKey({\n keysSoFar: inputValue,\n highlightedIndex: prevHighlightedIndex,\n items: props.items,\n itemToString: props.itemToString,\n isItemDisabled: props.isItemDisabled\n });\n changes = {\n inputValue: inputValue,\n highlightedIndex: highlightedIndex,\n isOpen: true\n };\n }\n break;\n case ToggleButtonKeyDownArrowDown:\n {\n var _highlightedIndex = state.isOpen ? getHighlightedIndex(state.highlightedIndex, 1, props.items, props.isItemDisabled) : altKey && state.selectedItem == null ? -1 : getHighlightedIndexOnOpen(props, state, 1);\n changes = {\n highlightedIndex: _highlightedIndex,\n isOpen: true\n };\n }\n break;\n case ToggleButtonKeyDownArrowUp:\n if (state.isOpen && altKey) {\n changes = getChangesOnSelection(props, state.highlightedIndex, false);\n } else {\n var _highlightedIndex2 = state.isOpen ? getHighlightedIndex(state.highlightedIndex, -1, props.items, props.isItemDisabled) : getHighlightedIndexOnOpen(props, state, -1);\n changes = {\n highlightedIndex: _highlightedIndex2,\n isOpen: true\n };\n }\n break;\n // only triggered when menu is open.\n case ToggleButtonKeyDownEnter:\n case ToggleButtonKeyDownSpaceButton:\n changes = getChangesOnSelection(props, state.highlightedIndex, false);\n break;\n case ToggleButtonKeyDownHome:\n changes = {\n highlightedIndex: getNonDisabledIndex(0, false, props.items, props.isItemDisabled),\n isOpen: true\n };\n break;\n case ToggleButtonKeyDownEnd:\n changes = {\n highlightedIndex: getNonDisabledIndex(props.items.length - 1, true, props.items, props.isItemDisabled),\n isOpen: true\n };\n break;\n case ToggleButtonKeyDownPageUp:\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, -10, props.items, props.isItemDisabled)\n };\n break;\n case ToggleButtonKeyDownPageDown:\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, 10, props.items, props.isItemDisabled)\n };\n break;\n case ToggleButtonKeyDownEscape:\n changes = {\n isOpen: false,\n highlightedIndex: -1\n };\n break;\n case ToggleButtonBlur:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, state.highlightedIndex >= 0 && ((_props$items = props.items) == null ? void 0 : _props$items.length) && {\n selectedItem: props.items[state.highlightedIndex]\n });\n break;\n case FunctionSelectItem$1:\n changes = {\n selectedItem: action.selectedItem\n };\n break;\n default:\n return downshiftCommonReducer(state, action, stateChangeTypes$2);\n }\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\nvar _excluded$2 = [\"onClick\"],\n _excluded2$2 = [\"onMouseLeave\", \"refKey\", \"ref\"],\n _excluded3$1 = [\"onBlur\", \"onClick\", \"onPress\", \"onKeyDown\", \"refKey\", \"ref\"],\n _excluded4$1 = [\"item\", \"index\", \"onMouseMove\", \"onClick\", \"onMouseDown\", \"onPress\", \"refKey\", \"disabled\", \"ref\"];\nuseSelect.stateChangeTypes = stateChangeTypes$2;\nfunction useSelect(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n validatePropTypes$2(userProps, useSelect);\n // Props defaults and destructuring.\n var props = _extends({}, defaultProps$2, userProps);\n var scrollIntoView = props.scrollIntoView,\n environment = props.environment,\n getA11yStatusMessage = props.getA11yStatusMessage;\n // Initial state depending on controlled props.\n var _useControlledReducer = useControlledReducer$1(downshiftSelectReducer, props, getInitialState$2, isDropdownsStateEqual),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n var isOpen = state.isOpen,\n highlightedIndex = state.highlightedIndex,\n selectedItem = state.selectedItem,\n inputValue = state.inputValue;\n // Element efs.\n var toggleButtonRef = useRef(null);\n var menuRef = useRef(null);\n var itemRefs = useRef({});\n\n // used to keep the inputValue clearTimeout object between renders.\n var clearTimeoutRef = useRef(null);\n // prevent id re-generation between renders.\n var elementIds = useElementIds(props);\n // utility callback to get item element.\n var latest = useLatestRef({\n state: state,\n props: props\n });\n\n // Some utils.\n var getItemNodeFromIndex = useCallback(function (index) {\n return itemRefs.current[elementIds.getItemId(index)];\n }, [elementIds]);\n\n // Effects.\n // Adds an a11y aria live status message if getA11yStatusMessage is passed.\n useA11yMessageStatus(getA11yStatusMessage, state, [isOpen, highlightedIndex, selectedItem, inputValue], environment);\n // Scroll on highlighted item if change comes from keyboard.\n var shouldScrollRef = useScrollIntoView({\n menuElement: menuRef.current,\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n itemRefs: itemRefs,\n scrollIntoView: scrollIntoView,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n // Sets cleanup for the keysSoFar callback, debounded after 500ms.\n useEffect(function () {\n // init the clean function here as we need access to dispatch.\n clearTimeoutRef.current = debounce(function (outerDispatch) {\n outerDispatch({\n type: FunctionSetInputValue$1,\n inputValue: ''\n });\n }, 500);\n\n // Cancel any pending debounced calls on mount\n return function () {\n clearTimeoutRef.current.cancel();\n };\n }, []);\n // Invokes the keysSoFar callback set up above.\n useEffect(function () {\n if (!inputValue) {\n return;\n }\n clearTimeoutRef.current(dispatch);\n }, [dispatch, inputValue]);\n useControlPropsValidator({\n props: props,\n state: state\n });\n // Focus the toggle button on first render if required.\n useEffect(function () {\n var focusOnOpen = getInitialValue$1(props, 'isOpen');\n if (focusOnOpen && toggleButtonRef.current) {\n toggleButtonRef.current.focus();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, useCallback(function handleBlur() {\n if (latest.current.state.isOpen) {\n dispatch({\n type: ToggleButtonBlur\n });\n }\n }, [dispatch, latest]), useMemo(function () {\n return [menuRef, toggleButtonRef];\n }, [menuRef.current, toggleButtonRef.current]));\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps');\n // Reset itemRefs on close.\n useEffect(function () {\n if (!isOpen) {\n itemRefs.current = {};\n }\n }, [isOpen]);\n\n // Event handler functions.\n var toggleButtonKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowDown,\n altKey: event.altKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowUp,\n altKey: event.altKey\n });\n },\n Home: function Home(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownHome\n });\n },\n End: function End(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownEnd\n });\n },\n Escape: function Escape() {\n if (latest.current.state.isOpen) {\n dispatch({\n type: ToggleButtonKeyDownEscape\n });\n }\n },\n Enter: function Enter(event) {\n event.preventDefault();\n dispatch({\n type: latest.current.state.isOpen ? ToggleButtonKeyDownEnter : ToggleButtonClick$1\n });\n },\n PageUp: function PageUp(event) {\n if (latest.current.state.isOpen) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownPageUp\n });\n }\n },\n PageDown: function PageDown(event) {\n if (latest.current.state.isOpen) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownPageDown\n });\n }\n },\n ' ': function _(event) {\n event.preventDefault();\n var currentState = latest.current.state;\n if (!currentState.isOpen) {\n dispatch({\n type: ToggleButtonClick$1\n });\n return;\n }\n if (currentState.inputValue) {\n dispatch({\n type: ToggleButtonKeyDownCharacter,\n key: ' '\n });\n } else {\n dispatch({\n type: ToggleButtonKeyDownSpaceButton\n });\n }\n }\n };\n }, [dispatch, latest]);\n\n // Action functions.\n var toggleMenu = useCallback(function () {\n dispatch({\n type: FunctionToggleMenu$1\n });\n }, [dispatch]);\n var closeMenu = useCallback(function () {\n dispatch({\n type: FunctionCloseMenu$1\n });\n }, [dispatch]);\n var openMenu = useCallback(function () {\n dispatch({\n type: FunctionOpenMenu$1\n });\n }, [dispatch]);\n var setHighlightedIndex = useCallback(function (newHighlightedIndex) {\n dispatch({\n type: FunctionSetHighlightedIndex$1,\n highlightedIndex: newHighlightedIndex\n });\n }, [dispatch]);\n var selectItem = useCallback(function (newSelectedItem) {\n dispatch({\n type: FunctionSelectItem$1,\n selectedItem: newSelectedItem\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset$2\n });\n }, [dispatch]);\n var setInputValue = useCallback(function (newInputValue) {\n dispatch({\n type: FunctionSetInputValue$1,\n inputValue: newInputValue\n });\n }, [dispatch]);\n // Getter functions.\n var getLabelProps = useCallback(function (_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n onClick = _ref.onClick,\n labelProps = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n var labelHandleClick = function labelHandleClick() {\n var _toggleButtonRef$curr;\n (_toggleButtonRef$curr = toggleButtonRef.current) == null || _toggleButtonRef$curr.focus();\n };\n return _extends({\n id: elementIds.labelId,\n htmlFor: elementIds.toggleButtonId,\n onClick: callAllEventHandlers(onClick, labelHandleClick)\n }, labelProps);\n }, [elementIds]);\n var getMenuProps = useCallback(function (_temp2, _temp3) {\n var _extends2;\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n onMouseLeave = _ref2.onMouseLeave,\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? 'ref' : _ref2$refKey,\n ref = _ref2.ref,\n rest = _objectWithoutPropertiesLoose(_ref2, _excluded2$2);\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n _ref3$suppressRefErro = _ref3.suppressRefError,\n suppressRefError = _ref3$suppressRefErro === void 0 ? false : _ref3$suppressRefErro;\n var menuHandleMouseLeave = function menuHandleMouseLeave() {\n dispatch({\n type: MenuMouseLeave$1\n });\n };\n setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n menuRef.current = menuNode;\n }), _extends2.id = elementIds.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = rest && rest['aria-label'] ? undefined : \"\" + elementIds.labelId, _extends2.onMouseLeave = callAllEventHandlers(onMouseLeave, menuHandleMouseLeave), _extends2), rest);\n }, [dispatch, setGetterPropCallInfo, elementIds]);\n var getToggleButtonProps = useCallback(function (_temp4, _temp5) {\n var _extends3;\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n onBlur = _ref4.onBlur,\n onClick = _ref4.onClick;\n _ref4.onPress;\n var onKeyDown = _ref4.onKeyDown,\n _ref4$refKey = _ref4.refKey,\n refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,\n ref = _ref4.ref,\n rest = _objectWithoutPropertiesLoose(_ref4, _excluded3$1);\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n _ref5$suppressRefErro = _ref5.suppressRefError,\n suppressRefError = _ref5$suppressRefErro === void 0 ? false : _ref5$suppressRefErro;\n var latestState = latest.current.state;\n var toggleButtonHandleClick = function toggleButtonHandleClick() {\n dispatch({\n type: ToggleButtonClick$1\n });\n };\n var toggleButtonHandleBlur = function toggleButtonHandleBlur() {\n if (latestState.isOpen && !mouseAndTouchTrackers.isMouseDown) {\n dispatch({\n type: ToggleButtonBlur\n });\n }\n };\n var toggleButtonHandleKeyDown = function toggleButtonHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n if (key && toggleButtonKeyDownHandlers[key]) {\n toggleButtonKeyDownHandlers[key](event);\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: ToggleButtonKeyDownCharacter,\n key: key\n });\n }\n };\n var toggleProps = _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends3['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends3['aria-controls'] = elementIds.menuId, _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-labelledby'] = rest && rest['aria-label'] ? undefined : \"\" + elementIds.labelId, _extends3.id = elementIds.toggleButtonId, _extends3.role = 'combobox', _extends3.tabIndex = 0, _extends3.onBlur = callAllEventHandlers(onBlur, toggleButtonHandleBlur), _extends3), rest);\n if (!rest.disabled) {\n /* istanbul ignore if (react-native) */\n {\n toggleProps.onClick = callAllEventHandlers(onClick, toggleButtonHandleClick);\n toggleProps.onKeyDown = callAllEventHandlers(onKeyDown, toggleButtonHandleKeyDown);\n }\n }\n setGetterPropCallInfo('getToggleButtonProps', suppressRefError, refKey, toggleButtonRef);\n return toggleProps;\n }, [dispatch, elementIds, latest, mouseAndTouchTrackers, setGetterPropCallInfo, toggleButtonKeyDownHandlers]);\n var getItemProps = useCallback(function (_temp6) {\n var _extends4;\n var _ref6 = _temp6 === void 0 ? {} : _temp6,\n itemProp = _ref6.item,\n indexProp = _ref6.index,\n onMouseMove = _ref6.onMouseMove,\n onClick = _ref6.onClick,\n onMouseDown = _ref6.onMouseDown;\n _ref6.onPress;\n var _ref6$refKey = _ref6.refKey,\n refKey = _ref6$refKey === void 0 ? 'ref' : _ref6$refKey,\n disabledProp = _ref6.disabled,\n ref = _ref6.ref,\n rest = _objectWithoutPropertiesLoose(_ref6, _excluded4$1);\n if (disabledProp !== undefined) {\n console.warn('Passing \"disabled\" as an argument to getItemProps is not supported anymore. Please use the isItemDisabled prop from useSelect.');\n }\n var _latest$current = latest.current,\n latestState = _latest$current.state,\n latestProps = _latest$current.props;\n var _getItemAndIndex = getItemAndIndex(itemProp, indexProp, latestProps.items, 'Pass either item or index to getItemProps!'),\n item = _getItemAndIndex[0],\n index = _getItemAndIndex[1];\n var disabled = latestProps.isItemDisabled(item, index);\n var itemHandleMouseMove = function itemHandleMouseMove() {\n if (mouseAndTouchTrackers.isTouchEnd || index === latestState.highlightedIndex) {\n return;\n }\n shouldScrollRef.current = false;\n dispatch({\n type: ItemMouseMove$1,\n index: index,\n disabled: disabled\n });\n };\n var itemHandleClick = function itemHandleClick() {\n dispatch({\n type: ItemClick$1,\n index: index\n });\n };\n var itemHandleMouseDown = function itemHandleMouseDown(e) {\n return e.preventDefault();\n }; // keep focus on the toggle after item click select.\n\n var itemProps = _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (itemNode) {\n if (itemNode) {\n itemRefs.current[elementIds.getItemId(index)] = itemNode;\n }\n }), _extends4['aria-disabled'] = disabled, _extends4['aria-selected'] = item === latestState.selectedItem, _extends4.id = elementIds.getItemId(index), _extends4.role = 'option', _extends4), rest);\n if (!disabled) {\n /* istanbul ignore next (react-native) */\n {\n itemProps.onClick = callAllEventHandlers(onClick, itemHandleClick);\n }\n }\n itemProps.onMouseMove = callAllEventHandlers(onMouseMove, itemHandleMouseMove);\n itemProps.onMouseDown = callAllEventHandlers(onMouseDown, itemHandleMouseDown);\n return itemProps;\n }, [latest, elementIds, mouseAndTouchTrackers, shouldScrollRef, dispatch]);\n return {\n // prop getters.\n getToggleButtonProps: getToggleButtonProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getItemProps: getItemProps,\n // actions.\n toggleMenu: toggleMenu,\n openMenu: openMenu,\n closeMenu: closeMenu,\n setHighlightedIndex: setHighlightedIndex,\n selectItem: selectItem,\n reset: reset,\n setInputValue: setInputValue,\n // state.\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nvar InputKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__input_keydown_arrow_down__' : 0;\nvar InputKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__input_keydown_arrow_up__' : 1;\nvar InputKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__input_keydown_escape__' : 2;\nvar InputKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__input_keydown_home__' : 3;\nvar InputKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__input_keydown_end__' : 4;\nvar InputKeyDownPageUp = process.env.NODE_ENV !== \"production\" ? '__input_keydown_page_up__' : 5;\nvar InputKeyDownPageDown = process.env.NODE_ENV !== \"production\" ? '__input_keydown_page_down__' : 6;\nvar InputKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__input_keydown_enter__' : 7;\nvar InputChange = process.env.NODE_ENV !== \"production\" ? '__input_change__' : 8;\nvar InputBlur = process.env.NODE_ENV !== \"production\" ? '__input_blur__' : 9;\nvar InputClick = process.env.NODE_ENV !== \"production\" ? '__input_click__' : 10;\nvar MenuMouseLeave = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 11;\nvar ItemMouseMove = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 12;\nvar ItemClick = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 13;\nvar ToggleButtonClick = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 14;\nvar FunctionToggleMenu = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 15;\nvar FunctionOpenMenu = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 16;\nvar FunctionCloseMenu = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 17;\nvar FunctionSetHighlightedIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 18;\nvar FunctionSelectItem = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 19;\nvar FunctionSetInputValue = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 20;\nvar FunctionReset$1 = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 21;\nvar ControlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__controlled_prop_updated_selected_item__' : 22;\n\nvar stateChangeTypes$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ControlledPropUpdatedSelectedItem: ControlledPropUpdatedSelectedItem,\n FunctionCloseMenu: FunctionCloseMenu,\n FunctionOpenMenu: FunctionOpenMenu,\n FunctionReset: FunctionReset$1,\n FunctionSelectItem: FunctionSelectItem,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex,\n FunctionSetInputValue: FunctionSetInputValue,\n FunctionToggleMenu: FunctionToggleMenu,\n InputBlur: InputBlur,\n InputChange: InputChange,\n InputClick: InputClick,\n InputKeyDownArrowDown: InputKeyDownArrowDown,\n InputKeyDownArrowUp: InputKeyDownArrowUp,\n InputKeyDownEnd: InputKeyDownEnd,\n InputKeyDownEnter: InputKeyDownEnter,\n InputKeyDownEscape: InputKeyDownEscape,\n InputKeyDownHome: InputKeyDownHome,\n InputKeyDownPageDown: InputKeyDownPageDown,\n InputKeyDownPageUp: InputKeyDownPageUp,\n ItemClick: ItemClick,\n ItemMouseMove: ItemMouseMove,\n MenuMouseLeave: MenuMouseLeave,\n ToggleButtonClick: ToggleButtonClick\n});\n\nfunction getInitialState$1(props) {\n var initialState = getInitialState$2(props);\n var selectedItem = initialState.selectedItem;\n var inputValue = initialState.inputValue;\n if (inputValue === '' && selectedItem && props.defaultInputValue === undefined && props.initialInputValue === undefined && props.inputValue === undefined) {\n inputValue = props.itemToString(selectedItem);\n }\n return _extends({}, initialState, {\n inputValue: inputValue\n });\n}\nvar propTypes$1 = _extends({}, commonDropdownPropTypes, {\n items: PropTypes.array.isRequired,\n isItemDisabled: PropTypes.func,\n inputValue: PropTypes.string,\n defaultInputValue: PropTypes.string,\n initialInputValue: PropTypes.string,\n inputId: PropTypes.string,\n onInputValueChange: PropTypes.func\n});\n\n/**\n * The useCombobox version of useControlledReducer, which also\n * checks if the controlled prop selectedItem changed between\n * renders. If so, it will also update inputValue with its\n * string equivalent. It uses the common useEnhancedReducer to\n * compute the rest of the state.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} props The hook props, also passed to createInitialState.\n * @param {Function} createInitialState Function that returns the initial state.\n * @param {Function} isStateEqual Function that checks if a previous state is equal to the next.\n * @returns {Array} An array with the state and an action dispatcher.\n */\nfunction useControlledReducer(reducer, props, createInitialState, isStateEqual) {\n var previousSelectedItemRef = useRef();\n var _useEnhancedReducer = useEnhancedReducer(reducer, props, createInitialState, isStateEqual),\n state = _useEnhancedReducer[0],\n dispatch = _useEnhancedReducer[1];\n var isInitialMount = useIsInitialMount();\n useEffect(function () {\n if (!isControlledProp(props, 'selectedItem')) {\n return;\n }\n if (!isInitialMount // on first mount we already have the proper inputValue for a initial selected item.\n ) {\n var shouldCallDispatch = props.itemToKey(props.selectedItem) !== props.itemToKey(previousSelectedItemRef.current);\n if (shouldCallDispatch) {\n dispatch({\n type: ControlledPropUpdatedSelectedItem,\n inputValue: props.itemToString(props.selectedItem)\n });\n }\n }\n previousSelectedItemRef.current = state.selectedItem === previousSelectedItemRef.current ? props.selectedItem : state.selectedItem;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.selectedItem, props.selectedItem]);\n return [getState(state, props), dispatch];\n}\n\n// eslint-disable-next-line import/no-mutable-exports\nvar validatePropTypes$1 = noop;\n/* istanbul ignore next */\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes$1 = function validatePropTypes(options, caller) {\n PropTypes.checkPropTypes(propTypes$1, options, 'prop', caller.name);\n };\n}\nvar defaultProps$1 = _extends({}, defaultProps$3, {\n isItemDisabled: function isItemDisabled() {\n return false;\n }\n});\n\n/* eslint-disable complexity */\nfunction downshiftUseComboboxReducer(state, action) {\n var _props$items;\n var type = action.type,\n props = action.props,\n altKey = action.altKey;\n var changes;\n switch (type) {\n case ItemClick:\n changes = {\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultHighlightedIndex(props),\n selectedItem: props.items[action.index],\n inputValue: props.itemToString(props.items[action.index])\n };\n break;\n case InputKeyDownArrowDown:\n if (state.isOpen) {\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, 1, props.items, props.isItemDisabled, true)\n };\n } else {\n changes = {\n highlightedIndex: altKey && state.selectedItem == null ? -1 : getHighlightedIndexOnOpen(props, state, 1),\n isOpen: props.items.length >= 0\n };\n }\n break;\n case InputKeyDownArrowUp:\n if (state.isOpen) {\n if (altKey) {\n changes = getChangesOnSelection(props, state.highlightedIndex);\n } else {\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, -1, props.items, props.isItemDisabled, true)\n };\n }\n } else {\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, -1),\n isOpen: props.items.length >= 0\n };\n }\n break;\n case InputKeyDownEnter:\n changes = getChangesOnSelection(props, state.highlightedIndex);\n break;\n case InputKeyDownEscape:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, !state.isOpen && {\n selectedItem: null,\n inputValue: ''\n });\n break;\n case InputKeyDownPageUp:\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, -10, props.items, props.isItemDisabled, true)\n };\n break;\n case InputKeyDownPageDown:\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, 10, props.items, props.isItemDisabled, true)\n };\n break;\n case InputKeyDownHome:\n changes = {\n highlightedIndex: getNonDisabledIndex(0, false, props.items, props.isItemDisabled)\n };\n break;\n case InputKeyDownEnd:\n changes = {\n highlightedIndex: getNonDisabledIndex(props.items.length - 1, true, props.items, props.isItemDisabled)\n };\n break;\n case InputBlur:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, state.highlightedIndex >= 0 && ((_props$items = props.items) == null ? void 0 : _props$items.length) && action.selectItem && {\n selectedItem: props.items[state.highlightedIndex],\n inputValue: props.itemToString(props.items[state.highlightedIndex])\n });\n break;\n case InputChange:\n changes = {\n isOpen: true,\n highlightedIndex: getDefaultHighlightedIndex(props),\n inputValue: action.inputValue\n };\n break;\n case InputClick:\n changes = {\n isOpen: !state.isOpen,\n highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n case FunctionSelectItem:\n changes = {\n selectedItem: action.selectedItem,\n inputValue: props.itemToString(action.selectedItem)\n };\n break;\n case ControlledPropUpdatedSelectedItem:\n changes = {\n inputValue: action.inputValue\n };\n break;\n default:\n return downshiftCommonReducer(state, action, stateChangeTypes$1);\n }\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\nvar _excluded$1 = [\"onMouseLeave\", \"refKey\", \"ref\"],\n _excluded2$1 = [\"item\", \"index\", \"refKey\", \"ref\", \"onMouseMove\", \"onMouseDown\", \"onClick\", \"onPress\", \"disabled\"],\n _excluded3 = [\"onClick\", \"onPress\", \"refKey\", \"ref\"],\n _excluded4 = [\"onKeyDown\", \"onChange\", \"onInput\", \"onBlur\", \"onChangeText\", \"onClick\", \"refKey\", \"ref\"];\nuseCombobox.stateChangeTypes = stateChangeTypes$1;\nfunction useCombobox(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n validatePropTypes$1(userProps, useCombobox);\n // Props defaults and destructuring.\n var props = _extends({}, defaultProps$1, userProps);\n var items = props.items,\n scrollIntoView = props.scrollIntoView,\n environment = props.environment,\n getA11yStatusMessage = props.getA11yStatusMessage;\n // Initial state depending on controlled props.\n var _useControlledReducer = useControlledReducer(downshiftUseComboboxReducer, props, getInitialState$1, isDropdownsStateEqual),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n var isOpen = state.isOpen,\n highlightedIndex = state.highlightedIndex,\n selectedItem = state.selectedItem,\n inputValue = state.inputValue;\n\n // Element refs.\n var menuRef = useRef(null);\n var itemRefs = useRef({});\n var inputRef = useRef(null);\n var toggleButtonRef = useRef(null);\n var isInitialMount = useIsInitialMount();\n\n // prevent id re-generation between renders.\n var elementIds = useElementIds(props);\n // used to keep track of how many items we had on previous cycle.\n var previousResultCountRef = useRef();\n // utility callback to get item element.\n var latest = useLatestRef({\n state: state,\n props: props\n });\n var getItemNodeFromIndex = useCallback(function (index) {\n return itemRefs.current[elementIds.getItemId(index)];\n }, [elementIds]);\n\n // Effects.\n // Adds an a11y aria live status message if getA11yStatusMessage is passed.\n useA11yMessageStatus(getA11yStatusMessage, state, [isOpen, highlightedIndex, selectedItem, inputValue], environment);\n // Scroll on highlighted item if change comes from keyboard.\n var shouldScrollRef = useScrollIntoView({\n menuElement: menuRef.current,\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n itemRefs: itemRefs,\n scrollIntoView: scrollIntoView,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n useControlPropsValidator({\n props: props,\n state: state\n });\n // Focus the input on first render if required.\n useEffect(function () {\n var focusOnOpen = getInitialValue$1(props, 'isOpen');\n if (focusOnOpen && inputRef.current) {\n inputRef.current.focus();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n useEffect(function () {\n if (!isInitialMount) {\n previousResultCountRef.current = items.length;\n }\n });\n var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, useCallback(function handleBlur() {\n if (latest.current.state.isOpen) {\n dispatch({\n type: InputBlur,\n selectItem: false\n });\n }\n }, [dispatch, latest]), useMemo(function () {\n return [menuRef, toggleButtonRef, inputRef];\n }, [menuRef.current, toggleButtonRef.current, inputRef.current]));\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getMenuProps');\n // Reset itemRefs on close.\n useEffect(function () {\n if (!isOpen) {\n itemRefs.current = {};\n }\n }, [isOpen]);\n // Reset itemRefs on close.\n useEffect(function () {\n var _inputRef$current;\n if (!isOpen || !(environment != null && environment.document) || !(inputRef != null && (_inputRef$current = inputRef.current) != null && _inputRef$current.focus)) {\n return;\n }\n if (environment.document.activeElement !== inputRef.current) {\n inputRef.current.focus();\n }\n }, [isOpen, environment]);\n\n /* Event handler functions */\n var inputKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowDown,\n altKey: event.altKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowUp,\n altKey: event.altKey\n });\n },\n Home: function Home(event) {\n if (!latest.current.state.isOpen) {\n return;\n }\n event.preventDefault();\n dispatch({\n type: InputKeyDownHome\n });\n },\n End: function End(event) {\n if (!latest.current.state.isOpen) {\n return;\n }\n event.preventDefault();\n dispatch({\n type: InputKeyDownEnd\n });\n },\n Escape: function Escape(event) {\n var latestState = latest.current.state;\n if (latestState.isOpen || latestState.inputValue || latestState.selectedItem || latestState.highlightedIndex > -1) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownEscape\n });\n }\n },\n Enter: function Enter(event) {\n var latestState = latest.current.state;\n // if closed or no highlighted index, do nothing.\n if (!latestState.isOpen || event.which === 229 // if IME composing, wait for next Enter keydown event.\n ) {\n return;\n }\n event.preventDefault();\n dispatch({\n type: InputKeyDownEnter\n });\n },\n PageUp: function PageUp(event) {\n if (latest.current.state.isOpen) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownPageUp\n });\n }\n },\n PageDown: function PageDown(event) {\n if (latest.current.state.isOpen) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownPageDown\n });\n }\n }\n };\n }, [dispatch, latest]);\n\n // Getter props.\n var getLabelProps = useCallback(function (labelProps) {\n return _extends({\n id: elementIds.labelId,\n htmlFor: elementIds.inputId\n }, labelProps);\n }, [elementIds]);\n var getMenuProps = useCallback(function (_temp, _temp2) {\n var _extends2;\n var _ref = _temp === void 0 ? {} : _temp,\n onMouseLeave = _ref.onMouseLeave,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n menuRef.current = menuNode;\n }), _extends2.id = elementIds.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = rest && rest['aria-label'] ? undefined : \"\" + elementIds.labelId, _extends2.onMouseLeave = callAllEventHandlers(onMouseLeave, function () {\n dispatch({\n type: MenuMouseLeave\n });\n }), _extends2), rest);\n }, [dispatch, setGetterPropCallInfo, elementIds]);\n var getItemProps = useCallback(function (_temp3) {\n var _extends3, _ref4;\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n itemProp = _ref3.item,\n indexProp = _ref3.index,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n onMouseMove = _ref3.onMouseMove,\n onMouseDown = _ref3.onMouseDown,\n onClick = _ref3.onClick;\n _ref3.onPress;\n var disabledProp = _ref3.disabled,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded2$1);\n if (disabledProp !== undefined) {\n console.warn('Passing \"disabled\" as an argument to getItemProps is not supported anymore. Please use the isItemDisabled prop from useCombobox.');\n }\n var _latest$current = latest.current,\n latestProps = _latest$current.props,\n latestState = _latest$current.state;\n var _getItemAndIndex = getItemAndIndex(itemProp, indexProp, latestProps.items, 'Pass either item or index to getItemProps!'),\n item = _getItemAndIndex[0],\n index = _getItemAndIndex[1];\n var disabled = latestProps.isItemDisabled(item, index);\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n var itemHandleMouseMove = function itemHandleMouseMove() {\n if (mouseAndTouchTrackers.isTouchEnd || index === latestState.highlightedIndex) {\n return;\n }\n shouldScrollRef.current = false;\n dispatch({\n type: ItemMouseMove,\n index: index,\n disabled: disabled\n });\n };\n var itemHandleClick = function itemHandleClick() {\n dispatch({\n type: ItemClick,\n index: index\n });\n };\n var itemHandleMouseDown = function itemHandleMouseDown(e) {\n return e.preventDefault();\n }; // keep focus on the input after item click select.\n\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (itemNode) {\n if (itemNode) {\n itemRefs.current[elementIds.getItemId(index)] = itemNode;\n }\n }), _extends3['aria-disabled'] = disabled, _extends3['aria-selected'] = index === latestState.highlightedIndex, _extends3.id = elementIds.getItemId(index), _extends3.role = 'option', _extends3), !disabled && (_ref4 = {}, _ref4[onSelectKey] = callAllEventHandlers(customClickHandler, itemHandleClick), _ref4), {\n onMouseMove: callAllEventHandlers(onMouseMove, itemHandleMouseMove),\n onMouseDown: callAllEventHandlers(onMouseDown, itemHandleMouseDown)\n }, rest);\n }, [dispatch, elementIds, latest, mouseAndTouchTrackers, shouldScrollRef]);\n var getToggleButtonProps = useCallback(function (_temp4) {\n var _extends4;\n var _ref5 = _temp4 === void 0 ? {} : _temp4,\n onClick = _ref5.onClick;\n _ref5.onPress;\n var _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n rest = _objectWithoutPropertiesLoose(_ref5, _excluded3);\n var latestState = latest.current.state;\n var toggleButtonHandleClick = function toggleButtonHandleClick() {\n dispatch({\n type: ToggleButtonClick\n });\n };\n return _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends4['aria-controls'] = elementIds.menuId, _extends4['aria-expanded'] = latestState.isOpen, _extends4.id = elementIds.toggleButtonId, _extends4.tabIndex = -1, _extends4), !rest.disabled && _extends({}, {\n onClick: callAllEventHandlers(onClick, toggleButtonHandleClick)\n }), rest);\n }, [dispatch, latest, elementIds]);\n var getInputProps = useCallback(function (_temp5, _temp6) {\n var _extends5;\n var _ref6 = _temp5 === void 0 ? {} : _temp5,\n onKeyDown = _ref6.onKeyDown,\n onChange = _ref6.onChange,\n onInput = _ref6.onInput,\n onBlur = _ref6.onBlur;\n _ref6.onChangeText;\n var onClick = _ref6.onClick,\n _ref6$refKey = _ref6.refKey,\n refKey = _ref6$refKey === void 0 ? 'ref' : _ref6$refKey,\n ref = _ref6.ref,\n rest = _objectWithoutPropertiesLoose(_ref6, _excluded4);\n var _ref7 = _temp6 === void 0 ? {} : _temp6,\n _ref7$suppressRefErro = _ref7.suppressRefError,\n suppressRefError = _ref7$suppressRefErro === void 0 ? false : _ref7$suppressRefErro;\n setGetterPropCallInfo('getInputProps', suppressRefError, refKey, inputRef);\n var latestState = latest.current.state;\n var inputHandleKeyDown = function inputHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n if (key && inputKeyDownHandlers[key]) {\n inputKeyDownHandlers[key](event);\n }\n };\n var inputHandleChange = function inputHandleChange(event) {\n dispatch({\n type: InputChange,\n inputValue: event.target.value\n });\n };\n var inputHandleBlur = function inputHandleBlur(event) {\n /* istanbul ignore else */\n if (environment != null && environment.document && latestState.isOpen && !mouseAndTouchTrackers.isMouseDown) {\n var isBlurByTabChange = event.relatedTarget === null && environment.document.activeElement !== environment.document.body;\n dispatch({\n type: InputBlur,\n selectItem: !isBlurByTabChange\n });\n }\n };\n var inputHandleClick = function inputHandleClick() {\n dispatch({\n type: InputClick\n });\n };\n\n /* istanbul ignore next (preact) */\n var onChangeKey = 'onChange';\n var eventHandlers = {};\n if (!rest.disabled) {\n var _eventHandlers;\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, inputHandleBlur), _eventHandlers.onClick = callAllEventHandlers(onClick, inputHandleClick), _eventHandlers);\n }\n return _extends((_extends5 = {}, _extends5[refKey] = handleRefs(ref, function (inputNode) {\n inputRef.current = inputNode;\n }), _extends5['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIds.menuId, _extends5['aria-expanded'] = latestState.isOpen, _extends5['aria-labelledby'] = rest && rest['aria-label'] ? undefined : elementIds.labelId, _extends5.autoComplete = 'off', _extends5.id = elementIds.inputId, _extends5.role = 'combobox', _extends5.value = latestState.inputValue, _extends5), eventHandlers, rest);\n }, [dispatch, elementIds, environment, inputKeyDownHandlers, latest, mouseAndTouchTrackers, setGetterPropCallInfo]);\n\n // returns\n var toggleMenu = useCallback(function () {\n dispatch({\n type: FunctionToggleMenu\n });\n }, [dispatch]);\n var closeMenu = useCallback(function () {\n dispatch({\n type: FunctionCloseMenu\n });\n }, [dispatch]);\n var openMenu = useCallback(function () {\n dispatch({\n type: FunctionOpenMenu\n });\n }, [dispatch]);\n var setHighlightedIndex = useCallback(function (newHighlightedIndex) {\n dispatch({\n type: FunctionSetHighlightedIndex,\n highlightedIndex: newHighlightedIndex\n });\n }, [dispatch]);\n var selectItem = useCallback(function (newSelectedItem) {\n dispatch({\n type: FunctionSelectItem,\n selectedItem: newSelectedItem\n });\n }, [dispatch]);\n var setInputValue = useCallback(function (newInputValue) {\n dispatch({\n type: FunctionSetInputValue,\n inputValue: newInputValue\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset$1\n });\n }, [dispatch]);\n return {\n // prop getters.\n getItemProps: getItemProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getInputProps: getInputProps,\n getToggleButtonProps: getToggleButtonProps,\n // actions.\n toggleMenu: toggleMenu,\n openMenu: openMenu,\n closeMenu: closeMenu,\n setHighlightedIndex: setHighlightedIndex,\n setInputValue: setInputValue,\n selectItem: selectItem,\n reset: reset,\n // state.\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nvar defaultStateValues = {\n activeIndex: -1,\n selectedItems: []\n};\n\n/**\n * Returns the initial value for a state key in the following order:\n * 1. controlled prop, 2. initial prop, 3. default prop, 4. default\n * value from Downshift.\n *\n * @param {Object} props Props passed to the hook.\n * @param {string} propKey Props key to generate the value for.\n * @returns {any} The initial value for that prop.\n */\nfunction getInitialValue(props, propKey) {\n return getInitialValue$1(props, propKey, defaultStateValues);\n}\n\n/**\n * Returns the default value for a state key in the following order:\n * 1. controlled prop, 2. default prop, 3. default value from Downshift.\n *\n * @param {Object} props Props passed to the hook.\n * @param {string} propKey Props key to generate the value for.\n * @returns {any} The initial value for that prop.\n */\nfunction getDefaultValue(props, propKey) {\n return getDefaultValue$1(props, propKey, defaultStateValues);\n}\n\n/**\n * Gets the initial state based on the provided props. It uses initial, default\n * and controlled props related to state in order to compute the initial value.\n *\n * @param {Object} props Props passed to the hook.\n * @returns {Object} The initial state.\n */\nfunction getInitialState(props) {\n var activeIndex = getInitialValue(props, 'activeIndex');\n var selectedItems = getInitialValue(props, 'selectedItems');\n return {\n activeIndex: activeIndex,\n selectedItems: selectedItems\n };\n}\n\n/**\n * Returns true if dropdown keydown operation is permitted. Should not be\n * allowed on keydown with modifier keys (ctrl, alt, shift, meta), on\n * input element with text content that is either highlighted or selection\n * cursor is not at the starting position.\n *\n * @param {KeyboardEvent} event The event from keydown.\n * @returns {boolean} Whether the operation is allowed.\n */\nfunction isKeyDownOperationPermitted(event) {\n if (event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) {\n return false;\n }\n var element = event.target;\n if (element instanceof HTMLInputElement &&\n // if element is a text input\n element.value !== '' && (\n // and we have text in it\n // and cursor is either not at the start or is currently highlighting text.\n element.selectionStart !== 0 || element.selectionEnd !== 0)) {\n return false;\n }\n return true;\n}\n\n/**\n * Check if a state is equal for taglist, by comparing active index and selected items.\n * Used by useSelect and useCombobox.\n *\n * @param {Object} prevState\n * @param {Object} newState\n * @returns {boolean} Wheather the states are deeply equal.\n */\nfunction isStateEqual(prevState, newState) {\n return prevState.selectedItems === newState.selectedItems && prevState.activeIndex === newState.activeIndex;\n}\nvar propTypes = {\n stateReducer: commonPropTypes.stateReducer,\n itemToKey: commonPropTypes.itemToKey,\n environment: commonPropTypes.environment,\n selectedItems: PropTypes.array,\n initialSelectedItems: PropTypes.array,\n defaultSelectedItems: PropTypes.array,\n getA11yStatusMessage: PropTypes.func,\n activeIndex: PropTypes.number,\n initialActiveIndex: PropTypes.number,\n defaultActiveIndex: PropTypes.number,\n onActiveIndexChange: PropTypes.func,\n onSelectedItemsChange: PropTypes.func,\n keyNavigationNext: PropTypes.string,\n keyNavigationPrevious: PropTypes.string\n};\nvar defaultProps = {\n itemToKey: defaultProps$3.itemToKey,\n stateReducer: defaultProps$3.stateReducer,\n environment: defaultProps$3.environment,\n keyNavigationNext: 'ArrowRight',\n keyNavigationPrevious: 'ArrowLeft'\n};\n\n// eslint-disable-next-line import/no-mutable-exports\nvar validatePropTypes = noop;\n/* istanbul ignore next */\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes = function validatePropTypes(options, caller) {\n PropTypes.checkPropTypes(propTypes, options, 'prop', caller.name);\n };\n}\n\nvar SelectedItemClick = process.env.NODE_ENV !== \"production\" ? '__selected_item_click__' : 0;\nvar SelectedItemKeyDownDelete = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_delete__' : 1;\nvar SelectedItemKeyDownBackspace = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_backspace__' : 2;\nvar SelectedItemKeyDownNavigationNext = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_navigation_next__' : 3;\nvar SelectedItemKeyDownNavigationPrevious = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_navigation_previous__' : 4;\nvar DropdownKeyDownNavigationPrevious = process.env.NODE_ENV !== \"production\" ? '__dropdown_keydown_navigation_previous__' : 5;\nvar DropdownKeyDownBackspace = process.env.NODE_ENV !== \"production\" ? '__dropdown_keydown_backspace__' : 6;\nvar DropdownClick = process.env.NODE_ENV !== \"production\" ? '__dropdown_click__' : 7;\nvar FunctionAddSelectedItem = process.env.NODE_ENV !== \"production\" ? '__function_add_selected_item__' : 8;\nvar FunctionRemoveSelectedItem = process.env.NODE_ENV !== \"production\" ? '__function_remove_selected_item__' : 9;\nvar FunctionSetSelectedItems = process.env.NODE_ENV !== \"production\" ? '__function_set_selected_items__' : 10;\nvar FunctionSetActiveIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_active_index__' : 11;\nvar FunctionReset = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 12;\n\nvar stateChangeTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n DropdownClick: DropdownClick,\n DropdownKeyDownBackspace: DropdownKeyDownBackspace,\n DropdownKeyDownNavigationPrevious: DropdownKeyDownNavigationPrevious,\n FunctionAddSelectedItem: FunctionAddSelectedItem,\n FunctionRemoveSelectedItem: FunctionRemoveSelectedItem,\n FunctionReset: FunctionReset,\n FunctionSetActiveIndex: FunctionSetActiveIndex,\n FunctionSetSelectedItems: FunctionSetSelectedItems,\n SelectedItemClick: SelectedItemClick,\n SelectedItemKeyDownBackspace: SelectedItemKeyDownBackspace,\n SelectedItemKeyDownDelete: SelectedItemKeyDownDelete,\n SelectedItemKeyDownNavigationNext: SelectedItemKeyDownNavigationNext,\n SelectedItemKeyDownNavigationPrevious: SelectedItemKeyDownNavigationPrevious\n});\n\n/* eslint-disable complexity */\nfunction downshiftMultipleSelectionReducer(state, action) {\n var type = action.type,\n index = action.index,\n props = action.props,\n selectedItem = action.selectedItem;\n var activeIndex = state.activeIndex,\n selectedItems = state.selectedItems;\n var changes;\n switch (type) {\n case SelectedItemClick:\n changes = {\n activeIndex: index\n };\n break;\n case SelectedItemKeyDownNavigationPrevious:\n changes = {\n activeIndex: activeIndex - 1 < 0 ? 0 : activeIndex - 1\n };\n break;\n case SelectedItemKeyDownNavigationNext:\n changes = {\n activeIndex: activeIndex + 1 >= selectedItems.length ? -1 : activeIndex + 1\n };\n break;\n case SelectedItemKeyDownBackspace:\n case SelectedItemKeyDownDelete:\n {\n if (activeIndex < 0) {\n break;\n }\n var newActiveIndex = activeIndex;\n if (selectedItems.length === 1) {\n newActiveIndex = -1;\n } else if (activeIndex === selectedItems.length - 1) {\n newActiveIndex = selectedItems.length - 2;\n }\n changes = _extends({\n selectedItems: [].concat(selectedItems.slice(0, activeIndex), selectedItems.slice(activeIndex + 1))\n }, {\n activeIndex: newActiveIndex\n });\n break;\n }\n case DropdownKeyDownNavigationPrevious:\n changes = {\n activeIndex: selectedItems.length - 1\n };\n break;\n case DropdownKeyDownBackspace:\n changes = {\n selectedItems: selectedItems.slice(0, selectedItems.length - 1)\n };\n break;\n case FunctionAddSelectedItem:\n changes = {\n selectedItems: [].concat(selectedItems, [selectedItem])\n };\n break;\n case DropdownClick:\n changes = {\n activeIndex: -1\n };\n break;\n case FunctionRemoveSelectedItem:\n {\n var _newActiveIndex = activeIndex;\n var selectedItemIndex = selectedItems.findIndex(function (item) {\n return props.itemToKey(item) === props.itemToKey(selectedItem);\n });\n if (selectedItemIndex < 0) {\n break;\n }\n if (selectedItems.length === 1) {\n _newActiveIndex = -1;\n } else if (selectedItemIndex === selectedItems.length - 1) {\n _newActiveIndex = selectedItems.length - 2;\n }\n changes = {\n selectedItems: [].concat(selectedItems.slice(0, selectedItemIndex), selectedItems.slice(selectedItemIndex + 1)),\n activeIndex: _newActiveIndex\n };\n break;\n }\n case FunctionSetSelectedItems:\n {\n var newSelectedItems = action.selectedItems;\n changes = {\n selectedItems: newSelectedItems\n };\n break;\n }\n case FunctionSetActiveIndex:\n {\n var _newActiveIndex2 = action.activeIndex;\n changes = {\n activeIndex: _newActiveIndex2\n };\n break;\n }\n case FunctionReset:\n changes = {\n activeIndex: getDefaultValue(props, 'activeIndex'),\n selectedItems: getDefaultValue(props, 'selectedItems')\n };\n break;\n default:\n throw new Error('Reducer called without proper action type.');\n }\n return _extends({}, state, changes);\n}\n\nvar _excluded = [\"refKey\", \"ref\", \"onClick\", \"onKeyDown\", \"selectedItem\", \"index\"],\n _excluded2 = [\"refKey\", \"ref\", \"onKeyDown\", \"onClick\", \"preventKeyAction\"];\nuseMultipleSelection.stateChangeTypes = stateChangeTypes;\nfunction useMultipleSelection(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n validatePropTypes(userProps, useMultipleSelection);\n // Props defaults and destructuring.\n var props = _extends({}, defaultProps, userProps);\n var getA11yStatusMessage = props.getA11yStatusMessage,\n environment = props.environment,\n keyNavigationNext = props.keyNavigationNext,\n keyNavigationPrevious = props.keyNavigationPrevious;\n\n // Reducer init.\n var _useControlledReducer = useControlledReducer$1(downshiftMultipleSelectionReducer, props, getInitialState, isStateEqual),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n var activeIndex = state.activeIndex,\n selectedItems = state.selectedItems;\n\n // Refs.\n var isInitialMount = useIsInitialMount();\n var dropdownRef = useRef(null);\n var selectedItemRefs = useRef();\n selectedItemRefs.current = [];\n var latest = useLatestRef({\n state: state,\n props: props\n });\n\n // Effects.\n // Adds an a11y aria live status message if getA11yStatusMessage is passed.\n useA11yMessageStatus(getA11yStatusMessage, state, [activeIndex, selectedItems], environment);\n // Sets focus on active item.\n useEffect(function () {\n if (isInitialMount) {\n return;\n }\n if (activeIndex === -1 && dropdownRef.current) {\n dropdownRef.current.focus();\n } else if (selectedItemRefs.current[activeIndex]) {\n selectedItemRefs.current[activeIndex].focus();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeIndex]);\n useControlPropsValidator({\n props: props,\n state: state\n });\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getDropdownProps');\n\n // Event handler functions.\n var selectedItemKeyDownHandlers = useMemo(function () {\n var _ref;\n return _ref = {}, _ref[keyNavigationPrevious] = function () {\n dispatch({\n type: SelectedItemKeyDownNavigationPrevious\n });\n }, _ref[keyNavigationNext] = function () {\n dispatch({\n type: SelectedItemKeyDownNavigationNext\n });\n }, _ref.Delete = function Delete() {\n dispatch({\n type: SelectedItemKeyDownDelete\n });\n }, _ref.Backspace = function Backspace() {\n dispatch({\n type: SelectedItemKeyDownBackspace\n });\n }, _ref;\n }, [dispatch, keyNavigationNext, keyNavigationPrevious]);\n var dropdownKeyDownHandlers = useMemo(function () {\n var _ref2;\n return _ref2 = {}, _ref2[keyNavigationPrevious] = function (event) {\n if (isKeyDownOperationPermitted(event)) {\n dispatch({\n type: DropdownKeyDownNavigationPrevious\n });\n }\n }, _ref2.Backspace = function Backspace(event) {\n if (isKeyDownOperationPermitted(event)) {\n dispatch({\n type: DropdownKeyDownBackspace\n });\n }\n }, _ref2;\n }, [dispatch, keyNavigationPrevious]);\n\n // Getter props.\n var getSelectedItemProps = useCallback(function (_temp) {\n var _extends2;\n var _ref3 = _temp === void 0 ? {} : _temp,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n onClick = _ref3.onClick,\n onKeyDown = _ref3.onKeyDown,\n selectedItemProp = _ref3.selectedItem,\n indexProp = _ref3.index,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded);\n var latestState = latest.current.state;\n var _getItemAndIndex = getItemAndIndex(selectedItemProp, indexProp, latestState.selectedItems, 'Pass either item or index to getSelectedItemProps!'),\n index = _getItemAndIndex[1];\n var isFocusable = index > -1 && index === latestState.activeIndex;\n var selectedItemHandleClick = function selectedItemHandleClick() {\n dispatch({\n type: SelectedItemClick,\n index: index\n });\n };\n var selectedItemHandleKeyDown = function selectedItemHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n if (key && selectedItemKeyDownHandlers[key]) {\n selectedItemKeyDownHandlers[key](event);\n }\n };\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (selectedItemNode) {\n if (selectedItemNode) {\n selectedItemRefs.current.push(selectedItemNode);\n }\n }), _extends2.tabIndex = isFocusable ? 0 : -1, _extends2.onClick = callAllEventHandlers(onClick, selectedItemHandleClick), _extends2.onKeyDown = callAllEventHandlers(onKeyDown, selectedItemHandleKeyDown), _extends2), rest);\n }, [dispatch, latest, selectedItemKeyDownHandlers]);\n var getDropdownProps = useCallback(function (_temp2, _temp3) {\n var _extends3;\n var _ref4 = _temp2 === void 0 ? {} : _temp2,\n _ref4$refKey = _ref4.refKey,\n refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,\n ref = _ref4.ref,\n onKeyDown = _ref4.onKeyDown,\n onClick = _ref4.onClick,\n _ref4$preventKeyActio = _ref4.preventKeyAction,\n preventKeyAction = _ref4$preventKeyActio === void 0 ? false : _ref4$preventKeyActio,\n rest = _objectWithoutPropertiesLoose(_ref4, _excluded2);\n var _ref5 = _temp3 === void 0 ? {} : _temp3,\n _ref5$suppressRefErro = _ref5.suppressRefError,\n suppressRefError = _ref5$suppressRefErro === void 0 ? false : _ref5$suppressRefErro;\n setGetterPropCallInfo('getDropdownProps', suppressRefError, refKey, dropdownRef);\n var dropdownHandleKeyDown = function dropdownHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n if (key && dropdownKeyDownHandlers[key]) {\n dropdownKeyDownHandlers[key](event);\n }\n };\n var dropdownHandleClick = function dropdownHandleClick() {\n dispatch({\n type: DropdownClick\n });\n };\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (dropdownNode) {\n if (dropdownNode) {\n dropdownRef.current = dropdownNode;\n }\n }), _extends3), !preventKeyAction && {\n onKeyDown: callAllEventHandlers(onKeyDown, dropdownHandleKeyDown),\n onClick: callAllEventHandlers(onClick, dropdownHandleClick)\n }, rest);\n }, [dispatch, dropdownKeyDownHandlers, setGetterPropCallInfo]);\n\n // returns\n var addSelectedItem = useCallback(function (selectedItem) {\n dispatch({\n type: FunctionAddSelectedItem,\n selectedItem: selectedItem\n });\n }, [dispatch]);\n var removeSelectedItem = useCallback(function (selectedItem) {\n dispatch({\n type: FunctionRemoveSelectedItem,\n selectedItem: selectedItem\n });\n }, [dispatch]);\n var setSelectedItems = useCallback(function (newSelectedItems) {\n dispatch({\n type: FunctionSetSelectedItems,\n selectedItems: newSelectedItems\n });\n }, [dispatch]);\n var setActiveIndex = useCallback(function (newActiveIndex) {\n dispatch({\n type: FunctionSetActiveIndex,\n activeIndex: newActiveIndex\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset\n });\n }, [dispatch]);\n return {\n getSelectedItemProps: getSelectedItemProps,\n getDropdownProps: getDropdownProps,\n addSelectedItem: addSelectedItem,\n removeSelectedItem: removeSelectedItem,\n setSelectedItems: setSelectedItems,\n setActiveIndex: setActiveIndex,\n reset: reset,\n selectedItems: selectedItems,\n activeIndex: activeIndex\n };\n}\n\nexport { Downshift as default, resetIdCounter, useCombobox, useMultipleSelection, useSelect };\n","import React, { useState, useMemo, useRef, useEffect } from \"react\";\nimport { useSelect } from \"downshift\";\nimport styles from \"./MultiSelect.module.css\";\n\nexport interface MultiSelectOption {\n value: string | number;\n label: string;\n disabled?: boolean;\n}\n\nexport interface MultiSelectProps {\n id?: string;\n name?: string;\n options: MultiSelectOption[];\n value?: (string | number)[];\n preferredValues?: (string | number)[];\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n onChange?: (values: (string | number)[]) => void;\n}\n\nconst MultiSelect: React.FC<MultiSelectProps> = ({\n id,\n name,\n options,\n value = [],\n preferredValues = [],\n placeholder = \"Select...\",\n disabled = false,\n className,\n onChange,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [inputValue, setInputValue] = useState(\"\");\n const inputRef = useRef<HTMLInputElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n const preferredSet = useMemo(\n () => new Set(preferredValues),\n [preferredValues],\n );\n\n const filteredOptions = useMemo(() => {\n const filtered = options.filter((option) =>\n option.label.toLowerCase().includes(inputValue.toLowerCase()),\n );\n\n const preferred = filtered.filter((opt) => preferredSet.has(opt.value));\n const others = filtered.filter((opt) => !preferredSet.has(opt.value));\n\n return { preferred, others };\n }, [options, inputValue, preferredSet]);\n\n const selectedOptions = useMemo(\n () => options.filter((opt) => value.includes(opt.value)),\n [options, value],\n );\n\n const {\n isOpen: downshiftIsOpen,\n getToggleButtonProps,\n getMenuProps,\n getItemProps,\n highlightedIndex,\n } = useSelect({\n items: [...filteredOptions.preferred, ...filteredOptions.others],\n selectedItem: null,\n onSelectedItemChange: ({ selectedItem: newSelectedItem }) => {\n if (newSelectedItem) {\n const newValue = newSelectedItem.value;\n const newValues = value.includes(newValue)\n ? value.filter((v) => v !== newValue)\n : [...value, newValue];\n onChange?.(newValues);\n }\n },\n });\n\n useEffect(() => {\n setIsOpen(downshiftIsOpen);\n }, [downshiftIsOpen]);\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n containerRef.current &&\n !containerRef.current.contains(event.target as Node)\n ) {\n setIsOpen(false);\n setInputValue(\"\");\n }\n };\n\n if (isOpen) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [isOpen]);\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(e.target.value);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === \"Escape\") {\n setIsOpen(false);\n setInputValue(\"\");\n inputRef.current?.blur();\n }\n };\n\n const handleMenuClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n };\n\n const handleMenuMouseDown = (e: React.MouseEvent) => {\n e.stopPropagation();\n };\n\n const removeValue = (valueToRemove: string | number) => {\n const newValues = value.filter((v) => v !== valueToRemove);\n onChange?.(newValues);\n };\n\n const toggleDropdown = () => {\n if (!disabled) {\n setIsOpen(!isOpen);\n }\n };\n\n return (\n <div\n ref={containerRef}\n className={`${styles.multiSelect} ${className ?? \"\"}`}\n >\n <div className={`${styles.control} ${disabled ? styles.disabled : \"\"}`}>\n <div className={styles.valueContainer}>\n {selectedOptions.map((option) => (\n <div key={option.value} className={styles.multiValue}>\n <span className={styles.multiValueLabel}>{option.label}</span>\n <button\n type=\"button\"\n className={styles.multiValueRemove}\n onClick={() => removeValue(option.value)}\n disabled={disabled}\n >\n ×\n </button>\n </div>\n ))}\n <input\n ref={inputRef}\n id={id}\n name={name}\n className={styles.input}\n value={inputValue}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n onFocus={() => !disabled && setIsOpen(true)}\n placeholder={selectedOptions.length === 0 ? placeholder : \"\"}\n disabled={disabled}\n autoComplete=\"off\"\n />\n </div>\n <button\n type=\"button\"\n className={styles.dropdownIndicator}\n onClick={toggleDropdown}\n disabled={disabled}\n {...getToggleButtonProps()}\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"6,9 12,15 18,9\" />\n </svg>\n </button>\n </div>\n\n <div\n className={`${styles.menu} ${isOpen ? styles.menuOpen : \"\"}`}\n {...getMenuProps()}\n onClick={handleMenuClick}\n onMouseDown={handleMenuMouseDown}\n >\n <div className={styles.menuList}>\n {filteredOptions.preferred.length > 0 && (\n <>\n <div className={styles.groupHeading}>Preferred</div>\n {filteredOptions.preferred.map((option, index) => {\n const isLastInPreferred =\n index === filteredOptions.preferred.length - 1;\n const isLastOverall =\n isLastInPreferred && filteredOptions.others.length === 0;\n return (\n <div\n key={option.value}\n className={`${styles.option} ${\n highlightedIndex === index ? styles.optionFocused : \"\"\n } ${\n value.includes(option.value) ? styles.optionSelected : \"\"\n } ${option.disabled ? styles.optionDisabled : \"\"} ${\n isLastOverall ? styles.optionLast : \"\"\n }`}\n onClick={handleMenuClick}\n {...getItemProps({\n item: option,\n index,\n disabled: option.disabled,\n })}\n >\n <span className={styles.optionLabel}>{option.label}</span>\n </div>\n );\n })}\n </>\n )}\n\n {filteredOptions.others.length > 0 && (\n <>\n {filteredOptions.preferred.length > 0 && (\n <>\n <div className={styles.groupSeparator} />\n <div className={styles.groupHeading}>All</div>\n </>\n )}\n {filteredOptions.others.map((option, index) => {\n const actualIndex = filteredOptions.preferred.length + index;\n const isLastInOthers =\n index === filteredOptions.others.length - 1;\n return (\n <div\n key={option.value}\n className={`${styles.option} ${\n highlightedIndex === actualIndex\n ? styles.optionFocused\n : \"\"\n } ${\n value.includes(option.value) ? styles.optionSelected : \"\"\n } ${option.disabled ? styles.optionDisabled : \"\"} ${\n isLastInOthers ? styles.optionLast : \"\"\n }`}\n onClick={handleMenuClick}\n {...getItemProps({\n item: option,\n index: actualIndex,\n disabled: option.disabled,\n })}\n >\n <span className={styles.optionLabel}>{option.label}</span>\n </div>\n );\n })}\n </>\n )}\n {filteredOptions.preferred.length === 0 &&\n filteredOptions.others.length === 0 && (\n <div className={styles.noOptions}>No options found</div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default MultiSelect;\n","import React from \"react\";\nimport styles from \"./SelectField.module.css\";\n\nexport interface SelectFieldOption {\n value: string | number;\n label: string;\n disabled?: boolean;\n}\n\nexport interface SelectFieldProps {\n id?: string;\n name?: string;\n value?: string | number;\n options: SelectFieldOption[];\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n onChange?: (value: string | number) => void;\n onBlur?: (event: React.FocusEvent<HTMLSelectElement>) => void;\n onFocus?: (event: React.FocusEvent<HTMLSelectElement>) => void;\n}\n\nconst SelectField: React.FC<SelectFieldProps> = ({\n id,\n name,\n value,\n options = [],\n placeholder = \"Select an option\",\n disabled = false,\n className = \"\",\n onChange,\n onBlur,\n onFocus,\n}) => {\n const handleChange = (event: React.ChangeEvent<HTMLSelectElement>) => {\n const selectedValue = event.target.value;\n const option = options.find(\n (opt) => opt.value.toString() === selectedValue\n );\n\n if (option && onChange) {\n onChange(option.value);\n }\n };\n\n return (\n <div className={`${styles.selectField} ${className}`}>\n <select\n id={id}\n name={name}\n value={value || \"\"}\n disabled={disabled}\n onChange={handleChange}\n onBlur={onBlur}\n onFocus={onFocus}\n className={styles.select}\n >\n {placeholder && (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n )}\n {options.map((option, i) => (\n <option key={`${i}`} value={option.value} disabled={option.disabled}>\n {option.label}\n </option>\n ))}\n </select>\n </div>\n );\n};\n\nexport default SelectField;\n\n","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20600%20600'%20xml:space='preserve'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20fill='currentColor'%20d='M353.286,163.919c16.464,0,29.815,13.351,29.815,29.822%20c0,16.467-13.351,29.819-29.815,29.819c-16.47,0-29.822-13.352-29.822-29.819C323.464,177.27,336.816,163.919,353.286,163.919%20L353.286,163.919z%20M245.838,163.919c16.47,0,29.822,13.351,29.822,29.822c0,16.467-13.352,29.819-29.822,29.819%20c-16.471,0-29.822-13.352-29.822-29.819C216.016,177.27,229.367,163.919,245.838,163.919L245.838,163.919z%20M354.093,338.178%20c22.575,0,40.874,18.299,40.874,40.87c0,22.571-18.299,40.87-40.874,40.87c-22.568,0-40.867-18.299-40.867-40.87%20C313.226,356.477,331.525,338.178,354.093,338.178L354.093,338.178z%20M245.024,338.178c22.575,0,40.874,18.299,40.874,40.87%20c0,22.571-18.299,40.87-40.874,40.87c-22.568,0-40.874-18.299-40.874-40.87C204.151,356.477,222.457,338.178,245.024,338.178%20L245.024,338.178z%20M406.906,244.769c22.575,0,40.874,18.299,40.874,40.87s-18.299,40.87-40.874,40.87%20c-22.568,0-40.867-18.299-40.867-40.87S384.338,244.769,406.906,244.769L406.906,244.769z%20M192.211,244.769%20c22.568,0,40.874,18.299,40.874,40.87s-18.306,40.87-40.874,40.87c-22.575,0-40.874-18.299-40.874-40.87%20S169.636,244.769,192.211,244.769L192.211,244.769z%20M299.559,244.769c22.575,0,40.874,18.299,40.874,40.87%20s-18.299,40.87-40.874,40.87c-22.569,0-40.868-18.299-40.868-40.87S276.99,244.769,299.559,244.769L299.559,244.769z%20M452.99,131.334H146.127c-32.625,37.291-50.332,84.551-50.332,134.107c0,112.541,91.226,203.765,203.764,203.765%20c112.544,0,203.764-91.223,203.764-203.765C503.323,215.889,485.608,168.622,452.99,131.334L452.99,131.334z%20M471.276,105.109%20l-4.672-4.998h-334.09l-4.672,4.998c-40.739,43.6-63.267,100.662-63.267,160.332c0,129.775,105.21,234.988,234.984,234.988%20c129.774,0,234.984-105.213,234.984-234.988C534.542,205.771,512.015,148.709,471.276,105.109L471.276,105.109z%20M480.204,60.027%20H118.914C61.952,110.158,26,183.596,26,265.441C26,416.523,148.48,539,299.559,539c151.085,0,273.558-122.477,273.558-273.559%20C573.117,183.596,537.165,110.158,480.204,60.027z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2022.0.1,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20600%20600'%20enable-background='new%200%200%20600%20600'%20xml:space='preserve'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20fill='currentColor'%20d='M228.887,396.793c20.779,0,37.62,16.841,37.62,37.617%20c0,20.773-16.841,37.617-37.62,37.617c-20.773,0-37.613-16.844-37.613-37.617C191.274,413.634,208.115,396.793,228.887,396.793%20L228.887,396.793z%20M366.03,396.793c20.773,0,37.614,16.841,37.614,37.617c0,20.773-16.841,37.617-37.614,37.617%20c-20.779,0-37.62-16.844-37.62-37.617C328.41,413.634,345.251,396.793,366.03,396.793L366.03,396.793z%20M228.375,325.684%20c-29.03,0-55.41,11.868-74.52,30.976c-41.566,41.573-41.566,113.923,0,155.497c19.111,19.111,45.49,30.979,74.52,30.979h138.168%20c29.023,0,55.41-11.868,74.521-30.979c41.565-41.566,41.565-113.928,0-155.497c-18.336-18.336-43.379-30.003-71.019-30.916%20c63.723-27.868,105.151-90.836,105.151-160.733c0-42.14-13.276-74.632-37.316-108.359H161.794%20c-24.033,33.747-37.309,66.2-37.309,108.359c0,69.852,41.359,132.758,105.012,160.674H228.375L228.375,325.684z%20M366.543,357.791%20H228.375c-20.163,0-38.513,8.265-51.824,21.569c-29.023,29.027-29.023,81.069,0,110.096c13.311,13.308,31.654,21.569,51.824,21.569%20h138.168c20.17,0,38.513-8.261,51.824-21.569c29.023-29.027,29.023-81.069,0-110.096%20C405.056,366.057,386.706,357.791,366.543,357.791L366.543,357.791z%20M421.17,88.762c14.523,23.018,21.915,49.024,21.915,76.248%20c0,79.121-64.131,143.245-143.248,143.245S156.595,244.127,156.595,165.01c0-27.234,7.392-53.222,21.915-76.248H421.17%20L421.17,88.762z%20M331.075,225.95c11.726,0,21.236,9.511,21.236,21.236c0,11.733-9.511,21.24-21.236,21.24%20c-11.733,0-21.236-9.507-21.236-21.24C309.839,235.461,319.342,225.95,331.075,225.95L331.075,225.95z%20M268.605,225.95%20c11.726,0,21.243,9.511,21.243,21.236c0,11.733-9.518,21.24-21.243,21.24c-11.726,0-21.236-9.507-21.236-21.24%20C247.369,235.461,256.879,225.95,268.605,225.95L268.605,225.95z%20M236.882,163.754c11.726,0,21.243,9.508,21.243,21.236%20c0,11.729-9.518,21.24-21.243,21.24c-11.726,0-21.236-9.511-21.236-21.24C215.646,173.261,225.156,163.754,236.882,163.754%20L236.882,163.754z%20M299.837,163.754c11.732,0,21.243,9.508,21.243,21.236c0,11.729-9.511,21.24-21.243,21.24%20c-11.726,0-21.236-9.511-21.236-21.24C278.6,173.261,288.111,163.754,299.837,163.754L299.837,163.754z%20M362.798,163.754%20c11.726,0,21.236,9.508,21.236,21.236c0,11.729-9.511,21.24-21.236,21.24c-11.733,0-21.236-9.511-21.236-21.24%20C341.562,173.261,351.065,163.754,362.798,163.754L362.798,163.754z%20M332.079,116.228c6.86,0,12.417,5.561,12.417,12.417%20c0,6.86-5.558,12.425-12.417,12.425s-12.424-5.566-12.424-12.425C319.654,121.79,325.219,116.228,332.079,116.228L332.079,116.228z%20M267.601,116.228c6.86,0,12.425,5.561,12.425,12.417c0,6.86-5.565,12.425-12.425,12.425c-6.86,0-12.417-5.566-12.417-12.425%20C255.184,121.79,260.742,116.228,267.601,116.228L267.601,116.228z%20M177.153,7.87C129.219,7.87,90,47.086,90,95.02v408.83%20c0,47.934,39.219,87.15,87.153,87.15h246.024c47.934,0,87.147-39.216,87.147-87.15V95.02c0-47.934-39.213-87.15-87.147-87.15%20H177.153z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2022.0.1,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20600%20600'%20enable-background='new%200%200%20600%20600'%20xml:space='preserve'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20fill='currentColor'%20d='M407.111,334.214c16.317,0,29.543,13.226,29.543,29.543%20c0,16.313-13.227,29.543-29.543,29.543c-16.31,0-29.536-13.229-29.536-29.543C377.576,347.44,390.802,334.214,407.111,334.214%20L407.111,334.214z%20M198.69,334.214c16.317,0,29.543,13.226,29.543,29.543c0,16.313-13.226,29.543-29.543,29.543%20s-29.543-13.229-29.543-29.543C169.147,347.44,182.373,334.214,198.69,334.214L198.69,334.214z%20M227.94,180.772%20c24.971,0,45.213,20.242,45.213,45.213c0,24.967-20.243,45.213-45.213,45.213s-45.213-20.245-45.213-45.213%20C182.727,201.014,202.969,180.772,227.94,180.772L227.94,180.772z%20M377.868,180.772c24.968,0,45.213,20.242,45.213,45.213%20c0,24.967-20.245,45.213-45.213,45.213c-24.974,0-45.213-20.245-45.213-45.213C332.655,201.014,352.894,180.772,377.868,180.772%20L377.868,180.772z%20M302.899,361.142c24.974,0,45.22,20.243,45.22,45.213s-20.245,45.213-45.22,45.213%20c-24.968,0-45.21-20.243-45.21-45.213S277.931,361.142,302.899,361.142L302.899,361.142z%20M302.899,100.142%20c-111.485,0-201.855,90.37-201.855,201.858c0,111.489,90.37,201.859,201.855,201.859c111.491,0,201.865-90.37,201.865-201.859%20C504.764,190.512,414.391,100.142,302.899,100.142L302.899,100.142z%20M302.899,69.21C174.338,69.21,70.113,173.44,70.113,302%20c0,128.561,104.226,232.79,232.787,232.79c128.56,0,232.793-104.229,232.793-232.79C535.692,173.44,431.459,69.21,302.899,69.21%20L302.899,69.21z%20M302.899,31C153.234,31,31.902,152.328,31.902,302c0,149.669,121.331,271,270.997,271%20c149.672,0,271.006-121.331,271.006-271C573.906,152.328,452.571,31,302.899,31z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2022.0.1,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20600%20600'%20enable-background='new%200%200%20600%20600'%20xml:space='preserve'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20fill='currentColor'%20d='M246.063,132.777c18.959,0,34.335,15.373,34.335,34.332%20c0,18.965-15.376,34.335-34.335,34.335c-18.961,0-34.332-15.37-34.332-34.335C211.731,148.15,227.102,132.777,246.063,132.777%20L246.063,132.777z%20M357.555,132.777c18.962,0,34.332,15.373,34.332,34.332c0,18.962-15.37,34.335-34.332,34.335%20c-18.961,0-34.331-15.373-34.331-34.335C323.224,148.15,338.594,132.777,357.555,132.777L357.555,132.777z%20M226.875,253.708%20c9.286,0,16.811,7.525,16.811,16.808c0,9.286-7.525,16.811-16.811,16.811c-9.283,0-16.808-7.525-16.808-16.811%20C210.066,261.234,217.592,253.708,226.875,253.708L226.875,253.708z%20M371.359,253.708c9.286,0,16.815,7.525,16.815,16.808%20c0,9.286-7.529,16.811-16.815,16.811c-9.279,0-16.808-7.525-16.808-16.811C354.552,261.234,362.08,253.708,371.359,253.708%20L371.359,253.708z%20M236.304,421.639c19.179,0,34.731,15.548,34.731,34.731c0,19.179-15.552,34.731-34.731,34.731%20c-19.179,0-34.731-15.552-34.731-34.731C201.573,437.187,217.126,421.639,236.304,421.639L236.304,421.639z%20M362.924,421.639%20c19.179,0,34.728,15.548,34.728,34.731c0,19.179-15.549,34.731-34.728,34.731c-19.186,0-34.735-15.552-34.735-34.731%20C328.189,437.187,343.738,421.639,362.924,421.639L362.924,421.639z%20M235.828,355.985c-26.801,0-51.159,10.958-68.804,28.6%20c-38.377,38.383-38.377,105.184,0,143.567c17.645,17.645,42.004,28.602,68.804,28.602h127.568c26.803,0,51.159-10.957,68.804-28.602%20c38.377-38.377,38.377-105.19,0-143.567c-16.91-16.91-39.994-27.679-65.481-28.542c57.148-25.011,97.033-82.036,97.033-148.405%20c0-88.133-70.984-161.938-161.945-161.938c-90.131,0-161.935,73.009-161.935,161.938c0,66.315,39.821,123.302,96.895,148.348%20H235.828L235.828,355.985z%20M159.969,344.666c-6.378,4.464-12.357,9.488-17.866,14.999c-52.137,52.134-52.137,141.271-0.003,193.407%20C167.008,577.982,200.589,592,235.828,592h127.568c35.24,0,68.823-14.018,93.729-38.927c52.137-52.134,52.137-141.276,0-193.41%20c-4.761-4.761-9.874-9.155-15.287-13.143c36.523-36.834,57.159-86.685,57.159-138.883c0-108.993-88.188-197.184-197.19-197.184%20c-108.977,0-197.181,88.207-197.181,197.184C104.627,258.933,124.557,307.996,159.969,344.666L159.969,344.666z%20M363.396,385.629%20H235.828c-18.617,0-35.559,7.631-47.846,19.914c-26.797,26.8-26.797,74.85,0,101.65c12.287,12.286,29.225,19.914,47.846,19.914%20h127.568c18.623,0,35.559-7.628,47.849-19.914c26.797-26.8,26.797-74.85,0-101.65C398.955,393.259,382.013,385.629,363.396,385.629%20L363.396,385.629z%20M301.808,75.381c-73.808,0-132.256,59.869-132.256,132.256c0,72.383,58.448,132.256,132.256,132.256%20c73.815,0,132.265-59.87,132.265-132.256C434.073,135.248,375.622,75.381,301.808,75.381L301.808,75.381z%20M301.808,271.807%20c13.689,0,24.784,11.098,24.784,24.781c0,13.686-11.094,24.78-24.784,24.78c-13.686,0-24.777-11.094-24.777-24.78%20C277.03,282.905,288.122,271.807,301.808,271.807z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20600%20600'%20xml:space='preserve'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20fill='currentColor'%20d='M460.592,75.695C501.794,116.897,525,172.38,525,230.692v136.191%20c0,58.315-23.206,113.795-64.408,154.997c-86.029,86.032-228.158,86.032-314.186,0C105.203,480.679,82,425.199,82,366.884V230.692%20c0-58.312,23.203-113.795,64.405-154.997C232.433-10.337,374.563-10.337,460.592,75.695L460.592,75.695z%20M434.493,101.794%20c-71.625-71.628-190.365-71.628-261.989,0c-33.068,33.068-53.597,78.696-53.597,128.898v136.191%20c0,50.205,20.529,95.834,53.597,128.898c71.624,71.628,190.364,71.628,261.989,0c33.067-33.064,53.596-78.693,53.596-128.898%20V230.692C488.089,180.49,467.56,134.862,434.493,101.794L434.493,101.794z%20M195.699,124.99%20c-27.134,27.137-43.982,64.557-43.982,105.702v136.191c0,41.146,16.848,78.568,43.982,105.702%20c58.806,58.814,156.791,58.814,215.598,0c27.138-27.134,43.982-64.557,43.982-105.702V230.692%20c0-41.146-16.845-78.566-43.982-105.702C352.491,66.18,254.506,66.18,195.699,124.99L195.699,124.99z%20M303.497,401.594%20c-17.304,0-31.334,14.029-31.334,31.337c0,17.304,14.03,31.333,31.334,31.333c17.307,0,31.337-14.029,31.337-31.333%20C334.834,415.623,320.804,401.594,303.497,401.594L303.497,401.594z%20M223.204,305.993c-17.308,0-31.338,14.03-31.338,31.334%20c0,17.308,14.03,31.337,31.338,31.337c17.307,0,31.337-14.029,31.337-31.337C254.541,320.023,240.511,305.993,223.204,305.993%20L223.204,305.993z%20M223.204,208.881c-17.308,0-31.338,14.026-31.338,31.334c0,17.307,14.03,31.337,31.338,31.337%20c17.307,0,31.337-14.03,31.337-31.337C254.541,222.907,240.511,208.881,223.204,208.881L223.204,208.881z%20M383.796,305.993%20c-17.308,0-31.338,14.03-31.338,31.334c0,17.308,14.03,31.337,31.338,31.337c17.307,0,31.333-14.029,31.333-31.337%20C415.129,320.023,401.103,305.993,383.796,305.993L383.796,305.993z%20M383.796,208.881c-17.308,0-31.338,14.026-31.338,31.334%20c0,17.307,14.03,31.337,31.338,31.337c17.307,0,31.333-14.03,31.333-31.337C415.129,222.907,401.103,208.881,383.796,208.881%20L383.796,208.881z%20M354.769,129.256c-12.585,0-22.786,10.201-22.786,22.786s10.2,22.786,22.786,22.786%20c12.585,0,22.786-10.201,22.786-22.786S367.354,129.256,354.769,129.256L354.769,129.256z%20M252.228,129.256%20c-12.585,0-22.786,10.201-22.786,22.786s10.2,22.786,22.786,22.786c12.585,0,22.786-10.201,22.786-22.786%20S264.813,129.256,252.228,129.256z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M17%2012.8108C17%2013.1901%2016.898%2013.5661%2016.6687%2013.8682C15.2357%2015.7558%2012.784%2017%2010%2017C7.21614%2017%204.76431%2015.7557%203.33134%2013.8681C3.10199%2013.566%203%2013.1901%203%2012.8108V7.18924C3%206.80993%203.10199%206.43401%203.33134%206.13189C4.76431%204.24428%207.21614%203%2010%203C12.784%203%2015.2357%204.24423%2016.6687%206.13183C16.898%206.43395%2017%206.80986%2017%207.18918V12.8108ZM10%207C10.5522%207%2011%206.55231%2011%206C11%205.44769%2010.5522%205%2010%205C9.44775%205%209%205.44769%209%206C9%206.55231%209.44775%207%2010%207ZM6.5%2011.5C7.32837%2011.5%208%2010.8284%208%2010C8%209.17157%207.32837%208.5%206.5%208.5C5.67163%208.5%205%209.17157%205%2010C5%2010.8284%205.67163%2011.5%206.5%2011.5ZM11.5%2013.5C11.5%2014.3284%2010.8284%2015%2010%2015C9.17163%2015%208.5%2014.3284%208.5%2013.5C8.5%2012.6716%209.17163%2012%2010%2012C10.8284%2012%2011.5%2012.6716%2011.5%2013.5ZM13.5%2011.5C14.3284%2011.5%2015%2010.8284%2015%2010C15%209.17157%2014.3284%208.5%2013.5%208.5C12.6716%208.5%2012%209.17157%2012%2010C12%2010.8284%2012.6716%2011.5%2013.5%2011.5Z'%20fill='currentColor'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10%201C13.8106%201%2017.1182%202.95715%2018.7732%205.82595C18.9298%206.09752%2019%206.40872%2019%206.72224V13.2778C19%2013.5913%2018.9298%2013.9025%2018.7732%2014.1741C17.1182%2017.0429%2013.8106%2019%2010%2019C6.18943%2019%202.88177%2017.0429%201.22682%2014.1741C1.07016%2013.9025%201%2013.5913%201%2013.2778V6.72224C1%206.40872%201.07016%206.09752%201.22682%205.82595C2.88177%202.95715%206.18943%201%2010%201ZM17.6711%205.64554C17.8973%205.95002%2018%206.32536%2018%206.70467V13.2953C18%2013.6746%2017.8973%2014.05%2017.6711%2014.3545C16.0408%2016.5488%2013.214%2018%2010%2018C6.78594%2018%203.95915%2016.5488%202.32887%2014.3544C2.10268%2014.0499%202%2013.6746%202%2013.2953V6.70472C2%206.32542%202.10268%205.95008%202.32887%205.64561C3.95915%203.45116%206.78594%202%2010%202C13.214%202%2016.0408%203.45116%2017.6711%205.64554Z'%20fill='currentColor'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2022.0.1,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20600%20600'%20enable-background='new%200%200%20600%20600'%20xml:space='preserve'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20fill='currentColor'%20d='M395.264,259.724c21.074,0,38.157,17.083,38.157,38.158%20c0,21.074-17.083,38.164-38.157,38.164c-21.075,0-38.165-17.09-38.165-38.164C357.099,276.806,374.189,259.724,395.264,259.724%20L395.264,259.724z%20M206.743,259.724c21.075,0,38.158,17.083,38.158,38.158c0,21.074-17.083,38.164-38.158,38.164%20c-21.074,0-38.164-17.09-38.164-38.164C168.579,276.806,185.669,259.724,206.743,259.724L206.743,259.724z%20M317.092,89.755v29.841%20h-32.183V89.755c-67.083,5.031-127.459,41.741-163.107,98.796v223.399c35.648,57.055,96.024,93.765,163.107,98.802v-29.841h32.183%20v29.841c67.084-5.038,127.459-41.747,163.114-98.802V188.551C444.551,131.496,384.176,94.787,317.092,89.755L317.092,89.755z%20M301,56.962c-85.858,0-165.124,45.192-209.061,118.921l-2.328,3.902v90.784H58.612v59.364h30.999v90.784l2.328,3.902%20C135.876,498.348,215.143,543.539,301,543.539c85.857,0,165.123-45.184,209.06-118.921l2.328-3.902v-90.784h31.006v-59.364h-31.006%20v-90.784l-2.328-3.902C466.124,102.147,386.857,56.962,301,56.962L301,56.962z%20M301,18.251c-155.741,0-282,126.253-282,282%20c0,155.741,126.26,282,282,282c155.747,0,282-126.26,282-282C583,144.504,456.747,18.251,301,18.251z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2022.0.1,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20600%20600'%20enable-background='new%200%200%20600%20600'%20xml:space='preserve'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20fill='currentColor'%20d='M261.067,178.239c0,7.551,2.198,14.579,5.985,20.491l20.49-20.491%20l-20.49-20.491C263.265,163.659,261.067,170.694,261.067,178.239L261.067,178.239z%20M298.999,216.171%20c-7.545,0-14.58-2.198-20.488-5.981l20.488-20.491l20.491,20.491C313.581,213.972,306.55,216.171,298.999,216.171L298.999,216.171z%20M336.934,178.239c0-7.545-2.198-14.58-5.985-20.491l-20.491,20.491l20.491,20.491C334.736,192.818,336.934,185.79,336.934,178.239%20L336.934,178.239z%20M319.49,146.295l-20.491,20.484l-20.488-20.484c5.907-3.79,12.943-5.988,20.488-5.988%20C306.55,140.307,313.581,142.505,319.49,146.295L319.49,146.295z%20M298.999,124.101c29.864,0,54.141,24.281,54.141,54.138%20c0,29.864-24.277,54.145-54.141,54.145c-29.858,0-54.138-24.281-54.138-54.145C244.861,148.382,269.141,124.101,298.999,124.101%20L298.999,124.101z%20M261.067,417.863c0,7.551,2.198,14.579,5.985,20.491l20.49-20.491l-20.49-20.491%20C263.265,403.283,261.067,410.319,261.067,417.863L261.067,417.863z%20M298.999,455.795c-7.545,0-14.58-2.198-20.488-5.981%20l20.488-20.491l20.491,20.491C313.581,453.597,306.55,455.795,298.999,455.795L298.999,455.795z%20M336.934,417.863%20c0-7.545-2.198-14.58-5.985-20.491l-20.491,20.491l20.491,20.491C334.736,432.443,336.934,425.415,336.934,417.863L336.934,417.863z%20M319.49,385.92l-20.491,20.484l-20.488-20.484c5.907-3.79,12.943-5.988,20.488-5.988C306.55,379.931,313.581,382.13,319.49,385.92%20L319.49,385.92z%20M298.999,363.725c29.864,0,54.141,24.281,54.141,54.138c0,29.864-24.277,54.145-54.141,54.145%20c-29.858,0-54.138-24.281-54.138-54.145C244.861,388.007,269.141,363.725,298.999,363.725L298.999,363.725z%20M180.188,239.928%20c30.094,0,54.49,24.4,54.49,54.494c0,30.095-24.396,54.494-54.49,54.494c-30.095,0-54.494-24.399-54.494-54.494%20C125.694,264.327,150.093,239.928,180.188,239.928L180.188,239.928z%20M417.816,239.928c30.094,0,54.494,24.4,54.494,54.494%20c0,30.095-24.4,54.494-54.494,54.494c-30.095,0-54.494-24.399-54.494-54.494C363.323,264.327,387.722,239.928,417.816,239.928%20L417.816,239.928z%20M298.999,86.511c116.835,0,211.544,94.708,211.544,211.54c0,116.84-94.708,211.54-211.544,211.54%20c-116.836,0-211.54-94.708-211.54-211.54C87.458,181.219,182.163,86.511,298.999,86.511L298.999,86.511z%20M298.999,54.1%20c134.73,0,243.955,109.225,243.955,243.951c0,134.727-109.225,243.952-243.955,243.952c-134.727,0-243.952-109.225-243.952-243.952%20C55.047,163.324,164.271,54.1,298.999,54.1L298.999,54.1z%20M298.999,14.053C455.846,14.053,583,141.2,583,298.051%20c0,156.844-127.154,283.999-284.001,283.999C142.151,582.049,15,454.895,15,298.051C15,141.2,142.151,14.053,298.999,14.053z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2022.0.1,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20600%20600'%20enable-background='new%200%200%20600%20600'%20xml:space='preserve'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20fill='currentColor'%20d='M449.833,45.125C531.521,95.36,586,185.558,586,288.497%20c0,157.672-127.825,285.497-285.503,285.497C142.822,573.994,15,446.169,15,288.497C15,185.558,69.476,95.36,151.167,45.125H449.833%20L449.833,45.125z%20M193.639,256.195c-29.46,0-53.343,23.89-53.343,53.35c0,29.46,23.882,53.343,53.343,53.343%20c29.46,0,53.346-23.882,53.346-53.343C246.985,280.085,223.099,256.195,193.639,256.195L193.639,256.195z%20M407.365,256.195%20c-29.46,0-53.35,23.89-53.35,53.35c0,29.46,23.89,53.343,53.35,53.343c29.46,0,53.343-23.882,53.343-53.343%20C460.708,280.085,436.826,256.195,407.365,256.195L407.365,256.195z%20M442.248,88.407l-4.308-3.053H163.052l-4.304,3.053%20c-64.954,46.088-103.49,120.43-103.49,200.09c0,135.438,109.801,245.239,245.239,245.239c135.437,0,245.245-109.801,245.245-245.239%20C545.742,208.837,507.203,134.495,442.248,88.407L442.248,88.407z%20M427.607,117.937H173.391%20c-54.002,40.321-85.547,103.142-85.547,170.56c0,117.449,95.204,212.656,212.653,212.656c117.455,0,212.663-95.207,212.663-212.656%20C513.16,221.08,481.609,158.258,427.607,117.937L427.607,117.937z%20M300.497,215.65c-11.384,0-20.614,9.226-20.614,20.613%20c0,11.387,9.23,20.614,20.614,20.614c11.387,0,20.62-9.226,20.62-20.614C321.117,224.876,311.883,215.65,300.497,215.65%20L300.497,215.65z%20M300.497,146.275c-11.384,0-20.614,9.226-20.614,20.614c0,11.387,9.23,20.62,20.614,20.62%20c11.387,0,20.62-9.233,20.62-20.62C321.117,155.501,311.883,146.275,300.497,146.275L300.497,146.275z%20M381.735,146.275%20c-11.387,0-20.613,9.226-20.613,20.614c0,11.387,9.226,20.62,20.613,20.62c11.387,0,20.613-9.233,20.613-20.62%20C402.348,155.501,393.122,146.275,381.735,146.275L381.735,146.275z%20M219.265,146.275c-11.387,0-20.616,9.226-20.616,20.614%20c0,11.387,9.23,20.62,20.616,20.62c11.387,0,20.617-9.233,20.617-20.62C239.882,155.501,230.652,146.275,219.265,146.275%20L219.265,146.275z%20M300.497,400.094c-18.881,0-34.186,15.309-34.186,34.189c0,18.887,15.305,34.189,34.186,34.189%20c18.887,0,34.189-15.302,34.189-34.189C334.686,415.403,319.384,400.094,300.497,400.094L300.497,400.094z%20M381.735,417.199%20c-11.387,0-20.613,9.233-20.613,20.62c0,11.38,9.226,20.614,20.613,20.614c11.387,0,20.613-9.233,20.613-20.614%20C402.348,426.433,393.122,417.199,381.735,417.199L381.735,417.199z%20M219.265,417.199c-11.387,0-20.616,9.233-20.616,20.62%20c0,11.38,9.23,20.614,20.616,20.614c11.387,0,20.617-9.233,20.617-20.614C239.882,426.433,230.652,417.199,219.265,417.199z'/%3e%3c/svg%3e\"","import ICON_IEC_62196_T2 from \"../assets/connectors/type2.svg\";\nimport ICON_IEC_62196_T2_COMBO from \"../assets/connectors/combo2.svg\";\nimport ICON_IEC_62196_T1 from \"../assets/connectors/type1.svg\";\nimport ICON_IEC_62196_T1_COMBO from \"../assets/connectors/combo1.svg\";\nimport ICON_IEC_62196_T3 from \"../assets/connectors/type3.svg\";\nimport ICON_IEC_62196_T3A from \"../assets/connectors/type3a.svg\";\nimport ICON_SCHUKO from \"../assets/connectors/schuko.svg\";\nimport ICON_CHADEMO from \"../assets/connectors/chademo.svg\";\nimport ICON_CATARC from \"../assets/connectors/catarc.svg\";\n\nexport default {\n // IEC 62196 Types\n IEC_62196_T1: ICON_IEC_62196_T1,\n IEC_62196_T1_COMBO: ICON_IEC_62196_T1_COMBO,\n IEC_62196_T2: ICON_IEC_62196_T2,\n IEC_62196_T2_COMBO: ICON_IEC_62196_T2_COMBO,\n IEC_62196_T3: ICON_IEC_62196_T3,\n IEC_62196_T3A: ICON_IEC_62196_T3A,\n IEC_62196_T3B: ICON_IEC_62196_T3,\n IEC_62196_T3C: ICON_IEC_62196_T3, // Using T3 as fallback\n\n // DC Fast Charging\n CHADEMO: ICON_CHADEMO,\n CHAOJI: ICON_CHADEMO, // Using CHADEMO as fallback for CHAOJI\n CATARC: ICON_CATARC,\n GBT_AC: ICON_CATARC, // Using CATARC as fallback for GBT AC\n GBT_DC: ICON_CATARC, // Using CATARC as fallback for GBT DC\n\n // AC Domestic Types (using SCHUKO as fallback for most domestic types)\n SCHUKO: ICON_SCHUKO,\n DOMESTIC_A: ICON_SCHUKO,\n DOMESTIC_B: ICON_SCHUKO,\n DOMESTIC_C: ICON_SCHUKO,\n DOMESTIC_D: ICON_SCHUKO,\n DOMESTIC_E: ICON_SCHUKO,\n DOMESTIC_F: ICON_SCHUKO,\n DOMESTIC_G: ICON_SCHUKO,\n DOMESTIC_H: ICON_SCHUKO,\n DOMESTIC_I: ICON_SCHUKO,\n DOMESTIC_J: ICON_SCHUKO,\n DOMESTIC_K: ICON_SCHUKO,\n DOMESTIC_L: ICON_SCHUKO,\n DOMESTIC_M: ICON_SCHUKO,\n DOMESTIC_N: ICON_SCHUKO,\n DOMESTIC_O: ICON_SCHUKO,\n\n // IEC 60309 Industrial Types (using SCHUKO as fallback)\n IEC_60309_2_SINGLE_16: ICON_SCHUKO,\n IEC_60309_2_THREE_16: ICON_SCHUKO,\n IEC_60309_2_THREE_32: ICON_SCHUKO,\n IEC_60309_2_THREE_64: ICON_SCHUKO,\n\n // NEMA Types (using SCHUKO as fallback)\n NEMA_5_20: ICON_SCHUKO,\n NEMA_6_30: ICON_SCHUKO,\n NEMA_6_50: ICON_SCHUKO,\n NEMA_10_30: ICON_SCHUKO,\n NEMA_10_50: ICON_SCHUKO,\n NEMA_14_30: ICON_SCHUKO,\n NEMA_14_50: ICON_SCHUKO,\n\n // Pantograph Types (using CHADEMO as fallback)\n PANTOGRAPH_BOTTOM_UP: ICON_CHADEMO,\n PANTOGRAPH_TOP_DOWN: ICON_CHADEMO,\n\n // Tesla Types (using CHADEMO as fallback)\n TESLA_R: ICON_CHADEMO,\n TESLA_S: ICON_CHADEMO,\n\n // Legacy CONNECTOR_STANDARD_TYPE mappings\n CONNECTOR_STANDARD_TYPE_CHADEMO: ICON_CHADEMO,\n CONNECTOR_STANDARD_TYPE_CHAOJI: ICON_CHADEMO,\n CONNECTOR_STANDARD_TYPE_CATARC: ICON_CATARC,\n CONNECTOR_STANDARD_TYPE_SCHUKO: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_A: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_B: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_C: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_D: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_E: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_F: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_G: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_H: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_I: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_J: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_K: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_L: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_M: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_N: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_DOMESTIC_O: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_GBT_AC: ICON_CATARC,\n CONNECTOR_STANDARD_TYPE_GBT_DC: ICON_CATARC,\n CONNECTOR_STANDARD_TYPE_IEC_60309_2_SINGLE_16: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_IEC_60309_2_THREE_16: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_IEC_60309_2_THREE_32: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_IEC_60309_2_THREE_64: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_IEC_62196_T1: ICON_IEC_62196_T1,\n CONNECTOR_STANDARD_TYPE_IEC_62196_T1_COMBO: ICON_IEC_62196_T1_COMBO,\n CONNECTOR_STANDARD_TYPE_IEC_62196_T2: ICON_IEC_62196_T2,\n CONNECTOR_STANDARD_TYPE_IEC_62196_T2_COMBO: ICON_IEC_62196_T2_COMBO,\n CONNECTOR_STANDARD_TYPE_IEC_62196_T3A: ICON_IEC_62196_T3A,\n CONNECTOR_STANDARD_TYPE_IEC_62196_T3C: ICON_IEC_62196_T3,\n CONNECTOR_STANDARD_TYPE_NEMA_5_20: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_NEMA_6_30: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_NEMA_6_50: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_NEMA_10_30: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_NEMA_10_50: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_NEMA_14_30: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_NEMA_14_50: ICON_SCHUKO,\n CONNECTOR_STANDARD_TYPE_PANTOGRAPH_BOTTOM_UP: ICON_CHADEMO,\n CONNECTOR_STANDARD_TYPE_PANTOGRAPH_TOP_DOWN: ICON_CHADEMO,\n CONNECTOR_STANDARD_TYPE_TESLA_R: ICON_CHADEMO,\n CONNECTOR_STANDARD_TYPE_TESLA_S: ICON_CHADEMO,\n};\n","export const defaultFilter = {\n minPower: 7,\n operator: [],\n status: [],\n publishingMode: \"\",\n connectorTypes: [],\n chargingAccessibility: \"ALL\",\n noAdditionalCharges: false,\n powerType: undefined,\n operatorOnly: \"\",\n};\n\nexport function hasFilters(filter) {\n const hasFilters =\n (filter.minPower && filter.minPower !== defaultFilter.minPower) ||\n filter?.status?.length ||\n filter?.connectorTypes?.length ||\n (filter?.chargingAccessibility &&\n filter?.chargingAccessibility !== defaultFilter.chargingAccessibility) ||\n filter?.operator?.length ||\n filter?.powerType ||\n filter?.partyId ||\n filter?.noAdditionalCharges ||\n filter?.operatorOnly;\n\n return !!hasFilters;\n}\n","import React, { useEffect, useReducer } from \"react\";\n\nimport styles from \"./filters.module.css\";\nimport Checkbox from \"../../components/Checkbox/Checkbox\";\nimport Button from \"../../components/Button/Button\";\nimport Range from \"../../components/Range/Range\";\nimport MultiSelect from \"../../components/MultiSelect/MultiSelect\";\nimport SelectField from \"../../components/SelectField/SelectField\";\nimport { useMapContext } from \"../../contexts/Map\";\nimport connectorIcons from \"../../components/connectorIcons\";\nimport { useStackContext } from \"../../components/Stack/Stack\";\nimport { defaultFilter } from \"../../utils/filters\";\n\n// confirm if this a correct,\nconst powerRanges = [\n {\n label: 7,\n value: 7,\n },\n {\n label: 11,\n value: 11,\n },\n {\n label: 22,\n value: 22,\n },\n {\n label: 43,\n value: 43,\n },\n {\n label: 50,\n value: 50,\n },\n {\n label: 100,\n value: 100,\n },\n {\n label: 150,\n value: 150,\n },\n {\n label: 200,\n value: 200,\n },\n {\n label: \"250+\",\n value: 250,\n },\n];\n\nconst toggleOption = (\n action: \"remove\" | \"add\",\n existingFilters: string[],\n optionFilters: string[],\n) => {\n switch (action) {\n case \"remove\":\n return existingFilters.filter(\n (filter) => !optionFilters.includes(filter),\n );\n case \"add\":\n return Array.from(new Set([...existingFilters, ...optionFilters]));\n }\n};\n\nfunction useLocalState(initialState) {\n return useReducer((currentState, updatedState) => {\n return { ...currentState, ...updatedState };\n }, initialState);\n}\n\nexport default function FiltersScreen() {\n const {\n setFilters: applyFilters,\n t,\n filters: contextFilters,\n filterConfiguration,\n options,\n } = useMapContext();\n const [filters, setFilters] = useLocalState(defaultFilter);\n\n const { setView: setParentView } = useStackContext();\n\n const showOperatorFilter =\n options.version === \"v2\" && filterConfiguration?.operators?.length > 1;\n\n useEffect(() => {\n setFilters(contextFilters);\n }, []);\n\n useEffect(() => {\n applyFilters(filters);\n }, [filters]);\n\n return (\n <>\n <div className={styles.headerContainer}>\n <div className={styles.header}>{t(\"filters.header\")}</div>\n </div>\n\n <div className={styles.container}>\n <button\n onClick={() => {\n setFilters(defaultFilter);\n applyFilters(defaultFilter);\n }}\n className={styles.actionLinkClearAll}\n >\n {t(\"filters.clearAll\")}\n </button>\n <div className={styles.optionsGroup}>\n <div className={styles.heading}>{t(\"filters.onlyShow\")}</div>\n <label htmlFor=\"dsChargers\" className={styles.rowLabel}>\n <div className={styles.label}>{t(\"filters.dcChargers\")}</div>\n <Checkbox\n id=\"dsChargers\"\n checked={filters.powerType === \"dc\"}\n onChange={(checked) => {\n setFilters({\n powerType: checked ? \"dc\" : undefined,\n });\n }}\n />\n </label>\n\n {options.version !== \"v2\" && (\n <label htmlFor=\"efluxChargers\" className={styles.rowLabel}>\n <div className={styles.label}>{t(\"filters.efluxChargers\")}</div>\n <Checkbox\n id=\"efluxChargers\"\n checked={filters.partyId === \"EFL\"}\n onChange={(checked) => {\n setFilters({\n partyId: checked ? \"EFL\" : undefined,\n });\n }}\n />\n </label>\n )}\n\n {(options.version !== \"v2\" ||\n filterConfiguration?.showNoAdditionalFeeFilter) && (\n <label htmlFor=\"noAdditionalFee\" className={styles.rowLabel}>\n <div className={styles.label}>{t(\"filters.noAdditionalFee\")}</div>\n <Checkbox\n id=\"noAdditionalFee\"\n checked={filters.noAdditionalCharges}\n onChange={(checked) => {\n setFilters({\n noAdditionalCharges: checked ? true : undefined,\n });\n }}\n />\n </label>\n )}\n\n {filterConfiguration.showOperatorOnly && options.version === \"v2\" && (\n <label htmlFor=\"operatorOnly\" className={styles.rowLabel}>\n <div\n className={styles.label}\n >{`Show '${filterConfiguration.showOperatorOnly}' only`}</div>\n <Checkbox\n id=\"operatorOnly\"\n checked={\n filters.operatorOnly === filterConfiguration.showOperatorOnly\n }\n onChange={(checked) => {\n setFilters({\n operatorOnly: checked\n ? filterConfiguration.showOperatorOnly\n : undefined,\n });\n }}\n />\n </label>\n )}\n </div>\n\n {showOperatorFilter && (\n <div className={styles.optionsGroup}>\n <div className={styles.heading}>{\"Operator\"}</div>\n <MultiSelect\n id=\"operator\"\n preferredValues={options.preferredOperators}\n value={filters.operator}\n options={[\n ...(filterConfiguration?.operators?.map((operator: any) => ({\n value: operator?.connectionId,\n label: operator?.name,\n selected: filters.operators?.includes(operator?.connectionId),\n })) || []),\n ]}\n placeholder=\"Select operator\"\n onChange={(value) => {\n setFilters({\n operator: value,\n });\n }}\n />\n </div>\n )}\n\n {filterConfiguration?.showPublishingModeFilter &&\n filterConfiguration?.publishingMode?.length > 1 && (\n <div className={styles.optionsGroup}>\n <div className={styles.heading}>{\"Visibility\"}</div>\n <SelectField\n id=\"publishingMode\"\n value={filters.publishingMode}\n options={[\n { value: \"\", label: \"All locations\" },\n {\n value: \"PUBLISHING_MODE_PUBLIC\",\n label: \"Public locations\",\n },\n {\n value: \"PUBLISHING_MODE_PRIVATE\",\n label: \"Private locations\",\n },\n ]}\n onChange={(value) => {\n setFilters({ publishingMode: value });\n }}\n />\n </div>\n )}\n\n <div className={styles.optionsGroup}>\n <div className={styles.heading}>{t(\"filters.statusHeading\")}</div>\n\n <label htmlFor=\"statusAvailable\" className={styles.rowLabel}>\n <div className={styles.label}>\n <div className={styles.dot} style={{ background: \"#33AC19\" }} />\n {t(\"filters.available\")}\n </div>\n <Checkbox\n id=\"statusAvailable\"\n name=\"status\"\n checked={filters.status.includes(\"AVAILABLE\")}\n onChange={(checked) => {\n setFilters({\n status: toggleOption(\n checked ? \"add\" : \"remove\",\n filters.status,\n [\"AVAILABLE\"],\n ),\n });\n }}\n />\n </label>\n\n <label htmlFor=\"statusCharging\" className={styles.rowLabel}>\n <div className={styles.label}>\n <div className={styles.dot} style={{ background: \"#005CEE\" }} />\n {t(\"filters.charging\")}\n </div>\n <Checkbox\n id=\"statusCharging\"\n checked={filters.status.includes(\"CHARGING\")}\n onChange={(checked) => {\n setFilters({\n status: toggleOption(\n checked ? \"add\" : \"remove\",\n filters.status,\n [\"CHARGING\"],\n ),\n });\n }}\n />\n </label>\n\n <label htmlFor=\"statusError\" className={styles.rowLabel}>\n <div className={styles.label}>\n <div className={styles.dot} style={{ background: \"#EB001B\" }} />\n {t(\"filters.notAvailable\")}\n </div>\n <Checkbox\n id=\"statusError\"\n name=\"status\"\n checked={\n filters.status.includes(\"INOPERATIVE\") &&\n filters.status.includes(\"UNKNOWN\")\n }\n onChange={(checked) => {\n setFilters({\n status: toggleOption(\n checked ? \"add\" : \"remove\",\n filters.status,\n [\"INOPERATIVE\", \"UNKNOWN\"],\n ),\n });\n }}\n />\n </label>\n </div>\n\n <div className={styles.optionsGroup}>\n <div className={styles.heading}>{t(\"filters.chargingPower\")}</div>\n <Range\n value={filters.minPower}\n onChange={(value) => {\n setFilters({ minPower: value });\n }}\n ticks={powerRanges}\n />\n </div>\n\n <div className={styles.optionsGroup}>\n <div className={styles.heading}>{t(\"filters.connectorType\")}</div>\n\n <label htmlFor=\"type1\" className={styles.rowLabel}>\n <div className={styles.label}>\n <img\n src={connectorIcons.IEC_62196_T1}\n className={styles.connectorIcon}\n />\n Type 1 (Yazaki)\n </div>\n <Checkbox\n id=\"type1\"\n checked={filters.connectorTypes.includes(\"IEC_62196_T1\")}\n onChange={(checked) => {\n setFilters({\n connectorTypes: checked\n ? [...filters.connectorTypes, \"IEC_62196_T1\"]\n : filters.connectorTypes.filter(\n (s) => s !== \"IEC_62196_T1\",\n ),\n });\n }}\n />\n </label>\n\n <label htmlFor=\"type2\" className={styles.rowLabel}>\n <div className={styles.label}>\n <img\n src={connectorIcons.IEC_62196_T2}\n className={styles.connectorIcon}\n />\n Type 2 (Mennekes)\n </div>\n <Checkbox\n id=\"type2\"\n checked={filters.connectorTypes.includes(\"IEC_62196_T2\")}\n onChange={(checked) => {\n setFilters({\n connectorTypes: checked\n ? [...filters.connectorTypes, \"IEC_62196_T2\"]\n : filters.connectorTypes.filter(\n (s) => s !== \"IEC_62196_T2\",\n ),\n });\n }}\n />\n </label>\n <label htmlFor=\"type3\" className={styles.rowLabel}>\n <div className={styles.label}>\n <img\n src={connectorIcons.IEC_62196_T3}\n className={styles.connectorIcon}\n />\n Type 3 (Le Grand)\n </div>\n <Checkbox\n id=\"type3\"\n checked={filters.connectorTypes.includes(\"IEC_62196_T3A\")}\n onChange={(checked) => {\n setFilters({\n connectorTypes: checked\n ? [...filters.connectorTypes, \"IEC_62196_T3A\"]\n : filters.connectorTypes.filter(\n (s) => s !== \"IEC_62196_T3A\",\n ),\n });\n }}\n />\n </label>\n <label htmlFor=\"CHAdeMo\" className={styles.rowLabel}>\n <div className={styles.label}>\n <img\n src={connectorIcons.CHADEMO}\n className={styles.connectorIcon}\n />\n CHAdeMo\n </div>\n <Checkbox\n id=\"CHAdeMo\"\n checked={filters.connectorTypes.includes(\"CHADEMO\")}\n onChange={(checked) => {\n setFilters({\n connectorTypes: checked\n ? [...filters.connectorTypes, \"CHADEMO\"]\n : filters.connectorTypes.filter((s) => s !== \"CHADEMO\"),\n });\n }}\n />\n </label>\n <label htmlFor=\"domestic\" className={styles.rowLabel}>\n <div className={styles.label}>\n <img\n src={connectorIcons.DOMESTIC_F}\n className={styles.connectorIcon}\n />\n Domestic\n </div>\n <Checkbox\n id=\"domestic\"\n checked={filters.connectorTypes.includes(\"DOMESTIC_F\")}\n onChange={(checked) => {\n setFilters({\n connectorTypes: checked\n ? [...filters.connectorTypes, \"DOMESTIC_F\"]\n : filters.connectorTypes.filter((s) => s !== \"DOMESTIC_F\"),\n });\n }}\n />\n </label>\n <label htmlFor=\"combo\" className={styles.rowLabel}>\n <div className={styles.label}>\n <img\n src={connectorIcons.IEC_62196_T2_COMBO}\n className={styles.connectorIcon}\n />\n Combo\n </div>\n <Checkbox\n id=\"combo\"\n checked={filters.connectorTypes.includes(\"IEC_62196_T2_COMBO\")}\n onChange={(checked) => {\n setFilters({\n connectorTypes: checked\n ? [...filters.connectorTypes, \"IEC_62196_T2_COMBO\"]\n : filters.connectorTypes.filter(\n (s) => s !== \"IEC_62196_T2_COMBO\",\n ),\n });\n }}\n />\n </label>\n </div>\n\n {filterConfiguration?.showVehicleAvailabilityFilter && (\n <div className={styles.optionsGroup}>\n <div className={styles.heading}>\n {t(\"filters.chargingAccessibility\")}\n </div>\n <SelectField\n id=\"chargingAccessibility\"\n value={filters.chargingAccessibility || \"ALL\"}\n options={[\n { value: \"ALL\", label: t(\"filters.accessibilityAll\") },\n { value: \"TESLA\", label: t(\"filters.accessibilityTesla\") },\n ]}\n onChange={(value) => {\n setFilters({\n chargingAccessibility: value,\n });\n }}\n />\n </div>\n )}\n </div>\n </>\n );\n}\n","import React, { useEffect } from \"react\";\n\nimport styles from \"./LocationPlaceholder.module.css\";\n\nexport default function LocationPlaceholder() {\n return (\n <div className={styles.container}>\n {/* put in place holders */}\n <div className={styles.header} />\n\n <div className={styles.divider} style={{ marginTop: '15px', marginBottom: '23px' }} />\n\n <div className={styles.iconLine} style={{ width: '60%' }} />\n <div className={styles.iconLine} style={{ width: '45%' }} />\n <div className={styles.iconLine} style={{ width: '50%' }} />\n\n <div className={styles.divider} />\n\n <div className={styles.iconLine} style={{ width: '50%' }} />\n <div className={styles.iconLine} style={{ width: '62%' }} />\n\n <div className={styles.priceLine} />\n\n <div className={styles.divider} />\n\n <div className={styles.iconLine} style={{ width: '50%' }} />\n <div className={styles.iconLine} style={{ width: '57%' }} />\n\n <div className={styles.priceLine} style={{ width: '30%' }} />\n </div>\n );\n}\n\n","import React from \"react\";\n\nexport function ChevronLeft() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 320 512\"\n fill=\"currentColor\"\n >\n <path d=\"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\" />\n </svg>\n );\n}\n\nexport function ChevronRight() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 320 512\"\n fill=\"currentColor\"\n >\n <path d=\"M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\" />\n </svg>\n );\n}\n\nexport function Info() {\n return (\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g>\n <path d=\"M8 0.25C3.72009 0.25 0.25 3.72134 0.25 8C0.25 12.2812 3.72009 15.75 8 15.75C12.2799 15.75 15.75 12.2812 15.75 8C15.75 3.72134 12.2799 0.25 8 0.25ZM8 14.25C4.54588 14.25 1.75 11.4553 1.75 8C1.75 4.54703 4.546 1.75 8 1.75C11.4528 1.75 14.25 4.54597 14.25 8C14.25 11.4541 11.4553 14.25 8 14.25ZM8 3.6875C8.72487 3.6875 9.3125 4.27513 9.3125 5C9.3125 5.72487 8.72487 6.3125 8 6.3125C7.27513 6.3125 6.6875 5.72487 6.6875 5C6.6875 4.27513 7.27513 3.6875 8 3.6875ZM9.75 11.625C9.75 11.8321 9.58209 12 9.375 12H6.625C6.41791 12 6.25 11.8321 6.25 11.625V10.875C6.25 10.6679 6.41791 10.5 6.625 10.5H7V8.5H6.625C6.41791 8.5 6.25 8.33209 6.25 8.125V7.375C6.25 7.16791 6.41791 7 6.625 7H8.625C8.83209 7 9 7.16791 9 7.375V10.5H9.375C9.58209 10.5 9.75 10.6679 9.75 10.875V11.625Z\" />\n </g>\n </svg>\n );\n}\n\n","import React from \"react\";\n\nimport styles from \"./SidebarContainer.module.css\";\n\nexport default function SideBarContainer({ children }) {\n return <div className={styles.container}>{children}</div>;\n}\n\n","import SideBarContainer from \"../SidebarContainer/SidebarContainer\";\nimport styles from \"./Debug.module.css\";\n\nexport default function Debug({ location }) {\n return (\n <div className={styles.container}>\n <SideBarContainer>\n <div>\n <h3>Debug: {location.name}</h3>\n </div>\n <div style={{ marginBottom: \"5px\" }}>\n <button\n onClick={() => {\n navigator.clipboard.writeText(JSON.stringify(location, null, 2));\n }}\n >\n Copy location\n </button>\n </div>\n <div className={styles.content}>\n {location.evses.map((evse) => {\n return (\n <div className={styles.evse}>\n <div className={styles.connectorHeader}>\n Evse: {evse.evseId || evse.evse_id}\n </div>\n <div>\n {evse.connectors.map((connector, i) => {\n return (\n <div>\n <div className={styles.connectorHeader}>\n Connector #{i}\n </div>\n <pre className={styles.code}>\n {JSON.stringify(\n connector.tariff || Array.isArray(location.tariffs)\n ? location.tariffs?.find((t) =>\n connector.tariff_ids.includes(t.id),\n )\n : null,\n null,\n 2,\n )}\n </pre>\n </div>\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n </SideBarContainer>\n </div>\n );\n}\n","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='18'%20height='16'%20viewBox='0%200%2018%2016'%20fill='none'%3e%3cg%20clip-path='url(%23clip0_480_2466)'%3e%3cpath%20d='M3.76781%207H5.0925L4.81812%208.71156C4.77812%208.85969%204.9075%209%205.07875%209C5.17188%209%205.26156%208.95719%205.31063%208.88313L7.40219%205.78062C7.50531%205.62469%207.37656%205.42875%207.17031%205.42875H5.88219L6.14094%204.295C6.18625%204.14625%206.05781%204.00031%205.88219%204.00031H4.36438C4.23%204.00031%204.11656%204.08719%204.09875%204.20375L3.50187%206.735C3.48094%206.87531%203.60594%207%203.76781%207ZM17.5%204H17V2.5C17%202.22375%2016.7763%202%2016.5%202C16.2237%202%2016%202.22375%2016%202.5V4H15V2.5C15%202.22375%2014.7762%202%2014.5%202C14.2238%202%2014%202.22375%2014%202.5V4H13.5C13.2238%204%2013%204.22375%2013%204.5V6C13%207.1175%2013.7381%208.05281%2014.75%208.37281V11.625C14.75%2012.1075%2014.3575%2012.5%2013.875%2012.5C13.3925%2012.5%2013%2012.1075%2013%2011.625V10.75C13%209.23344%2011.7666%208%2010.25%208H10V1.5C10%200.671562%209.32844%200%208.5%200H2.5C1.67156%200%201%200.671562%201%201.5V14.5H0.25C0.111875%2014.5%200%2014.6119%200%2014.75V15.75C0%2015.8881%200.111875%2016%200.25%2016H10.75C10.8881%2016%2011%2015.8881%2011%2015.75V14.75C11%2014.6119%2010.8881%2014.5%2010.75%2014.5H10V9.5H10.25C10.9394%209.5%2011.5%2010.0606%2011.5%2010.75V11.625C11.5%2012.9347%2012.5653%2014%2013.875%2014C15.1847%2014%2016.25%2012.9347%2016.25%2011.625V8.37281C17.2619%208.05281%2018%207.1175%2018%206V4.5C18%204.22375%2017.7763%204%2017.5%204ZM8.5%2014.5H2.5V1.5H8.5V14.5ZM16.5%206C16.5%206.55125%2016.0513%207%2015.5%207C14.9487%207%2014.5%206.55125%2014.5%206V5.5H16.5V6Z'%20fill='black'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_480_2466'%3e%3crect%20width='18'%20height='16'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='14'%20height='16'%20viewBox='0%200%2014%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_480_2468)'%3e%3cpath%20d='M4%204.625V3.375C4%203.16875%204.16875%203%204.375%203H5.625C5.83125%203%206%203.16875%206%203.375V4.625C6%204.83125%205.83125%205%205.625%205H4.375C4.16875%205%204%204.83125%204%204.625ZM8.375%205H9.625C9.83125%205%2010%204.83125%2010%204.625V3.375C10%203.16875%209.83125%203%209.625%203H8.375C8.16875%203%208%203.16875%208%203.375V4.625C8%204.83125%208.16875%205%208.375%205ZM4.375%208H5.625C5.83125%208%206%207.83125%206%207.625V6.375C6%206.16875%205.83125%206%205.625%206H4.375C4.16875%206%204%206.16875%204%206.375V7.625C4%207.83125%204.16875%208%204.375%208ZM8.375%208H9.625C9.83125%208%2010%207.83125%2010%207.625V6.375C10%206.16875%209.83125%206%209.625%206H8.375C8.16875%206%208%206.16875%208%206.375V7.625C8%207.83125%208.16875%208%208.375%208ZM6%2010.625V9.375C6%209.16875%205.83125%209%205.625%209H4.375C4.16875%209%204%209.16875%204%209.375V10.625C4%2010.8313%204.16875%2011%204.375%2011H5.625C5.83125%2011%206%2010.8313%206%2010.625ZM8.375%2011H9.625C9.83125%2011%2010%2010.8313%2010%2010.625V9.375C10%209.16875%209.83125%209%209.625%209H8.375C8.16875%209%208%209.16875%208%209.375V10.625C8%2010.8313%208.16875%2011%208.375%2011ZM14%2014.875V16H0V14.875C0%2014.6687%200.16875%2014.5%200.375%2014.5H0.984375V0.75C0.984375%200.334375%201.31875%200%201.73438%200H12.2656C12.6812%200%2013.0156%200.334375%2013.0156%200.75V14.5H13.625C13.8313%2014.5%2014%2014.6687%2014%2014.875ZM2.48438%2014.4688H6V12.375C6%2012.1687%206.16875%2012%206.375%2012H7.625C7.83125%2012%208%2012.1687%208%2012.375V14.4688H11.5156V1.53125L2.5%201.5L2.48438%2014.4688Z'%20fill='black'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_480_2468'%3e%3crect%20width='14'%20height='16'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='20'%20height='16'%20viewBox='0%200%2020%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17%206H16.5L13.1003%201.75063C12.913%201.51641%2012.6754%201.32734%2012.405%201.19741C12.1347%201.06747%2011.8387%201.00001%2011.5387%201H4.85406C4.03625%201%203.30094%201.49781%202.99719%202.25719L1.5%206V6.07062C0.63875%206.29375%200%207.06906%200%208V11.5C0%2011.7762%200.22375%2012%200.5%2012H2C2%2013.6569%203.34312%2015%205%2015C6.65688%2015%208%2013.6569%208%2012H12C12%2013.6569%2013.3431%2015%2015%2015C16.6569%2015%2018%2013.6569%2018%2012H19.5C19.7763%2012%2020%2011.7762%2020%2011.5V9C20%207.34312%2018.6569%206%2017%206ZM8.75%202.5H11.5387C11.6916%202.5%2011.8338%202.56844%2011.9291%202.6875L14.5791%206H8.75V2.5ZM4.38969%202.81437C4.46625%202.62344%204.64844%202.5%204.85406%202.5H7.25V6H3.11562L4.38969%202.81437ZM5%2013.5C4.17156%2013.5%203.5%2012.8284%203.5%2012C3.5%2011.1716%204.17156%2010.5%205%2010.5C5.82844%2010.5%206.5%2011.1716%206.5%2012C6.5%2012.8284%205.82844%2013.5%205%2013.5ZM15%2013.5C14.1716%2013.5%2013.5%2012.8284%2013.5%2012C13.5%2011.1716%2014.1716%2010.5%2015%2010.5C15.8284%2010.5%2016.5%2011.1716%2016.5%2012C16.5%2012.8284%2015.8284%2013.5%2015%2013.5ZM18.5%2010.5H17.5841C17.0644%209.60719%2016.1078%209%2015%209C13.8922%209%2012.9359%209.60719%2012.4159%2010.5H7.58406C7.06437%209.60719%206.10781%209%205%209C3.89219%209%202.93594%209.60719%202.41594%2010.5H1.5V8C1.5%207.72437%201.72438%207.5%202%207.5H17C17.8272%207.5%2018.5%208.17281%2018.5%209V10.5Z'%20fill='black'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='12'%20height='16'%20viewBox='0%200%2012%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_480_2435)'%3e%3cpath%20d='M11.8068%205.24687C11.5506%204.8%2011.0849%204.53125%2010.5693%204.53125H7.61932L8.51619%201.79688C8.63182%201.36563%208.54119%200.9125%208.26932%200.55625C7.99432%200.203125%207.57869%200%207.13182%200H3.05369C2.34118%200%201.73181%200.534375%201.65368%201.15937L0.0161813%207.79063C-0.0431938%208.22188%200.0849314%208.65625%200.369307%208.98438C0.653682%209.3125%201.06618%209.5%201.50056%209.5H4.56619L3.47556%2014.2406C3.37556%2014.6688%203.47244%2015.1125%203.74431%2015.4563C4.01619%2015.8031%204.42556%2016%204.86619%2016C5.37556%2016%205.85057%2015.725%206.07869%2015.325L11.8037%206.67812C12.0662%206.23125%2012.0662%205.69375%2011.8068%205.24687ZM5.00369%2014.2937L6.45057%208H1.48493L3.05369%201.5L7.04119%201.47187L5.54744%206.03125H10.4381L5.00369%2014.2937Z'%20fill='%232A2A2A'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_480_2435'%3e%3crect%20width='12'%20height='16'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='18'%20height='12'%20viewBox='0%200%2018%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M16.2857%200H0.857143C0.383839%200%200%200.383839%200%200.857143V11.1429C0%2011.6162%200.383839%2012%200.857143%2012H16.2857C16.759%2012%2017.1429%2011.6162%2017.1429%2011.1429V0.857143C17.1429%200.383839%2016.759%200%2016.2857%200ZM15.8571%2010.7143H1.28571V1.28571H15.8571V10.7143ZM7.92857%207.71429H10.0714C10.1898%207.71429%2010.2857%207.61839%2010.2857%207.5V6.64286C10.2857%206.52446%2010.1898%206.42857%2010.0714%206.42857H7.92857C7.81018%206.42857%207.71429%206.52446%207.71429%206.64286V7.5C7.71429%207.61839%207.81018%207.71429%207.92857%207.71429ZM14.3571%206.42857H12.2143C12.0959%206.42857%2012%206.52446%2012%206.64286V7.5C12%207.61839%2012.0959%207.71429%2012.2143%207.71429H14.3571C14.4755%207.71429%2014.5714%207.61839%2014.5714%207.5V6.64286C14.5714%206.52446%2014.4755%206.42857%2014.3571%206.42857ZM7.92857%205.57143H14.3571C14.4755%205.57143%2014.5714%205.47554%2014.5714%205.35714V4.5C14.5714%204.38161%2014.4755%204.28571%2014.3571%204.28571H7.92857C7.81018%204.28571%207.71429%204.38161%207.71429%204.5V5.35714C7.71429%205.47554%207.81018%205.57143%207.92857%205.57143ZM3.60857%206.04607L4.73866%206.3525C4.85089%206.38304%204.92857%206.47437%204.92857%206.57482C4.92857%206.70339%204.80804%206.80786%204.65911%206.80786H3.95357C3.84241%206.80786%203.73312%206.78%203.6383%206.72884C3.5558%206.68411%203.45509%206.69214%203.3908%206.76045L3.0675%207.10143C2.9842%207.18929%202.99786%207.33286%203.09777%207.40116C3.32009%207.5525%203.58152%207.63902%203.85714%207.65616V7.92857C3.85714%208.04696%203.95304%208.14286%204.07143%208.14286H4.5C4.61839%208.14286%204.71429%208.04696%204.71429%207.92857V7.65402C5.30839%207.62455%205.78571%207.15661%205.78571%206.57455C5.78571%206.08786%205.44768%205.65634%204.96286%205.52536L3.83277%205.21893C3.72054%205.18839%203.64286%205.09705%203.64286%204.99661C3.64286%204.86804%203.76339%204.76357%203.91232%204.76357H4.61786C4.72902%204.76357%204.8383%204.79143%204.93312%204.84259C5.01562%204.88705%205.11634%204.87929%205.18062%204.81098L5.50393%204.47C5.58723%204.38214%205.57357%204.23857%205.47366%204.17027C5.25134%204.01893%204.98991%203.93241%204.71429%203.91527V3.64286C4.71429%203.52446%204.61839%203.42857%204.5%203.42857H4.07143C3.95304%203.42857%203.85714%203.52446%203.85714%203.64286V3.91741C3.26304%203.94688%202.78571%204.41482%202.78571%204.99688C2.78571%205.48357%203.12375%205.91509%203.60857%206.04607Z'%20fill='%232A2A2A'/%3e%3c/svg%3e\"","import connectorIcons from \"../components/connectorIcons\";\nimport { MapContextType } from \"../contexts/Map\";\nimport { getColorForStatus } from \"./location\";\n\nexport function getSocketIcon(connector) {\n return connectorIcons[connector.standard || connector.connectorStandardType];\n}\n\nexport function formatNumber(language, value) {\n return new Intl.NumberFormat(language, {\n maximumFractionDigits: 2,\n }).format(value);\n}\n\nexport const connectorPowerTypes = {\n CONNECTOR_POWER_TYPE_UNSPECIFIED: \"Unspecified\",\n CONNECTOR_POWER_TYPE_AC_1_PHASE: \"AC x 1\",\n CONNECTOR_POWER_TYPE_AC_2_PHASE: \"AC x 2\",\n CONNECTOR_POWER_TYPE_AC_2_PHASE_SPLIT: \"AC x 2 Split\",\n CONNECTOR_POWER_TYPE_AC_3_PHASE: \"AC x 3\",\n CONNECTOR_POWER_TYPE_DC: \"DC\",\n CONNECTOR_POWER_TYPE_AC: \"AC\",\n AC_3_PHASE: \"AC x 3\",\n AC_1_PHASE: \"AC x 1\",\n DC: \"DC\",\n};\n\nexport function getSocketText(connector) {\n return [\n formatConnectorStandard(\n connector.standard || connector.connectorStandardType,\n ),\n connectorPowerTypes[\n connector.powerType ||\n connector.power_type ||\n connector.connectorPowerType\n ],\n \"Socket\",\n ].join(\", \");\n}\n\nexport function formatConnectorStandard(value) {\n value = (value || \"\").replace(\"CONNECTOR_STANDARD_TYPE_\", \"\");\n\n if (value === \"IEC_62196_T1\") return \"Type 1\";\n if (value === \"IEC_62196_T1_COMBO\") return \"Type 1 Combo\";\n if (value === \"IEC_62196_T2\") return \"Type 2\";\n if (value === \"IEC_62196_T2_COMBO\") return \"Type 2 Combo\";\n if (value === \"IEC_62196_T3A\") return \"Type 3A\";\n if (value === \"IEC_62196_T3C\") return \"Type 3C\";\n if (value === \"CHADEMO\") return \"CHAdeMO\";\n if (value === \"DOMESTIC_F\") return \"Domestic F\";\n if (value === \"DOMESTIC_E\") return \"Domestic E\";\n if (value === \"DOMESTIC_B\") return \"Domestic B\";\n if (value === \"CATARC\") return \"Catarc\";\n return value;\n}\n\nexport function getStatusLabel(t: MapContextType[\"t\"], status) {\n switch (status) {\n case \"AVAILABLE\":\n return t(`evse.statusAvailable`);\n case \"CHARGING\":\n return t(`evse.statusCharging`);\n case \"UNAVAILABLE\":\n return t(`evse.statusUnavailable`);\n case \"ERROR\":\n return t(`evse.statusError`);\n case \"UNKNOWN\":\n return t(`evse.statusUnknown`);\n case \"REMOVED\":\n return t(`evse.statusRemoved`);\n case \"PLANNED\":\n return t(`evse.statusPlanned`);\n case \"RESERVED\":\n return t(`evse.statusReserved`);\n case \"INOPERATIVE\":\n return t(`evse.statusInoperative`);\n case \"OUTOFORDER\":\n return t(`evse.statusOutOfOrder`);\n default:\n return t(`evse.statusUnknown`);\n }\n}\n\nexport function getLocationLabel(t: MapContextType[\"t\"], location) {\n if (location?.type === \"ON_STREET\") {\n return t(`locationType.onStreet`);\n }\n if (location?.type === \"PARKING_GARAGE\") {\n return t(`locationType.parkingGarage`);\n }\n if (location?.type === \"UNDERGROUND_GARAGE\") {\n return t(`locationType.undergroundGarage`);\n }\n if (location?.type === \"PARKING_LOT\") {\n return t(`locationType.parkingLot`);\n }\n\n return t(`locationType.other`);\n}\n\nexport function getStatusColorFromEvses(evses: any[] = []) {\n if (evses.some((evse) => evse.status === \"AVAILABLE\")) {\n return getColorForStatus(\"AVAILABLE\");\n }\n\n if (evses.some((evse) => evse.status === \"CHARGING\")) {\n return getColorForStatus(\"CHARGING\");\n }\n\n return getColorForStatus(\"UNKNOWN\");\n}\n","/**\n * Note there could be bugs here. This is waiting for the Temporal API\n * Or if we cant wait use a library like moment-timezone or similar for more reliable timezone support\n */\n\n// Return offset on date for loc in ±H[:mm] format. Minutes only included if not zero\n// This is a bit special see https://stackoverflow.com/questions/62130983/get-offset-of-the-other-location-in-javascript for explanation\nexport function getTimezoneOffset(date, timeZone) {\n // Try English to get offset. If get abbreviation, use French\n let offset;\n [\"en\", \"fr\"].some((lang) => {\n // Get parts - can't get just timeZoneName, must get one other part at least\n let parts = new Intl.DateTimeFormat(lang, {\n minute: \"numeric\",\n timeZone,\n timeZoneName: \"short\",\n }).formatToParts(date);\n // Get offset from parts\n let tzName = parts.filter(\n (part) => part.type == \"timeZoneName\" && part.value\n );\n // timeZoneName starting with GMT or UTC is offset - keep and stop looping\n // Otherwise it's an abbreviation, keep looping\n if (/^(GMT|UTC)/.test(tzName[0].value)) {\n offset = tzName[0].value.replace(/GMT|UTC/, \"\") || \"+0\";\n return true;\n }\n });\n // Format offset as ±HH:mm\n // Normalise minus sign as ASCII minus (charCode 45)\n let sign = offset[0] == \"\\x2b\" ? \"\\x2b\" : \"\\x2d\";\n let [h, m] = offset.substring(1).split(\":\");\n return sign + h.padStart(2, \"0\") + \":\" + (m || \"00\");\n}\n\n// Convert offset string in ±HH:mm to minutes\nfunction offsetToMins(offset) {\n let sign = /^-/.test(offset) ? -1 : 1;\n let [h, m] = offset.match(/\\d\\d/g);\n return sign * (h * 60 + Number(m));\n}\n\nfunction formatYMD(timeZone, date) {\n const z = (n) => (\"0\" + n).slice(-2);\n const { year, month, day } = new Intl.DateTimeFormat(\"en\", {\n timeZone: timeZone,\n })\n .formatToParts(date)\n .reduce((acc, part) => {\n acc[part.type] = part.value;\n return part;\n }, Object.create(null));\n return `${year}-${z(month)}-${z(day)}`;\n}\n\nexport function tzDate(timeZone, date = new Date()) {\n const offset = getTimezoneOffset(date, timeZone);\n const offMins = offsetToMins(offset);\n const d = new Date(+date);\n d.setUTCMinutes(d.getUTCMinutes() + offMins);\n return d;\n}\n\nexport function startOfDay(timeZone, date = new Date()) {\n const offset = getTimezoneOffset(date, timeZone);\n const offMins = offsetToMins(offset);\n const d = new Date(+date);\n d.setUTCHours(0, -offMins, 0, 0);\n // If date is + or - original date, adjust\n const oDateTS = formatYMD(timeZone, date);\n const sodDateTS = formatYMD(timeZone, d);\n if (sodDateTS > oDateTS) {\n d.setUTCDate(d.getUTCDate() - 1);\n } else if (sodDateTS < oDateTS) {\n d.setUTCDate(d.getUTCDate() + 1);\n }\n return d;\n}\n\nexport function endOfDate(timeZone, date = new Date()) {\n return new Date(startOfDay(timeZone, date).valueOf() + 86399999);\n}\n\n// Could be bugs here\nexport function getNextDayOfWeek(\n date: Date,\n dayOfWeek: number,\n timeZone?: string\n) {\n const resultDate = tzDate(timeZone, date);\n if (resultDate.getUTCDate() !== dayOfWeek) {\n resultDate.setUTCDate(\n date.getUTCDate() + ((7 + dayOfWeek - date.getUTCDay() - 1) % 7) + 1\n );\n }\n\n return {\n start: startOfDay(timeZone, resultDate),\n end: endOfDate(timeZone, resultDate),\n };\n}\n\nexport function getDay(date: Date, timeZone?: string) {\n return tzDate(timeZone, date).getUTCDay();\n}\n","import {\n TariffElement,\n TariffRestrictions,\n DayOfWeek,\n PriceComponent,\n OcpiTariff,\n OcpiTariffElement,\n} from \"../types\";\n\nimport { getDay, getNextDayOfWeek } from \"../utils/date\";\n\nexport function convertTimeToMinutes(time: string) {\n const [hours, minutes] = time.split(\":\");\n return parseInt(hours) * 60 + parseInt(minutes);\n}\n\nfunction convertToTimeSlot(element: TariffElement): Timeslot {\n if (!element?.restrictions?.startTime) {\n return {\n elements: [element],\n priceComponents: element.priceComponents,\n startTime: 0,\n endTime: 24 * 60,\n isFullDay: true,\n };\n }\n\n const startTime = convertTimeToMinutes(element.restrictions.startTime);\n const endTime = convertTimeToMinutes(element.restrictions.endTime);\n\n return {\n elements: [element],\n priceComponents: element.priceComponents,\n isFullDay: startTime === 0 && endTime === 24 * 60,\n startTime,\n endTime,\n };\n}\n\ntype Timeslot = {\n isActive?: boolean;\n isFullDay: boolean;\n startTime: number;\n endTime: number;\n elements?: TariffElement[];\n priceComponents: PriceComponent[];\n};\n\n// TODO write this nicer\nexport function getScheduleItems(\n items: Timeslot[],\n isDayActive: boolean,\n now: Date,\n): Timeslot[] {\n const currentTime = (now.getHours() * 60 + now.getMinutes()) % 60;\n\n if (items.length <= 1) {\n return items.map((item) => {\n item.isActive =\n isDayActive &&\n item.startTime <= currentTime &&\n item.endTime >= currentTime;\n\n return item;\n });\n }\n items = items.sort((a, b) => a.startTime - b.startTime);\n\n let scheduleItems = [items[0]];\n for (let i = 1; i < items.length; i++) {\n const current = items[i];\n\n const refItem = scheduleItems.findLast(\n (item) => item.startTime <= current.startTime,\n );\n if (!refItem) {\n scheduleItems = scheduleItems.filter(\n (item) => item.endTime > current.endTime,\n );\n scheduleItems.unshift(current);\n } else {\n const oldEndTime = refItem.endTime;\n refItem.endTime = current.startTime;\n\n const toAppend = [current];\n if (oldEndTime > current.endTime) {\n toAppend.push({\n ...refItem,\n startTime: current.endTime,\n endTime: oldEndTime,\n });\n }\n scheduleItems.splice(scheduleItems.indexOf(refItem) + 1, 0, ...toAppend);\n }\n\n let maxEndTime = 0;\n scheduleItems = scheduleItems\n .map((item, i) => {\n const prevItem = scheduleItems[i - 1];\n\n if (item.endTime > maxEndTime) {\n maxEndTime = item.endTime;\n } else {\n return null;\n }\n if (prevItem && prevItem.endTime !== item.startTime) {\n item.startTime = prevItem.endTime;\n }\n return item;\n })\n .filter(Boolean);\n }\n\n return scheduleItems.map((item) => {\n item.isActive =\n isDayActive &&\n item.startTime <= currentTime &&\n item.endTime >= currentTime;\n\n item.isFullDay = item.startTime === 0 && item.endTime === 24 * 60;\n\n return item;\n });\n}\n\nexport function isBaseTariffOCPI(tariffElement: OcpiTariffElement) {\n return (\n //elements without restrictions are always base tariff\n !tariffElement?.restrictions ||\n // elements without time restirctions are also base tariff\n (!tariffElement?.restrictions?.start_date &&\n !tariffElement?.restrictions?.end_date &&\n !tariffElement?.restrictions?.start_time &&\n !tariffElement?.restrictions?.end_time &&\n !tariffElement?.restrictions?.day_of_week &&\n !tariffElement?.restrictions?.day_of_week)\n );\n}\n\nexport function isBaseTarif(tariffElement: TariffElement) {\n return (\n //elements without restrictions are always base tariff\n !tariffElement?.restrictions ||\n // elements without time restirctions are also base tariff\n (!tariffElement?.restrictions?.startDate &&\n !tariffElement?.restrictions?.endDate &&\n !tariffElement?.restrictions?.startTime &&\n !tariffElement?.restrictions?.startTime &&\n !tariffElement?.restrictions?.dayOfWeek)\n );\n}\n\ntype DynamicTariff = {\n date: Date;\n items: Timeslot[];\n};\n\ntype getDynamicTariffProps = {\n elements: TariffElement[];\n limit?: number;\n now: Date;\n};\n\nexport function getDynamicTariffOCPI(\n elements: OcpiTariffElement[],\n limit: number = 6,\n now: Date = new Date(),\n): DynamicTariff[] {\n const filteredElements = [...elements]\n .filter((c) => !isBaseTariffOCPI(c))\n .map((el) => {\n return {\n ...el,\n restrictions: {\n _startDate: new Date(\n `${el.restrictions.start_date}T${el.restrictions.start_time}`,\n ),\n ...el.restrictions,\n },\n };\n })\n .sort((a, b) => {\n return (\n a.restrictions._startDate.valueOf() -\n b.restrictions._startDate.valueOf()\n );\n })\n .filter((c) => {\n return (\n c.restrictions._startDate.valueOf() > now.valueOf() - 180 * 60 * 1000\n );\n })\n .slice(0, limit);\n\n const splitByDay = filteredElements.reduce((acc, curr) => {\n const day = curr.restrictions._startDate.getDate();\n acc[day] = {\n date: new Date(curr.restrictions.start_date),\n items: [...(acc[day]?.items || []), curr],\n };\n return acc;\n }, []);\n\n return Object.keys(splitByDay).map((key) => {\n const { date, items }: { date: Date; items: any[] } = splitByDay[key];\n const formattedItems = items\n .map(({ restrictions, ...c }) => {\n const { _startDate, ...partialRestrictions } = restrictions;\n return {\n ...c,\n restrictions: {\n ...partialRestrictions,\n },\n };\n })\n .map(convertToTimeSlot)\n .map((item) => {\n const isDayActive = getDay(now) === getDay(date);\n const currentTime = now.getHours() * 60 + now.getMinutes();\n\n const isActive =\n isDayActive &&\n item.startTime <= currentTime &&\n item.endTime - 1 >= currentTime;\n\n return {\n ...item,\n isActive,\n };\n });\n\n return {\n date,\n items: formattedItems,\n };\n });\n}\n\nexport function getDynamicTariff({\n elements,\n limit = 6,\n now = new Date(),\n}: getDynamicTariffProps): DynamicTariff[] {\n const filteredElements = [...elements]\n .filter((c) => !isBaseTarif(c))\n .map((el) => {\n // we are displaying these in the local timezone\n return {\n ...el,\n restrictions: {\n _startDate: new Date(\n `${el.restrictions.startDate}T${el.restrictions.startTime}`,\n ),\n ...el.restrictions,\n },\n };\n })\n .sort((a, b) => {\n return (\n a.restrictions._startDate.valueOf() -\n b.restrictions._startDate.valueOf()\n );\n })\n .filter((c) => {\n return (\n c.restrictions._startDate.valueOf() > now.valueOf() - 180 * 60 * 1000\n );\n })\n .slice(0, limit);\n\n const splitByDay = filteredElements.reduce((acc, curr) => {\n const day = curr.restrictions._startDate.getDate();\n acc[day] = {\n date: new Date(curr.restrictions.startDate),\n items: [...(acc[day]?.items || []), curr],\n };\n return acc;\n }, []);\n\n return Object.keys(splitByDay).map((key) => {\n const { date, items }: { date: Date; items: any[] } = splitByDay[key];\n const formattedItems = items\n .map(({ restrictions, ...c }) => {\n const { _startDate, ...partialRestrictions } = restrictions;\n return {\n ...c,\n restrictions: {\n ...partialRestrictions,\n },\n };\n })\n .map(convertToTimeSlot)\n .map((item) => {\n const isDayActive = getDay(now) === getDay(date);\n const currentTime = now.getHours() * 60 + now.getMinutes();\n\n const isActive =\n isDayActive &&\n item.startTime <= currentTime &&\n item.endTime - 1 >= currentTime;\n\n return {\n ...item,\n isActive,\n };\n });\n\n return {\n date,\n items: formattedItems,\n };\n });\n}\n\nexport function getScheduledTariff(\n elements: TariffElement[],\n locationTimezone: string,\n) {\n // TODO this timezone from locations\n const today = new Date();\n\n return [...elements].reduce(\n (acc, curr) => {\n const {\n startDate: start_date,\n endDate: end_date,\n dayOfWeek: day_of_week = [],\n } = (curr.restrictions as TariffRestrictions) || {};\n\n // filtering out elements without restrictions\n if (!Object.keys(curr.restrictions || {}).length) {\n return acc;\n }\n\n // TODO not sure this is correct consider timezone + should start_time be included\n const startDate = start_date ? new Date(start_date) : null;\n\n if (start_date) {\n if (startDate.valueOf() > Date.now()) {\n return acc;\n }\n }\n\n // TODO not sure this is correct consider timezone + should end_time be included\n const endDate = end_date ? new Date(end_date) : null;\n\n if (end_date) {\n if (endDate.valueOf() < Date.now()) {\n return acc;\n }\n }\n\n [\n \"SUNDAY\",\n \"MONDAY\",\n \"TUESDAY\",\n \"WEDNESDAY\",\n \"THURSDAY\",\n \"FRIDAY\",\n \"SATURDAY\",\n ].forEach((day: DayOfWeek, index) => {\n // note this does not work for timezones yet, until we load a timezone library\n const { start, end } = getNextDayOfWeek(today, index, locationTimezone);\n\n if (startDate) {\n if (startDate.valueOf() > start.valueOf()) {\n return;\n }\n }\n\n if (endDate) {\n if (endDate.valueOf() < end.valueOf()) {\n return;\n }\n }\n if (day_of_week.length && !day_of_week.includes(day)) return;\n\n acc[day] = [...acc[day], curr];\n });\n return acc;\n },\n {\n MONDAY: [],\n TUESDAY: [],\n WEDNESDAY: [],\n THURSDAY: [],\n FRIDAY: [],\n SATURDAY: [],\n SUNDAY: [],\n },\n );\n}\n\nfunction omitFields(obj, fields) {\n return Object.keys(obj).reduce((acc, curr) => {\n if (!fields.includes(curr)) {\n acc[curr] = obj[curr];\n }\n return acc;\n }, {});\n}\n\nfunction isSame(a, b) {\n const aWithoutActive = a.map((item) => omitFields(item, [\"isActive\"]));\n const bWithoutActive = b.map((item) => omitFields(item, [\"isActive\"]));\n return JSON.stringify(aWithoutActive) === JSON.stringify(bWithoutActive);\n}\n\n//merge timeslots that have the same start and end time\nfunction mergeDuplicatesTimeslots(timeslots: Timeslot[]) {\n return timeslots.reduce((acc, cur) => {\n const existing = acc.find((item) => {\n return item.startTime === cur.startTime && item.endTime === cur.endTime;\n });\n if (existing) {\n existing.elements.push(...cur.elements);\n } else {\n acc.push(cur);\n }\n return acc;\n }, []);\n}\n\ntype Schedule = {\n days: DayOfWeek[];\n isActive: boolean;\n items: Timeslot[];\n};\n\nexport function getSchedule(\n elements: TariffElement[],\n locationTimezone,\n now,\n): Schedule[] {\n const days = getScheduledTariff(\n elements.concat().filter((c) => !isBaseTarif(c)),\n locationTimezone,\n );\n\n const { SUNDAY, ...rest } = days;\n\n // fixing order sunday has to be first for the getDay function to work\n const [firstDay, ...restDays] = Object.keys({\n SUNDAY: days.SUNDAY,\n ...rest,\n }).map((key, index) => {\n const dayElements = days[key];\n const isActive = getDay(now, locationTimezone) === index;\n\n return {\n day: key,\n isActive,\n items: getScheduleItems(\n mergeDuplicatesTimeslots(dayElements.map(convertToTimeSlot)),\n isActive,\n now,\n ),\n };\n });\n\n // switching order back\n return [...restDays, firstDay]\n .reduce((acc, curr, index, items) => {\n const prevEntry = acc[acc.length - 1];\n const prevTimeslots = prevEntry?.items;\n if (!prevTimeslots || !isSame(prevTimeslots, curr.items)) {\n const { day, ...rest } = curr;\n acc.push({\n ...rest,\n days: [curr.day],\n });\n } else {\n prevEntry.days = [prevEntry.days[0], curr.day];\n prevEntry.isActive = prevEntry.isActive || curr.isActive;\n }\n return acc;\n }, [])\n .filter((c) => {\n return !!c.items.length;\n });\n}\n\nexport function getConnectorTariffTypeV2(tariff: OcpiTariff) {\n if (!tariff) {\n return \"none\";\n }\n\n const hasPriceComponents = tariff.elements?.some(\n (element) => element?.price_components?.length > 0,\n );\n if (!hasPriceComponents) {\n return \"none\";\n }\n\n const baseTarifElements = tariff.elements.filter(isBaseTariffOCPI);\n if (baseTarifElements.length === tariff.elements.length) {\n return \"base\";\n }\n\n const dynamicTariffs = getDynamicTariffOCPI(tariff.elements, 6, new Date());\n\n if (dynamicTariffs.length) {\n return \"dynamic\";\n }\n\n return \"scheduled\";\n}\n\nexport function getConnectorTariffType(connectorTarif) {\n const { elements = [] } = connectorTarif;\n const hasPriceComponents = elements?.some(\n (element) => element?.priceComponents?.length > 0,\n );\n\n if (!hasPriceComponents) {\n return \"none\";\n }\n\n const baseTarifElements = elements.filter(isBaseTarif);\n\n if (baseTarifElements.length === elements.length) {\n return \"base\";\n }\n\n const dynamicTariffs = getDynamicTariff({\n elements,\n limit: 6,\n now: new Date(),\n });\n if (dynamicTariffs.length) {\n return \"dynamic\";\n }\n return \"scheduled\";\n}\n\n// Connector Power Type constants\nexport const ConnectorPowerType = {\n CONNECTOR_POWER_TYPE_UNSPECIFIED: \"CONNECTOR_POWER_TYPE_UNSPECIFIED\",\n CONNECTOR_POWER_TYPE_AC_1_PHASE: \"CONNECTOR_POWER_TYPE_AC_1_PHASE\",\n CONNECTOR_POWER_TYPE_AC_2_PHASE: \"CONNECTOR_POWER_TYPE_AC_2_PHASE\",\n CONNECTOR_POWER_TYPE_AC_2_PHASE_SPLIT:\n \"CONNECTOR_POWER_TYPE_AC_2_PHASE_SPLIT\",\n CONNECTOR_POWER_TYPE_AC_3_PHASE: \"CONNECTOR_POWER_TYPE_AC_3_PHASE\",\n CONNECTOR_POWER_TYPE_DC: \"CONNECTOR_POWER_TYPE_DC\",\n CONNECTOR_POWER_TYPE_AC: \"CONNECTOR_POWER_TYPE_AC\",\n} as const;\n\nexport type ConnectorPowerType =\n (typeof ConnectorPowerType)[keyof typeof ConnectorPowerType];\n\nexport function calculateMaxPower(connector: {\n power: {\n maxWatts: number;\n maxVoltage: number;\n maxAmperage: number;\n };\n connectorPowerType: ConnectorPowerType;\n}): number {\n switch (connector.connectorPowerType) {\n case ConnectorPowerType.CONNECTOR_POWER_TYPE_AC_1_PHASE:\n case ConnectorPowerType.CONNECTOR_POWER_TYPE_DC:\n return (connector.power.maxVoltage * connector.power.maxAmperage) / 1000;\n\n case ConnectorPowerType.CONNECTOR_POWER_TYPE_AC_2_PHASE:\n case ConnectorPowerType.CONNECTOR_POWER_TYPE_AC_2_PHASE_SPLIT:\n return (\n (connector.power.maxVoltage * connector.power.maxAmperage * 2) / 1000\n );\n\n case ConnectorPowerType.CONNECTOR_POWER_TYPE_AC_3_PHASE:\n return (\n (connector.power.maxVoltage * connector.power.maxAmperage * 3) / 1000\n );\n\n default:\n return 0;\n }\n}\n","import React from \"react\";\nimport styles from \"./Price.module.css\";\nimport { useMapContext } from \"../../contexts/Map\";\nimport { PriceComponent as PriceComponentType, TariffElement } from \"../../types\";\n\nfunction formatCurrency(value, props) {\n return new Intl.NumberFormat(undefined, {\n style: \"currency\",\n currency: props.currency || \"EUR\",\n maximumFractionDigits: 2,\n }).format(value);\n}\n\ntype PriceComponentsProps = {\n priceComponent: PriceComponentType;\n restrictions?: TariffElement[\"restrictions\"];\n currency: string;\n};\n\nfunction getPrice(priceComponent: PriceComponentType) {\n const vat = !priceComponent.vat ? 0 : priceComponent.vat / 100;\n return priceComponent.price + priceComponent.price * vat;\n}\n\nexport default function PriceComponent({\n priceComponent,\n restrictions = {},\n currency,\n}: PriceComponentsProps) {\n const { t } = useMapContext();\n\n const stringByType = {\n ENERGY: \"tariffPriceComponent.energy\",\n TIME: \"tariffPriceComponent.time\",\n FLAT: \"tariffPriceComponent.flat\",\n PARKING_TIME: \"tariffPriceComponent.parkingTime\",\n };\n\n if (\n restrictions?.minDuration === 0 &&\n restrictions?.maxDuration &&\n priceComponent.type === \"PARKING_TIME\"\n ) {\n return (\n <div className={styles.tariffItem}>\n {t(\"tariffPriceComponent.parkingTimeWait\", {\n minutes: Math.floor(restrictions.maxDuration / 60),\n })}\n </div>\n );\n }\n\n if (!stringByType[priceComponent.type]) return null;\n\n return (\n <div className={styles.tariffItem}>\n {t(stringByType[priceComponent.type] as any, {\n total: formatCurrency(getPrice(priceComponent), {\n currency: currency,\n }),\n })}\n </div>\n );\n}\n\n","import React from \"react\";\n\nimport { PriceComponent, TariffElement } from \"../../types\";\n\nimport Price from \"../Price/Price\";\n\nimport styles from \"./PriceComponents.module.css\";\nimport { useMapContext } from \"../../contexts/Map\";\n\ntype PriceComponentsProps = {\n elements: TariffElement[];\n currency: string;\n};\n\nconst displayOrder = [\"ENERGY\", \"TIME\", \"FLAT\", \"PARKING_TIME\"];\n\ntype SortedElements = {\n type: PriceComponent[\"type\"];\n elements: {\n priceComponent: PriceComponent;\n restrictions: TariffElement[\"restrictions\"];\n }[];\n};\n\nexport default function PriceComponents({\n elements,\n currency,\n}: PriceComponentsProps) {\n const { t } = useMapContext();\n\n // get elements from by type\n const elementsByType = elements.reduce((acc, element) => {\n element.priceComponents.forEach((priceComponent) => {\n if (!acc[priceComponent.type]) acc[priceComponent.type] = [];\n acc[priceComponent.type].push({\n priceComponent,\n restrictions: element.restrictions,\n });\n });\n return acc;\n }, {});\n\n const sortedElements = Object.keys(elementsByType)\n .map((type) => {\n return {\n type,\n elements: elementsByType[type],\n };\n })\n .sort((a: any, b: any) => {\n const aIndex = displayOrder.indexOf(a.type);\n const bIndex = displayOrder.indexOf(b.type);\n if (aIndex === -1) return 1;\n if (bIndex === -1) return -1;\n return aIndex - bIndex;\n }) as SortedElements[];\n\n return (\n <div className={styles.container}>\n {sortedElements.map(({ type, elements }, i) => {\n return elements.reverse().map((element, q) => {\n return (\n <Price\n currency={currency}\n key={`${type}-${i}-${q}`}\n priceComponent={element.priceComponent}\n restrictions={element.restrictions}\n />\n );\n });\n })}\n </div>\n );\n}\n\n","import React from \"react\";\n\nimport { CdrAdditionalCharge, PriceComponent, TariffElement } from \"../../types\";\n\nfunction formatCurrency(value, props) {\n return new Intl.NumberFormat(undefined, {\n style: \"currency\",\n currency: props.currency || \"EUR\",\n maximumFractionDigits: 2,\n }).format(value);\n}\n\n// note reuse of price css module\nimport styles from \"../Price/Price.module.css\";\nimport { useMapContext } from \"../../contexts/Map\";\n\ntype CdrPriceComponentsProps = {\n cdrAdditionalCharge: CdrAdditionalCharge;\n currency: string;\n};\n\nfunction getPrice({ vat, price }: { vat?: number; price: number }) {\n const vatAmount = !vat ? 0 : vat / 100;\n return price + price * vatAmount;\n}\n\nexport default function CdrPriceComponent({\n cdrAdditionalCharge,\n currency,\n}: CdrPriceComponentsProps) {\n const { t } = useMapContext();\n\n const stringByType = {\n FLAT_FEE: t(\"cdrPrice.flatFee\", {\n total: formatCurrency(getPrice(cdrAdditionalCharge), {\n currency: currency,\n }),\n }),\n };\n\n return (\n <div className={styles.tariffItem}>\n {stringByType[cdrAdditionalCharge.type]}\n </div>\n );\n}\n\n","import React, { Fragment } from \"react\";\nimport { useMapContext } from \"../../contexts/Map\";\nimport { Tariff, CdrAdditionalCharge } from \"../../types\";\nimport { getSchedule, isBaseTarif, getDynamicTariff } from \"../../utils/ocpi\";\n\nimport styles from \"./ConnectorTariff.module.css\";\n\nimport PriceComponents from \"../PriceComponents/PriceComponents\";\nimport CdrPrice from \"../CdrPrice/CdrPrice\";\n\ntype ConnectorTariffProps = {\n tariff: Tariff;\n timezone?: string;\n compact?: boolean;\n cdrAdditionalCharges?: CdrAdditionalCharge[];\n};\n\nfunction formatTime(language, minutes: number) {\n const date = new Date(0);\n const hours = Math.floor(minutes / 60);\n const mins = minutes % 60;\n date.setHours(hours, mins, 0, 0);\n // hardcoding to nl for now, because i think people will understand it better in EU\n return date.toLocaleTimeString(\"nl\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n}\n\nconst defaultTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\nfunction daysForLocale(language: string) {\n const { format } = new Intl.DateTimeFormat(language, { weekday: \"long\" });\n return [\n \"SUNDAY\",\n \"MONDAY\",\n \"TUESDAY\",\n \"WEDNESDAY\",\n \"THURSDAY\",\n \"FRIDAY\",\n \"SATURDAY\",\n ].reduce((acc, day, index) => {\n acc[day] = format(new Date(Date.UTC(2023, 9, index + 1)));\n return acc;\n }, {});\n}\n\nfunction CdrAdditionalChargeComponent({\n currency,\n cdrAdditionalCharges,\n}: {\n currency: string;\n cdrAdditionalCharges: CdrAdditionalCharge[];\n}) {\n return cdrAdditionalCharges.map((c) => {\n return <CdrPrice key={c.id} currency={currency} cdrAdditionalCharge={c} />;\n });\n}\n\nexport default function ConnectorTariff({\n timezone = defaultTimeZone,\n tariff,\n compact = true,\n cdrAdditionalCharges = [],\n}: ConnectorTariffProps) {\n const { t, language } = useMapContext();\n const i18nDays = daysForLocale(language);\n\n if (!tariff) return null;\n\n const elements = tariff.elements || [];\n const currency = tariff.currency || \"\";\n\n const hasPriceComponents = elements.some(\n (element) => element.priceComponents && element.priceComponents.length > 0,\n );\n\n const dynamicTariffs = getDynamicTariff({\n elements,\n limit: compact ? 6 : 40,\n now: new Date(),\n });\n\n const scheduledTariffs = dynamicTariffs.length\n ? []\n : getSchedule(elements, timezone, new Date());\n\n const baseTarifElements = elements.filter(isBaseTarif);\n\n if (!hasPriceComponents) {\n return (\n <>\n <div className={styles.tariffNote}>\n {t(\"tariffPriceComponent.noTariff\")}\n </div>\n {cdrAdditionalCharges.length > 0 && (\n <div className={styles.container}>\n <CdrAdditionalChargeComponent\n currency={currency}\n cdrAdditionalCharges={cdrAdditionalCharges}\n />\n </div>\n )}\n </>\n );\n }\n\n const isBaseActive = !scheduledTariffs.some((element) => element.isActive);\n\n if (scheduledTariffs.length) {\n return (\n <div className={styles.container}>\n {baseTarifElements.length > 0 && (\n <div className={[styles.tariffList, styles.bold].join(\" \")}>\n <div className={styles.tariffHeader}>\n {t(\"tariffPriceComponent.baseTariff\")}\n\n {isBaseActive && (\n <span className={styles.activeNowLabel}>\n {t(\"tariffPriceComponent.active\")}\n </span>\n )}\n </div>\n <PriceComponents elements={baseTarifElements} currency={currency} />\n\n <CdrAdditionalChargeComponent\n currency={currency}\n cdrAdditionalCharges={cdrAdditionalCharges}\n />\n </div>\n )}\n\n {scheduledTariffs.map((schedule) => {\n return (\n <div key={schedule.days.join(\"-\")} className={styles.tariffList}>\n <div className={styles.tariffHeader}>\n {schedule.days.map((day) => i18nDays[day]).join(\" - \")}\n\n {schedule.isActive && (\n <span className={styles.activeNowLabel}>\n {t(\"tariffPriceComponent.active\")}\n </span>\n )}\n </div>\n {schedule.items.map((item) => {\n return (\n <div\n key={item.startTime}\n className={item.isActive && styles.bold}\n >\n {!item.isFullDay && (\n <div className={styles.tariffLabel}>\n {formatTime(language, item.startTime)} -{\" \"}\n {formatTime(language, item.endTime)}\n </div>\n )}\n <div>\n <PriceComponents\n elements={item.elements}\n currency={currency}\n />\n <CdrAdditionalChargeComponent\n currency={currency}\n cdrAdditionalCharges={cdrAdditionalCharges}\n />\n </div>\n </div>\n );\n })}\n </div>\n );\n })}\n </div>\n );\n }\n\n return (\n <div className={styles.container}>\n {baseTarifElements.length > 0 && !dynamicTariffs?.length && (\n <div className={styles.tariffList}>\n <PriceComponents elements={baseTarifElements} currency={currency} />\n <CdrAdditionalChargeComponent\n currency={currency}\n cdrAdditionalCharges={cdrAdditionalCharges}\n />\n </div>\n )}\n {dynamicTariffs.length > 0 && (\n <>\n {dynamicTariffs.map((dynamicTariff, index) => {\n return (\n <>\n <div className={styles.tariffHeader}>\n {t(\"tariffPriceComponent.dynamicTariffHeader\", {\n date: new Intl.DateTimeFormat(language, {\n weekday: \"long\",\n month: \"short\",\n day: \"numeric\",\n }).format(dynamicTariff.date),\n })}\n </div>\n <div className={styles.dynamicTariffList}>\n {dynamicTariff.items.map((item, index) => {\n return (\n <div\n key={[item.startTime, item.endTime, index].join()}\n className={[\n styles.dynamicTariffItem,\n item.isActive && styles.bold,\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n <div className={styles.dynamicTariffItemRange}>\n {formatTime(language, item.startTime)} &ndash;{\" \"}\n {formatTime(language, item.endTime)}\n </div>\n <PriceComponents\n elements={item.elements}\n currency={currency}\n />\n <CdrAdditionalChargeComponent\n currency={currency}\n cdrAdditionalCharges={cdrAdditionalCharges}\n />\n {item.isActive && (\n <span className={styles.activeNowLabel}>\n {t(\"tariffPriceComponent.active\")}\n </span>\n )}\n </div>\n );\n })}\n </div>\n </>\n );\n })}\n </>\n )}\n </div>\n );\n}\n","import { Location, OcpiLocation } from \"../types\";\n\nexport function getNotes(\n t,\n location: Location | OcpiLocation,\n type: \"dynamic\" | \"scheduled\" | \"base\" | \"none\",\n) {\n const notes = [];\n\n if ((location as Location)?.customNote) {\n notes.push((location as Location)?.customNote);\n }\n\n if (type === \"none\") {\n return notes.length ? notes : [t(\"tariffNote.baseTariffNote\")];\n }\n\n if (type === \"dynamic\") {\n notes.push(t(\"tariffNote.dynamicScheduledTariffNote\"));\n }\n\n // is e-flux location\n if (\n (location as Location)?.infraProviderId === \"NLEFL\" ||\n (location as OcpiLocation)?.party_id === \"EFL\"\n ) {\n if (type === \"scheduled\") {\n notes.push(t(\"tariffNote.eFluxScheduledTariffNote\"));\n }\n // if only base tariff\n return notes;\n }\n\n if (type === \"scheduled\") {\n notes.push(\n t(\"tariffNote.baseTariffNote\"),\n t(\"tariffNote.scheduledTariffNote\"),\n );\n } else {\n notes.push(t(\"tariffNote.baseTariffNote\"));\n }\n\n return notes;\n}\n","import React from \"react\";\nimport styles from \"./locations.module.css\";\nimport StationIcon from \"../../assets/station-icon.svg\";\nimport BuildingIcon from \"../../assets/building-icon.svg\";\nimport CarIcon from \"../../assets/car-icon.svg\";\nimport BoltIcon from \"../../assets/bolt-icon.svg\";\nimport PricingIcon from \"../../assets/pricing-icon.svg\";\nimport { Info } from \"../../components/Icons/Icons\";\nimport {\n getStatusColorFromEvses,\n getLocationLabel,\n getStatusLabel,\n getSocketIcon,\n getSocketText,\n} from \"../../utils/formatters\";\nimport ConnectorTariff from \"../../components/ConnectorTariff/ConnectorTariff\";\nimport { getColorForStatus } from \"../../utils/location\";\nimport { getConnectorTariffType } from \"../../utils/ocpi\";\nimport { getNotes } from \"../../utils/notes\";\nimport { formatNumber } from \"../../utils/formatters\";\nimport { useMapContext } from \"../../contexts/Map\";\n\ninterface Props {\n currentLocation: any;\n setView(view: string, args?: any): void;\n evses: any[];\n cdrAdditionalCharges: any[];\n}\n\nconst LocationDetailsV1: React.FC<Props> = ({\n currentLocation,\n evses,\n setView,\n cdrAdditionalCharges,\n}) => {\n const { options, t, language } = useMapContext();\n const availableEvse = evses.filter((evse) => evse.status === \"AVAILABLE\");\n return (\n <div className={styles.container}>\n <div className={styles.row}>\n <img className={styles.icon} src={StationIcon} alt=\"station icon\" />\n <div className={styles.text}>\n {options.locationBaseUrl && (\n <a href={`${options.locationBaseUrl}/${currentLocation.id}`}>\n {currentLocation.name || \"-\"}\n </a>\n )}\n {!options.locationBaseUrl && currentLocation.name}\n </div>\n </div>\n <div className={styles.row}>\n <div className={styles.icon}>\n <div\n style={{\n background: getStatusColorFromEvses(currentLocation.evses),\n }}\n className={styles.statusIcon}\n />\n </div>\n <div className={styles.text}>\n {availableEvse.length} / {evses.length} {t(\"evse.statusAvailable\")}\n </div>\n </div>\n {currentLocation.subOperator?.name && (\n <div className={styles.row}>\n <img className={styles.icon} src={BuildingIcon} alt=\"building icon\" />\n <div className={styles.text}>{currentLocation.subOperator?.name}</div>\n </div>\n )}\n\n {currentLocation.parkingType !== \"UNKNOWN\" && (\n <div className={styles.row}>\n <img className={styles.icon} src={CarIcon} alt=\"parking icon\" />\n <div className={styles.text}>\n {getLocationLabel(t, currentLocation.parkingType)}\n </div>\n </div>\n )}\n\n {evses.map((evse) => {\n return (\n <div key={evse.evseId}>\n <hr className={styles.divider} />\n <div className={styles.row}>\n <img className={styles.icon} src={BoltIcon} alt=\"power icon\" />\n <div className={styles.text}>{evse.evseId}</div>\n </div>\n <div className={styles.row}>\n <div\n style={{\n background: getColorForStatus(evse.status),\n }}\n className={styles.statusIcon}\n />\n <div className={styles.text}>\n {[\n getStatusLabel(t, evse.status),\n evse.maxPower &&\n `${formatNumber(language, Math.floor(evse.maxPower))}kW`,\n ]\n .filter(Boolean)\n .join(\", \")}\n </div>\n </div>\n {evse.connectors.map((connector, i) => {\n const connectorType = getConnectorTariffType(connector.tariff);\n const notes = getNotes(t, currentLocation, connectorType);\n return (\n <div key={`connector-${i}`}>\n {\" \"}\n <div className={styles.row}>\n <img\n className={styles.icon}\n src={getSocketIcon(connector)}\n alt=\"socket type\"\n />\n <div className={styles.text}>\n {getSocketText(connector)}\n </div>\n </div>\n <div className={styles.row}>\n <img\n className={styles.icon}\n src={PricingIcon}\n alt=\"pricing\"\n />\n <div className={styles.text}>{t(\"evse.pricing\")}</div>\n </div>\n <ConnectorTariff\n tariff={connector.tariff}\n cdrAdditionalCharges={cdrAdditionalCharges}\n />\n {connectorType === \"dynamic\" && (\n <div\n className={styles.tariffNoteLink}\n onClick={() => {\n setView(\"dynamicTariff\", {\n connector: connector,\n evseId: evse.evseId,\n notes: notes,\n locationName: currentLocation.name,\n });\n }}\n >\n {t(\"location.viewAllHourlyPrices\")}\n </div>\n )}\n {notes.length > 0 && (\n <div\n className={styles.tariffNoteLink}\n onClick={() => {\n setView(\"tariffNote\", {\n locationName: currentLocation.name,\n evseId: evse.evseId,\n notes: getNotes(t, currentLocation, connectorType),\n });\n }}\n >\n <Info /> {t(\"tariffPriceComponent.viewTariff\")}\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default LocationDetailsV1;\n","import React from \"react\";\nimport ConnectorTariff from \"../../../components/ConnectorTariff/ConnectorTariff\";\nimport { CdrAdditionalCharge, OcpiTariff, Tariff } from \"../../../types\";\nimport { useMapContext } from \"../../../contexts/Map\";\n\nexport function transformTariff(tariff: OcpiTariff): Tariff {\n if (!tariff?.currency) return null;\n return {\n currency: tariff.currency,\n id: tariff.id,\n country_code: tariff.country_code,\n party_id: tariff.party_id,\n elements: (tariff?.elements || []).map((element) => ({\n priceComponents: (element?.price_components || []).map((component) => ({\n type: (() => {\n switch (component.type) {\n case \"FLAT\":\n return \"FLAT\";\n case \"TIME\":\n return \"TIME\";\n case \"ENERGY\":\n return \"ENERGY\";\n case \"PARKING_TIME\":\n return \"PARKING_TIME\";\n case \"CONGESTION_TIME\":\n return \"CONGESTION_TIME\";\n }\n })() as \"FLAT\" | \"TIME\" | \"ENERGY\" | \"PARKING_TIME\" | \"CONGESTION_TIME\",\n price: component.price,\n vat: component.vat,\n stepSize: component.step_size,\n })),\n ...(element?.restrictions\n ? {\n restrictions: {\n startTime: element?.restrictions?.start_time,\n endTime: element?.restrictions?.end_time,\n startDate: element?.restrictions?.start_date,\n endDate: element?.restrictions?.end_date,\n dayOfWeek: element?.restrictions?.day_of_week,\n },\n }\n : {}),\n })),\n };\n}\n\ninterface Props {\n tariff: any;\n additionalCharges: CdrAdditionalCharge[];\n}\n\nconst TariffV2: React.FC<Props> = ({ tariff, additionalCharges }) => {\n const { t } = useMapContext();\n\n // Check if tariff has congestion pricing\n const hasCongestionPricing = tariff?.elements?.some((element: any) =>\n element?.price_components?.some((pc: any) => pc.type === \"CONGESTION_TIME\"),\n );\n\n return (\n <>\n {hasCongestionPricing && (\n <div\n style={{\n padding: \"0.8rem\",\n margin: \"0.8rem 0\",\n backgroundColor: \"#FFF4E5\",\n borderLeft: \"3px solid #FF9800\",\n borderRadius: \"4px\",\n fontSize: \"13px\",\n color: \"#663C00\",\n }}\n >\n {t(\"tariff.congestionPricing\")}\n </div>\n )}\n <ConnectorTariff\n tariff={transformTariff(tariff as any)}\n cdrAdditionalCharges={additionalCharges}\n />\n </>\n );\n};\n\nexport default TariffV2;\n","import React, { useEffect, useState } from \"react\";\nimport styles from \"./locations.module.css\";\nimport StationIcon from \"../../assets/station-icon.svg\";\nimport BuildingIcon from \"../../assets/building-icon.svg\";\nimport CarIcon from \"../../assets/car-icon.svg\";\nimport BoltIcon from \"../../assets/bolt-icon.svg\";\nimport PricingIcon from \"../../assets/pricing-icon.svg\";\nimport { Info } from \"../../components/Icons/Icons\";\nimport {\n getStatusColorFromEvses,\n getLocationLabel,\n getStatusLabel,\n getSocketIcon,\n getSocketText,\n} from \"../../utils/formatters\";\nimport { getColorForStatus } from \"../../utils/location\";\nimport {\n calculateMaxPower,\n getConnectorTariffTypeV2,\n ConnectorPowerType,\n} from \"../../utils/ocpi\";\nimport { getNotes } from \"../../utils/notes\";\nimport { formatNumber } from \"../../utils/formatters\";\nimport TariffV2 from \"./v2/Tariff\";\nimport { useMapContext } from \"../../contexts/Map\";\nimport { CurrentLocation, OcpiTariff } from \"../../types\";\n\ninterface Props {\n currentLocation: CurrentLocation;\n setView(view: string, args?: any): void;\n}\n\nconst LocationDetailsV2: React.FC<Props> = ({ currentLocation, setView }) => {\n const { options, t, language } = useMapContext();\n\n const availableEvse =\n currentLocation?.evses?.filter((evse) => evse.status === \"AVAILABLE\") || [];\n\n return (\n <div className={styles.container}>\n {options.context === \"cpo\" && (\n <div className={styles.publishingMode}>\n {currentLocation?.publish ? \"Public location\" : \"Private location\"}\n </div>\n )}\n <div className={styles.row}>\n <img className={styles.icon} src={StationIcon} alt=\"station icon\" />\n <div className={styles.text}>\n {options.locationBaseUrl && (\n <a href={`${options.locationBaseUrl}/${currentLocation?.id}`}>\n {currentLocation?.name || \"-\"}\n </a>\n )}\n {!options.locationBaseUrl && currentLocation?.name}\n </div>\n </div>\n <div className={styles.row}>\n <div className={styles.icon}>\n <div\n style={{\n background: getStatusColorFromEvses(currentLocation.evses),\n }}\n className={styles.statusIcon}\n />\n </div>\n <div className={styles.text}>\n {availableEvse?.length} / {currentLocation?.evses?.length}{\" \"}\n {t(\"evse.statusAvailable\")}\n </div>\n </div>\n {currentLocation?.suboperator?.name && (\n <div className={styles.row}>\n <img className={styles.icon} src={BuildingIcon} alt=\"building icon\" />\n <div className={styles.text}>\n {currentLocation?.suboperator?.name}\n </div>\n </div>\n )}\n\n {currentLocation.parkingType !== \"PARKING_TYPE_UNKNOWN\" && (\n <div className={styles.row}>\n <img className={styles.icon} src={CarIcon} alt=\"parking icon\" />\n <div className={styles.text}>\n {getLocationLabel(t, currentLocation.parkingType)}\n </div>\n </div>\n )}\n\n {currentLocation?.charging_accessibility && (\n <div className={styles.row}>\n <img className={styles.icon} src={CarIcon} alt=\"accessibility icon\" />\n <div className={styles.text}>\n {currentLocation.charging_accessibility === \"TESLA\"\n ? \"Tesla vehicles only\"\n : \"All electric vehicles\"}\n </div>\n </div>\n )}\n\n {currentLocation?.evses?.map((evse) => {\n return (\n <div key={`${evse.evse_id}-${evse.uid}`}>\n <hr className={styles.divider} />\n <div className={styles.row}>\n <img className={styles.icon} src={BoltIcon} alt=\"power icon\" />\n <div className={styles.text}>{evse.evse_id}</div>\n </div>\n <div className={styles.row}>\n <div\n style={{\n background: getColorForStatus(evse.status),\n }}\n className={styles.statusIcon}\n />\n <div className={styles.text}>\n {[\n getStatusLabel(t, evse.status),\n evse.connectors[0]?.power &&\n evse.connectors[0]?.connectorPowerType\n ? `${formatNumber(\n language,\n Math.floor(\n calculateMaxPower(\n evse.connectors[0] as {\n power: {\n maxWatts: number;\n maxVoltage: number;\n maxAmperage: number;\n };\n connectorPowerType: ConnectorPowerType;\n },\n ),\n ),\n )}kW`\n : null,\n ]\n .filter(Boolean)\n .join(\", \")}\n </div>\n </div>\n {evse.connectors.map((connector, i) => {\n const connectorTariff = currentLocation?.tariffs?.find(\n (tariff) => tariff.id === connector?.tariff_ids?.[0],\n );\n\n const connectorType = getConnectorTariffTypeV2(\n connectorTariff as unknown as OcpiTariff,\n );\n const notes = getNotes(t, currentLocation, connectorType);\n return (\n <div key={`connector-${i}`}>\n {\" \"}\n <div className={styles.row}>\n <img\n className={styles.icon}\n src={getSocketIcon(connector)}\n alt=\"socket type\"\n />\n <div className={styles.text}>\n {getSocketText(connector)}\n </div>\n </div>\n <div className={styles.row}>\n <img\n className={styles.icon}\n src={PricingIcon}\n alt=\"pricing\"\n />\n <div className={styles.text}>{t(\"evse.pricing\")}</div>\n </div>\n <TariffV2\n tariff={connectorTariff}\n additionalCharges={\n currentLocation?.cdrAdditionalCharges || []\n }\n />\n {connectorType === \"dynamic\" && (\n <div\n className={styles.tariffNoteLink}\n onClick={() => {\n setView(\"dynamicTariff\", {\n connector: connector,\n evseId: evse.evse_id,\n notes: notes,\n tariff: connectorTariff,\n additionalCharges:\n currentLocation?.cdrAdditionalCharges || [],\n locationName: currentLocation.name,\n });\n }}\n >\n {t(\"location.viewAllHourlyPrices\")}\n </div>\n )}\n {options.context !== \"cpo\" && notes?.length > 0 && (\n <div\n className={styles.tariffNoteLink}\n onClick={() => {\n setView(\"tariffNote\", {\n locationName: currentLocation.name,\n evseId: evse.evse_id,\n notes: getNotes(t, currentLocation, connectorType),\n });\n }}\n >\n <Info /> {t(\"tariffPriceComponent.viewTariff\")}\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default LocationDetailsV2;\n","import React, { useEffect, useState } from \"react\";\nimport styles from \"./locations.module.css\";\nimport LocationPlaceholder from \"../../components/LocationPlaceholder/LocationPlaceholder\";\nimport { ChevronLeft, ChevronRight } from \"../../components/Icons/Icons\";\nimport Debug from \"../../components/Debug/Debug\";\nimport { useMapContext } from \"../../contexts/Map\";\nimport { useStackContext } from \"../../components/Stack/Stack\";\nimport LocationDetailsV1 from \"./LocationDetailsV1\";\nimport LocationDetailsV2 from \"./LocationDetailsV2\";\nimport { OcpiLocation } from \"../../types\";\n\ninterface Props {}\n\nconst Locations: React.FC<Props> = () => {\n const { setView } = useStackContext();\n const { locations, locationsStatus, options } = useMapContext();\n const [locationIndex, setLocationIndex] = useState(0);\n\n useEffect(() => {\n setLocationIndex(0);\n }, [locations]);\n\n const currentLocation = locations[locationIndex];\n\n if (locationsStatus.type === \"loading\" || !currentLocation) {\n return (\n <div className={styles.container}>\n <LocationPlaceholder />\n </div>\n );\n }\n\n const { evses = [], cdrAdditionalCharges } = currentLocation;\n\n const canNext = locationIndex < locations.length - 1;\n const canPrev = locationIndex > 0;\n\n const debugMode = window.location?.search?.includes(\"debug\");\n\n const label = () => {\n switch (options.version) {\n case \"v2\":\n return [currentLocation?.address, currentLocation?.city];\n default:\n //@ts-ignore\n return [currentLocation?.address, currentLocation?.city];\n }\n };\n const isV2 = options.version === \"v2\";\n\n return (\n <>\n {debugMode && currentLocation && <Debug location={currentLocation} />}\n <div className={styles.headerContainer}>\n <div className={styles.header}>\n {locations.length > 1 && (\n <div className={styles.pagingation}>\n <span>\n {locationIndex + 1} / {locations.length}\n </span>\n\n <button\n disabled={!canPrev}\n onClick={() => {\n setLocationIndex(Math.max(0, locationIndex - 1));\n }}\n >\n <ChevronLeft />\n </button>\n <button\n disabled={!canNext}\n onClick={() =>\n setLocationIndex(\n Math.min(locations.length - 1, locationIndex + 1),\n )\n }\n >\n <ChevronRight />\n </button>\n </div>\n )}\n {label().filter(Boolean).join(\", \")}\n </div>\n </div>\n {!isV2 && (\n <LocationDetailsV1\n setView={setView}\n cdrAdditionalCharges={cdrAdditionalCharges}\n currentLocation={currentLocation}\n evses={evses}\n />\n )}\n {isV2 && (\n <LocationDetailsV2\n setView={setView}\n currentLocation={currentLocation as unknown as OcpiLocation}\n />\n )}\n </>\n );\n};\n\nexport default Locations;\n","import React from \"react\";\n\nimport styles from \"./BackButton.module.css\";\n\nimport { ChevronLeft } from \"../Icons/Icons\";\nimport { useMapContext } from \"../../contexts/Map\";\n\nexport default function BackButton({ onClick = () => {} }) {\n const { t } = useMapContext();\n return (\n <button onClick={onClick} className={styles.backButton}>\n <ChevronLeft />\n {t(\"backButton.backTo\")}\n </button>\n );\n}\n","import React, { useEffect, useState, useTransition } from \"react\";\n\nimport { useStackContext } from \"../../components/Stack/Stack\";\n\nimport BackButton from \"../../components/BackButton/BackButton\";\nimport { useMapContext } from \"../../contexts/Map\";\nimport styles from \"./locations.module.css\";\n\nimport BoltIcon from \"../../assets/bolt-icon.svg\";\n\nexport default function TariffNote() {\n const { t } = useMapContext();\n const { current, setView } = useStackContext();\n const { notes = [], evseId, locationName } = current?.args || {};\n\n return (\n <>\n <div className={styles.headerContainer}>\n <div\n className={styles.header}\n onClick={() => setView(\"locations\")}\n style={{ cursor: \"pointer\" }}\n >\n <BackButton />\n {locationName?.text || locationName}\n </div>\n </div>\n <div className={styles.container}>\n <div className={styles.subheader}>{t(\"tariffNote.subHeader\")}</div>\n\n {evseId && (\n <div className={styles.row}>\n <img className={styles.icon} src={BoltIcon} alt=\"power icon\" />\n <div className={styles.text}>{evseId}</div>\n </div>\n )}\n\n {notes.map((note) => (\n <p className={styles.note} key={note}>\n {note}\n </p>\n ))}\n </div>\n </>\n );\n}\n","import { useStackContext } from \"../../components/Stack/Stack\";\n\nimport BackButton from \"../../components/BackButton/BackButton\";\nimport { useMapContext } from \"../../contexts/Map\";\nimport styles from \"./locations.module.css\";\nimport { Info } from \"../../components/Icons/Icons\";\nimport BoltIcon from \"../../assets/bolt-icon.svg\";\nimport ConnectorTariff from \"../../components/ConnectorTariff/ConnectorTariff\";\nimport TariffV2 from \"./v2/Tariff\";\n\nexport default function DynamicTariffs() {\n const { t } = useMapContext();\n const { current, setView } = useStackContext();\n const { connector, tariff, additionalCharges, locationName, evseId, notes } =\n current?.args || {};\n\n const connectorTariff = tariff || connector?.tariff;\n\n if (!connectorTariff) return null;\n\n return (\n <>\n <div className={styles.headerContainer}>\n <div\n className={styles.header}\n onClick={() => setView(\"locations\")}\n style={{ cursor: \"pointer\" }}\n >\n <BackButton />\n {locationName}\n </div>\n </div>\n <div className={styles.container}>\n <div className={styles.subheader}>{t(\"dynamicTariffs.subHeader\")}</div>\n <div className={styles.row}>\n <img className={styles.icon} src={BoltIcon} alt=\"power icon\" />\n <div className={styles.text}>{evseId}</div>\n </div>\n {tariff && (\n <TariffV2 tariff={tariff} additionalCharges={additionalCharges} />\n )}\n {connector.tariff && (\n <ConnectorTariff tariff={connector.tariff} compact={false} />\n )}\n <div\n className={styles.tariffNoteLink}\n onClick={() => {\n setView(\"tariffNote\", {\n locationName: locationName,\n evseId: evseId,\n notes: notes,\n });\n }}\n >\n <Info /> {t(\"tariffPriceComponent.viewTariff\")}\n </div>\n </div>\n </>\n );\n}\n","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='10'%20height='11'%20viewBox='0%200%2010%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6.48751%205.99758L9.85376%202.63133C10.0484%202.43664%2010.0484%202.1207%209.85376%201.9257L9.07157%201.14351C8.87688%200.948826%208.56095%200.948826%208.36595%201.14351L5.00001%204.51008L1.63376%201.14383C1.43907%200.949138%201.12313%200.949138%200.928135%201.14383L0.14626%201.9257C-0.0484277%202.12039%20-0.0484277%202.43633%200.14626%202.63133L3.51251%205.99758L0.14626%209.36383C-0.0484277%209.55851%20-0.0484277%209.87445%200.14626%2010.0695L0.928447%2010.8516C1.12313%2011.0463%201.43907%2011.0463%201.63407%2010.8516L5.00001%207.48508L8.36626%2010.8513C8.56095%2011.046%208.87688%2011.046%209.07188%2010.8513L9.85407%2010.0691C10.0488%209.87445%2010.0488%209.55851%209.85407%209.36351L6.48751%205.99758Z'%20fill='black'/%3e%3c/svg%3e\"","import React from \"react\";\n\nimport CloseIcon from \"../../assets/close-icon.svg\";\nimport styles from \"./CloseButton.module.css\";\n\nexport default function CloseButton({ onClick }) {\n return (\n <button onClick={onClick} className={styles.closeButton}>\n <img src={CloseIcon} />\n </button>\n );\n}\n","import React, { useState } from \"react\";\n\nimport Locations from \"./Locations\";\nimport TariffNote from \"./TariffNote\";\nimport DynamicTariff from \"./DynamicTariffs\";\nimport Stack from \"../../components/Stack\";\nimport CloseButton from \"../../components/CloseButton/CloseButton\";\nimport SideBarContainer from \"../../components/SidebarContainer/SidebarContainer\";\nimport { useStackContext } from \"../../components/Stack/Stack\";\n\nexport default function LocationsScreeen() {\n const [view, setView] = useState<string>(\"locations\");\n const { setView: setParentView } = useStackContext();\n\n return (\n <Stack name=\"locations\" currentView={view} onViewChange={setView}>\n <Stack.View name=\"locations\">\n <SideBarContainer>\n <CloseButton onClick={() => setParentView(\"none\")} />\n <Locations />\n </SideBarContainer>\n </Stack.View>\n\n <Stack.View name=\"tariffNote\">\n <SideBarContainer>\n <TariffNote />\n </SideBarContainer>\n </Stack.View>\n <Stack.View name=\"dynamicTariff\">\n <SideBarContainer>\n <DynamicTariff />\n </SideBarContainer>\n </Stack.View>\n </Stack>\n );\n}\n","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20%3e%3cpath%20d='M14.4985%200H1.50178C0.169343%200%20-0.502939%201.61659%200.441124%202.56066L5.5%207.62131V13C5.5%2013.4721%205.72228%2013.9167%206.1%2014.25L8.1%2015.7208C9.07728%2016.4038%2010.5%2015.7689%2010.5%2014.5208V7.62131L15.5592%202.56066C16.5013%201.6185%2015.8336%200%2014.4985%200ZM9%207V14.5L7%2013V7L1.5%201.5H14.5L9%207Z'%20fill='currentColor'%20/%3e%3c/svg%3e\"","import React, { useEffect } from \"react\";\n\nimport { useMapContext } from \"./contexts/Map\";\n\nimport Stack from \"./components/Stack\";\n\nimport styles from \"./router.module.css\";\nimport SearchInput from \"./components/SearchInput/SearchInput\";\n\nimport Filters from \"./screens/Filters\";\nimport Locations from \"./screens/Locations\";\n\nimport filterIcon from \"./assets/filter-icon.svg\";\n\nimport CloseButton from \"./components/CloseButton/CloseButton\";\nimport SideBarContainer from \"./components/SidebarContainer/SidebarContainer\";\n\nimport { hasFilters } from \"./utils/filters\";\n\nexport default function Controls() {\n const { locationIds, fetchLocations, filters, isSearching } = useMapContext();\n const [view, setView] = React.useState<string>(\"none\");\n\n useEffect(() => {\n if (locationIds.length > 0) {\n setView(\"locations\");\n }\n }, [locationIds, setView]);\n\n return (\n <div className={styles.container}>\n <div className={styles.controlsContainer}>\n <SearchInput\n onFocus={() => {\n setView(\"none\");\n }}\n />\n\n <div\n className={styles.filterButton}\n onClick={() => {\n setView(\"filters\");\n }}\n >\n {isSearching ?? false ? (\n <div className={styles.spinner}></div>\n ) : (\n <img className={styles.filterIcon} src={filterIcon} />\n )}\n {hasFilters(filters) && !(isSearching ?? false) && (\n <span className={styles.filterCounter}></span>\n )}\n </div>\n </div>\n\n <div className={styles.stackContainer}>\n <Stack\n name=\"router\"\n currentView={view}\n onViewChange={(view) => {\n setView(view);\n }}\n >\n <Stack.View name=\"locations\">\n <Locations />\n </Stack.View>\n <Stack.View name=\"filters\">\n <SideBarContainer>\n <CloseButton onClick={() => setView(\"none\")} />\n <Filters />\n </SideBarContainer>\n </Stack.View>\n </Stack>\n </div>\n </div>\n );\n}\n","import React, { useEffect } from \"react\";\nimport { createRoot, Root } from \"react-dom/client\";\nimport Boot from \"./Boot\";\nimport { MapProvider } from \"./contexts/Map\";\nimport Map from \"./components/Map/Map\";\nimport Router from \"./Router\";\nimport { RoadMapOptions } from \"./types\";\nimport { useRef } from \"react\";\n\nexport default function RoadMap(props: RoadMapOptions) {\n if (!props.shadowRoot && props?.theming?.backgroundColor) {\n return <ShadowMapWrapper {...props} />;\n }\n return (\n <MapProvider options={props} language={props.language}>\n <Boot height={props?.height}>\n <Router />\n <Map />\n </Boot>\n </MapProvider>\n );\n}\n\n// This wrapper is used to create a shadow root if one is not provided by the end user\nconst ShadowMapWrapper: React.FC<RoadMapOptions> = (props) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const rootRef = useRef<Root | null>(null);\n const shadowRootRef = useRef<ShadowRoot | null>(null);\n const isInitializedRef = useRef<boolean>(false);\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container || isInitializedRef.current) return;\n\n const shadowRoot = container.attachShadow({ mode: \"open\" });\n shadowRootRef.current = shadowRoot;\n\n // We default to the most recent version of the sdk stylesheet\n let styleHref = `https://mapsdk.road.io/styles.css`;\n if (props.sdkRoot) {\n styleHref = props.sdkRoot + \"/styles.css\";\n }\n\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.type = \"text/css\";\n link.href = styleHref;\n\n // Append link to shadow root BEFORE rendering\n shadowRoot.appendChild(link);\n\n // Create React root\n const root = createRoot(shadowRoot);\n rootRef.current = root;\n isInitializedRef.current = true;\n\n return () => {\n if (rootRef.current) {\n rootRef.current.unmount();\n rootRef.current = null;\n }\n shadowRootRef.current = null;\n isInitializedRef.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (!rootRef.current || !shadowRootRef.current) return;\n const roadMapElement = React.createElement(RoadMap, {\n ...props,\n shadowRoot: shadowRootRef.current,\n });\n rootRef.current.render(roadMapElement);\n }, [props]);\n\n return <div ref={containerRef} style={{ height: \"100%\", width: \"100%\" }} />;\n};\n"],"names":["useOnScreen","ref","wasIntersecting","setWasIntersecting","useState","observer","useMemo","entry","useEffect","getLanguage","lng","language","en","nl","de","fr","it","es","strings","request","url","options","response","e","_fetchGeohashes","apiRoot","version","authorization","limitToLocationIds","precision","bbox","props","_fetchTariffs","origin","ids","_fetchLocations","status","loadRemoteConfig","MapContext","createContext","key","MapProvider","children","setOptions","filterConfiguration","setFilterConfiguration","error","setError","place","setPlace","position","setPosition","filters","setFilters","locationIds","setLocationsIds","locations","setLocations","locationsStatus","setLocationsStatus","isSearching","setIsSearching","isDebug","t","match","p1","mapKey","fetchGeohashes","fetchLocations","fetchTariffs","onFetchLocations","data","location","rc","err","theming","shadowRoot","style","isReady","providerValue","useMapContext","context","React","Boot","useContext","useRef","loaded","jsxs","styles","jsx","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","rejected","result","getDefaultExportFromCjs","x","fastDeepEqual","equal","a","b","length","i","keys","isEqual","DEFAULT_ID","LoaderStatus","Loader","apiKey","authReferrerPolicy","channel","client","id","libraries","mapIds","nonce","region","retries","script","name","fn","_a","_b","params","g","h","k","p","c","l","q","m","d","r","u","f","n","libraryPromises","library","event","delay","cb","instance","getLoader","loader","base32","Geohash","lat","lon","hash","posn","idx","bit","evenBit","geohash","latMin","latMax","lonMin","lonMax","lonMid","latMid","bounds","chr","bitN","direction","neighbour","border","lastCh","parent","type","createOverlay","container","pane","Overlay","point","OverlayView","map","zIndex","div","overlay","createPortal","getColorForStatus","formatter","formatNumber","num","CustomMarker","onClick","highlight","handleClick","useCallback","styleColor","geoHashZoom","zoomToHashChars","zoom","getNormalizedBounds","zoomLevel","mapSWPoint","mapNEPoint","SWGeohash","geohashSWBounds","latStep","lngStep","neLat","neLng","isSameBounds","bounds1","bounds2","MapMarkers","onMarkerClicked","setData","mapConfig","setMapConfig","currentZoomLevel","currentBounds","newZoomLevel","newMapConfig","appendData","newData","oldData","o","ignore","_onMarkerClicked","Fragment","item","MapWrapper","setMap","mapContainerRef","Map","_extends","_objectWithoutPropertiesLoose","_setPrototypeOf","_inheritsLoose","setPrototypeOf","v","w","y","z","A","reactIs_production_min","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","isValidElementType","typeOf","object","$$typeof","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","reactIs_development","reactIsModule","require$$0","require$$1","getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","toObject","val","shouldUseNative","test1","test2","order2","test3","letter","objectAssign","target","source","from","to","symbols","s","ReactPropTypesSecret","ReactPropTypesSecret_1","has","printWarning","loggedTypeFailures","text","message","checkPropTypes","typeSpecs","values","componentName","getStack","typeSpecName","ex","stack","checkPropTypes_1","ReactIs","assign","require$$2","require$$3","require$$4","emptyFunctionThatReturnsNull","factoryWithTypeCheckers","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","iteratorFn","ANONYMOUS","ReactPropTypes","createPrimitiveTypeChecker","createAnyTypeChecker","createArrayOfTypeChecker","createElementTypeChecker","createElementTypeTypeChecker","createInstanceTypeChecker","createNodeChecker","createObjectOfTypeChecker","createEnumTypeChecker","createUnionTypeChecker","createShapeTypeChecker","createStrictShapeTypeChecker","is","PropTypeError","createChainableTypeChecker","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","propName","propFullName","secret","cacheKey","chainedCheckType","expectedType","propValue","propType","getPropType","preciseType","getPreciseType","typeChecker","expectedClass","expectedClassName","actualClassName","getClassName","expectedValues","valuesString","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","expectedTypesMessage","isNode","invalidValidatorError","shapeTypes","allKeys","iterator","isSymbol","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","getShim","propTypesModule","hasClass","element","className","addClass","replaceClassName","origClass","classToRemove","removeClass","config","timeoutsShape","PropTypes","classNamesShape","TransitionGroupContext","forceReflow","node","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","_this","parentGroup","appear","initialStatus","_ref","prevState","nextIn","_proto","prevProps","nextStatus","timeout","exit","enter","mounting","ReactDOM","_this2","appearing","_ref2","maybeNode","maybeAppearing","timeouts","enterTimeout","_this3","nextState","callback","_this4","active","handler","doesNotHaveTimeoutOrListener","_ref3","maybeNextCallback","_this$props","childProps","pt","_len","args","_key","noop","_addClass","classes","addOneClass","removeOneClass","CSSTransition","_this$resolveArgument","_this$resolveArgument2","_this$resolveArgument3","_this$resolveArgument4","_this$resolveArgument5","_this$resolveArgument6","classNames","isStringClassNames","prefix","baseClassName","activeClassName","doneClassName","phase","_this$getClassNames","_this$appliedClasses$","_leaveRenders","_enterRenders","areChildrenDifferent","oldChildren","newChildren","modes","callHook","_element$props","leaveRenders","current","changeState","enterRenders","_ref4","SwitchTransition","state","mode","_this$state","component","StackView","StackContext","useStackContext","Stack","currentView","onViewChange","elements","createRef","currentRef","setCurrentRef","View","setArgs","contextValue","view","opt","done","SearchInput","onFocus","inputRef","places","autocomplete","CheckboxToggle","checked","onChange","isChecked","setIsChecked","onChangeCallback","Range","ticks","convertValue","tick","bgSize","REACT_SERVER_CONTEXT_TYPE","REACT_OFFSCREEN_TYPE","enableScopeAPI","enableCacheElement","enableTransitionTracing","enableLegacyHidden","enableDebugTracing","REACT_MODULE_REFERENCE","SuspenseList","hasWarnedAboutDeprecatedIsConcurrentMode","isSuspenseList","W","H","M","C","I","R","T","B","V","D","L","F","S","X","Y","__assign","idCounter","cbToCb","scrollIntoView","menuNode","actions","compute","el","top","left","isOrContainsNode","child","environment","debounce","time","timeoutId","cancel","wrapper","callAllEventHandlers","_len2","fns","_key2","_len3","_key3","handleRefs","_len4","refs","_key4","generateId","getA11yStatusMessage","isOpen","resultCount","previousResultCount","unwrapArray","arg","defaultValue","isDOMElement","getElementProps","requiredProp","fnName","stateKeys","pickState","getState","isControlledProp","normalizeArrowKey","keyCode","isPlainObject","obj","getHighlightedIndex","start","offset","items","isItemDisabled","circular","count","itemsLastIndex","highlightedIndex","getNonDisabledIndex","backwards","index","_index","targetWithinDownshift","downshiftElements","checkActiveElement","contextNode","validateControlledUnchanged","nextProps","warningDescription","propKey","cleanupStatus","documentProp","getStatusDiv","statusDiv","setStatus","cleanupStatusDiv","unknown","mouseUp","itemMouseEnter","keyDownArrowUp","keyDownArrowDown","keyDownEscape","keyDownEnter","keyDownHome","keyDownEnd","clickItem","blurInput","changeInput","keyDownSpaceButton","clickButton","blurButton","controlledPropUpdatedSelectedItem","touchEnd","stateChangeTypes$3","_excluded$3","_excluded2$3","_excluded3$2","_excluded4$2","_excluded5","Downshift","_Component","_props","_item","currentElementNode","otherStateToSet","itemIndex","stateToSet","isItemSelected","onChangeArg","onStateChangeArg","isStateToSetFunction","_newStateToSet","newStateToSet","hasMoreStateThanType","_temp","_temp2","_extends2","_ref$refKey","refKey","rest","_ref2$suppressRefErro","suppressRefError","_this$getState","amount","itemCount","_this2$getState","nextHighlightedIndex","_this3$getState","_this$getState2","itemNode","_this$getState3","newHighlightedIndex","_this$getState4","_temp3","onKeyDown","onKeyUp","onBlur","_this$getState5","enabledEventHandlers","eventHandlers","_this$props$environme","body","activeElement","blurTarget","_temp4","onInput","onChangeKey","_this$getState6","inputValue","_eventHandlers","_activeElement$datase","downshiftButtonIsActive","_temp5","_temp6","_extends3","_ref5","_ref5$refKey","_ref6","_ref6$suppressRefErro","_temp7","_enabledEventHandlers","_ref7","onMouseMove","onMouseDown","_ref7$item","onSelectKey","customClickHandler","_ref8","selectedItem","_ref9","_this$getState7","_this$props2","defaultHighlightedIndex","_this$props2$initialH","_highlightedIndex","defaultIsOpen","_this$props2$initialI","_isOpen","_this$props2$initialI2","_inputValue","_this$props2$initialS","_selectedItem","_state","stateToMerge","_this$getState8","_this$getState9","itemToString","getRootProps","getToggleButtonProps","getLabelProps","getMenuProps","getInputProps","getItemProps","openMenu","closeMenu","toggleMenu","selectItem","selectItemAtIndex","selectHighlightedItem","setHighlightedIndex","clearSelection","clearItems","reset","setItemCount","unsetItemCount","setState","validateGetMenuPropsCalledCorrectly","onMouseUp","contextWithinDownshift","onTouchStart","onTouchMove","onTouchEnd","_ref0","currentHighlightedIndex","_ref1","prevHighlightedIndex","scrollWhenOpen","scrollWhenNavigating","validateGetRootPropsCalledCorrectly","cloneElement","Component","prevItem","_ref10","_ref11","refKeySpecified","isComposite","dropdownDefaultStateValues","callOnChangeProps","action","newState","changes","invokeOnChangeHandler","capitalizeString","stateReducer","updateA11yStatus","document","useIsomorphicLayoutEffect","useLayoutEffect","useElementIds","labelId","menuId","getItemId","toggleButtonId","inputId","reactId","elementIdsRef","_ref2$id","getItemAndIndex","itemProp","indexProp","errorMessage","isAcceptedCharacterKey","string","useLatestRef","useEnhancedReducer","reducer","createInitialState","isStateEqual","prevStateRef","actionRef","enhancedReducer","_useReducer","useReducer","dispatch","propsRef","dispatchWithProps","shouldCallOnChangeProps","useControlledReducer$1","_useEnhancedReducer","defaultProps$3","getDefaultValue$1","defaultStateValues","getInitialValue$1","initialValue","getInitialState$2","getInitialHighlightedIndex","getHighlightedIndexOnOpen","initialHighlightedIndex","itemToKey","useMouseAndTouchTracker","handleBlur","downshiftElementsRefs","mouseAndTouchTrackersRef","useGetterPropsCalledChecker","propKeys","getterPropsCalledRef","acc","propCallInfo","elementRef","setGetterPropCallInfo","useA11yMessageStatus","dependencyArray","isInitialMount","useIsInitialMount","useScrollIntoView","itemRefs","getItemNodeFromIndex","menuElement","scrollIntoViewProp","shouldScrollRef","useControlPropsValidator","prevPropsRef","getChangesOnSelection","_props$items","shouldSelect","isDropdownsStateEqual","isInitialMountRef","getDefaultHighlightedIndex","commonPropTypes","commonDropdownPropTypes","downshiftCommonReducer","stateChangeTypes","getItemIndexByCharacterKey","keysSoFar","lowerCasedKeysSoFar","offsetIndex","propTypes$2","defaultProps$2","validatePropTypes$2","caller","ToggleButtonClick$1","ToggleButtonKeyDownArrowDown","ToggleButtonKeyDownArrowUp","ToggleButtonKeyDownCharacter","ToggleButtonKeyDownEscape","ToggleButtonKeyDownHome","ToggleButtonKeyDownEnd","ToggleButtonKeyDownEnter","ToggleButtonKeyDownSpaceButton","ToggleButtonKeyDownPageUp","ToggleButtonKeyDownPageDown","ToggleButtonBlur","MenuMouseLeave$1","ItemMouseMove$1","ItemClick$1","FunctionToggleMenu$1","FunctionOpenMenu$1","FunctionCloseMenu$1","FunctionSetHighlightedIndex$1","FunctionSelectItem$1","FunctionSetInputValue$1","FunctionReset$2","stateChangeTypes$2","downshiftSelectReducer","altKey","lowercasedKey","_highlightedIndex2","_excluded$2","_excluded2$2","_excluded3$1","_excluded4$1","useSelect","userProps","_useControlledReducer","toggleButtonRef","menuRef","clearTimeoutRef","elementIds","latest","outerDispatch","focusOnOpen","mouseAndTouchTrackers","toggleButtonKeyDownHandlers","currentState","newSelectedItem","setInputValue","newInputValue","labelProps","labelHandleClick","_toggleButtonRef$curr","onMouseLeave","_ref2$refKey","_ref3$suppressRefErro","menuHandleMouseLeave","_ref4$refKey","_ref5$suppressRefErro","latestState","toggleButtonHandleClick","toggleButtonHandleBlur","toggleButtonHandleKeyDown","toggleProps","toggleButtonNode","_extends4","_ref6$refKey","disabledProp","_latest$current","latestProps","_getItemAndIndex","disabled","itemHandleMouseMove","itemHandleClick","itemHandleMouseDown","itemProps","MultiSelect","preferredValues","placeholder","setIsOpen","containerRef","preferredSet","filteredOptions","filtered","option","preferred","others","selectedOptions","downshiftIsOpen","newValue","newValues","handleClickOutside","handleInputChange","handleKeyDown","handleMenuClick","handleMenuMouseDown","removeValue","valueToRemove","toggleDropdown","isLastOverall","actualIndex","isLastInOthers","SelectField","handleChange","selectedValue","ICON_IEC_62196_T2","ICON_IEC_62196_T2_COMBO","ICON_IEC_62196_T1","ICON_IEC_62196_T1_COMBO","ICON_IEC_62196_T3","ICON_IEC_62196_T3A","ICON_SCHUKO","ICON_CHADEMO","ICON_CATARC","connectorIcons","defaultFilter","hasFilters","filter","powerRanges","toggleOption","existingFilters","optionFilters","useLocalState","initialState","updatedState","FiltersScreen","applyFilters","contextFilters","setParentView","showOperatorFilter","Checkbox","operator","LocationPlaceholder","ChevronLeft","ChevronRight","Info","SideBarContainer","Debug","evse","connector","StationIcon","BuildingIcon","CarIcon","BoltIcon","PricingIcon","getSocketIcon","connectorPowerTypes","getSocketText","formatConnectorStandard","getStatusLabel","getLocationLabel","getStatusColorFromEvses","evses","getTimezoneOffset","date","timeZone","lang","tzName","part","sign","offsetToMins","formatYMD","year","month","day","tzDate","offMins","startOfDay","oDateTS","sodDateTS","endOfDate","getNextDayOfWeek","dayOfWeek","resultDate","getDay","convertTimeToMinutes","hours","minutes","convertToTimeSlot","startTime","endTime","getScheduleItems","isDayActive","now","currentTime","scheduleItems","refItem","oldEndTime","toAppend","maxEndTime","isBaseTariffOCPI","tariffElement","isBaseTarif","getDynamicTariffOCPI","limit","splitByDay","curr","formattedItems","restrictions","_startDate","partialRestrictions","isActive","getDynamicTariff","getScheduledTariff","locationTimezone","today","start_date","end_date","day_of_week","startDate","endDate","end","omitFields","fields","isSame","aWithoutActive","bWithoutActive","mergeDuplicatesTimeslots","timeslots","cur","existing","getSchedule","days","SUNDAY","firstDay","restDays","dayElements","prevEntry","prevTimeslots","getConnectorTariffTypeV2","tariff","getConnectorTariffType","connectorTarif","ConnectorPowerType","calculateMaxPower","formatCurrency","getPrice","priceComponent","vat","PriceComponent","currency","stringByType","displayOrder","PriceComponents","elementsByType","sortedElements","aIndex","bIndex","Price","price","vatAmount","CdrPriceComponent","cdrAdditionalCharge","formatTime","mins","defaultTimeZone","daysForLocale","format","CdrAdditionalChargeComponent","cdrAdditionalCharges","CdrPrice","ConnectorTariff","timezone","compact","i18nDays","hasPriceComponents","dynamicTariffs","scheduledTariffs","baseTarifElements","isBaseActive","schedule","dynamicTariff","getNotes","notes","LocationDetailsV1","currentLocation","setView","availableEvse","connectorType","transformTariff","TariffV2","additionalCharges","hasCongestionPricing","pc","LocationDetailsV2","connectorTariff","Locations","locationIndex","setLocationIndex","canNext","canPrev","debugMode","label","isV2","BackButton","TariffNote","evseId","locationName","note","DynamicTariffs","CloseIcon","CloseButton","LocationsScreeen","DynamicTariff","filterIcon","Controls","Filters","RoadMap","ShadowMapWrapper","Router","rootRef","shadowRootRef","isInitializedRef","styleHref","link","root","createRoot","roadMapElement"],"mappings":"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","x_google_ignoreList":[5,7,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,42,43,44,45,46,47]}