{"version":3,"file":"5613.4f145959.js","mappings":"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","sources":["webpack:///./node_modules/@algolia/autocomplete-shared/dist/esm/debounce.js","webpack:///./node_modules/@algolia/autocomplete-shared/dist/esm/isEqual.js","webpack:///./node_modules/@algolia/autocomplete-shared/dist/esm/noop.js","webpack:///./node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createClickedEvent.js","webpack:///./node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/isModernInsightsClient.js","webpack:///./node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createSearchInsightsApi.js","webpack:///./node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createViewedEvents.js","webpack:///./node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/isAlgoliaInsightsHit.js","webpack:///./node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createAlgoliaInsightsPlugin.js","webpack:///./node_modules/@algolia/autocomplete-shared/dist/esm/safelyRunOnBrowser.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/createStore.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromiseList.js","webpack:///./node_modules/@algolia/autocomplete-shared/dist/esm/flatten.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/getAutocompleteSetters.js","webpack:///./node_modules/@algolia/autocomplete-shared/dist/esm/getItemsCount.js","webpack:///./node_modules/@algolia/autocomplete-shared/dist/esm/generateAutocompleteId.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/utils/getNormalizedSources.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/getDefaultProps.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/reshape.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/resolve.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/utils/mapToAlgoliaResponse.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromise.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/utils/getActiveItem.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/onInput.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/utils/createConcurrentSafePromise.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/utils/getAutocompleteElementId.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/onKeyDown.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/utils/isSamsung.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/utils/getNativeEvent.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/getPropGetters.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/utils/isOrContainsNode.js","webpack:///./node_modules/@algolia/autocomplete-shared/dist/esm/version.js","webpack:///./node_modules/@algolia/autocomplete-shared/dist/esm/userAgents.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/metadata.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/getCompletion.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/utils/getNextActiveItemId.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/stateReducer.js","webpack:///./node_modules/@algolia/autocomplete-core/dist/esm/createAutocomplete.js","webpack:///./node_modules/htm/dist/htm.module.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/elements/SearchIcon.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/elements/ClearIcon.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/elements/LoadingIcon.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/utils/setProperties.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/getCreateDomElement.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/elements/Input.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/createAutocompleteDom.js","webpack:///./node_modules/@algolia/autocomplete-js/node_modules/preact/dist/preact.module.js","webpack:///./node_modules/@algolia/autocomplete-shared/dist/esm/getAttributeValueByPath.js","webpack:///./node_modules/@algolia/autocomplete-preset-algolia/dist/esm/constants/index.js","webpack:///./node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAttribute.js","webpack:///./node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitHighlight.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/components/Highlight.js","webpack:///./node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/isPartHighlighted.js","webpack:///./node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/reverseHighlightedParts.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/components/ReverseHighlight.js","webpack:///./node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitReverseHighlight.js","webpack:///./node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitSnippet.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/components/ReverseSnippet.js","webpack:///./node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitReverseSnippet.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/components/Snippet.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/utils/getHTMLElement.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/utils/mergeClassNames.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/getDefaultOptions.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/getPanelPlacementStyle.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/render.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/userAgents.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/utils/mergeDeep.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/utils/pickBy.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/autocomplete.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/createReactiveWrapper.js","webpack:///./node_modules/@algolia/autocomplete-js/dist/esm/createEffectWrapper.js","webpack:///./node_modules/@algolia/autocomplete-shared/dist/esm/createRef.js","webpack:///./node_modules/core-js/internals/date-to-primitive.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/modules/es.date.to-primitive.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/core-js/modules/es.object.define-properties.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./node_modules/core-js/modules/es.regexp.dot-all.js","webpack:///./node_modules/core-js/modules/es.regexp.sticky.js","webpack:///./node_modules/core-js/modules/es.symbol.to-primitive.js"],"sourcesContent":["export function debounce(fn, time) {\n var timerId = undefined;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(function () {\n return fn.apply(void 0, args);\n }, time);\n };\n}","function isPrimitive(obj) {\n return obj !== Object(obj);\n}\nexport function isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {\n return first === second;\n }\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n if (!(key in second)) {\n return false;\n }\n if (!isEqual(first[key], second[key])) {\n return false;\n }\n }\n return true;\n}","export var noop = function noop() {};","export function createClickedEvent(_ref) {\n var item = _ref.item,\n _ref$items = _ref.items,\n items = _ref$items === void 0 ? [] : _ref$items;\n return {\n index: item.__autocomplete_indexName,\n items: [item],\n positions: [1 + items.findIndex(function (x) {\n return x.objectID === item.objectID;\n })],\n queryID: item.__autocomplete_queryID,\n algoliaSource: ['autocomplete']\n };\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\n * Determines if a given insights `client` supports the optional call to `init`\n * and the ability to set credentials via extra parameters when sending events.\n */\nexport function isModernInsightsClient(client) {\n var _split$map = (client.version || '').split('.').map(Number),\n _split$map2 = _slicedToArray(_split$map, 2),\n major = _split$map2[0],\n minor = _split$map2[1];\n\n /* eslint-disable @typescript-eslint/camelcase */\n var v3 = major >= 3;\n var v2_4 = major === 2 && minor >= 4;\n var v1_10 = major === 1 && minor >= 10;\n return v3 || v2_4 || v1_10;\n /* eslint-enable @typescript-eslint/camelcase */\n}","var _excluded = [\"items\"],\n _excluded2 = [\"items\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { isModernInsightsClient } from './isModernInsightsClient';\nfunction chunk(item) {\n var chunkSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20;\n var chunks = [];\n for (var i = 0; i < item.objectIDs.length; i += chunkSize) {\n chunks.push(_objectSpread(_objectSpread({}, item), {}, {\n objectIDs: item.objectIDs.slice(i, i + chunkSize)\n }));\n }\n return chunks;\n}\nfunction mapToInsightsParamsApi(params) {\n return params.map(function (_ref) {\n var items = _ref.items,\n param = _objectWithoutProperties(_ref, _excluded);\n return _objectSpread(_objectSpread({}, param), {}, {\n objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref2) {\n var objectID = _ref2.objectID;\n return objectID;\n })) || param.objectIDs\n });\n });\n}\nexport function createSearchInsightsApi(searchInsights) {\n var canSendHeaders = isModernInsightsClient(searchInsights);\n function sendToInsights(method, payloads, items) {\n if (canSendHeaders && typeof items !== 'undefined') {\n var _items$0$__autocomple = items[0].__autocomplete_algoliaCredentials,\n appId = _items$0$__autocomple.appId,\n apiKey = _items$0$__autocomple.apiKey;\n var headers = {\n 'X-Algolia-Application-Id': appId,\n 'X-Algolia-API-Key': apiKey\n };\n searchInsights.apply(void 0, [method].concat(_toConsumableArray(payloads), [{\n headers: headers\n }]));\n } else {\n searchInsights.apply(void 0, [method].concat(_toConsumableArray(payloads)));\n }\n }\n return {\n /**\n * Initializes Insights with Algolia credentials.\n */\n init: function init(appId, apiKey) {\n searchInsights('init', {\n appId: appId,\n apiKey: apiKey\n });\n },\n /**\n * Sets the authenticated user token to attach to events.\n * Unsets the authenticated token by passing `undefined`.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/set-authenticated-user-token/\n */\n setAuthenticatedUserToken: function setAuthenticatedUserToken(authenticatedUserToken) {\n searchInsights('setAuthenticatedUserToken', authenticatedUserToken);\n },\n /**\n * Sets the user token to attach to events.\n */\n setUserToken: function setUserToken(userToken) {\n searchInsights('setUserToken', userToken);\n },\n /**\n * Sends click events to capture a query and its clicked items and positions.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/\n */\n clickedObjectIDsAfterSearch: function clickedObjectIDsAfterSearch() {\n for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {\n params[_key] = arguments[_key];\n }\n if (params.length > 0) {\n sendToInsights('clickedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends click events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/\n */\n clickedObjectIDs: function clickedObjectIDs() {\n for (var _len2 = arguments.length, params = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n params[_key2] = arguments[_key2];\n }\n if (params.length > 0) {\n sendToInsights('clickedObjectIDs', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends click events to capture the filters a user clicks on.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/\n */\n clickedFilters: function clickedFilters() {\n for (var _len3 = arguments.length, params = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n params[_key3] = arguments[_key3];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['clickedFilters'].concat(params));\n }\n },\n /**\n * Sends conversion events to capture a query and its clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/\n */\n convertedObjectIDsAfterSearch: function convertedObjectIDsAfterSearch() {\n for (var _len4 = arguments.length, params = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n params[_key4] = arguments[_key4];\n }\n if (params.length > 0) {\n sendToInsights('convertedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends conversion events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/\n */\n convertedObjectIDs: function convertedObjectIDs() {\n for (var _len5 = arguments.length, params = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n params[_key5] = arguments[_key5];\n }\n if (params.length > 0) {\n sendToInsights('convertedObjectIDs', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends conversion events to capture the filters a user uses when converting.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/\n */\n convertedFilters: function convertedFilters() {\n for (var _len6 = arguments.length, params = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n params[_key6] = arguments[_key6];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['convertedFilters'].concat(params));\n }\n },\n /**\n * Sends view events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/\n */\n viewedObjectIDs: function viewedObjectIDs() {\n for (var _len7 = arguments.length, params = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n params[_key7] = arguments[_key7];\n }\n if (params.length > 0) {\n params.reduce(function (acc, _ref3) {\n var items = _ref3.items,\n param = _objectWithoutProperties(_ref3, _excluded2);\n return [].concat(_toConsumableArray(acc), _toConsumableArray(chunk(_objectSpread(_objectSpread({}, param), {}, {\n objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref4) {\n var objectID = _ref4.objectID;\n return objectID;\n })) || param.objectIDs\n })).map(function (payload) {\n return {\n items: items,\n payload: payload\n };\n })));\n }, []).forEach(function (_ref5) {\n var items = _ref5.items,\n payload = _ref5.payload;\n return sendToInsights('viewedObjectIDs', [payload], items);\n });\n }\n },\n /**\n * Sends view events to capture the filters a user uses when viewing.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/\n */\n viewedFilters: function viewedFilters() {\n for (var _len8 = arguments.length, params = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n params[_key8] = arguments[_key8];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['viewedFilters'].concat(params));\n }\n }\n };\n}","export function createViewedEvents(_ref) {\n var items = _ref.items;\n var itemsByIndexName = items.reduce(function (acc, current) {\n var _acc$current$__autoco;\n acc[current.__autocomplete_indexName] = ((_acc$current$__autoco = acc[current.__autocomplete_indexName]) !== null && _acc$current$__autoco !== void 0 ? _acc$current$__autoco : []).concat(current);\n return acc;\n }, {});\n return Object.keys(itemsByIndexName).map(function (indexName) {\n var items = itemsByIndexName[indexName];\n return {\n index: indexName,\n items: items,\n algoliaSource: ['autocomplete']\n };\n });\n}","export function isAlgoliaInsightsHit(hit) {\n return hit.objectID && hit.__autocomplete_indexName && hit.__autocomplete_queryID;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { createRef, debounce, isEqual, noop, safelyRunOnBrowser } from '@algolia/autocomplete-shared';\nimport { createClickedEvent } from './createClickedEvent';\nimport { createSearchInsightsApi } from './createSearchInsightsApi';\nimport { createViewedEvents } from './createViewedEvents';\nimport { isAlgoliaInsightsHit } from './isAlgoliaInsightsHit';\nvar VIEW_EVENT_DELAY = 400;\nvar ALGOLIA_INSIGHTS_VERSION = '2.15.0';\nvar ALGOLIA_INSIGHTS_SRC = \"https://cdn.jsdelivr.net/npm/search-insights@\".concat(ALGOLIA_INSIGHTS_VERSION, \"/dist/search-insights.min.js\");\nvar sendViewedObjectIDs = debounce(function (_ref) {\n var onItemsChange = _ref.onItemsChange,\n items = _ref.items,\n insights = _ref.insights,\n state = _ref.state;\n onItemsChange({\n insights: insights,\n insightsEvents: createViewedEvents({\n items: items\n }).map(function (event) {\n return _objectSpread({\n eventName: 'Items Viewed'\n }, event);\n }),\n state: state\n });\n}, VIEW_EVENT_DELAY);\nexport function createAlgoliaInsightsPlugin(options) {\n var _getOptions = getOptions(options),\n providedInsightsClient = _getOptions.insightsClient,\n insightsInitParams = _getOptions.insightsInitParams,\n onItemsChange = _getOptions.onItemsChange,\n onSelectEvent = _getOptions.onSelect,\n onActiveEvent = _getOptions.onActive,\n __autocomplete_clickAnalytics = _getOptions.__autocomplete_clickAnalytics;\n var insightsClient = providedInsightsClient;\n if (!providedInsightsClient) {\n safelyRunOnBrowser(function (_ref2) {\n var window = _ref2.window;\n var pointer = window.AlgoliaAnalyticsObject || 'aa';\n if (typeof pointer === 'string') {\n insightsClient = window[pointer];\n }\n if (!insightsClient) {\n window.AlgoliaAnalyticsObject = pointer;\n if (!window[pointer]) {\n window[pointer] = function () {\n if (!window[pointer].queue) {\n window[pointer].queue = [];\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n window[pointer].queue.push(args);\n };\n }\n window[pointer].version = ALGOLIA_INSIGHTS_VERSION;\n insightsClient = window[pointer];\n loadInsights(window);\n }\n });\n }\n\n // We return an empty plugin if `insightsClient` is still undefined at\n // this stage, which can happen in server environments.\n if (!insightsClient) {\n return {};\n }\n if (insightsInitParams) {\n insightsClient('init', _objectSpread({\n partial: true\n }, insightsInitParams));\n }\n var insights = createSearchInsightsApi(insightsClient);\n var previousItems = createRef([]);\n var debouncedOnStateChange = debounce(function (_ref3) {\n var state = _ref3.state;\n if (!state.isOpen) {\n return;\n }\n var items = state.collections.reduce(function (acc, current) {\n return [].concat(_toConsumableArray(acc), _toConsumableArray(current.items));\n }, []).filter(isAlgoliaInsightsHit);\n if (!isEqual(previousItems.current.map(function (x) {\n return x.objectID;\n }), items.map(function (x) {\n return x.objectID;\n }))) {\n previousItems.current = items;\n if (items.length > 0) {\n sendViewedObjectIDs({\n onItemsChange: onItemsChange,\n items: items,\n insights: insights,\n state: state\n });\n }\n }\n }, 0);\n return {\n name: 'aa.algoliaInsightsPlugin',\n subscribe: function subscribe(_ref4) {\n var setContext = _ref4.setContext,\n onSelect = _ref4.onSelect,\n onActive = _ref4.onActive;\n function setInsightsContext(userToken) {\n setContext({\n algoliaInsightsPlugin: {\n __algoliaSearchParameters: _objectSpread(_objectSpread({}, __autocomplete_clickAnalytics ? {\n clickAnalytics: true\n } : {}), userToken ? {\n userToken: normalizeUserToken(userToken)\n } : {}),\n insights: insights\n }\n });\n }\n insightsClient('addAlgoliaAgent', 'insights-plugin');\n setInsightsContext();\n\n // Handles user token changes\n insightsClient('onUserTokenChange', function (userToken) {\n setInsightsContext(userToken);\n });\n insightsClient('getUserToken', null, function (_error, userToken) {\n setInsightsContext(userToken);\n });\n onSelect(function (_ref5) {\n var item = _ref5.item,\n state = _ref5.state,\n event = _ref5.event,\n source = _ref5.source;\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n onSelectEvent({\n state: state,\n event: event,\n insights: insights,\n item: item,\n insightsEvents: [_objectSpread({\n eventName: 'Item Selected'\n }, createClickedEvent({\n item: item,\n items: source.getItems().filter(isAlgoliaInsightsHit)\n }))]\n });\n });\n onActive(function (_ref6) {\n var item = _ref6.item,\n source = _ref6.source,\n state = _ref6.state,\n event = _ref6.event;\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n onActiveEvent({\n state: state,\n event: event,\n insights: insights,\n item: item,\n insightsEvents: [_objectSpread({\n eventName: 'Item Active'\n }, createClickedEvent({\n item: item,\n items: source.getItems().filter(isAlgoliaInsightsHit)\n }))]\n });\n });\n },\n onStateChange: function onStateChange(_ref7) {\n var state = _ref7.state;\n debouncedOnStateChange({\n state: state\n });\n },\n __autocomplete_pluginOptions: options\n };\n}\nfunction getAlgoliaSources() {\n var _context$algoliaInsig;\n var algoliaSourceBase = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 ? arguments[1] : undefined;\n return [].concat(_toConsumableArray(algoliaSourceBase), ['autocomplete-internal'], _toConsumableArray((_context$algoliaInsig = context.algoliaInsightsPlugin) !== null && _context$algoliaInsig !== void 0 && _context$algoliaInsig.__automaticInsights ? ['autocomplete-automatic'] : []));\n}\nfunction getOptions(options) {\n return _objectSpread({\n onItemsChange: function onItemsChange(_ref8) {\n var insights = _ref8.insights,\n insightsEvents = _ref8.insightsEvents,\n state = _ref8.state;\n insights.viewedObjectIDs.apply(insights, _toConsumableArray(insightsEvents.map(function (event) {\n return _objectSpread(_objectSpread({}, event), {}, {\n algoliaSource: getAlgoliaSources(event.algoliaSource, state.context)\n });\n })));\n },\n onSelect: function onSelect(_ref9) {\n var insights = _ref9.insights,\n insightsEvents = _ref9.insightsEvents,\n state = _ref9.state;\n insights.clickedObjectIDsAfterSearch.apply(insights, _toConsumableArray(insightsEvents.map(function (event) {\n return _objectSpread(_objectSpread({}, event), {}, {\n algoliaSource: getAlgoliaSources(event.algoliaSource, state.context)\n });\n })));\n },\n onActive: noop,\n __autocomplete_clickAnalytics: true\n }, options);\n}\nfunction loadInsights(environment) {\n var errorMessage = \"[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete\";\n try {\n var script = environment.document.createElement('script');\n script.async = true;\n script.src = ALGOLIA_INSIGHTS_SRC;\n script.onerror = function () {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n };\n document.body.appendChild(script);\n } catch (cause) {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n }\n}\n\n/**\n * While `search-insights` supports both string and number user tokens,\n * the Search API only accepts strings. This function normalizes the user token.\n */\nfunction normalizeUserToken(userToken) {\n return typeof userToken === 'number' ? userToken.toString() : userToken;\n}","/**\n * Safely runs code meant for browser environments only.\n */\nexport function safelyRunOnBrowser(callback) {\n if (typeof window !== 'undefined') {\n return callback({\n window: window\n });\n }\n return undefined;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { createCancelablePromiseList } from './utils';\nexport function createStore(reducer, props, onStoreStateChange) {\n var state = props.initialState;\n return {\n getState: function getState() {\n return state;\n },\n dispatch: function dispatch(action, payload) {\n var prevState = _objectSpread({}, state);\n state = reducer(state, {\n type: action,\n props: props,\n payload: payload\n });\n onStoreStateChange({\n state: state,\n prevState: prevState\n });\n },\n pendingRequests: createCancelablePromiseList()\n };\n}","export function createCancelablePromiseList() {\n var list = [];\n return {\n add: function add(cancelablePromise) {\n list.push(cancelablePromise);\n return cancelablePromise.finally(function () {\n list = list.filter(function (item) {\n return item !== cancelablePromise;\n });\n });\n },\n cancelAll: function cancelAll() {\n list.forEach(function (promise) {\n return promise.cancel();\n });\n },\n isEmpty: function isEmpty() {\n return list.length === 0;\n }\n };\n}","export function flatten(values) {\n return values.reduce(function (a, b) {\n return a.concat(b);\n }, []);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { flatten } from '@algolia/autocomplete-shared';\nexport function getAutocompleteSetters(_ref) {\n var store = _ref.store;\n var setActiveItemId = function setActiveItemId(value) {\n store.dispatch('setActiveItemId', value);\n };\n var setQuery = function setQuery(value) {\n store.dispatch('setQuery', value);\n };\n var setCollections = function setCollections(rawValue) {\n var baseItemId = 0;\n var value = rawValue.map(function (collection) {\n return _objectSpread(_objectSpread({}, collection), {}, {\n // We flatten the stored items to support calling `getAlgoliaResults`\n // from the source itself.\n items: flatten(collection.items).map(function (item) {\n return _objectSpread(_objectSpread({}, item), {}, {\n __autocomplete_id: baseItemId++\n });\n })\n });\n });\n store.dispatch('setCollections', value);\n };\n var setIsOpen = function setIsOpen(value) {\n store.dispatch('setIsOpen', value);\n };\n var setStatus = function setStatus(value) {\n store.dispatch('setStatus', value);\n };\n var setContext = function setContext(value) {\n store.dispatch('setContext', value);\n };\n return {\n setActiveItemId: setActiveItemId,\n setQuery: setQuery,\n setCollections: setCollections,\n setIsOpen: setIsOpen,\n setStatus: setStatus,\n setContext: setContext\n };\n}","export function getItemsCount(state) {\n if (state.collections.length === 0) {\n return 0;\n }\n return state.collections.reduce(function (sum, collection) {\n return sum + collection.items.length;\n }, 0);\n}","var autocompleteId = 0;\nexport function generateAutocompleteId() {\n return \"autocomplete-\".concat(autocompleteId++);\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport { invariant, decycle, noop } from '@algolia/autocomplete-shared';\nexport function getNormalizedSources(getSources, params) {\n var seenSourceIds = [];\n return Promise.resolve(getSources(params)).then(function (sources) {\n invariant(Array.isArray(sources), function () {\n return \"The `getSources` function must return an array of sources but returned type \".concat(JSON.stringify(_typeof(sources)), \":\\n\\n\").concat(JSON.stringify(decycle(sources), null, 2));\n });\n return Promise.all(sources\n // We allow `undefined` and `false` sources to allow users to use\n // `Boolean(query) && source` (=> `false`).\n // We need to remove these values at this point.\n .filter(function (maybeSource) {\n return Boolean(maybeSource);\n }).map(function (source) {\n invariant(typeof source.sourceId === 'string', 'A source must provide a `sourceId` string.');\n if (seenSourceIds.includes(source.sourceId)) {\n throw new Error(\"[Autocomplete] The `sourceId` \".concat(JSON.stringify(source.sourceId), \" is not unique.\"));\n }\n seenSourceIds.push(source.sourceId);\n var defaultSource = {\n getItemInputValue: function getItemInputValue(_ref) {\n var state = _ref.state;\n return state.query;\n },\n getItemUrl: function getItemUrl() {\n return undefined;\n },\n onSelect: function onSelect(_ref2) {\n var setIsOpen = _ref2.setIsOpen;\n setIsOpen(false);\n },\n onActive: noop,\n onResolve: noop\n };\n Object.keys(defaultSource).forEach(function (key) {\n defaultSource[key].__default = true;\n });\n var normalizedSource = _objectSpread(_objectSpread({}, defaultSource), source);\n return Promise.resolve(normalizedSource);\n }));\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { getItemsCount, generateAutocompleteId, flatten } from '@algolia/autocomplete-shared';\nimport { getNormalizedSources } from './utils';\nexport function getDefaultProps(props, pluginSubscribers) {\n var _props$id;\n /* eslint-disable no-restricted-globals */\n var environment = typeof window !== 'undefined' ? window : {};\n /* eslint-enable no-restricted-globals */\n var plugins = props.plugins || [];\n return _objectSpread(_objectSpread({\n debug: false,\n openOnFocus: false,\n enterKeyHint: undefined,\n ignoreCompositionEvents: false,\n placeholder: '',\n autoFocus: false,\n defaultActiveItemId: null,\n stallThreshold: 300,\n insights: undefined,\n environment: environment,\n shouldPanelOpen: function shouldPanelOpen(_ref) {\n var state = _ref.state;\n return getItemsCount(state) > 0;\n },\n reshape: function reshape(_ref2) {\n var sources = _ref2.sources;\n return sources;\n }\n }, props), {}, {\n // Since `generateAutocompleteId` triggers a side effect (it increments\n // an internal counter), we don't want to execute it if unnecessary.\n id: (_props$id = props.id) !== null && _props$id !== void 0 ? _props$id : generateAutocompleteId(),\n plugins: plugins,\n // The following props need to be deeply defaulted.\n initialState: _objectSpread({\n activeItemId: null,\n query: '',\n completion: null,\n collections: [],\n isOpen: false,\n status: 'idle',\n context: {}\n }, props.initialState),\n onStateChange: function onStateChange(params) {\n var _props$onStateChange;\n (_props$onStateChange = props.onStateChange) === null || _props$onStateChange === void 0 ? void 0 : _props$onStateChange.call(props, params);\n plugins.forEach(function (x) {\n var _x$onStateChange;\n return (_x$onStateChange = x.onStateChange) === null || _x$onStateChange === void 0 ? void 0 : _x$onStateChange.call(x, params);\n });\n },\n onSubmit: function onSubmit(params) {\n var _props$onSubmit;\n (_props$onSubmit = props.onSubmit) === null || _props$onSubmit === void 0 ? void 0 : _props$onSubmit.call(props, params);\n plugins.forEach(function (x) {\n var _x$onSubmit;\n return (_x$onSubmit = x.onSubmit) === null || _x$onSubmit === void 0 ? void 0 : _x$onSubmit.call(x, params);\n });\n },\n onReset: function onReset(params) {\n var _props$onReset;\n (_props$onReset = props.onReset) === null || _props$onReset === void 0 ? void 0 : _props$onReset.call(props, params);\n plugins.forEach(function (x) {\n var _x$onReset;\n return (_x$onReset = x.onReset) === null || _x$onReset === void 0 ? void 0 : _x$onReset.call(x, params);\n });\n },\n getSources: function getSources(params) {\n return Promise.all([].concat(_toConsumableArray(plugins.map(function (plugin) {\n return plugin.getSources;\n })), [props.getSources]).filter(Boolean).map(function (getSources) {\n return getNormalizedSources(getSources, params);\n })).then(function (nested) {\n return flatten(nested);\n }).then(function (sources) {\n return sources.map(function (source) {\n return _objectSpread(_objectSpread({}, source), {}, {\n onSelect: function onSelect(params) {\n source.onSelect(params);\n pluginSubscribers.forEach(function (x) {\n var _x$onSelect;\n return (_x$onSelect = x.onSelect) === null || _x$onSelect === void 0 ? void 0 : _x$onSelect.call(x, params);\n });\n },\n onActive: function onActive(params) {\n source.onActive(params);\n pluginSubscribers.forEach(function (x) {\n var _x$onActive;\n return (_x$onActive = x.onActive) === null || _x$onActive === void 0 ? void 0 : _x$onActive.call(x, params);\n });\n },\n onResolve: function onResolve(params) {\n source.onResolve(params);\n pluginSubscribers.forEach(function (x) {\n var _x$onResolve;\n return (_x$onResolve = x.onResolve) === null || _x$onResolve === void 0 ? void 0 : _x$onResolve.call(x, params);\n });\n }\n });\n });\n });\n },\n navigator: _objectSpread({\n navigate: function navigate(_ref3) {\n var itemUrl = _ref3.itemUrl;\n environment.location.assign(itemUrl);\n },\n navigateNewTab: function navigateNewTab(_ref4) {\n var itemUrl = _ref4.itemUrl;\n var windowReference = environment.open(itemUrl, '_blank', 'noopener');\n windowReference === null || windowReference === void 0 ? void 0 : windowReference.focus();\n },\n navigateNewWindow: function navigateNewWindow(_ref5) {\n var itemUrl = _ref5.itemUrl;\n environment.open(itemUrl, '_blank', 'noopener');\n }\n }, props.navigator)\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { flatten } from '@algolia/autocomplete-shared';\nexport function reshape(_ref) {\n var collections = _ref.collections,\n props = _ref.props,\n state = _ref.state;\n // Sources are grouped by `sourceId` to conveniently pick them via destructuring.\n // Example: `const { recentSearchesPlugin } = sourcesBySourceId`\n var originalSourcesBySourceId = collections.reduce(function (acc, collection) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, collection.source.sourceId, _objectSpread(_objectSpread({}, collection.source), {}, {\n getItems: function getItems() {\n // We provide the resolved items from the collection to the `reshape` prop.\n return flatten(collection.items);\n }\n })));\n }, {});\n var _props$plugins$reduce = props.plugins.reduce(function (acc, plugin) {\n if (plugin.reshape) {\n return plugin.reshape(acc);\n }\n return acc;\n }, {\n sourcesBySourceId: originalSourcesBySourceId,\n state: state\n }),\n sourcesBySourceId = _props$plugins$reduce.sourcesBySourceId;\n var reshapeSources = props.reshape({\n sourcesBySourceId: sourcesBySourceId,\n sources: Object.values(sourcesBySourceId),\n state: state\n });\n\n // We reconstruct the collections with the items modified by the `reshape` prop.\n return flatten(reshapeSources).filter(Boolean).map(function (source) {\n return {\n source: source,\n items: source.getItems()\n };\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { decycle, flatten, invariant } from '@algolia/autocomplete-shared';\nimport { mapToAlgoliaResponse } from './utils';\nfunction isDescription(item) {\n return Boolean(item.execute);\n}\nfunction isRequesterDescription(description) {\n return Boolean(description === null || description === void 0 ? void 0 : description.execute);\n}\nexport function preResolve(itemsOrDescription, sourceId, state) {\n if (isRequesterDescription(itemsOrDescription)) {\n var contextParameters = itemsOrDescription.requesterId === 'algolia' ? Object.assign.apply(Object, [{}].concat(_toConsumableArray(Object.keys(state.context).map(function (key) {\n var _state$context$key;\n return (_state$context$key = state.context[key]) === null || _state$context$key === void 0 ? void 0 : _state$context$key.__algoliaSearchParameters;\n })))) : {};\n return _objectSpread(_objectSpread({}, itemsOrDescription), {}, {\n requests: itemsOrDescription.queries.map(function (query) {\n return {\n query: itemsOrDescription.requesterId === 'algolia' ? _objectSpread(_objectSpread({}, query), {}, {\n params: _objectSpread(_objectSpread({}, contextParameters), query.params)\n }) : query,\n sourceId: sourceId,\n transformResponse: itemsOrDescription.transformResponse\n };\n })\n });\n }\n return {\n items: itemsOrDescription,\n sourceId: sourceId\n };\n}\nexport function resolve(items) {\n var packed = items.reduce(function (acc, current) {\n if (!isDescription(current)) {\n acc.push(current);\n return acc;\n }\n var searchClient = current.searchClient,\n execute = current.execute,\n requesterId = current.requesterId,\n requests = current.requests;\n var container = acc.find(function (item) {\n return isDescription(current) && isDescription(item) && item.searchClient === searchClient && Boolean(requesterId) && item.requesterId === requesterId;\n });\n if (container) {\n var _container$items;\n (_container$items = container.items).push.apply(_container$items, _toConsumableArray(requests));\n } else {\n var request = {\n execute: execute,\n requesterId: requesterId,\n items: requests,\n searchClient: searchClient\n };\n acc.push(request);\n }\n return acc;\n }, []);\n var values = packed.map(function (maybeDescription) {\n if (!isDescription(maybeDescription)) {\n return Promise.resolve(maybeDescription);\n }\n var _ref = maybeDescription,\n execute = _ref.execute,\n items = _ref.items,\n searchClient = _ref.searchClient;\n return execute({\n searchClient: searchClient,\n requests: items\n });\n });\n return Promise.all(values).then(function (responses) {\n return flatten(responses);\n });\n}\nexport function postResolve(responses, sources, store) {\n return sources.map(function (source) {\n var matches = responses.filter(function (response) {\n return response.sourceId === source.sourceId;\n });\n var results = matches.map(function (_ref2) {\n var items = _ref2.items;\n return items;\n });\n var transform = matches[0].transformResponse;\n var items = transform ? transform(mapToAlgoliaResponse(results)) : results;\n source.onResolve({\n source: source,\n results: results,\n items: items,\n state: store.getState()\n });\n invariant(Array.isArray(items), function () {\n return \"The `getItems` function from source \\\"\".concat(source.sourceId, \"\\\" must return an array of items but returned type \").concat(JSON.stringify(_typeof(items)), \":\\n\\n\").concat(JSON.stringify(decycle(items), null, 2), \".\\n\\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems\");\n });\n invariant(items.every(Boolean), \"The `getItems` function from source \\\"\".concat(source.sourceId, \"\\\" must return an array of items but returned \").concat(JSON.stringify(undefined), \".\\n\\nDid you forget to return items?\\n\\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems\"));\n return {\n source: source,\n items: items\n };\n });\n}","export function mapToAlgoliaResponse(rawResults) {\n return {\n results: rawResults,\n hits: rawResults.map(function (result) {\n return result.hits;\n }).filter(Boolean),\n facetHits: rawResults.map(function (result) {\n var _facetHits;\n return (_facetHits = result.facetHits) === null || _facetHits === void 0 ? void 0 : _facetHits.map(function (facetHit) {\n // Bring support for the highlighting components.\n return {\n label: facetHit.value,\n count: facetHit.count,\n _highlightResult: {\n label: {\n value: facetHit.highlighted\n }\n }\n };\n });\n }).filter(Boolean)\n };\n}","function createInternalCancelablePromise(promise, initialState) {\n var state = initialState;\n return {\n then: function then(onfulfilled, onrejected) {\n return createInternalCancelablePromise(promise.then(createCallback(onfulfilled, state, promise), createCallback(onrejected, state, promise)), state);\n },\n catch: function _catch(onrejected) {\n return createInternalCancelablePromise(promise.catch(createCallback(onrejected, state, promise)), state);\n },\n finally: function _finally(onfinally) {\n if (onfinally) {\n state.onCancelList.push(onfinally);\n }\n return createInternalCancelablePromise(promise.finally(createCallback(onfinally && function () {\n state.onCancelList = [];\n return onfinally();\n }, state, promise)), state);\n },\n cancel: function cancel() {\n state.isCanceled = true;\n var callbacks = state.onCancelList;\n state.onCancelList = [];\n callbacks.forEach(function (callback) {\n callback();\n });\n },\n isCanceled: function isCanceled() {\n return state.isCanceled === true;\n }\n };\n}\nexport function createCancelablePromise(executor) {\n return createInternalCancelablePromise(new Promise(function (resolve, reject) {\n return executor(resolve, reject);\n }), {\n isCanceled: false,\n onCancelList: []\n });\n}\ncreateCancelablePromise.resolve = function (value) {\n return cancelable(Promise.resolve(value));\n};\ncreateCancelablePromise.reject = function (reason) {\n return cancelable(Promise.reject(reason));\n};\nexport function cancelable(promise) {\n return createInternalCancelablePromise(promise, {\n isCanceled: false,\n onCancelList: []\n });\n}\nfunction createCallback(onResult, state, fallback) {\n if (!onResult) {\n return fallback;\n }\n return function callback(arg) {\n if (state.isCanceled) {\n return arg;\n }\n return onResult(arg);\n };\n}","// We don't have access to the autocomplete source when we call `onKeyDown`\n// or `onClick` because those are native browser events.\n// However, we can get the source from the suggestion index.\nfunction getCollectionFromActiveItemId(state) {\n // Given 3 sources with respectively 1, 2 and 3 suggestions: [1, 2, 3]\n // We want to get the accumulated counts:\n // [1, 1 + 2, 1 + 2 + 3] = [1, 3, 3 + 3] = [1, 3, 6]\n var accumulatedCollectionsCount = state.collections.map(function (collections) {\n return collections.items.length;\n }).reduce(function (acc, collectionsCount, index) {\n var previousValue = acc[index - 1] || 0;\n var nextValue = previousValue + collectionsCount;\n acc.push(nextValue);\n return acc;\n }, []);\n\n // Based on the accumulated counts, we can infer the index of the suggestion.\n var collectionIndex = accumulatedCollectionsCount.reduce(function (acc, current) {\n if (current <= state.activeItemId) {\n return acc + 1;\n }\n return acc;\n }, 0);\n return state.collections[collectionIndex];\n}\n\n/**\n * Gets the highlighted index relative to a suggestion object (not the absolute\n * highlighted index).\n *\n * Example:\n * [['a', 'b'], ['c', 'd', 'e'], ['f']]\n * ↑\n * (absolute: 3, relative: 1)\n */\nfunction getRelativeActiveItemId(_ref) {\n var state = _ref.state,\n collection = _ref.collection;\n var isOffsetFound = false;\n var counter = 0;\n var previousItemsOffset = 0;\n while (isOffsetFound === false) {\n var currentCollection = state.collections[counter];\n if (currentCollection === collection) {\n isOffsetFound = true;\n break;\n }\n previousItemsOffset += currentCollection.items.length;\n counter++;\n }\n return state.activeItemId - previousItemsOffset;\n}\nexport function getActiveItem(state) {\n var collection = getCollectionFromActiveItemId(state);\n if (!collection) {\n return null;\n }\n var item = collection.items[getRelativeActiveItemId({\n state: state,\n collection: collection\n })];\n var source = collection.source;\n var itemInputValue = source.getItemInputValue({\n item: item,\n state: state\n });\n var itemUrl = source.getItemUrl({\n item: item,\n state: state\n });\n return {\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n source: source\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"event\", \"nextState\", \"props\", \"query\", \"refresh\", \"store\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { reshape } from './reshape';\nimport { preResolve, resolve, postResolve } from './resolve';\nimport { cancelable, createConcurrentSafePromise, getActiveItem } from './utils';\nvar lastStalledId = null;\nvar runConcurrentSafePromise = createConcurrentSafePromise();\nexport function onInput(_ref) {\n var event = _ref.event,\n _ref$nextState = _ref.nextState,\n nextState = _ref$nextState === void 0 ? {} : _ref$nextState,\n props = _ref.props,\n query = _ref.query,\n refresh = _ref.refresh,\n store = _ref.store,\n setters = _objectWithoutProperties(_ref, _excluded);\n if (lastStalledId) {\n props.environment.clearTimeout(lastStalledId);\n }\n var setCollections = setters.setCollections,\n setIsOpen = setters.setIsOpen,\n setQuery = setters.setQuery,\n setActiveItemId = setters.setActiveItemId,\n setStatus = setters.setStatus,\n setContext = setters.setContext;\n setQuery(query);\n setActiveItemId(props.defaultActiveItemId);\n if (!query && props.openOnFocus === false) {\n var _nextState$isOpen;\n var collections = store.getState().collections.map(function (collection) {\n return _objectSpread(_objectSpread({}, collection), {}, {\n items: []\n });\n });\n setStatus('idle');\n setCollections(collections);\n setIsOpen((_nextState$isOpen = nextState.isOpen) !== null && _nextState$isOpen !== void 0 ? _nextState$isOpen : props.shouldPanelOpen({\n state: store.getState()\n }));\n\n // We make sure to update the latest resolved value of the tracked\n // promises to keep late resolving promises from \"cancelling\" the state\n // updates performed in this code path.\n // We chain with a void promise to respect `onInput`'s expected return type.\n var _request = cancelable(runConcurrentSafePromise(collections).then(function () {\n return Promise.resolve();\n }));\n return store.pendingRequests.add(_request);\n }\n setStatus('loading');\n lastStalledId = props.environment.setTimeout(function () {\n setStatus('stalled');\n }, props.stallThreshold);\n\n // We track the entire promise chain triggered by `onInput` before mutating\n // the Autocomplete state to make sure that any state manipulation is based on\n // fresh data regardless of when promises individually resolve.\n // We don't track nested promises and only rely on the full chain resolution,\n // meaning we should only ever manipulate the state once this concurrent-safe\n // promise is resolved.\n var request = cancelable(runConcurrentSafePromise(props.getSources(_objectSpread({\n query: query,\n refresh: refresh,\n state: store.getState()\n }, setters)).then(function (sources) {\n return Promise.all(sources.map(function (source) {\n return Promise.resolve(source.getItems(_objectSpread({\n query: query,\n refresh: refresh,\n state: store.getState()\n }, setters))).then(function (itemsOrDescription) {\n return preResolve(itemsOrDescription, source.sourceId, store.getState());\n });\n })).then(resolve).then(function (responses) {\n var __automaticInsights = responses.some(function (_ref2) {\n var items = _ref2.items;\n return isSearchResponseWithAutomaticInsightsFlag(items);\n });\n\n // No need to pollute the context if `__automaticInsights=false`\n if (__automaticInsights) {\n var _store$getState$conte;\n setContext({\n algoliaInsightsPlugin: _objectSpread(_objectSpread({}, ((_store$getState$conte = store.getState().context) === null || _store$getState$conte === void 0 ? void 0 : _store$getState$conte.algoliaInsightsPlugin) || {}), {}, {\n __automaticInsights: __automaticInsights\n })\n });\n }\n return postResolve(responses, sources, store);\n }).then(function (collections) {\n return reshape({\n collections: collections,\n props: props,\n state: store.getState()\n });\n });\n }))).then(function (collections) {\n var _nextState$isOpen2;\n // Parameters passed to `onInput` could be stale when the following code\n // executes, because `onInput` calls may not resolve in order.\n // If it becomes a problem we'll need to save the last passed parameters.\n // See: https://codesandbox.io/s/agitated-cookies-y290z\n\n setStatus('idle');\n setCollections(collections);\n var isPanelOpen = props.shouldPanelOpen({\n state: store.getState()\n });\n setIsOpen((_nextState$isOpen2 = nextState.isOpen) !== null && _nextState$isOpen2 !== void 0 ? _nextState$isOpen2 : props.openOnFocus && !query && isPanelOpen || isPanelOpen);\n var highlightedItem = getActiveItem(store.getState());\n if (store.getState().activeItemId !== null && highlightedItem) {\n var item = highlightedItem.item,\n itemInputValue = highlightedItem.itemInputValue,\n itemUrl = highlightedItem.itemUrl,\n source = highlightedItem.source;\n source.onActive(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n }\n }).finally(function () {\n setStatus('idle');\n if (lastStalledId) {\n props.environment.clearTimeout(lastStalledId);\n }\n });\n return store.pendingRequests.add(request);\n}\nfunction isSearchResponseWithAutomaticInsightsFlag(items) {\n return !Array.isArray(items) && Boolean(items === null || items === void 0 ? void 0 : items._automaticInsights);\n}","/**\n * Creates a runner that executes promises in a concurrent-safe way.\n *\n * This is useful to prevent older promises to resolve after a newer promise,\n * otherwise resulting in stale resolved values.\n */\nexport function createConcurrentSafePromise() {\n var basePromiseId = -1;\n var latestResolvedId = -1;\n var latestResolvedValue = undefined;\n return function runConcurrentSafePromise(promise) {\n basePromiseId++;\n var currentPromiseId = basePromiseId;\n return Promise.resolve(promise).then(function (x) {\n // The promise might take too long to resolve and get outdated. This would\n // result in resolving stale values.\n // When this happens, we ignore the promise value and return the one\n // coming from the latest resolved value.\n //\n // +----------------------------------+\n // | 100ms |\n // | run(1) +---> R1 |\n // | 300ms |\n // | run(2) +-------------> R2 (SKIP) |\n // | 200ms |\n // | run(3) +--------> R3 |\n // +----------------------------------+\n if (latestResolvedValue && currentPromiseId < latestResolvedId) {\n return latestResolvedValue;\n }\n latestResolvedId = currentPromiseId;\n latestResolvedValue = x;\n return x;\n });\n };\n}","/**\n * Returns a full element id for an autocomplete element.\n *\n * @param autocompleteInstanceId The id of the autocomplete instance\n * @param elementId The specific element id\n * @param source The source of the element, when it needs to be scoped\n */\nexport function getAutocompleteElementId(autocompleteInstanceId, elementId, source) {\n return [autocompleteInstanceId, source === null || source === void 0 ? void 0 : source.sourceId, elementId].filter(Boolean).join('-').replace(/\\s/g, '');\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"event\", \"props\", \"refresh\", \"store\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { onInput } from './onInput';\nimport { getActiveItem, getAutocompleteElementId } from './utils';\nexport function onKeyDown(_ref) {\n var event = _ref.event,\n props = _ref.props,\n refresh = _ref.refresh,\n store = _ref.store,\n setters = _objectWithoutProperties(_ref, _excluded);\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n // eslint-disable-next-line no-inner-declarations\n var triggerScrollIntoView = function triggerScrollIntoView() {\n var highlightedItem = getActiveItem(store.getState());\n var nodeItem = props.environment.document.getElementById(getAutocompleteElementId(props.id, \"item-\".concat(store.getState().activeItemId), highlightedItem === null || highlightedItem === void 0 ? void 0 : highlightedItem.source));\n if (nodeItem) {\n if (nodeItem.scrollIntoViewIfNeeded) {\n nodeItem.scrollIntoViewIfNeeded(false);\n } else {\n nodeItem.scrollIntoView(false);\n }\n }\n }; // eslint-disable-next-line no-inner-declarations\n var triggerOnActive = function triggerOnActive() {\n var highlightedItem = getActiveItem(store.getState());\n if (store.getState().activeItemId !== null && highlightedItem) {\n var item = highlightedItem.item,\n itemInputValue = highlightedItem.itemInputValue,\n itemUrl = highlightedItem.itemUrl,\n source = highlightedItem.source;\n source.onActive(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n }\n }; // Default browser behavior changes the caret placement on ArrowUp and\n // ArrowDown.\n event.preventDefault();\n\n // When re-opening the panel, we need to split the logic to keep the actions\n // synchronized as `onInput` returns a promise.\n if (store.getState().isOpen === false && (props.openOnFocus || Boolean(store.getState().query))) {\n onInput(_objectSpread({\n event: event,\n props: props,\n query: store.getState().query,\n refresh: refresh,\n store: store\n }, setters)).then(function () {\n store.dispatch(event.key, {\n nextActiveItemId: props.defaultActiveItemId\n });\n triggerOnActive();\n // Since we rely on the DOM, we need to wait for all the micro tasks to\n // finish (which include re-opening the panel) to make sure all the\n // elements are available.\n setTimeout(triggerScrollIntoView, 0);\n });\n } else {\n store.dispatch(event.key, {});\n triggerOnActive();\n triggerScrollIntoView();\n }\n } else if (event.key === 'Escape') {\n // This prevents the default browser behavior on `input[type=\"search\"]`\n // from removing the query right away because we first want to close the\n // panel.\n event.preventDefault();\n store.dispatch(event.key, null);\n\n // Hitting the `Escape` key signals the end of a user interaction with the\n // autocomplete. At this point, we should ignore any requests that are still\n // pending and could reopen the panel once they resolve, because that would\n // result in an unsolicited UI behavior.\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Tab') {\n store.dispatch('blur', null);\n\n // Hitting the `Tab` key signals the end of a user interaction with the\n // autocomplete. At this point, we should ignore any requests that are still\n // pending and could reopen the panel once they resolve, because that would\n // result in an unsolicited UI behavior.\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Enter') {\n // No active item, so we let the browser handle the native `onSubmit` form\n // event.\n if (store.getState().activeItemId === null || store.getState().collections.every(function (collection) {\n return collection.items.length === 0;\n })) {\n // If requests are still pending when the panel closes, they could reopen\n // the panel once they resolve.\n // We want to prevent any subsequent query from reopening the panel\n // because it would result in an unsolicited UI behavior.\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\n return;\n }\n\n // This prevents the `onSubmit` event to be sent because an item is\n // highlighted.\n event.preventDefault();\n var _ref2 = getActiveItem(store.getState()),\n item = _ref2.item,\n itemInputValue = _ref2.itemInputValue,\n itemUrl = _ref2.itemUrl,\n source = _ref2.source;\n if (event.metaKey || event.ctrlKey) {\n if (itemUrl !== undefined) {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n props.navigator.navigateNewTab({\n itemUrl: itemUrl,\n item: item,\n state: store.getState()\n });\n }\n } else if (event.shiftKey) {\n if (itemUrl !== undefined) {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n props.navigator.navigateNewWindow({\n itemUrl: itemUrl,\n item: item,\n state: store.getState()\n });\n }\n } else if (event.altKey) {\n // Keep native browser behavior\n } else {\n if (itemUrl !== undefined) {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n props.navigator.navigate({\n itemUrl: itemUrl,\n item: item,\n state: store.getState()\n });\n return;\n }\n onInput(_objectSpread({\n event: event,\n nextState: {\n isOpen: false\n },\n props: props,\n query: itemInputValue,\n refresh: refresh,\n store: store\n }, setters)).then(function () {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n });\n }\n }\n}","var regex = /((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;\nexport function isSamsung(userAgent) {\n return Boolean(userAgent && userAgent.match(regex));\n}","export function getNativeEvent(event) {\n return event.nativeEvent || event;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"props\", \"refresh\", \"store\"],\n _excluded2 = [\"inputElement\", \"formElement\", \"panelElement\"],\n _excluded3 = [\"inputElement\"],\n _excluded4 = [\"inputElement\", \"maxLength\"],\n _excluded5 = [\"source\"],\n _excluded6 = [\"item\", \"source\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { noop } from '@algolia/autocomplete-shared';\nimport { onInput } from './onInput';\nimport { onKeyDown as _onKeyDown } from './onKeyDown';\nimport { getActiveItem, getAutocompleteElementId, isOrContainsNode, isSamsung, getNativeEvent } from './utils';\nexport function getPropGetters(_ref) {\n var props = _ref.props,\n refresh = _ref.refresh,\n store = _ref.store,\n setters = _objectWithoutProperties(_ref, _excluded);\n var getEnvironmentProps = function getEnvironmentProps(providedProps) {\n var inputElement = providedProps.inputElement,\n formElement = providedProps.formElement,\n panelElement = providedProps.panelElement,\n rest = _objectWithoutProperties(providedProps, _excluded2);\n function onMouseDownOrTouchStart(event) {\n // The `onTouchStart`/`onMouseDown` events shouldn't trigger the `blur`\n // handler when it's not an interaction with Autocomplete.\n // We detect it with the following heuristics:\n // - the panel is closed AND there are no pending requests\n // (no interaction with the autocomplete, no future state updates)\n // - OR the touched target is the input element (should open the panel)\n var isAutocompleteInteraction = store.getState().isOpen || !store.pendingRequests.isEmpty();\n if (!isAutocompleteInteraction || event.target === inputElement) {\n return;\n }\n\n // @TODO: support cases where there are multiple Autocomplete instances.\n // Right now, a second instance makes this computation return false.\n var isTargetWithinAutocomplete = [formElement, panelElement].some(function (contextNode) {\n return isOrContainsNode(contextNode, event.target);\n });\n if (isTargetWithinAutocomplete === false) {\n store.dispatch('blur', null);\n\n // If requests are still pending when the user closes the panel, they\n // could reopen the panel once they resolve.\n // We want to prevent any subsequent query from reopening the panel\n // because it would result in an unsolicited UI behavior.\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\n }\n }\n return _objectSpread({\n // We do not rely on the native `blur` event of the input to close the\n // panel, but rather on a custom `touchstart`/`mousedown` event outside\n // of the autocomplete elements.\n // This ensures we don't mistakenly interpret interactions within the\n // autocomplete (but outside of the input) as a signal to close the panel.\n // For example, clicking reset button causes an input blur, but if\n // `openOnFocus=true`, it shouldn't close the panel.\n // On touch devices, scrolling results (`touchmove`) causes an input blur\n // but shouldn't close the panel.\n onTouchStart: onMouseDownOrTouchStart,\n onMouseDown: onMouseDownOrTouchStart,\n // When scrolling on touch devices (mobiles, tablets, etc.), we want to\n // mimic the native platform behavior where the input is blurred to\n // hide the virtual keyboard. This gives more vertical space to\n // discover all the suggestions showing up in the panel.\n onTouchMove: function onTouchMove(event) {\n if (store.getState().isOpen === false || inputElement !== props.environment.document.activeElement || event.target === inputElement) {\n return;\n }\n inputElement.blur();\n }\n }, rest);\n };\n var getRootProps = function getRootProps(rest) {\n return _objectSpread({\n role: 'combobox',\n 'aria-expanded': store.getState().isOpen,\n 'aria-haspopup': 'listbox',\n 'aria-controls': store.getState().isOpen ? store.getState().collections.map(function (_ref2) {\n var source = _ref2.source;\n return getAutocompleteElementId(props.id, 'list', source);\n }).join(' ') : undefined,\n 'aria-labelledby': getAutocompleteElementId(props.id, 'label')\n }, rest);\n };\n var getFormProps = function getFormProps(providedProps) {\n var inputElement = providedProps.inputElement,\n rest = _objectWithoutProperties(providedProps, _excluded3);\n return _objectSpread({\n action: '',\n noValidate: true,\n role: 'search',\n onSubmit: function onSubmit(event) {\n var _providedProps$inputE;\n event.preventDefault();\n props.onSubmit(_objectSpread({\n event: event,\n refresh: refresh,\n state: store.getState()\n }, setters));\n store.dispatch('submit', null);\n (_providedProps$inputE = providedProps.inputElement) === null || _providedProps$inputE === void 0 ? void 0 : _providedProps$inputE.blur();\n },\n onReset: function onReset(event) {\n var _providedProps$inputE2;\n event.preventDefault();\n props.onReset(_objectSpread({\n event: event,\n refresh: refresh,\n state: store.getState()\n }, setters));\n store.dispatch('reset', null);\n (_providedProps$inputE2 = providedProps.inputElement) === null || _providedProps$inputE2 === void 0 ? void 0 : _providedProps$inputE2.focus();\n }\n }, rest);\n };\n var getInputProps = function getInputProps(providedProps) {\n var _props$environment$na;\n function onFocus(event) {\n // We want to trigger a query when `openOnFocus` is true\n // because the panel should open with the current query.\n if (props.openOnFocus || Boolean(store.getState().query)) {\n onInput(_objectSpread({\n event: event,\n props: props,\n query: store.getState().completion || store.getState().query,\n refresh: refresh,\n store: store\n }, setters));\n }\n store.dispatch('focus', null);\n }\n var _ref3 = providedProps || {},\n inputElement = _ref3.inputElement,\n _ref3$maxLength = _ref3.maxLength,\n maxLength = _ref3$maxLength === void 0 ? 512 : _ref3$maxLength,\n rest = _objectWithoutProperties(_ref3, _excluded4);\n var activeItem = getActiveItem(store.getState());\n var userAgent = ((_props$environment$na = props.environment.navigator) === null || _props$environment$na === void 0 ? void 0 : _props$environment$na.userAgent) || '';\n var shouldFallbackKeyHint = isSamsung(userAgent);\n var enterKeyHint = props.enterKeyHint || (activeItem !== null && activeItem !== void 0 && activeItem.itemUrl && !shouldFallbackKeyHint ? 'go' : 'search');\n return _objectSpread({\n 'aria-autocomplete': 'both',\n 'aria-activedescendant': store.getState().isOpen && store.getState().activeItemId !== null ? getAutocompleteElementId(props.id, \"item-\".concat(store.getState().activeItemId), activeItem === null || activeItem === void 0 ? void 0 : activeItem.source) : undefined,\n 'aria-controls': store.getState().isOpen ? store.getState().collections.map(function (_ref4) {\n var source = _ref4.source;\n return getAutocompleteElementId(props.id, 'list', source);\n }).join(' ') : undefined,\n 'aria-labelledby': getAutocompleteElementId(props.id, 'label'),\n value: store.getState().completion || store.getState().query,\n id: getAutocompleteElementId(props.id, 'input'),\n autoComplete: 'off',\n autoCorrect: 'off',\n autoCapitalize: 'off',\n enterKeyHint: enterKeyHint,\n spellCheck: 'false',\n autoFocus: props.autoFocus,\n placeholder: props.placeholder,\n maxLength: maxLength,\n type: 'search',\n onChange: function onChange(event) {\n var value = event.currentTarget.value;\n if (props.ignoreCompositionEvents && getNativeEvent(event).isComposing) {\n setters.setQuery(value);\n return;\n }\n onInput(_objectSpread({\n event: event,\n props: props,\n query: value.slice(0, maxLength),\n refresh: refresh,\n store: store\n }, setters));\n },\n onCompositionEnd: function onCompositionEnd(event) {\n onInput(_objectSpread({\n event: event,\n props: props,\n query: event.currentTarget.value.slice(0, maxLength),\n refresh: refresh,\n store: store\n }, setters));\n },\n onKeyDown: function onKeyDown(event) {\n if (getNativeEvent(event).isComposing) {\n return;\n }\n _onKeyDown(_objectSpread({\n event: event,\n props: props,\n refresh: refresh,\n store: store\n }, setters));\n },\n onFocus: onFocus,\n // We don't rely on the `blur` event.\n // See explanation in `onTouchStart`/`onMouseDown`.\n // @MAJOR See if we need to keep this handler.\n onBlur: noop,\n onClick: function onClick(event) {\n // When the panel is closed and you click on the input while\n // the input is focused, the `onFocus` event is not triggered\n // (default browser behavior).\n // In an autocomplete context, it makes sense to open the panel in this\n // case.\n // We mimic this event by catching the `onClick` event which\n // triggers the `onFocus` for the panel to open.\n if (providedProps.inputElement === props.environment.document.activeElement && !store.getState().isOpen) {\n onFocus(event);\n }\n }\n }, rest);\n };\n var getLabelProps = function getLabelProps(rest) {\n return _objectSpread({\n htmlFor: getAutocompleteElementId(props.id, 'input'),\n id: getAutocompleteElementId(props.id, 'label')\n }, rest);\n };\n var getListProps = function getListProps(providedProps) {\n var _ref5 = providedProps || {},\n source = _ref5.source,\n rest = _objectWithoutProperties(_ref5, _excluded5);\n return _objectSpread({\n role: 'listbox',\n 'aria-labelledby': getAutocompleteElementId(props.id, 'label'),\n id: getAutocompleteElementId(props.id, 'list', source)\n }, rest);\n };\n var getPanelProps = function getPanelProps(rest) {\n return _objectSpread({\n onMouseDown: function onMouseDown(event) {\n // Prevents the `activeElement` from being changed to the panel so\n // that the blur event is not triggered, otherwise it closes the\n // panel.\n event.preventDefault();\n },\n onMouseLeave: function onMouseLeave() {\n store.dispatch('mouseleave', null);\n }\n }, rest);\n };\n var getItemProps = function getItemProps(providedProps) {\n var item = providedProps.item,\n source = providedProps.source,\n rest = _objectWithoutProperties(providedProps, _excluded6);\n return _objectSpread({\n id: getAutocompleteElementId(props.id, \"item-\".concat(item.__autocomplete_id), source),\n role: 'option',\n 'aria-selected': store.getState().activeItemId === item.__autocomplete_id,\n onMouseMove: function onMouseMove(event) {\n if (item.__autocomplete_id === store.getState().activeItemId) {\n return;\n }\n store.dispatch('mousemove', item.__autocomplete_id);\n var activeItem = getActiveItem(store.getState());\n if (store.getState().activeItemId !== null && activeItem) {\n var _item = activeItem.item,\n itemInputValue = activeItem.itemInputValue,\n itemUrl = activeItem.itemUrl,\n _source = activeItem.source;\n _source.onActive(_objectSpread({\n event: event,\n item: _item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: _source,\n state: store.getState()\n }, setters));\n }\n },\n onMouseDown: function onMouseDown(event) {\n // Prevents the `activeElement` from being changed to the item so it\n // can remain with the current `activeElement`.\n event.preventDefault();\n },\n onClick: function onClick(event) {\n var itemInputValue = source.getItemInputValue({\n item: item,\n state: store.getState()\n });\n var itemUrl = source.getItemUrl({\n item: item,\n state: store.getState()\n });\n\n // If `getItemUrl` is provided, it means that the suggestion\n // is a link, not plain text that aims at updating the query.\n // We can therefore skip the state change because it will update\n // the `activeItemId`, resulting in a UI flash, especially\n // noticeable on mobile.\n var runPreCommand = itemUrl ? Promise.resolve() : onInput(_objectSpread({\n event: event,\n nextState: {\n isOpen: false\n },\n props: props,\n query: itemInputValue,\n refresh: refresh,\n store: store\n }, setters));\n runPreCommand.then(function () {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n });\n }\n }, rest);\n };\n return {\n getEnvironmentProps: getEnvironmentProps,\n getRootProps: getRootProps,\n getFormProps: getFormProps,\n getLabelProps: getLabelProps,\n getInputProps: getInputProps,\n getPanelProps: getPanelProps,\n getListProps: getListProps,\n getItemProps: getItemProps\n };\n}","export function isOrContainsNode(parent, child) {\n return parent === child || parent.contains(child);\n}","export var version = '1.17.9';","import { version } from './version';\nexport var userAgents = [{\n segment: 'autocomplete-core',\n version: version\n}];","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { userAgents } from '@algolia/autocomplete-shared';\nexport function getMetadata(_ref) {\n var _, _options$__autocomple, _options$__autocomple2, _options$__autocomple3;\n var plugins = _ref.plugins,\n options = _ref.options;\n var optionsKey = (_ = (((_options$__autocomple = options.__autocomplete_metadata) === null || _options$__autocomple === void 0 ? void 0 : _options$__autocomple.userAgents) || [])[0]) === null || _ === void 0 ? void 0 : _.segment;\n var extraOptions = optionsKey ? _defineProperty({}, optionsKey, Object.keys(((_options$__autocomple2 = options.__autocomplete_metadata) === null || _options$__autocomple2 === void 0 ? void 0 : _options$__autocomple2.options) || {})) : {};\n return {\n plugins: plugins.map(function (plugin) {\n return {\n name: plugin.name,\n options: Object.keys(plugin.__autocomplete_pluginOptions || [])\n };\n }),\n options: _objectSpread({\n 'autocomplete-core': Object.keys(options)\n }, extraOptions),\n ua: userAgents.concat(((_options$__autocomple3 = options.__autocomplete_metadata) === null || _options$__autocomple3 === void 0 ? void 0 : _options$__autocomple3.userAgents) || [])\n };\n}\nexport function injectMetadata(_ref3) {\n var _environment$navigato, _environment$navigato2;\n var metadata = _ref3.metadata,\n environment = _ref3.environment;\n var isMetadataEnabled = (_environment$navigato = environment.navigator) === null || _environment$navigato === void 0 ? void 0 : (_environment$navigato2 = _environment$navigato.userAgent) === null || _environment$navigato2 === void 0 ? void 0 : _environment$navigato2.includes('Algolia Crawler');\n if (isMetadataEnabled) {\n var metadataContainer = environment.document.createElement('meta');\n var headRef = environment.document.querySelector('head');\n metadataContainer.name = 'algolia:metadata';\n setTimeout(function () {\n metadataContainer.content = JSON.stringify(metadata);\n headRef.appendChild(metadataContainer);\n }, 0);\n }\n}","import { getActiveItem } from './utils';\nexport function getCompletion(_ref) {\n var _getActiveItem;\n var state = _ref.state;\n if (state.isOpen === false || state.activeItemId === null) {\n return null;\n }\n return ((_getActiveItem = getActiveItem(state)) === null || _getActiveItem === void 0 ? void 0 : _getActiveItem.itemInputValue) || null;\n}","/**\n * Returns the next active item ID from the current state.\n *\n * We allow circular keyboard navigation from the base index.\n * The base index can either be `null` (nothing is highlighted) or `0`\n * (the first item is highlighted).\n * The base index is allowed to get assigned `null` only if\n * `props.defaultActiveItemId` is `null`. This pattern allows to \"stop\"\n * by the actual query before navigating to other suggestions as seen on\n * Google or Amazon.\n *\n * @param moveAmount The offset to increment (or decrement) the last index\n * @param baseIndex The current index to compute the next index from\n * @param itemCount The number of items\n * @param defaultActiveItemId The default active index to fallback to\n */\nexport function getNextActiveItemId(moveAmount, baseIndex, itemCount, defaultActiveItemId) {\n if (!itemCount) {\n return null;\n }\n if (moveAmount < 0 && (baseIndex === null || defaultActiveItemId !== null && baseIndex === 0)) {\n return itemCount + moveAmount;\n }\n var numericIndex = (baseIndex === null ? -1 : baseIndex) + moveAmount;\n if (numericIndex <= -1 || numericIndex >= itemCount) {\n return defaultActiveItemId === null ? null : 0;\n }\n return numericIndex;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { getItemsCount, invariant } from '@algolia/autocomplete-shared';\nimport { getCompletion } from './getCompletion';\nimport { getNextActiveItemId } from './utils';\nexport var stateReducer = function stateReducer(state, action) {\n switch (action.type) {\n case 'setActiveItemId':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.payload\n });\n }\n case 'setQuery':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n query: action.payload,\n completion: null\n });\n }\n case 'setCollections':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n collections: action.payload\n });\n }\n case 'setIsOpen':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n isOpen: action.payload\n });\n }\n case 'setStatus':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n status: action.payload\n });\n }\n case 'setContext':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n context: _objectSpread(_objectSpread({}, state.context), action.payload)\n });\n }\n case 'ArrowDown':\n {\n var nextState = _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.payload.hasOwnProperty('nextActiveItemId') ? action.payload.nextActiveItemId : getNextActiveItemId(1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)\n });\n return _objectSpread(_objectSpread({}, nextState), {}, {\n completion: getCompletion({\n state: nextState\n })\n });\n }\n case 'ArrowUp':\n {\n var _nextState = _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: getNextActiveItemId(-1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)\n });\n return _objectSpread(_objectSpread({}, _nextState), {}, {\n completion: getCompletion({\n state: _nextState\n })\n });\n }\n case 'Escape':\n {\n if (state.isOpen) {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n isOpen: false,\n completion: null\n });\n }\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n query: '',\n status: 'idle',\n collections: []\n });\n }\n case 'submit':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n isOpen: false,\n status: 'idle'\n });\n }\n case 'reset':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId:\n // Since we open the panel on reset when openOnFocus=true\n // we need to restore the highlighted index to the defaultActiveItemId. (DocSearch use-case)\n\n // Since we close the panel when openOnFocus=false\n // we lose track of the highlighted index. (Query-suggestions use-case)\n action.props.openOnFocus === true ? action.props.defaultActiveItemId : null,\n status: 'idle',\n completion: null,\n query: ''\n });\n }\n case 'focus':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.props.defaultActiveItemId,\n isOpen: (action.props.openOnFocus || Boolean(state.query)) && action.props.shouldPanelOpen({\n state: state\n })\n });\n }\n case 'blur':\n {\n if (action.props.debug) {\n return state;\n }\n return _objectSpread(_objectSpread({}, state), {}, {\n isOpen: false,\n activeItemId: null\n });\n }\n case 'mousemove':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.payload\n });\n }\n case 'mouseleave':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.props.defaultActiveItemId\n });\n }\n default:\n invariant(false, \"The reducer action \".concat(JSON.stringify(action.type), \" is not supported.\"));\n return state;\n }\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { createAlgoliaInsightsPlugin } from '@algolia/autocomplete-plugin-algolia-insights';\nimport { checkOptions } from './checkOptions';\nimport { createStore } from './createStore';\nimport { getAutocompleteSetters } from './getAutocompleteSetters';\nimport { getDefaultProps } from './getDefaultProps';\nimport { getPropGetters } from './getPropGetters';\nimport { getMetadata, injectMetadata } from './metadata';\nimport { onInput } from './onInput';\nimport { stateReducer } from './stateReducer';\nexport function createAutocomplete(options) {\n checkOptions(options);\n var subscribers = [];\n var props = getDefaultProps(options, subscribers);\n var store = createStore(stateReducer, props, onStoreStateChange);\n var setters = getAutocompleteSetters({\n store: store\n });\n var propGetters = getPropGetters(_objectSpread({\n props: props,\n refresh: refresh,\n store: store,\n navigator: props.navigator\n }, setters));\n function onStoreStateChange(_ref) {\n var _state$context, _state$context$algoli;\n var prevState = _ref.prevState,\n state = _ref.state;\n props.onStateChange(_objectSpread({\n prevState: prevState,\n state: state,\n refresh: refresh,\n navigator: props.navigator\n }, setters));\n if (!isAlgoliaInsightsPluginEnabled() && (_state$context = state.context) !== null && _state$context !== void 0 && (_state$context$algoli = _state$context.algoliaInsightsPlugin) !== null && _state$context$algoli !== void 0 && _state$context$algoli.__automaticInsights && props.insights !== false) {\n var plugin = createAlgoliaInsightsPlugin({\n __autocomplete_clickAnalytics: false\n });\n props.plugins.push(plugin);\n subscribePlugins([plugin]);\n }\n }\n function refresh() {\n return onInput(_objectSpread({\n event: new Event('input'),\n nextState: {\n isOpen: store.getState().isOpen\n },\n props: props,\n navigator: props.navigator,\n query: store.getState().query,\n refresh: refresh,\n store: store\n }, setters));\n }\n function subscribePlugins(plugins) {\n plugins.forEach(function (plugin) {\n var _plugin$subscribe;\n return (_plugin$subscribe = plugin.subscribe) === null || _plugin$subscribe === void 0 ? void 0 : _plugin$subscribe.call(plugin, _objectSpread(_objectSpread({}, setters), {}, {\n navigator: props.navigator,\n refresh: refresh,\n onSelect: function onSelect(fn) {\n subscribers.push({\n onSelect: fn\n });\n },\n onActive: function onActive(fn) {\n subscribers.push({\n onActive: fn\n });\n },\n onResolve: function onResolve(fn) {\n subscribers.push({\n onResolve: fn\n });\n }\n }));\n });\n }\n function isAlgoliaInsightsPluginEnabled() {\n return props.plugins.some(function (plugin) {\n return plugin.name === 'aa.algoliaInsightsPlugin';\n });\n }\n if (props.insights && !isAlgoliaInsightsPluginEnabled()) {\n var insightsParams = typeof props.insights === 'boolean' ? {} : props.insights;\n props.plugins.push(createAlgoliaInsightsPlugin(insightsParams));\n }\n subscribePlugins(props.plugins);\n injectMetadata({\n metadata: getMetadata({\n plugins: props.plugins,\n options: options\n }),\n environment: props.environment\n });\n return _objectSpread(_objectSpread({\n refresh: refresh,\n navigator: props.navigator\n }, propGetters), setters);\n}","var n=function(t,s,r,e){var u;s[0]=0;for(var h=1;h=5&&((e||!n&&5===r)&&(h.push(r,0,e,s),r=6),n&&(h.push(r,n,0,s),r=6)),e=\"\"},a=0;a\"===t?(r=1,e=\"\"):e=t+e[0]:u?t===u?u=\"\":e+=t:'\"'===t||\"'\"===t?u=t:\">\"===t?(p(),r=1):r&&(\"=\"===t?(r=5,s=e,e=\"\"):\"/\"===t&&(r<5||\">\"===n[a][l+1])?(p(),3===r&&(h=h[0]),r=h,(h=h[0]).push(2,0,r),r=0):\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t?(p(),r=2):e+=t),3===r&&\"!--\"===e&&(r=4,h=h[0])}return p(),h}(s)),r),arguments,[])).length>1?r:r[0]}\n","export var SearchIcon = function SearchIcon(_ref) {\n var environment = _ref.environment;\n var element = environment.document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n element.setAttribute('class', 'aa-SubmitIcon');\n element.setAttribute('viewBox', '0 0 24 24');\n element.setAttribute('width', '20');\n element.setAttribute('height', '20');\n element.setAttribute('fill', 'currentColor');\n var path = environment.document.createElementNS('http://www.w3.org/2000/svg', 'path');\n path.setAttribute('d', 'M16.041 15.856c-0.034 0.026-0.067 0.055-0.099 0.087s-0.060 0.064-0.087 0.099c-1.258 1.213-2.969 1.958-4.855 1.958-1.933 0-3.682-0.782-4.95-2.050s-2.050-3.017-2.050-4.95 0.782-3.682 2.050-4.95 3.017-2.050 4.95-2.050 3.682 0.782 4.95 2.050 2.050 3.017 2.050 4.95c0 1.886-0.745 3.597-1.959 4.856zM21.707 20.293l-3.675-3.675c1.231-1.54 1.968-3.493 1.968-5.618 0-2.485-1.008-4.736-2.636-6.364s-3.879-2.636-6.364-2.636-4.736 1.008-6.364 2.636-2.636 3.879-2.636 6.364 1.008 4.736 2.636 6.364 3.879 2.636 6.364 2.636c2.125 0 4.078-0.737 5.618-1.968l3.675 3.675c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414z');\n element.appendChild(path);\n return element;\n};","export var ClearIcon = function ClearIcon(_ref) {\n var environment = _ref.environment;\n var element = environment.document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n element.setAttribute('class', 'aa-ClearIcon');\n element.setAttribute('viewBox', '0 0 24 24');\n element.setAttribute('width', '18');\n element.setAttribute('height', '18');\n element.setAttribute('fill', 'currentColor');\n var path = environment.document.createElementNS('http://www.w3.org/2000/svg', 'path');\n path.setAttribute('d', 'M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z');\n element.appendChild(path);\n return element;\n};","export var LoadingIcon = function LoadingIcon(_ref) {\n var environment = _ref.environment;\n var element = environment.document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n element.setAttribute('class', 'aa-LoadingIcon');\n element.setAttribute('viewBox', '0 0 100 100');\n element.setAttribute('width', '20');\n element.setAttribute('height', '20');\n element.innerHTML = \"\\n \\n\";\n return element;\n};","/* eslint-disable */\n\n/**\n * Touch-specific event aliases\n *\n * See https://w3c.github.io/touch-events/#extensions-to-the-globaleventhandlers-mixin\n */\nvar TOUCH_EVENTS_ALIASES = ['ontouchstart', 'ontouchend', 'ontouchmove', 'ontouchcancel'];\n\n/*\n * Taken from Preact\n *\n * See https://github.com/preactjs/preact/blob/6ab49d9020740127577bf4af66bf63f4af7f9fee/src/diff/props.js#L58-L151\n */\n\nfunction setStyle(style, key, value) {\n if (value === null) {\n style[key] = '';\n } else if (typeof value !== 'number') {\n style[key] = value;\n } else {\n style[key] = value + 'px';\n }\n}\n\n/**\n * Proxy an event to hooked event handlers\n */\nfunction eventProxy(event) {\n this._listeners[event.type](event);\n}\n\n/**\n * Set a property value on a DOM node\n */\nexport function setProperty(dom, name, value) {\n var useCapture;\n var nameLower;\n var oldValue = dom[name];\n if (name === 'style') {\n if (typeof value == 'string') {\n dom.style = value;\n } else {\n if (value === null) {\n dom.style = '';\n } else {\n for (name in value) {\n if (!oldValue || value[name] !== oldValue[name]) {\n setStyle(dom.style, name, value[name]);\n }\n }\n }\n }\n }\n // Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n else if (name[0] === 'o' && name[1] === 'n') {\n useCapture = name !== (name = name.replace(/Capture$/, ''));\n nameLower = name.toLowerCase();\n if (nameLower in dom || TOUCH_EVENTS_ALIASES.includes(nameLower)) name = nameLower;\n name = name.slice(2);\n if (!dom._listeners) dom._listeners = {};\n dom._listeners[name] = value;\n if (value) {\n if (!oldValue) dom.addEventListener(name, eventProxy, useCapture);\n } else {\n dom.removeEventListener(name, eventProxy, useCapture);\n }\n } else if (name !== 'list' && name !== 'tagName' &&\n // HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n // setAttribute\n name !== 'form' && name !== 'type' && name !== 'size' && name !== 'download' && name !== 'href' && name in dom) {\n dom[name] = value == null ? '' : value;\n } else if (typeof value != 'function' && name !== 'dangerouslySetInnerHTML') {\n if (value == null || value === false &&\n // ARIA-attributes have a different notion of boolean values.\n // The value `false` is different from the attribute not\n // existing on the DOM, so we can't remove it. For non-boolean\n // ARIA-attributes we could treat false as a removal, but the\n // amount of exceptions would cost us too many bytes. On top of\n // that other VDOM frameworks also always stringify `false`.\n !/^ar/.test(name)) {\n dom.removeAttribute(name);\n } else {\n dom.setAttribute(name, value);\n }\n }\n}\nfunction getNormalizedName(name) {\n switch (name) {\n case 'onChange':\n return 'onInput';\n // see: https://github.com/preactjs/preact/issues/1978\n case 'onCompositionEnd':\n return 'oncompositionend';\n default:\n return name;\n }\n}\nexport function setProperties(dom, props) {\n for (var name in props) {\n setProperty(dom, getNormalizedName(name), props[name]);\n }\n}\nexport function setPropertiesWithoutEvents(dom, props) {\n for (var name in props) {\n if (!(name[0] === 'o' && name[1] === 'n')) {\n setProperty(dom, getNormalizedName(name), props[name]);\n }\n }\n}","var _excluded = [\"children\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { setProperties } from './utils';\nexport function getCreateDomElement(environment) {\n return function createDomElement(tagName, _ref) {\n var _ref$children = _ref.children,\n children = _ref$children === void 0 ? [] : _ref$children,\n props = _objectWithoutProperties(_ref, _excluded);\n var element = environment.document.createElement(tagName);\n setProperties(element, props);\n element.append.apply(element, _toConsumableArray(children));\n return element;\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"autocompleteScopeApi\", \"environment\", \"classNames\", \"getInputProps\", \"getInputPropsCore\", \"isDetached\", \"state\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { getCreateDomElement } from '../getCreateDomElement';\nimport { setProperties } from '../utils';\nexport var Input = function Input(_ref) {\n var autocompleteScopeApi = _ref.autocompleteScopeApi,\n environment = _ref.environment,\n classNames = _ref.classNames,\n getInputProps = _ref.getInputProps,\n getInputPropsCore = _ref.getInputPropsCore,\n isDetached = _ref.isDetached,\n state = _ref.state,\n props = _objectWithoutProperties(_ref, _excluded);\n var createDomElement = getCreateDomElement(environment);\n var element = createDomElement('input', props);\n var inputProps = getInputProps(_objectSpread({\n state: state,\n props: getInputPropsCore({\n inputElement: element\n }),\n inputElement: element\n }, autocompleteScopeApi));\n setProperties(element, _objectSpread(_objectSpread({}, inputProps), {}, {\n onKeyDown: function onKeyDown(event) {\n // In detached mode we don't want to close the panel when hitting `Tab`.\n if (isDetached && event.key === 'Tab') {\n return;\n }\n inputProps.onKeyDown(event);\n }\n }));\n return element;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { ClearIcon, Input, LoadingIcon, SearchIcon } from './elements';\nimport { getCreateDomElement } from './getCreateDomElement';\nimport { setProperties } from './utils';\nexport function createAutocompleteDom(_ref) {\n var autocomplete = _ref.autocomplete,\n autocompleteScopeApi = _ref.autocompleteScopeApi,\n classNames = _ref.classNames,\n environment = _ref.environment,\n isDetached = _ref.isDetached,\n _ref$placeholder = _ref.placeholder,\n placeholder = _ref$placeholder === void 0 ? 'Search' : _ref$placeholder,\n propGetters = _ref.propGetters,\n setIsModalOpen = _ref.setIsModalOpen,\n state = _ref.state,\n translations = _ref.translations;\n var createDomElement = getCreateDomElement(environment);\n var rootProps = propGetters.getRootProps(_objectSpread({\n state: state,\n props: autocomplete.getRootProps({})\n }, autocompleteScopeApi));\n var root = createDomElement('div', _objectSpread({\n class: classNames.root\n }, rootProps));\n var detachedContainer = createDomElement('div', {\n class: classNames.detachedContainer,\n onMouseDown: function onMouseDown(event) {\n event.stopPropagation();\n }\n });\n var detachedOverlay = createDomElement('div', {\n class: classNames.detachedOverlay,\n children: [detachedContainer],\n onMouseDown: function onMouseDown() {\n setIsModalOpen(false);\n autocomplete.setIsOpen(false);\n }\n });\n var labelProps = propGetters.getLabelProps(_objectSpread({\n state: state,\n props: autocomplete.getLabelProps({})\n }, autocompleteScopeApi));\n var submitButton = createDomElement('button', {\n class: classNames.submitButton,\n type: 'submit',\n title: translations.submitButtonTitle,\n children: [SearchIcon({\n environment: environment\n })]\n });\n // @MAJOR Remove the label wrapper for the submit button.\n // The submit button is sufficient for accessibility purposes, and\n // wrapping it with the label actually makes it less accessible (see CR-6077).\n var label = createDomElement('label', _objectSpread({\n class: classNames.label,\n children: [submitButton],\n ariaLabel: translations.submitButtonTitle\n }, labelProps));\n var clearButton = createDomElement('button', {\n class: classNames.clearButton,\n type: 'reset',\n title: translations.clearButtonTitle,\n children: [ClearIcon({\n environment: environment\n })]\n });\n var loadingIndicator = createDomElement('div', {\n class: classNames.loadingIndicator,\n children: [LoadingIcon({\n environment: environment\n })]\n });\n var input = Input({\n class: classNames.input,\n environment: environment,\n state: state,\n getInputProps: propGetters.getInputProps,\n getInputPropsCore: autocomplete.getInputProps,\n autocompleteScopeApi: autocompleteScopeApi,\n isDetached: isDetached\n });\n var inputWrapperPrefix = createDomElement('div', {\n class: classNames.inputWrapperPrefix,\n children: [label, loadingIndicator]\n });\n var inputWrapperSuffix = createDomElement('div', {\n class: classNames.inputWrapperSuffix,\n children: [clearButton]\n });\n var inputWrapper = createDomElement('div', {\n class: classNames.inputWrapper,\n children: [input]\n });\n var formProps = propGetters.getFormProps(_objectSpread({\n state: state,\n props: autocomplete.getFormProps({\n inputElement: input\n })\n }, autocompleteScopeApi));\n var form = createDomElement('form', _objectSpread({\n class: classNames.form,\n children: [inputWrapperPrefix, inputWrapper, inputWrapperSuffix]\n }, formProps));\n var panelProps = propGetters.getPanelProps(_objectSpread({\n state: state,\n props: autocomplete.getPanelProps({})\n }, autocompleteScopeApi));\n var panel = createDomElement('div', _objectSpread({\n class: classNames.panel\n }, panelProps));\n var detachedSearchButtonQuery = createDomElement('div', {\n class: classNames.detachedSearchButtonQuery,\n textContent: state.query\n });\n var detachedSearchButtonPlaceholder = createDomElement('div', {\n class: classNames.detachedSearchButtonPlaceholder,\n hidden: Boolean(state.query),\n textContent: placeholder\n });\n if (process.env.NODE_ENV === 'test') {\n setProperties(panel, {\n 'data-testid': 'panel'\n });\n }\n if (isDetached) {\n var detachedSearchButtonIcon = createDomElement('div', {\n class: classNames.detachedSearchButtonIcon,\n children: [SearchIcon({\n environment: environment\n })]\n });\n var detachedSearchButton = createDomElement('button', {\n type: 'button',\n class: classNames.detachedSearchButton,\n title: translations.detachedSearchButtonTitle,\n id: labelProps.id,\n onClick: function onClick() {\n setIsModalOpen(true);\n },\n children: [detachedSearchButtonIcon, detachedSearchButtonPlaceholder, detachedSearchButtonQuery]\n });\n var detachedCancelButton = createDomElement('button', {\n type: 'button',\n class: classNames.detachedCancelButton,\n textContent: translations.detachedCancelButtonText,\n // Prevent `onTouchStart` from closing the panel\n // since it should be initiated by `onClick` only\n onTouchStart: function onTouchStart(event) {\n event.stopPropagation();\n },\n onClick: function onClick() {\n autocomplete.setIsOpen(false);\n setIsModalOpen(false);\n }\n });\n var detachedFormContainer = createDomElement('div', {\n class: classNames.detachedFormContainer,\n children: [form, detachedCancelButton]\n });\n detachedContainer.appendChild(detachedFormContainer);\n root.appendChild(detachedSearchButton);\n } else {\n root.appendChild(form);\n }\n return {\n detachedContainer: detachedContainer,\n detachedOverlay: detachedOverlay,\n detachedSearchButtonQuery: detachedSearchButtonQuery,\n detachedSearchButtonPlaceholder: detachedSearchButtonPlaceholder,\n inputWrapper: inputWrapper,\n input: input,\n root: root,\n form: form,\n label: label,\n submitButton: submitButton,\n clearButton: clearButton,\n loadingIndicator: loadingIndicator,\n panel: panel\n };\n}","var n,l,u,t,i,o,r,f,e,c={},s=[],a=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,h=Array.isArray;function v(n,l){for(var u in l)n[u]=l[u];return n}function p(n){var l=n.parentNode;l&&l.removeChild(n)}function y(l,u,t){var i,o,r,f={};for(r in u)\"key\"==r?i=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return d(l,f,i,o,null)}function d(n,t,i,o,r){var f={type:n,props:t,key:i,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++u:r};return null==r&&null!=l.vnode&&l.vnode(f),f}function _(){return{current:null}}function k(n){return n.children}function b(n,l){this.props=n,this.context=l}function g(n,l){if(null==l)return n.__?g(n.__,n.__.__k.indexOf(n)+1):null;for(var u;ll&&i.sort(f));x.__r=0}function P(n,l,u,t,i,o,r,f,e,a,v){var p,y,_,b,m,w,x,P,C,H=0,I=t&&t.__k||s,T=I.length,j=T,z=l.length;for(u.__k=[],p=0;p0?d(b.type,b.props,b.key,b.ref?b.ref:null,b.__v):b)?(b.__=u,b.__b=u.__b+1,-1===(P=A(b,I,x=p+H,j))?_=c:(_=I[P]||c,I[P]=void 0,j--),L(n,b,_,i,o,r,f,e,a,v),m=b.__e,(y=b.ref)&&_.ref!=y&&(_.ref&&O(_.ref,null,b),v.push(y,b.__c||m,b)),null!=m&&(null==w&&(w=m),(C=_===c||null===_.__v)?-1==P&&H--:P!==x&&(P===x+1?H++:P>x?j>z-x?H+=P-x:H--:H=P(null!=e?1:0))for(;r>=0||f=0){if((e=l[r])&&i==e.key&&o===e.type)return r;r--}if(f2&&(e.children=arguments.length>3?n.call(arguments,2):t),d(l.type,e,i||l.key,o||l.ref,null)}function G(n,l){var u={__c:l=\"__cC\"+e++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,t;return this.getChildContext||(u=[],(t={})[l]=this,this.getChildContext=function(){return t},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(function(n){n.__e=!0,w(n)})},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=s.slice,l={__e:function(n,l,u,t){for(var i,o,r;l=l.__;)if((i=l.__c)&&!i.__)try{if((o=i.constructor)&&null!=o.getDerivedStateFromError&&(i.setState(o.getDerivedStateFromError(n)),r=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),r=i.__d),r)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&void 0===n.constructor},b.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=v({},this.state),\"function\"==typeof n&&(n=n(v({},u),this.props)),n&&v(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),w(this))},b.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),w(this))},b.prototype.render=k,i=[],r=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,f=function(n,l){return n.__v.__b-l.__v.__b},x.__r=0,e=0;export{b as Component,k as Fragment,F as cloneElement,G as createContext,y as createElement,_ as createRef,y as h,E as hydrate,t as isValidElement,l as options,D as render,C as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","export function getAttributeValueByPath(record, path) {\n return path.reduce(function (current, key) {\n return current && current[key];\n }, record);\n}","export var HIGHLIGHT_PRE_TAG = '__aa-highlight__';\nexport var HIGHLIGHT_POST_TAG = '__/aa-highlight__';","import { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\n/**\n * Creates a data structure that allows to concatenate similar highlighting\n * parts in a single value.\n */\nfunction createAttributeSet() {\n var initialValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var value = initialValue;\n return {\n get: function get() {\n return value;\n },\n add: function add(part) {\n var lastPart = value[value.length - 1];\n if ((lastPart === null || lastPart === void 0 ? void 0 : lastPart.isHighlighted) === part.isHighlighted) {\n value[value.length - 1] = {\n value: lastPart.value + part.value,\n isHighlighted: lastPart.isHighlighted\n };\n } else {\n value.push(part);\n }\n }\n };\n}\nexport function parseAttribute(_ref) {\n var highlightedValue = _ref.highlightedValue;\n var preTagParts = highlightedValue.split(HIGHLIGHT_PRE_TAG);\n var firstValue = preTagParts.shift();\n var parts = createAttributeSet(firstValue ? [{\n value: firstValue,\n isHighlighted: false\n }] : []);\n preTagParts.forEach(function (part) {\n var postTagParts = part.split(HIGHLIGHT_POST_TAG);\n parts.add({\n value: postTagParts[0],\n isHighlighted: true\n });\n if (postTagParts[1] !== '') {\n parts.add({\n value: postTagParts[1],\n isHighlighted: false\n });\n }\n });\n return parts.get();\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\nimport { parseAttribute } from './parseAttribute';\nexport function parseAlgoliaHitHighlight(_ref) {\n var hit = _ref.hit,\n attribute = _ref.attribute;\n var path = Array.isArray(attribute) ? attribute : [attribute];\n var highlightedValue = getAttributeValueByPath(hit, ['_highlightResult'].concat(_toConsumableArray(path), ['value']));\n if (typeof highlightedValue !== 'string') {\n process.env.NODE_ENV !== 'production' ? warn(false, \"The attribute \\\"\".concat(path.join('.'), \"\\\" described by the path \").concat(JSON.stringify(path), \" does not exist on the hit. Did you set it in `attributesToHighlight`?\") + '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToHighlight/') : void 0;\n highlightedValue = getAttributeValueByPath(hit, path) || '';\n }\n return parseAttribute({\n highlightedValue: highlightedValue\n });\n}","import { parseAlgoliaHitHighlight } from '@algolia/autocomplete-preset-algolia';\nexport function createHighlightComponent(_ref) {\n var createElement = _ref.createElement,\n Fragment = _ref.Fragment;\n function Highlight(_ref2) {\n var hit = _ref2.hit,\n attribute = _ref2.attribute,\n _ref2$tagName = _ref2.tagName,\n tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;\n return createElement(Fragment, {}, parseAlgoliaHitHighlight({\n hit: hit,\n attribute: attribute\n }).map(function (x, index) {\n return x.isHighlighted ? createElement(tagName, {\n key: index\n }, x.value) : x.value;\n }));\n }\n Highlight.__autocomplete_componentName = 'Highlight';\n return Highlight;\n}","var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n};\nvar hasAlphanumeric = new RegExp(/\\w/i);\nvar regexEscapedHtml = /&(amp|quot|lt|gt|#39);/g;\nvar regexHasEscapedHtml = RegExp(regexEscapedHtml.source);\nfunction unescape(value) {\n return value && regexHasEscapedHtml.test(value) ? value.replace(regexEscapedHtml, function (character) {\n return htmlEscapes[character];\n }) : value;\n}\nexport function isPartHighlighted(parts, i) {\n var _parts, _parts2;\n var current = parts[i];\n var isNextHighlighted = ((_parts = parts[i + 1]) === null || _parts === void 0 ? void 0 : _parts.isHighlighted) || true;\n var isPreviousHighlighted = ((_parts2 = parts[i - 1]) === null || _parts2 === void 0 ? void 0 : _parts2.isHighlighted) || true;\n if (!hasAlphanumeric.test(unescape(current.value)) && isPreviousHighlighted === isNextHighlighted) {\n return isPreviousHighlighted;\n }\n return current.isHighlighted;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { isPartHighlighted } from './isPartHighlighted';\nexport function reverseHighlightedParts(parts) {\n // We don't want to highlight the whole word when no parts match.\n if (!parts.some(function (part) {\n return part.isHighlighted;\n })) {\n return parts.map(function (part) {\n return _objectSpread(_objectSpread({}, part), {}, {\n isHighlighted: false\n });\n });\n }\n return parts.map(function (part, i) {\n return _objectSpread(_objectSpread({}, part), {}, {\n isHighlighted: !isPartHighlighted(parts, i)\n });\n });\n}","import { parseAlgoliaHitReverseHighlight } from '@algolia/autocomplete-preset-algolia';\nexport function createReverseHighlightComponent(_ref) {\n var createElement = _ref.createElement,\n Fragment = _ref.Fragment;\n function ReverseHighlight(_ref2) {\n var hit = _ref2.hit,\n attribute = _ref2.attribute,\n _ref2$tagName = _ref2.tagName,\n tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;\n return createElement(Fragment, {}, parseAlgoliaHitReverseHighlight({\n hit: hit,\n attribute: attribute\n }).map(function (x, index) {\n return x.isHighlighted ? createElement(tagName, {\n key: index\n }, x.value) : x.value;\n }));\n }\n ReverseHighlight.__autocomplete_componentName = 'ReverseHighlight';\n return ReverseHighlight;\n}","import { parseAlgoliaHitHighlight } from './parseAlgoliaHitHighlight';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\nexport function parseAlgoliaHitReverseHighlight(props) {\n return reverseHighlightedParts(parseAlgoliaHitHighlight(props));\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\nimport { parseAttribute } from './parseAttribute';\nexport function parseAlgoliaHitSnippet(_ref) {\n var hit = _ref.hit,\n attribute = _ref.attribute;\n var path = Array.isArray(attribute) ? attribute : [attribute];\n var highlightedValue = getAttributeValueByPath(hit, ['_snippetResult'].concat(_toConsumableArray(path), ['value']));\n if (typeof highlightedValue !== 'string') {\n process.env.NODE_ENV !== 'production' ? warn(false, \"The attribute \\\"\".concat(path.join('.'), \"\\\" described by the path \").concat(JSON.stringify(path), \" does not exist on the hit. Did you set it in `attributesToSnippet`?\") + '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToSnippet/') : void 0;\n highlightedValue = getAttributeValueByPath(hit, path) || '';\n }\n return parseAttribute({\n highlightedValue: highlightedValue\n });\n}","import { parseAlgoliaHitReverseSnippet } from '@algolia/autocomplete-preset-algolia';\nexport function createReverseSnippetComponent(_ref) {\n var createElement = _ref.createElement,\n Fragment = _ref.Fragment;\n function ReverseSnippet(_ref2) {\n var hit = _ref2.hit,\n attribute = _ref2.attribute,\n _ref2$tagName = _ref2.tagName,\n tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;\n return createElement(Fragment, {}, parseAlgoliaHitReverseSnippet({\n hit: hit,\n attribute: attribute\n }).map(function (x, index) {\n return x.isHighlighted ? createElement(tagName, {\n key: index\n }, x.value) : x.value;\n }));\n }\n ReverseSnippet.__autocomplete_componentName = 'ReverseSnippet';\n return ReverseSnippet;\n}","import { parseAlgoliaHitSnippet } from './parseAlgoliaHitSnippet';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\nexport function parseAlgoliaHitReverseSnippet(props) {\n return reverseHighlightedParts(parseAlgoliaHitSnippet(props));\n}","import { parseAlgoliaHitSnippet } from '@algolia/autocomplete-preset-algolia';\nexport function createSnippetComponent(_ref) {\n var createElement = _ref.createElement,\n Fragment = _ref.Fragment;\n function Snippet(_ref2) {\n var hit = _ref2.hit,\n attribute = _ref2.attribute,\n _ref2$tagName = _ref2.tagName,\n tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;\n return createElement(Fragment, {}, parseAlgoliaHitSnippet({\n hit: hit,\n attribute: attribute\n }).map(function (x, index) {\n return x.isHighlighted ? createElement(tagName, {\n key: index\n }, x.value) : x.value;\n }));\n }\n Snippet.__autocomplete_componentName = 'Snippet';\n return Snippet;\n}","import { invariant } from '@algolia/autocomplete-shared';\nexport function getHTMLElement(environment, value) {\n if (typeof value === 'string') {\n var element = environment.document.querySelector(value);\n invariant(element !== null, \"The element \".concat(JSON.stringify(value), \" is not in the document.\"));\n return element;\n }\n return value;\n}","export function mergeClassNames() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n return values.reduce(function (acc, current) {\n Object.keys(current).forEach(function (key) {\n var accValue = acc[key];\n var currentValue = current[key];\n if (accValue !== currentValue) {\n acc[key] = [accValue, currentValue].filter(Boolean).join(' ');\n }\n });\n return acc;\n }, {});\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"classNames\", \"container\", \"getEnvironmentProps\", \"getFormProps\", \"getInputProps\", \"getItemProps\", \"getLabelProps\", \"getListProps\", \"getPanelProps\", \"getRootProps\", \"panelContainer\", \"panelPlacement\", \"render\", \"renderNoResults\", \"renderer\", \"detachedMediaQuery\", \"components\", \"translations\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { generateAutocompleteId, invariant, warn } from '@algolia/autocomplete-shared';\nimport { createElement as preactCreateElement, Fragment as PreactFragment, render } from 'preact';\nimport { createHighlightComponent, createReverseHighlightComponent, createReverseSnippetComponent, createSnippetComponent } from './components';\nimport { getHTMLElement, mergeClassNames } from './utils';\nvar defaultClassNames = {\n clearButton: 'aa-ClearButton',\n detachedCancelButton: 'aa-DetachedCancelButton',\n detachedContainer: 'aa-DetachedContainer',\n detachedFormContainer: 'aa-DetachedFormContainer',\n detachedOverlay: 'aa-DetachedOverlay',\n detachedSearchButton: 'aa-DetachedSearchButton',\n detachedSearchButtonIcon: 'aa-DetachedSearchButtonIcon',\n detachedSearchButtonPlaceholder: 'aa-DetachedSearchButtonPlaceholder',\n detachedSearchButtonQuery: 'aa-DetachedSearchButtonQuery',\n form: 'aa-Form',\n input: 'aa-Input',\n inputWrapper: 'aa-InputWrapper',\n inputWrapperPrefix: 'aa-InputWrapperPrefix',\n inputWrapperSuffix: 'aa-InputWrapperSuffix',\n item: 'aa-Item',\n label: 'aa-Label',\n list: 'aa-List',\n loadingIndicator: 'aa-LoadingIndicator',\n panel: 'aa-Panel',\n panelLayout: 'aa-PanelLayout aa-Panel--scrollable',\n root: 'aa-Autocomplete',\n source: 'aa-Source',\n sourceFooter: 'aa-SourceFooter',\n sourceHeader: 'aa-SourceHeader',\n sourceNoResults: 'aa-SourceNoResults',\n submitButton: 'aa-SubmitButton'\n};\nvar defaultRender = function defaultRender(_ref, root) {\n var children = _ref.children,\n render = _ref.render;\n render(children, root);\n};\nvar defaultRenderer = {\n createElement: preactCreateElement,\n Fragment: PreactFragment,\n render: render\n};\nexport function getDefaultOptions(options) {\n var _core$id;\n var classNames = options.classNames,\n container = options.container,\n getEnvironmentProps = options.getEnvironmentProps,\n getFormProps = options.getFormProps,\n getInputProps = options.getInputProps,\n getItemProps = options.getItemProps,\n getLabelProps = options.getLabelProps,\n getListProps = options.getListProps,\n getPanelProps = options.getPanelProps,\n getRootProps = options.getRootProps,\n panelContainer = options.panelContainer,\n panelPlacement = options.panelPlacement,\n render = options.render,\n renderNoResults = options.renderNoResults,\n renderer = options.renderer,\n detachedMediaQuery = options.detachedMediaQuery,\n components = options.components,\n translations = options.translations,\n core = _objectWithoutProperties(options, _excluded);\n\n /* eslint-disable no-restricted-globals */\n var environment = typeof window !== 'undefined' ? window : {};\n /* eslint-enable no-restricted-globals */\n var containerElement = getHTMLElement(environment, container);\n invariant(containerElement.tagName !== 'INPUT', 'The `container` option does not support `input` elements. You need to change the container to a `div`.');\n process.env.NODE_ENV !== 'production' ? warn(!(render && renderer && !(renderer !== null && renderer !== void 0 && renderer.render)), \"You provided the `render` option but did not provide a `renderer.render`. Since v1.6.0, you can provide a `render` function directly in `renderer`.\" + \"\\nTo get rid of this warning, do any of the following depending on your use case.\" + \"\\n- If you are using the `render` option only to override Autocomplete's default `render` function, pass the `render` function into `renderer` and remove the `render` option.\" + '\\n- If you are using the `render` option to customize the layout, pass your `render` function into `renderer` and use it from the provided parameters of the `render` option.' + '\\n- If you are using the `render` option to work with React 18, pass an empty `render` function into `renderer`.' + '\\nSee https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-render') : void 0;\n process.env.NODE_ENV !== 'production' ? warn(!renderer || render || renderer.Fragment && renderer.createElement && renderer.render, \"You provided an incomplete `renderer` (missing: \".concat([!(renderer !== null && renderer !== void 0 && renderer.createElement) && '`renderer.createElement`', !(renderer !== null && renderer !== void 0 && renderer.Fragment) && '`renderer.Fragment`', !(renderer !== null && renderer !== void 0 && renderer.render) && '`renderer.render`'].filter(Boolean).join(', '), \"). This can cause rendering issues.\") + '\\nSee https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-renderer') : void 0;\n var defaultedRenderer = _objectSpread(_objectSpread({}, defaultRenderer), renderer);\n var defaultComponents = {\n Highlight: createHighlightComponent(defaultedRenderer),\n ReverseHighlight: createReverseHighlightComponent(defaultedRenderer),\n ReverseSnippet: createReverseSnippetComponent(defaultedRenderer),\n Snippet: createSnippetComponent(defaultedRenderer)\n };\n var defaultTranslations = {\n clearButtonTitle: 'Clear',\n detachedCancelButtonText: 'Cancel',\n detachedSearchButtonTitle: 'Search',\n submitButtonTitle: 'Submit'\n };\n return {\n renderer: {\n classNames: mergeClassNames(defaultClassNames, classNames !== null && classNames !== void 0 ? classNames : {}),\n container: containerElement,\n getEnvironmentProps: getEnvironmentProps !== null && getEnvironmentProps !== void 0 ? getEnvironmentProps : function (_ref2) {\n var props = _ref2.props;\n return props;\n },\n getFormProps: getFormProps !== null && getFormProps !== void 0 ? getFormProps : function (_ref3) {\n var props = _ref3.props;\n return props;\n },\n getInputProps: getInputProps !== null && getInputProps !== void 0 ? getInputProps : function (_ref4) {\n var props = _ref4.props;\n return props;\n },\n getItemProps: getItemProps !== null && getItemProps !== void 0 ? getItemProps : function (_ref5) {\n var props = _ref5.props;\n return props;\n },\n getLabelProps: getLabelProps !== null && getLabelProps !== void 0 ? getLabelProps : function (_ref6) {\n var props = _ref6.props;\n return props;\n },\n getListProps: getListProps !== null && getListProps !== void 0 ? getListProps : function (_ref7) {\n var props = _ref7.props;\n return props;\n },\n getPanelProps: getPanelProps !== null && getPanelProps !== void 0 ? getPanelProps : function (_ref8) {\n var props = _ref8.props;\n return props;\n },\n getRootProps: getRootProps !== null && getRootProps !== void 0 ? getRootProps : function (_ref9) {\n var props = _ref9.props;\n return props;\n },\n panelContainer: panelContainer ? getHTMLElement(environment, panelContainer) : environment.document.body,\n panelPlacement: panelPlacement !== null && panelPlacement !== void 0 ? panelPlacement : 'input-wrapper-width',\n render: render !== null && render !== void 0 ? render : defaultRender,\n renderNoResults: renderNoResults,\n renderer: defaultedRenderer,\n detachedMediaQuery: detachedMediaQuery !== null && detachedMediaQuery !== void 0 ? detachedMediaQuery : getComputedStyle(environment.document.documentElement).getPropertyValue('--aa-detached-media-query'),\n components: _objectSpread(_objectSpread({}, defaultComponents), components),\n translations: _objectSpread(_objectSpread({}, defaultTranslations), translations)\n },\n core: _objectSpread(_objectSpread({}, core), {}, {\n id: (_core$id = core.id) !== null && _core$id !== void 0 ? _core$id : generateAutocompleteId(),\n environment: environment\n })\n };\n}","export function getPanelPlacementStyle(_ref) {\n var panelPlacement = _ref.panelPlacement,\n container = _ref.container,\n form = _ref.form,\n environment = _ref.environment;\n var containerRect = container.getBoundingClientRect();\n // Some browsers have specificities to retrieve the document scroll position.\n // See https://stackoverflow.com/a/28633515/9940315\n var scrollTop = environment.pageYOffset || environment.document.documentElement.scrollTop || environment.document.body.scrollTop || 0;\n var top = scrollTop + containerRect.top + containerRect.height;\n switch (panelPlacement) {\n case 'start':\n {\n return {\n top: top,\n left: containerRect.left\n };\n }\n case 'end':\n {\n return {\n top: top,\n right: environment.document.documentElement.clientWidth - (containerRect.left + containerRect.width)\n };\n }\n case 'full-width':\n {\n return {\n top: top,\n left: 0,\n right: 0,\n width: 'unset',\n maxWidth: 'unset'\n };\n }\n case 'input-wrapper-width':\n {\n var formRect = form.getBoundingClientRect();\n return {\n top: top,\n left: formRect.left,\n right: environment.document.documentElement.clientWidth - (formRect.left + formRect.width),\n width: 'unset',\n maxWidth: 'unset'\n };\n }\n default:\n {\n throw new Error(\"[Autocomplete] The `panelPlacement` value \".concat(JSON.stringify(panelPlacement), \" is not valid.\"));\n }\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/** @jsxRuntime classic */\n/** @jsx renderer.createElement */\n\nimport { setProperties, setPropertiesWithoutEvents } from './utils';\nexport function renderSearchBox(_ref) {\n var autocomplete = _ref.autocomplete,\n autocompleteScopeApi = _ref.autocompleteScopeApi,\n dom = _ref.dom,\n propGetters = _ref.propGetters,\n state = _ref.state;\n setPropertiesWithoutEvents(dom.root, propGetters.getRootProps(_objectSpread({\n state: state,\n props: autocomplete.getRootProps({})\n }, autocompleteScopeApi)));\n setPropertiesWithoutEvents(dom.input, propGetters.getInputProps(_objectSpread({\n state: state,\n props: autocomplete.getInputProps({\n inputElement: dom.input\n }),\n inputElement: dom.input\n }, autocompleteScopeApi)));\n setProperties(dom.label, {\n hidden: state.status === 'stalled'\n });\n setProperties(dom.loadingIndicator, {\n hidden: state.status !== 'stalled'\n });\n setProperties(dom.clearButton, {\n hidden: !state.query\n });\n setProperties(dom.detachedSearchButtonQuery, {\n textContent: state.query\n });\n setProperties(dom.detachedSearchButtonPlaceholder, {\n hidden: Boolean(state.query)\n });\n}\nexport function renderPanel(render, _ref2) {\n var autocomplete = _ref2.autocomplete,\n autocompleteScopeApi = _ref2.autocompleteScopeApi,\n classNames = _ref2.classNames,\n html = _ref2.html,\n dom = _ref2.dom,\n panelContainer = _ref2.panelContainer,\n propGetters = _ref2.propGetters,\n state = _ref2.state,\n components = _ref2.components,\n renderer = _ref2.renderer;\n if (!state.isOpen) {\n if (panelContainer.contains(dom.panel)) {\n panelContainer.removeChild(dom.panel);\n }\n return;\n }\n\n // We add the panel element to the DOM when it's not yet appended and that the\n // items are fetched.\n if (!panelContainer.contains(dom.panel) && state.status !== 'loading') {\n panelContainer.appendChild(dom.panel);\n }\n dom.panel.classList.toggle('aa-Panel--stalled', state.status === 'stalled');\n var sections = state.collections.filter(function (_ref3) {\n var source = _ref3.source,\n items = _ref3.items;\n return source.templates.noResults || items.length > 0;\n }).map(function (_ref4, sourceIndex) {\n var source = _ref4.source,\n items = _ref4.items;\n return renderer.createElement(\"section\", {\n key: sourceIndex,\n className: classNames.source,\n \"data-autocomplete-source-id\": source.sourceId\n }, source.templates.header && renderer.createElement(\"div\", {\n className: classNames.sourceHeader\n }, source.templates.header({\n components: components,\n createElement: renderer.createElement,\n Fragment: renderer.Fragment,\n items: items,\n source: source,\n state: state,\n html: html\n })), source.templates.noResults && items.length === 0 ? renderer.createElement(\"div\", {\n className: classNames.sourceNoResults\n }, source.templates.noResults({\n components: components,\n createElement: renderer.createElement,\n Fragment: renderer.Fragment,\n source: source,\n state: state,\n html: html\n })) : renderer.createElement(\"ul\", _extends({\n className: classNames.list\n }, propGetters.getListProps(_objectSpread({\n state: state,\n props: autocomplete.getListProps({\n source: source\n })\n }, autocompleteScopeApi))), items.map(function (item) {\n var itemProps = autocomplete.getItemProps({\n item: item,\n source: source\n });\n return renderer.createElement(\"li\", _extends({\n key: itemProps.id,\n className: classNames.item\n }, propGetters.getItemProps(_objectSpread({\n state: state,\n props: itemProps\n }, autocompleteScopeApi))), source.templates.item({\n components: components,\n createElement: renderer.createElement,\n Fragment: renderer.Fragment,\n item: item,\n state: state,\n html: html\n }));\n })), source.templates.footer && renderer.createElement(\"div\", {\n className: classNames.sourceFooter\n }, source.templates.footer({\n components: components,\n createElement: renderer.createElement,\n Fragment: renderer.Fragment,\n items: items,\n source: source,\n state: state,\n html: html\n })));\n });\n var children = renderer.createElement(renderer.Fragment, null, renderer.createElement(\"div\", {\n className: classNames.panelLayout\n }, sections), renderer.createElement(\"div\", {\n className: \"aa-GradientBottom\"\n }));\n var elements = sections.reduce(function (acc, current) {\n acc[current.props['data-autocomplete-source-id']] = current;\n return acc;\n }, {});\n render(_objectSpread(_objectSpread({\n children: children,\n state: state,\n sections: sections,\n elements: elements\n }, renderer), {}, {\n components: components,\n html: html\n }, autocompleteScopeApi), dom.panel);\n}","import { version } from '@algolia/autocomplete-shared';\nexport var userAgents = [{\n segment: 'autocomplete-js',\n version: version\n}];","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar isPlainObject = function isPlainObject(value) {\n return value && _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Object]';\n};\nexport function mergeDeep() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n return values.reduce(function (acc, current) {\n Object.keys(current).forEach(function (key) {\n var accValue = acc[key];\n var currentValue = current[key];\n if (Array.isArray(accValue) && Array.isArray(currentValue)) {\n acc[key] = accValue.concat.apply(accValue, _toConsumableArray(currentValue));\n } else if (isPlainObject(accValue) && isPlainObject(currentValue)) {\n acc[key] = mergeDeep(accValue, currentValue);\n } else {\n acc[key] = currentValue;\n }\n });\n return acc;\n }, {});\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nexport function pickBy(obj, predicate) {\n return Object.entries(obj).reduce(function (acc, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n if (predicate({\n key: key,\n value: value\n })) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, value));\n }\n return acc;\n }, {});\n}","var _excluded = [\"components\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { createAutocomplete } from '@algolia/autocomplete-core';\nimport { createRef, debounce, getItemsCount, warn } from '@algolia/autocomplete-shared';\nimport htm from 'htm';\nimport { createAutocompleteDom } from './createAutocompleteDom';\nimport { createEffectWrapper } from './createEffectWrapper';\nimport { createReactiveWrapper } from './createReactiveWrapper';\nimport { getDefaultOptions } from './getDefaultOptions';\nimport { getPanelPlacementStyle } from './getPanelPlacementStyle';\nimport { renderPanel, renderSearchBox } from './render';\nimport { userAgents } from './userAgents';\nimport { mergeDeep, pickBy, setProperties } from './utils';\nvar instancesCount = 0;\nexport function autocomplete(options) {\n var _createEffectWrapper = createEffectWrapper(),\n runEffect = _createEffectWrapper.runEffect,\n cleanupEffects = _createEffectWrapper.cleanupEffects,\n runEffects = _createEffectWrapper.runEffects;\n var _createReactiveWrappe = createReactiveWrapper(),\n reactive = _createReactiveWrappe.reactive,\n runReactives = _createReactiveWrappe.runReactives;\n var hasNoResultsSourceTemplateRef = createRef(false);\n var optionsRef = createRef(options);\n var onStateChangeRef = createRef(undefined);\n var props = reactive(function () {\n return getDefaultOptions(optionsRef.current);\n });\n var isDetached = reactive(function () {\n return props.value.core.environment.matchMedia(props.value.renderer.detachedMediaQuery).matches;\n });\n var autocomplete = reactive(function () {\n return createAutocomplete(_objectSpread(_objectSpread({}, props.value.core), {}, {\n onStateChange: function onStateChange(params) {\n var _onStateChangeRef$cur, _props$value$core$onS, _props$value$core;\n hasNoResultsSourceTemplateRef.current = params.state.collections.some(function (collection) {\n return collection.source.templates.noResults;\n });\n (_onStateChangeRef$cur = onStateChangeRef.current) === null || _onStateChangeRef$cur === void 0 ? void 0 : _onStateChangeRef$cur.call(onStateChangeRef, params);\n (_props$value$core$onS = (_props$value$core = props.value.core).onStateChange) === null || _props$value$core$onS === void 0 ? void 0 : _props$value$core$onS.call(_props$value$core, params);\n },\n shouldPanelOpen: optionsRef.current.shouldPanelOpen || function (_ref) {\n var state = _ref.state;\n if (isDetached.value) {\n return true;\n }\n var hasItems = getItemsCount(state) > 0;\n if (!props.value.core.openOnFocus && !state.query) {\n return hasItems;\n }\n var hasNoResultsTemplate = Boolean(hasNoResultsSourceTemplateRef.current || props.value.renderer.renderNoResults);\n return !hasItems && hasNoResultsTemplate || hasItems;\n },\n __autocomplete_metadata: {\n userAgents: userAgents,\n options: options\n }\n }));\n });\n var lastStateRef = createRef(_objectSpread({\n collections: [],\n completion: null,\n context: {},\n isOpen: false,\n query: '',\n activeItemId: null,\n status: 'idle'\n }, props.value.core.initialState));\n var propGetters = {\n getEnvironmentProps: props.value.renderer.getEnvironmentProps,\n getFormProps: props.value.renderer.getFormProps,\n getInputProps: props.value.renderer.getInputProps,\n getItemProps: props.value.renderer.getItemProps,\n getLabelProps: props.value.renderer.getLabelProps,\n getListProps: props.value.renderer.getListProps,\n getPanelProps: props.value.renderer.getPanelProps,\n getRootProps: props.value.renderer.getRootProps\n };\n var autocompleteScopeApi = {\n setActiveItemId: autocomplete.value.setActiveItemId,\n setQuery: autocomplete.value.setQuery,\n setCollections: autocomplete.value.setCollections,\n setIsOpen: autocomplete.value.setIsOpen,\n setStatus: autocomplete.value.setStatus,\n setContext: autocomplete.value.setContext,\n refresh: autocomplete.value.refresh,\n navigator: autocomplete.value.navigator\n };\n var html = reactive(function () {\n return htm.bind(props.value.renderer.renderer.createElement);\n });\n var dom = reactive(function () {\n return createAutocompleteDom({\n autocomplete: autocomplete.value,\n autocompleteScopeApi: autocompleteScopeApi,\n classNames: props.value.renderer.classNames,\n environment: props.value.core.environment,\n isDetached: isDetached.value,\n placeholder: props.value.core.placeholder,\n propGetters: propGetters,\n setIsModalOpen: setIsModalOpen,\n state: lastStateRef.current,\n translations: props.value.renderer.translations\n });\n });\n function setPanelPosition() {\n setProperties(dom.value.panel, {\n style: isDetached.value ? {} : getPanelPlacementStyle({\n panelPlacement: props.value.renderer.panelPlacement,\n container: dom.value.root,\n form: dom.value.form,\n environment: props.value.core.environment\n })\n });\n }\n function scheduleRender(state) {\n lastStateRef.current = state;\n var renderProps = {\n autocomplete: autocomplete.value,\n autocompleteScopeApi: autocompleteScopeApi,\n classNames: props.value.renderer.classNames,\n components: props.value.renderer.components,\n container: props.value.renderer.container,\n html: html.value,\n dom: dom.value,\n panelContainer: isDetached.value ? dom.value.detachedContainer : props.value.renderer.panelContainer,\n propGetters: propGetters,\n state: lastStateRef.current,\n renderer: props.value.renderer.renderer\n };\n var render = !getItemsCount(state) && !hasNoResultsSourceTemplateRef.current && props.value.renderer.renderNoResults || props.value.renderer.render;\n renderSearchBox(renderProps);\n renderPanel(render, renderProps);\n }\n runEffect(function () {\n var environmentProps = autocomplete.value.getEnvironmentProps({\n formElement: dom.value.form,\n panelElement: dom.value.panel,\n inputElement: dom.value.input\n });\n setProperties(props.value.core.environment, environmentProps);\n return function () {\n setProperties(props.value.core.environment, Object.keys(environmentProps).reduce(function (acc, key) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));\n }, {}));\n };\n });\n runEffect(function () {\n var panelContainerElement = isDetached.value ? props.value.core.environment.document.body : props.value.renderer.panelContainer;\n var panelElement = isDetached.value ? dom.value.detachedOverlay : dom.value.panel;\n if (isDetached.value && lastStateRef.current.isOpen) {\n setIsModalOpen(true);\n }\n scheduleRender(lastStateRef.current);\n return function () {\n if (panelContainerElement.contains(panelElement)) {\n panelContainerElement.removeChild(panelElement);\n panelContainerElement.classList.remove('aa-Detached');\n }\n };\n });\n runEffect(function () {\n var containerElement = props.value.renderer.container;\n containerElement.appendChild(dom.value.root);\n return function () {\n containerElement.removeChild(dom.value.root);\n };\n });\n runEffect(function () {\n var debouncedRender = debounce(function (_ref2) {\n var state = _ref2.state;\n scheduleRender(state);\n }, 0);\n onStateChangeRef.current = function (_ref3) {\n var state = _ref3.state,\n prevState = _ref3.prevState;\n if (isDetached.value && prevState.isOpen !== state.isOpen) {\n setIsModalOpen(state.isOpen);\n }\n\n // The outer DOM might have changed since the last time the panel was\n // positioned. The layout might have shifted vertically for instance.\n // It's therefore safer to re-calculate the panel position before opening\n // it again.\n if (!isDetached.value && state.isOpen && !prevState.isOpen) {\n setPanelPosition();\n }\n\n // We scroll to the top of the panel whenever the query changes (i.e. new\n // results come in) so that users don't have to.\n if (state.query !== prevState.query) {\n var scrollablePanels = props.value.core.environment.document.querySelectorAll('.aa-Panel--scrollable');\n scrollablePanels.forEach(function (scrollablePanel) {\n if (scrollablePanel.scrollTop !== 0) {\n scrollablePanel.scrollTop = 0;\n }\n });\n }\n debouncedRender({\n state: state\n });\n };\n return function () {\n onStateChangeRef.current = undefined;\n };\n });\n runEffect(function () {\n var onResize = debounce(function () {\n var previousIsDetached = isDetached.value;\n isDetached.value = props.value.core.environment.matchMedia(props.value.renderer.detachedMediaQuery).matches;\n if (previousIsDetached !== isDetached.value) {\n update({});\n } else {\n requestAnimationFrame(setPanelPosition);\n }\n }, 20);\n props.value.core.environment.addEventListener('resize', onResize);\n return function () {\n props.value.core.environment.removeEventListener('resize', onResize);\n };\n });\n runEffect(function () {\n if (!isDetached.value) {\n return function () {};\n }\n function toggleModalClassname(isActive) {\n dom.value.detachedContainer.classList.toggle('aa-DetachedContainer--modal', isActive);\n }\n function onChange(event) {\n toggleModalClassname(event.matches);\n }\n var isModalDetachedMql = props.value.core.environment.matchMedia(getComputedStyle(props.value.core.environment.document.documentElement).getPropertyValue('--aa-detached-modal-media-query'));\n toggleModalClassname(isModalDetachedMql.matches);\n\n // Prior to Safari 14, `MediaQueryList` isn't based on `EventTarget`,\n // so we must use `addListener` and `removeListener` to observe media query lists.\n // See https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList/addListener\n var hasModernEventListener = Boolean(isModalDetachedMql.addEventListener);\n hasModernEventListener ? isModalDetachedMql.addEventListener('change', onChange) : isModalDetachedMql.addListener(onChange);\n return function () {\n hasModernEventListener ? isModalDetachedMql.removeEventListener('change', onChange) : isModalDetachedMql.removeListener(onChange);\n };\n });\n runEffect(function () {\n requestAnimationFrame(setPanelPosition);\n return function () {};\n });\n function destroy() {\n instancesCount--;\n cleanupEffects();\n }\n function update() {\n var updatedOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n cleanupEffects();\n var _props$value$renderer = props.value.renderer,\n components = _props$value$renderer.components,\n rendererProps = _objectWithoutProperties(_props$value$renderer, _excluded);\n optionsRef.current = mergeDeep(rendererProps, props.value.core, {\n // We need to filter out default components so they can be replaced with\n // a new `renderer`, without getting rid of user components.\n // @MAJOR Deal with registering components with the same name as the\n // default ones. If we disallow overriding default components, we'd just\n // need to pass all `components` here.\n components: pickBy(components, function (_ref4) {\n var value = _ref4.value;\n return !value.hasOwnProperty('__autocomplete_componentName');\n }),\n initialState: lastStateRef.current\n }, updatedOptions);\n runReactives();\n runEffects();\n autocomplete.value.refresh().then(function () {\n scheduleRender(lastStateRef.current);\n });\n }\n function setIsModalOpen(value) {\n var prevValue = props.value.core.environment.document.body.contains(dom.value.detachedOverlay);\n if (value === prevValue) {\n return;\n }\n if (value) {\n props.value.core.environment.document.body.appendChild(dom.value.detachedOverlay);\n props.value.core.environment.document.body.classList.add('aa-Detached');\n dom.value.input.focus();\n } else {\n props.value.core.environment.document.body.removeChild(dom.value.detachedOverlay);\n props.value.core.environment.document.body.classList.remove('aa-Detached');\n }\n }\n process.env.NODE_ENV !== 'production' ? warn(instancesCount === 0, \"Autocomplete doesn't support multiple instances running at the same time. Make sure to destroy the previous instance before creating a new one.\\n\\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-destroy\") : void 0;\n instancesCount++;\n return _objectSpread(_objectSpread({}, autocompleteScopeApi), {}, {\n update: update,\n destroy: destroy\n });\n}","export function createReactiveWrapper() {\n var reactives = [];\n return {\n reactive: function reactive(value) {\n var current = value();\n var reactive = {\n _fn: value,\n _ref: {\n current: current\n },\n get value() {\n return this._ref.current;\n },\n set value(value) {\n this._ref.current = value;\n }\n };\n reactives.push(reactive);\n return reactive;\n },\n runReactives: function runReactives() {\n reactives.forEach(function (value) {\n value._ref.current = value._fn();\n });\n }\n };\n}","export function createEffectWrapper() {\n var effects = [];\n var cleanups = [];\n function runEffect(fn) {\n effects.push(fn);\n var effectCleanup = fn();\n cleanups.push(effectCleanup);\n }\n return {\n runEffect: runEffect,\n cleanupEffects: function cleanupEffects() {\n var currentCleanups = cleanups;\n cleanups = [];\n currentCleanups.forEach(function (cleanup) {\n cleanup();\n });\n },\n runEffects: function runEffects() {\n var currentEffects = effects;\n effects = [];\n currentEffects.forEach(function (effect) {\n runEffect(effect);\n });\n }\n };\n}","export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}","'use strict';\nvar anObject = require('../internals/an-object');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\n\nvar $TypeError = TypeError;\n\n// `Date.prototype[@@toPrimitive](hint)` method implementation\n// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive\nmodule.exports = function (hint) {\n anObject(this);\n if (hint === 'string' || hint === 'default') hint = 'string';\n else if (hint !== 'number') throw new $TypeError('Incorrect hint');\n return ordinaryToPrimitive(this, hint);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","'use strict';\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar dateToPrimitive = require('../internals/date-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar DatePrototype = Date.prototype;\n\n// `Date.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive\nif (!hasOwn(DatePrototype, TO_PRIMITIVE)) {\n defineBuiltIn(DatePrototype, TO_PRIMITIVE, dateToPrimitive);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar path = require('../internals/path');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = globalThis[NUMBER];\nvar PureNumberNamespace = path[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = globalThis.TypeError;\nvar stringSlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw new TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n // fast equal of /^0b[01]+$/i\n case 66:\n case 98:\n radix = 2;\n maxCode = 49;\n break;\n // fast equal of /^0o[0-7]+$/i\n case 79:\n case 111:\n radix = 8;\n maxCode = 55;\n break;\n default:\n return +it;\n }\n digits = stringSlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nvar FORCED = isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'));\n\nvar calledWithNew = function (dummy) {\n // includes check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); });\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nvar NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n return calledWithNew(this) ? inheritIfRequired(Object(n), this, NumberWrapper) : n;\n};\n\nNumberWrapper.prototype = NumberPrototype;\nif (FORCED && !IS_PURE) NumberPrototype.constructor = NumberWrapper;\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED }, {\n Number: NumberWrapper\n});\n\n// Use `internal/copy-constructor-properties` helper in `core-js@4`\nvar copyConstructorProperties = function (target, source) {\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(source) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n\nif (IS_PURE && PureNumberNamespace) copyConstructorProperties(path[NUMBER], PureNumberNamespace);\nif (FORCED || IS_PURE) copyConstructorProperties(path[NUMBER], NativeNumber);\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperties = require('../internals/object-define-properties').f;\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties, sham: !DESCRIPTORS }, {\n defineProperties: defineProperties\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FORCED = !DESCRIPTORS || fails(function () { nativeGetOwnPropertyDescriptor(1); });\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = globalThis.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = globalThis.SyntaxError;\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only proper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n // eslint-disable-next-line sonarjs/inconsistent-function-call -- required for testing\n return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = create(null);\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr += charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n result += chr;\n // ignore non-capturing groups\n if (stringSlice(string, index + 1, index + 3) === '?:') {\n continue;\n }\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = getRegExpFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (MISSED_STICKY && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxyAccessor(RegExpWrapper, NativeRegExp, keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n defineBuiltIn(globalThis, 'RegExp', RegExpWrapper, { constructor: true });\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar classof = require('../internals/classof-raw');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar $TypeError = TypeError;\n\n// `RegExp.prototype.dotAll` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall\nif (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {\n defineBuiltInAccessor(RegExpPrototype, 'dotAll', {\n configurable: true,\n get: function dotAll() {\n if (this === RegExpPrototype) return;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).dotAll;\n }\n throw new $TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar MISSED_STICKY = require('../internals/regexp-sticky-helpers').MISSED_STICKY;\nvar classof = require('../internals/classof-raw');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar $TypeError = TypeError;\n\n// `RegExp.prototype.sticky` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky\nif (DESCRIPTORS && MISSED_STICKY) {\n defineBuiltInAccessor(RegExpPrototype, 'sticky', {\n configurable: true,\n get: function sticky() {\n if (this === RegExpPrototype) return;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).sticky;\n }\n throw new $TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n"],"names":["debounce","fn","time","timerId","undefined","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","isPrimitive","obj","Object","isEqual","first","second","keys","_i","_Object$keys","key","noop","createClickedEvent","_ref","item","_ref$items","items","index","__autocomplete_indexName","positions","findIndex","x","objectID","queryID","__autocomplete_queryID","algoliaSource","_slicedToArray","arr","i","isArray","_arrayWithHoles","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","call","next","done","push","value","err","return","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","n","prototype","toString","slice","constructor","name","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","_excluded","_excluded2","_typeof","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","_objectWithoutProperties","source","excluded","target","sourceKeys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","ownKeys","object","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","arg","input","hint","prim","toPrimitive","res","String","Number","_toPrimitive","_toPropertyKey","configurable","writable","mapToInsightsParamsApi","params","map","param","objectIDs","_ref2","createSearchInsightsApi","searchInsights","_split$map2","major","minor","canSendHeaders","version","split","sendToInsights","method","payloads","_items$0$__autocomple","__autocomplete_algoliaCredentials","headers","appId","apiKey","concat","init","setAuthenticatedUserToken","authenticatedUserToken","setUserToken","userToken","clickedObjectIDsAfterSearch","clickedObjectIDs","_len2","_key2","clickedFilters","_len3","_key3","convertedObjectIDsAfterSearch","_len4","_key4","convertedObjectIDs","_len5","_key5","convertedFilters","_len6","_key6","viewedObjectIDs","_len7","_key7","reduce","acc","_ref3","chunkSize","chunks","chunk","_ref4","payload","_ref5","viewedFilters","_len8","_key8","createViewedEvents","itemsByIndexName","current","_acc$current$__autoco","indexName","isAlgoliaInsightsHit","hit","ALGOLIA_INSIGHTS_VERSION","ALGOLIA_INSIGHTS_SRC","sendViewedObjectIDs","onItemsChange","insights","state","insightsEvents","event","eventName","createAlgoliaInsightsPlugin","options","_getOptions","_ref8","getAlgoliaSources","context","onSelect","_ref9","onActive","__autocomplete_clickAnalytics","getOptions","providedInsightsClient","insightsClient","insightsInitParams","onSelectEvent","onActiveEvent","callback","window","safelyRunOnBrowser","pointer","AlgoliaAnalyticsObject","queue","environment","errorMessage","script","document","createElement","async","src","onerror","console","error","body","appendChild","cause","loadInsights","partial","previousItems","createRef","debouncedOnStateChange","isOpen","collections","subscribe","setContext","setInsightsContext","algoliaInsightsPlugin","__algoliaSearchParameters","clickAnalytics","normalizeUserToken","_error","getItems","_ref6","onStateChange","_ref7","__autocomplete_pluginOptions","_context$algoliaInsig","__automaticInsights","createStore","reducer","props","onStoreStateChange","list","initialState","getState","dispatch","action","prevState","type","pendingRequests","add","cancelablePromise","finally","cancelAll","promise","cancel","isEmpty","flatten","values","a","b","getItemsCount","sum","collection","autocompleteId","generateAutocompleteId","getDefaultProps","pluginSubscribers","_props$id","plugins","debug","openOnFocus","enterKeyHint","ignoreCompositionEvents","placeholder","autoFocus","defaultActiveItemId","stallThreshold","shouldPanelOpen","reshape","sources","id","activeItemId","query","completion","status","_props$onStateChange","_x$onStateChange","onSubmit","_props$onSubmit","_x$onSubmit","onReset","_props$onReset","_x$onReset","getSources","Promise","all","plugin","Boolean","seenSourceIds","resolve","then","maybeSource","sourceId","includes","Error","JSON","stringify","defaultSource","getItemInputValue","getItemUrl","setIsOpen","onResolve","__default","normalizedSource","getNormalizedSources","nested","_x$onSelect","_x$onActive","_x$onResolve","navigator","navigate","itemUrl","location","assign","navigateNewTab","windowReference","open","focus","navigateNewWindow","isDescription","execute","preResolve","itemsOrDescription","description","contextParameters","requesterId","_state$context$key","requests","queries","transformResponse","searchClient","container","find","_container$items","request","maybeDescription","responses","postResolve","store","rawResults","matches","response","results","transform","hits","result","facetHits","_facetHits","facetHit","label","count","_highlightResult","highlighted","every","createInternalCancelablePromise","onfulfilled","onrejected","createCallback","catch","onfinally","onCancelList","isCanceled","callbacks","createCancelablePromise","executor","reject","cancelable","onResult","fallback","getActiveItem","collectionIndex","collectionsCount","nextValue","getCollectionFromActiveItemId","isOffsetFound","counter","previousItemsOffset","currentCollection","getRelativeActiveItemId","itemInputValue","reason","basePromiseId","latestResolvedId","latestResolvedValue","lastStalledId","runConcurrentSafePromise","currentPromiseId","onInput","_ref$nextState","nextState","refresh","setters","setCollections","setQuery","setActiveItemId","setStatus","_nextState$isOpen","_request","_store$getState$conte","some","_automaticInsights","isSearchResponseWithAutomaticInsightsFlag","originalSourcesBySourceId","sourcesBySourceId","_nextState$isOpen2","isPanelOpen","highlightedItem","getAutocompleteElementId","autocompleteInstanceId","elementId","join","replace","regex","getNativeEvent","nativeEvent","_excluded3","_excluded4","_excluded5","_excluded6","getPropGetters","getEnvironmentProps","providedProps","inputElement","formElement","panelElement","onMouseDownOrTouchStart","contextNode","parent","child","contains","onTouchStart","onMouseDown","onTouchMove","activeElement","blur","getRootProps","rest","role","getFormProps","noValidate","_providedProps$inputE","preventDefault","_providedProps$inputE2","getLabelProps","htmlFor","getInputProps","_props$environment$na","onFocus","_ref3$maxLength","maxLength","activeItem","shouldFallbackKeyHint","userAgent","match","isSamsung","autoComplete","autoCorrect","autoCapitalize","spellCheck","onChange","currentTarget","isComposing","onCompositionEnd","onKeyDown","triggerScrollIntoView","nodeItem","getElementById","scrollIntoViewIfNeeded","scrollIntoView","triggerOnActive","nextActiveItemId","metaKey","ctrlKey","shiftKey","altKey","onBlur","onClick","getPanelProps","onMouseLeave","getListProps","getItemProps","__autocomplete_id","onMouseMove","_item","_source","userAgents","segment","getMetadata","_","_options$__autocomple","_options$__autocomple2","_options$__autocomple3","optionsKey","__autocomplete_metadata","extraOptions","ua","getCompletion","_getActiveItem","getNextActiveItemId","moveAmount","baseIndex","itemCount","numericIndex","stateReducer","hasOwnProperty","_nextState","createAutocomplete","subscribers","_state$context","_state$context$algoli","isAlgoliaInsightsPluginEnabled","subscribePlugins","rawValue","baseItemId","getAutocompleteSetters","propGetters","Event","_plugin$subscribe","insightsParams","_environment$navigato","_environment$navigato2","metadata","metadataContainer","headRef","querySelector","content","injectMetadata","t","s","r","e","u","h","p","Map","get","this","set","l","SearchIcon","element","createElementNS","setAttribute","path","ClearIcon","LoadingIcon","innerHTML","TOUCH_EVENTS_ALIASES","setStyle","style","eventProxy","_listeners","setProperty","dom","useCapture","nameLower","oldValue","toLowerCase","addEventListener","removeEventListener","removeAttribute","getNormalizedName","setProperties","setPropertiesWithoutEvents","getCreateDomElement","tagName","_ref$children","children","append","Input","autocompleteScopeApi","classNames","getInputPropsCore","isDetached","createDomElement","inputProps","f","c","v","parentNode","removeChild","y","defaultProps","d","ref","__k","__","__b","__e","__d","__c","__h","__v","vnode","k","g","m","base","w","__r","debounceRendering","sort","shift","__P","L","__n","ownerSVGElement","M","P","C","H","I","T","j","z","A","O","nextSibling","S","$","q","insertBefore","cssText","contextType","__E","render","B","sub","_sb","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","N","diffed","localName","nodeType","createTextNode","is","data","childNodes","dangerouslySetInnerHTML","attributes","__html","checked","unmount","componentWillUnmount","D","firstChild","getAttributeValueByPath","record","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","bind","HIGHLIGHT_PRE_TAG","HIGHLIGHT_POST_TAG","parseAttribute","preTagParts","highlightedValue","firstValue","parts","part","lastPart","isHighlighted","createAttributeSet","postTagParts","parseAlgoliaHitHighlight","attribute","createHighlightComponent","Fragment","Highlight","_ref2$tagName","__autocomplete_componentName","htmlEscapes","hasAlphanumeric","RegExp","regexEscapedHtml","regexHasEscapedHtml","isPartHighlighted","_parts","_parts2","isNextHighlighted","isPreviousHighlighted","character","reverseHighlightedParts","createReverseHighlightComponent","ReverseHighlight","parseAlgoliaHitSnippet","createReverseSnippetComponent","ReverseSnippet","createSnippetComponent","Snippet","getHTMLElement","mergeClassNames","accValue","currentValue","defaultClassNames","clearButton","detachedCancelButton","detachedContainer","detachedFormContainer","detachedOverlay","detachedSearchButton","detachedSearchButtonIcon","detachedSearchButtonPlaceholder","detachedSearchButtonQuery","form","inputWrapper","inputWrapperPrefix","inputWrapperSuffix","loadingIndicator","panel","panelLayout","root","sourceFooter","sourceHeader","sourceNoResults","submitButton","defaultRender","defaultRenderer","getPanelPlacementStyle","panelPlacement","containerRect","getBoundingClientRect","top","pageYOffset","documentElement","scrollTop","height","left","right","clientWidth","width","maxWidth","formRect","_extends","isPlainObject","mergeDeep","autocomplete","reactives","_createEffectWrapper","effects","cleanups","runEffect","effectCleanup","cleanupEffects","currentCleanups","cleanup","runEffects","currentEffects","effect","createEffectWrapper","_createReactiveWrappe","reactive","_fn","runReactives","hasNoResultsSourceTemplateRef","optionsRef","onStateChangeRef","_core$id","panelContainer","renderNoResults","renderer","detachedMediaQuery","components","translations","core","containerElement","defaultedRenderer","defaultComponents","getComputedStyle","getPropertyValue","clearButtonTitle","detachedCancelButtonText","detachedSearchButtonTitle","submitButtonTitle","getDefaultOptions","matchMedia","_onStateChangeRef$cur","_props$value$core$onS","_props$value$core","templates","noResults","hasItems","hasNoResultsTemplate","lastStateRef","html","_ref$placeholder","setIsModalOpen","rootProps","class","stopPropagation","labelProps","title","ariaLabel","formProps","panelProps","textContent","hidden","createAutocompleteDom","setPanelPosition","scheduleRender","renderProps","renderSearchBox","classList","toggle","sections","sourceIndex","className","header","itemProps","footer","elements","renderPanel","update","updatedOptions","predicate","_props$value$renderer","rendererProps","entries","remove","environmentProps","panelContainerElement","debouncedRender","querySelectorAll","scrollablePanel","onResize","previousIsDetached","requestAnimationFrame","toggleModalClassname","isActive","isModalDetachedMql","hasModernEventListener","addListener","removeListener","destroy","initialValue","anObject","ordinaryToPrimitive","$TypeError","module","exports","uncurryThis","requireObjectCoercible","whitespaces","ltrim","rtrim","createMethod","TYPE","$this","string","start","end","trim","valueOf","hasOwn","defineBuiltIn","dateToPrimitive","TO_PRIMITIVE","wellKnownSymbol","DatePrototype","Date","IS_PURE","DESCRIPTORS","globalThis","isForced","inheritIfRequired","isPrototypeOf","isSymbol","fails","getOwnPropertyNames","thisNumberValue","NUMBER","NativeNumber","PureNumberNamespace","NumberPrototype","stringSlice","charCodeAt","toNumber","argument","third","radix","maxCode","digits","code","it","NaN","parseInt","FORCED","NumberWrapper","dummy","primValue","toNumeric","global","wrap","forced","copyConstructorProperties","stat","sham","toIndexedObject","nativeGetOwnPropertyDescriptor","getOwnPropertyDescriptorModule","createProperty","descriptor","createNonEnumerableProperty","create","isRegExp","getRegExpFlags","stickyHelpers","proxyAccessor","enforceInternalState","setSpecies","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","MATCH","NativeRegExp","RegExpPrototype","SyntaxError","exec","charAt","stringIndexOf","IS_NCG","re1","re2","CORRECT_NEW","MISSED_STICKY","UNSUPPORTED_Y","BASE_FORCED","RegExpWrapper","pattern","flags","rawFlags","dotAll","sticky","handled","thisIsRegExp","patternIsRegExp","flagsAreUndefined","groups","rawPattern","chr","named","names","brackets","ncg","groupid","groupname","handleNCG","raw","handleDotAll","classof","defineBuiltInAccessor","getInternalState","defineWellKnownSymbol","defineSymbolToPrimitive"],"sourceRoot":""}