@algolia/autocomplete-js 1.19.7 → 1.19.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.production.js","sources":["../../../autocomplete-shared/dist/esm/createRef.js","../../../autocomplete-shared/dist/esm/debounce.js","../../../autocomplete-shared/dist/esm/flatten.js","../../../autocomplete-shared/dist/esm/generateAutocompleteId.js","../../../autocomplete-shared/dist/esm/getAttributeValueByPath.js","../../../autocomplete-shared/dist/esm/getItemsCount.js","../../../autocomplete-shared/dist/esm/isEqual.js","../../../autocomplete-shared/dist/esm/noop.js","../../../autocomplete-shared/dist/esm/version.js","../../../autocomplete-shared/dist/esm/userAgents.js","../../../autocomplete-plugin-algolia-insights/dist/esm/createClickedEvent.js","../../../autocomplete-plugin-algolia-insights/dist/esm/isModernInsightsClient.js","../../../autocomplete-plugin-algolia-insights/dist/esm/createSearchInsightsApi.js","../../../autocomplete-plugin-algolia-insights/dist/esm/createViewedEvents.js","../../../autocomplete-plugin-algolia-insights/dist/esm/isAlgoliaInsightsHit.js","../../../autocomplete-plugin-algolia-insights/dist/esm/createAlgoliaInsightsPlugin.js","../../../autocomplete-shared/dist/esm/safelyRunOnBrowser.js","../../../autocomplete-core/dist/esm/utils/createCancelablePromise.js","../../../autocomplete-core/dist/esm/utils/createCancelablePromiseList.js","../../../autocomplete-core/dist/esm/utils/getNextActiveItemId.js","../../../autocomplete-core/dist/esm/utils/getNormalizedSources.js","../../../autocomplete-core/dist/esm/utils/getPluginSubmitPromise.js","../../../autocomplete-core/dist/esm/utils/getActiveItem.js","../../../autocomplete-core/dist/esm/utils/getAutocompleteElementId.js","../../../autocomplete-core/dist/esm/utils/isSamsung.js","../../../autocomplete-core/dist/esm/utils/getNativeEvent.js","../../../autocomplete-core/dist/esm/createStore.js","../../../autocomplete-core/dist/esm/getAutocompleteSetters.js","../../../autocomplete-core/dist/esm/getDefaultProps.js","../../../autocomplete-core/dist/esm/reshape.js","../../../autocomplete-core/dist/esm/resolve.js","../../../autocomplete-core/dist/esm/utils/mapToAlgoliaResponse.js","../../../autocomplete-core/dist/esm/onInput.js","../../../autocomplete-core/dist/esm/utils/createConcurrentSafePromise.js","../../../autocomplete-core/dist/esm/onKeyDown.js","../../../autocomplete-core/dist/esm/getPropGetters.js","../../../autocomplete-core/dist/esm/utils/isOrContainsNode.js","../../../autocomplete-core/dist/esm/metadata.js","../../../autocomplete-core/dist/esm/getCompletion.js","../../../autocomplete-core/dist/esm/stateReducer.js","../../../autocomplete-core/dist/esm/createAutocomplete.js","../../../../node_modules/htm/dist/htm.mjs","../../src/elements/ClearIcon.ts","../../src/utils/getHTMLElement.ts","../../src/utils/mergeClassNames.ts","../../src/utils/mergeDeep.ts","../../src/utils/pickBy.ts","../../src/utils/setProperties.ts","../../src/getCreateDomElement.ts","../../src/elements/LoadingIcon.ts","../../src/elements/SearchIcon.ts","../../src/createAutocompleteDom.ts","../../src/elements/Input.ts","../../../../node_modules/preact/dist/preact.mjs","../../../autocomplete-preset-algolia/dist/esm/constants/index.js","../../../autocomplete-preset-algolia/dist/esm/highlight/parseAttribute.js","../../../autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitHighlight.js","../../../autocomplete-preset-algolia/dist/esm/highlight/isPartHighlighted.js","../../../autocomplete-preset-algolia/dist/esm/highlight/reverseHighlightedParts.js","../../../autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitSnippet.js","../../../autocomplete-preset-algolia/dist/esm/requester/createRequester.js","../../../autocomplete-preset-algolia/dist/esm/search/fetchAlgoliaResults.js","../../src/components/Highlight.ts","../../src/components/ReverseHighlight.ts","../../../autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitReverseHighlight.js","../../src/components/ReverseSnippet.ts","../../../autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitReverseSnippet.js","../../src/components/Snippet.ts","../../src/getDefaultOptions.ts","../../src/getPanelPlacementStyle.ts","../../src/userAgents.ts","../../src/requesters/createAlgoliaRequester.ts","../../../autocomplete-preset-algolia/dist/esm/utils/getAppIdAndApiKey.js","../../src/requesters/getAlgoliaResults.ts","../../src/autocomplete.ts","../../src/createReactiveWrapper.ts","../../src/createEffectWrapper.ts","../../src/render.tsx","../../src/requesters/getAlgoliaFacets.ts"],"sourcesContent":["export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}","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}","export function flatten(values) {\n return values.reduce(function (a, b) {\n return a.concat(b);\n }, []);\n}","var autocompleteId = 0;\nexport function generateAutocompleteId() {\n return \"autocomplete-\".concat(autocompleteId++);\n}","export function getAttributeValueByPath(record, path) {\n return path.reduce(function (current, key) {\n return current && current[key];\n }, record);\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}","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 var version = '1.19.7';","import { version } from './version';\nexport var userAgents = [{\n segment: 'autocomplete-core',\n version: version\n}];","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 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}","// Ensures multiple callers sync to the same promise.\nvar _hasWaitPromiseResolved = true;\nvar _waitPromise;\nexport 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 wait: function wait(timeout) {\n // Reuse promise if already exists. Keeps multiple callers subscribed to the same promise.\n if (!_hasWaitPromiseResolved) {\n return _waitPromise;\n }\n\n // Creates a promise which either resolves after all pending requests complete\n // or the timeout is reached (if provided). Whichever comes first.\n _hasWaitPromiseResolved = false;\n _waitPromise = !timeout ? Promise.all(list) : Promise.race([Promise.all(list), new Promise(function (resolve) {\n return setTimeout(resolve, timeout);\n })]);\n return _waitPromise.then(function () {\n _hasWaitPromiseResolved = true;\n });\n }\n };\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 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 _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\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; }\n/**\n * If a plugin is configured to await a submit event, this returns a promise\n * for either the max timeout value found or until it completes.\n * Otherwise, return undefined.\n */\nexport var getPluginSubmitPromise = function getPluginSubmitPromise(plugins, pendingRequests) {\n var waitUntilComplete = false;\n var timeouts = [];\n var _iterator = _createForOfIteratorHelper(plugins),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _plugin$__autocomplet, _plugin$__autocomplet2, _plugin$__autocomplet3;\n var plugin = _step.value;\n var value = (_plugin$__autocomplet = plugin.__autocomplete_pluginOptions) === null || _plugin$__autocomplet === void 0 ? void 0 : (_plugin$__autocomplet2 = (_plugin$__autocomplet3 = _plugin$__autocomplet).awaitSubmit) === null || _plugin$__autocomplet2 === void 0 ? void 0 : _plugin$__autocomplet2.call(_plugin$__autocomplet3);\n if (typeof value === 'number') {\n timeouts.push(value);\n } else if (value === true) {\n waitUntilComplete = true;\n break; // break loop as bool overrides num array below\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n if (waitUntilComplete) {\n return pendingRequests.wait();\n } else if (timeouts.length > 0) {\n return pendingRequests.wait(Math.max.apply(Math, timeouts));\n }\n return undefined;\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}","/**\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}","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); }\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}","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}","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 _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}","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 { getPluginSubmitPromise, 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 nodeItem.scrollIntoView({\n block: 'nearest',\n inline: 'nearest'\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 var waitForSubmit = getPluginSubmitPromise(props.plugins, store.pendingRequests);\n if (waitForSubmit !== undefined) {\n waitForSubmit.then(store.pendingRequests.cancelAll); // Cancel the rest if timeout number is provided\n } else if (!props.debug) {\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 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}","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 { getPluginSubmitPromise, 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 var handleSubmit = function handleSubmit(event) {\n var _providedProps$inputE;\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 return _objectSpread({\n action: '',\n noValidate: true,\n role: 'search',\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n var waitForSubmit = getPluginSubmitPromise(props.plugins, store.pendingRequests);\n if (waitForSubmit !== undefined) {\n waitForSubmit.then(function () {\n return handleSubmit(event);\n });\n } else {\n handleSubmit(event);\n }\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.filter(function (collection) {\n return collection.items.length > 0;\n }).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}","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}","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<s.length;h++){var p=s[h++],a=s[h]?(s[0]|=p?1:2,r[s[h++]]):s[++h];3===p?e[0]=a:4===p?e[1]=Object.assign(e[1]||{},a):5===p?(e[1]=e[1]||{})[s[++h]]=a:6===p?e[1][s[++h]]+=a+\"\":p?(u=t.apply(a,n(t,a,r,[\"\",null])),e.push(u),a[0]?s[0]|=2:(s[h-2]=0,s[h]=u)):e.push(a)}return e},t=new Map;export default function(s){var r=t.get(this);return r||(r=new Map,t.set(this,r)),(r=n(this,r.get(s)||(r.set(s,r=function(n){for(var t,s,r=1,e=\"\",u=\"\",h=[0],p=function(n){1===r&&(n||(e=e.replace(/^\\s*\\n\\s*|\\s*\\n\\s*$/g,\"\")))?h.push(0,n,e):3===r&&(n||e)?(h.push(3,n,e),r=2):2===r&&\"...\"===e&&n?h.push(4,n,0):2===r&&e&&!n?h.push(5,0,!0,e):r>=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<n.length;a++){a&&(1===r&&p(),p(a));for(var l=0;l<n[a].length;l++)t=n[a][l],1===r?\"<\"===t?(p(),h=[h],r=3):e+=t:4===r?\"--\"===e&&\">\"===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","import { AutocompleteEnvironment } from '@algolia/autocomplete-core';\n\nimport { AutocompleteElement } from '../types/AutocompleteElement';\n\nexport const ClearIcon: AutocompleteElement<\n { environment: AutocompleteEnvironment },\n SVGSVGElement\n> = ({ environment }) => {\n const element = environment.document.createElementNS(\n 'http://www.w3.org/2000/svg',\n 'svg'\n );\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\n const path = environment.document.createElementNS(\n 'http://www.w3.org/2000/svg',\n 'path'\n );\n path.setAttribute(\n 'd',\n '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 );\n\n element.appendChild(path);\n\n return element;\n};\n","import { AutocompleteEnvironment } from '@algolia/autocomplete-core';\nimport { invariant } from '@algolia/autocomplete-shared';\n\nexport function getHTMLElement(\n environment: AutocompleteEnvironment,\n value: string | HTMLElement\n): HTMLElement {\n if (typeof value === 'string') {\n const element = environment.document.querySelector<HTMLElement>(value);\n\n invariant(\n element !== null,\n `The element ${JSON.stringify(value)} is not in the document.`\n );\n\n return element!;\n }\n\n return value;\n}\n","import { AutocompleteClassNames } from '../types';\n\nexport function mergeClassNames(\n ...values: Array<Partial<AutocompleteClassNames>>\n) {\n return values.reduce((acc, current) => {\n Object.keys(current).forEach((key) => {\n const accValue = acc[key];\n const currentValue = current[key];\n\n if (accValue !== currentValue) {\n acc[key] = [accValue, currentValue].filter(Boolean).join(' ');\n }\n });\n\n return acc;\n }, {});\n}\n","const isPlainObject = (value: unknown) =>\n value &&\n typeof value === 'object' &&\n Object.prototype.toString.call(value) === '[object Object]';\n\nexport function mergeDeep(...values: any[]) {\n return values.reduce((acc, current) => {\n Object.keys(current).forEach((key) => {\n const accValue = acc[key];\n const currentValue = current[key];\n\n if (Array.isArray(accValue) && Array.isArray(currentValue)) {\n acc[key] = accValue.concat(...currentValue);\n } else if (isPlainObject(accValue) && isPlainObject(currentValue)) {\n acc[key] = mergeDeep(accValue, currentValue);\n } else {\n acc[key] = currentValue;\n }\n });\n\n return acc;\n }, {});\n}\n","export function pickBy<TValue = unknown>(\n obj: Record<string, TValue>,\n predicate: (value: { key: string; value: TValue }) => boolean\n) {\n return Object.entries(obj).reduce<Record<string, TValue>>(\n (acc, [key, value]) => {\n if (predicate({ key, value })) {\n return { ...acc, [key]: value };\n }\n\n return acc;\n },\n {}\n );\n}\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 */\nconst TOUCH_EVENTS_ALIASES = [\n 'ontouchstart',\n 'ontouchend',\n 'ontouchmove',\n 'ontouchcancel',\n];\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: object, key: string, value: any) {\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(this: any, event: Event) {\n this?._listeners?.[event.type](event);\n}\n\n/**\n * Set a property value on a DOM node\n */\nexport function setProperty(dom: HTMLElement, name: string, value: any) {\n let useCapture: boolean;\n let nameLower: string;\n let oldValue = dom[name];\n\n if (name === 'style') {\n if (typeof value == 'string') {\n (dom as any).style = value;\n } else {\n if (value === null) {\n (dom as any).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))\n name = nameLower;\n name = name.slice(2);\n\n if (!(dom as any)._listeners) (dom as any)._listeners = {};\n (dom as any)._listeners[name] = value;\n\n if (value) {\n if (!oldValue) dom.addEventListener(name, eventProxy, useCapture);\n } else {\n dom.removeEventListener(name, eventProxy, useCapture);\n }\n } else if (\n name !== 'list' &&\n name !== 'tagName' &&\n // HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n // setAttribute\n name !== 'form' &&\n name !== 'type' &&\n name !== 'size' &&\n name !== 'download' &&\n name !== 'href' &&\n name in dom\n ) {\n dom[name] = value == null ? '' : value;\n } else if (typeof value != 'function' && name !== 'dangerouslySetInnerHTML') {\n if (\n value == null ||\n (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 ) {\n dom.removeAttribute(name);\n } else {\n dom.setAttribute(name, value);\n }\n }\n}\n\nfunction getNormalizedName(name: string): string {\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}\n\nexport function setProperties(dom: HTMLElement, props: object): void {\n for (const name in props) {\n setProperty(dom, getNormalizedName(name), props[name]);\n }\n}\n\nexport function setPropertiesWithoutEvents(\n dom: HTMLElement,\n props: object\n): void {\n for (const name in props) {\n if (!(name[0] === 'o' && name[1] === 'n')) {\n setProperty(dom, getNormalizedName(name), props[name]);\n }\n }\n}\n","import { AutocompleteEnvironment } from '@algolia/autocomplete-core';\n\nimport { setProperties } from './utils';\n\ntype CreateDomElementProps = Record<string, unknown> & {\n children?: Node[];\n};\n\nexport function getCreateDomElement(environment: AutocompleteEnvironment) {\n return function createDomElement<KParam extends keyof HTMLElementTagNameMap>(\n tagName: KParam,\n { children = [], ...props }: CreateDomElementProps\n ): HTMLElementTagNameMap[KParam] {\n const element = environment.document.createElement<KParam>(tagName);\n setProperties(element, props);\n element.append(...children);\n\n return element;\n };\n}\n","import { AutocompleteEnvironment } from '@algolia/autocomplete-core';\n\nimport { AutocompleteElement } from '../types/AutocompleteElement';\n\nexport const LoadingIcon: AutocompleteElement<\n { environment: AutocompleteEnvironment },\n SVGSVGElement\n> = ({ environment }) => {\n const element = environment.document.createElementNS(\n 'http://www.w3.org/2000/svg',\n 'svg'\n );\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\n element.innerHTML = `<circle\n cx=\"50\"\n cy=\"50\"\n fill=\"none\"\n r=\"35\"\n stroke=\"currentColor\"\n stroke-dasharray=\"164.93361431346415 56.97787143782138\"\n stroke-width=\"6\"\n>\n <animateTransform\n attributeName=\"transform\"\n type=\"rotate\"\n repeatCount=\"indefinite\"\n dur=\"1s\"\n values=\"0 50 50;90 50 50;180 50 50;360 50 50\"\n keyTimes=\"0;0.40;0.65;1\"\n />\n</circle>`;\n\n const pauseAnimations = () => {\n // Wait until the element is in the DOM.\n if (!element.parentElement) {\n setTimeout(pauseAnimations, 0);\n return;\n }\n\n element.pauseAnimations();\n };\n\n if ('pauseAnimations' in element) {\n pauseAnimations();\n }\n\n return element;\n};\n","import { AutocompleteEnvironment } from '@algolia/autocomplete-core';\n\nimport { AutocompleteElement } from '../types/AutocompleteElement';\n\nexport const SearchIcon: AutocompleteElement<\n { environment: AutocompleteEnvironment },\n SVGSVGElement\n> = ({ environment }) => {\n const element = environment.document.createElementNS(\n 'http://www.w3.org/2000/svg',\n 'svg'\n );\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\n const path = environment.document.createElementNS(\n 'http://www.w3.org/2000/svg',\n 'path'\n );\n path.setAttribute(\n 'd',\n '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 );\n\n element.appendChild(path);\n\n return element;\n};\n","import {\n AutocompleteApi as AutocompleteCoreApi,\n AutocompleteEnvironment,\n AutocompleteScopeApi,\n BaseItem,\n} from '@algolia/autocomplete-core';\n\nimport { ClearIcon, Input, LoadingIcon, SearchIcon } from './elements';\nimport { getCreateDomElement } from './getCreateDomElement';\nimport {\n AutocompleteClassNames,\n AutocompleteDom,\n AutocompletePropGetters,\n AutocompleteState,\n AutocompleteTranslations,\n} from './types';\nimport { setProperties } from './utils';\n\ntype CreateDomProps<TItem extends BaseItem> = {\n autocomplete: AutocompleteCoreApi<TItem>;\n autocompleteScopeApi: AutocompleteScopeApi<TItem>;\n classNames: AutocompleteClassNames;\n environment: AutocompleteEnvironment;\n isDetached: boolean;\n placeholder?: string;\n propGetters: AutocompletePropGetters<TItem>;\n setIsModalOpen(value: boolean): void;\n state: AutocompleteState<TItem>;\n translations: AutocompleteTranslations;\n};\n\nexport function createAutocompleteDom<TItem extends BaseItem>({\n autocomplete,\n autocompleteScopeApi,\n classNames,\n environment,\n isDetached,\n placeholder = 'Search',\n propGetters,\n setIsModalOpen,\n state,\n translations,\n}: CreateDomProps<TItem>): AutocompleteDom {\n const createDomElement = getCreateDomElement(environment);\n\n const rootProps = propGetters.getRootProps({\n state,\n props: autocomplete.getRootProps({}),\n ...autocompleteScopeApi,\n });\n const root = createDomElement('div', {\n class: classNames.root,\n ...rootProps,\n });\n const detachedContainer = createDomElement('div', {\n class: classNames.detachedContainer,\n onMouseDown(event: MouseEvent) {\n event.stopPropagation();\n },\n });\n const detachedOverlay = createDomElement('div', {\n class: classNames.detachedOverlay,\n children: [detachedContainer],\n onMouseDown() {\n setIsModalOpen(false);\n autocomplete.setIsOpen(false);\n },\n });\n\n const labelProps = propGetters.getLabelProps({\n state,\n props: autocomplete.getLabelProps({}),\n ...autocompleteScopeApi,\n });\n const submitButton = createDomElement('button', {\n class: classNames.submitButton,\n type: 'submit',\n title: translations.submitButtonTitle,\n children: [SearchIcon({ environment })],\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 const label = createDomElement('label', {\n class: classNames.label,\n children: [submitButton],\n ariaLabel: translations.submitButtonTitle,\n ...labelProps,\n });\n const clearButton = createDomElement('button', {\n class: classNames.clearButton,\n type: 'reset',\n title: translations.clearButtonTitle,\n children: [ClearIcon({ environment })],\n });\n const loadingIndicator = createDomElement('div', {\n class: classNames.loadingIndicator,\n children: [LoadingIcon({ environment })],\n });\n\n const input = Input({\n class: classNames.input,\n environment,\n state,\n getInputProps: propGetters.getInputProps,\n getInputPropsCore: autocomplete.getInputProps,\n autocompleteScopeApi,\n isDetached,\n });\n\n const inputWrapperPrefix = createDomElement('div', {\n class: classNames.inputWrapperPrefix,\n children: [label, loadingIndicator],\n });\n const inputWrapperSuffix = createDomElement('div', {\n class: classNames.inputWrapperSuffix,\n children: [clearButton],\n });\n const inputWrapper = createDomElement('div', {\n class: classNames.inputWrapper,\n children: [input],\n });\n\n const formProps = propGetters.getFormProps({\n state,\n props: autocomplete.getFormProps({ inputElement: input }),\n ...autocompleteScopeApi,\n });\n const form = createDomElement('form', {\n class: classNames.form,\n children: [inputWrapperPrefix, inputWrapper, inputWrapperSuffix],\n ...formProps,\n });\n const panelProps = propGetters.getPanelProps({\n state,\n props: autocomplete.getPanelProps({}),\n ...autocompleteScopeApi,\n });\n const panel = createDomElement('div', {\n class: classNames.panel,\n ...panelProps,\n });\n\n const detachedSearchButtonQuery = createDomElement('div', {\n class: classNames.detachedSearchButtonQuery,\n textContent: state.query,\n });\n const detachedSearchButtonPlaceholder = createDomElement('div', {\n class: classNames.detachedSearchButtonPlaceholder,\n hidden: Boolean(state.query),\n textContent: placeholder,\n });\n\n if (__TEST__) {\n setProperties(panel, {\n 'data-testid': 'panel',\n });\n }\n\n if (isDetached) {\n const detachedSearchButtonIcon = createDomElement('div', {\n class: classNames.detachedSearchButtonIcon,\n ariaLabel: translations.detachedSearchButtonTitle,\n children: [SearchIcon({ environment })],\n });\n const detachedSearchButton = createDomElement('button', {\n type: 'button',\n class: classNames.detachedSearchButton,\n title: translations.detachedSearchButtonTitle,\n id: labelProps.id,\n onClick() {\n setIsModalOpen(true);\n },\n children: [\n detachedSearchButtonIcon,\n detachedSearchButtonPlaceholder,\n detachedSearchButtonQuery,\n ],\n });\n const 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(event: TouchEvent) {\n event.stopPropagation();\n },\n onClick() {\n autocomplete.setIsOpen(false);\n setIsModalOpen(false);\n },\n });\n const detachedFormContainer = createDomElement('div', {\n class: classNames.detachedFormContainer,\n children: [form, detachedCancelButton],\n });\n\n detachedContainer.appendChild(detachedFormContainer);\n root.appendChild(detachedSearchButton);\n } else {\n root.appendChild(form);\n }\n\n return {\n detachedContainer,\n detachedOverlay,\n detachedSearchButtonQuery,\n detachedSearchButtonPlaceholder,\n inputWrapper,\n input,\n root,\n form,\n label,\n submitButton,\n clearButton,\n loadingIndicator,\n panel,\n };\n}\n","import {\n AutocompleteApi as AutocompleteCoreApi,\n AutocompleteEnvironment,\n AutocompleteScopeApi,\n} from '@algolia/autocomplete-core';\n\nimport { getCreateDomElement } from '../getCreateDomElement';\nimport { AutocompletePropGetters, AutocompleteState } from '../types';\nimport { AutocompleteElement } from '../types/AutocompleteElement';\nimport { setProperties } from '../utils';\n\ntype InputProps = {\n autocompleteScopeApi: AutocompleteScopeApi<any>;\n environment: AutocompleteEnvironment;\n getInputProps: AutocompletePropGetters<any>['getInputProps'];\n getInputPropsCore: AutocompleteCoreApi<any>['getInputProps'];\n isDetached: boolean;\n state: AutocompleteState<any>;\n};\n\nexport const Input: AutocompleteElement<InputProps, HTMLInputElement> = ({\n autocompleteScopeApi,\n environment,\n classNames,\n getInputProps,\n getInputPropsCore,\n isDetached,\n state,\n ...props\n}) => {\n const createDomElement = getCreateDomElement(environment);\n const element = createDomElement('input', props);\n const inputProps = getInputProps({\n state,\n props: getInputPropsCore({ inputElement: element }),\n inputElement: element,\n ...autocompleteScopeApi,\n });\n\n setProperties(element, {\n ...inputProps,\n onKeyDown(event: KeyboardEvent) {\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\n inputProps.onKeyDown(event);\n },\n });\n\n return element;\n};\n","var n,l,u,i,t,r,o,f,e,c={},s=[],a=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function h(n,l){for(var u in l)n[u]=l[u];return n}function v(n){var l=n.parentNode;l&&l.removeChild(n)}function y(l,u,i){var t,r,o,f={};for(o in u)\"key\"==o?t=u[o]:\"ref\"==o?r=u[o]:f[o]=u[o];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===f[o]&&(f[o]=l.defaultProps[o]);return p(l,f,t,r,null)}function p(n,i,t,r,o){var f={type:n,props:i,key:t,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++u:o};return null==o&&null!=l.vnode&&l.vnode(f),f}function d(){return{current:null}}function _(n){return n.children}function k(n,l){this.props=n,this.context=l}function b(n,l){if(null==l)return n.__?b(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?b(n):null}function g(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return g(n)}}function m(n){(!n.__d&&(n.__d=!0)&&t.push(n)&&!w.__r++||r!==l.debounceRendering)&&((r=l.debounceRendering)||o)(w)}function w(){var n,l,u,i,r,o,e,c;for(t.sort(f);n=t.shift();)n.__d&&(l=t.length,i=void 0,r=void 0,e=(o=(u=n).__v).__e,(c=u.__P)&&(i=[],(r=h({},o)).__v=o.__v+1,L(c,o,r,u.__n,void 0!==c.ownerSVGElement,null!=o.__h?[e]:null,i,null==e?b(o):e,o.__h),M(i,o),o.__e!=e&&g(o)),t.length>l&&t.sort(f));w.__r=0}function x(n,l,u,i,t,r,o,f,e,a){var h,v,y,d,k,g,m,w=i&&i.__k||s,x=w.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(d=u.__k[h]=null==(d=l[h])||\"boolean\"==typeof d||\"function\"==typeof d?null:\"string\"==typeof d||\"number\"==typeof d||\"bigint\"==typeof d?p(null,d,null,null,d):Array.isArray(d)?p(_,{children:d},null,null,null):d.__b>0?p(d.type,d.props,d.key,d.ref?d.ref:null,d.__v):d)){if(d.__=u,d.__b=u.__b+1,null===(y=w[h])||y&&d.key==y.key&&d.type===y.type)w[h]=void 0;else for(v=0;v<x;v++){if((y=w[v])&&d.key==y.key&&d.type===y.type){w[v]=void 0;break}y=null}L(n,d,y=y||c,t,r,o,f,e,a),k=d.__e,(v=d.ref)&&y.ref!=v&&(m||(m=[]),y.ref&&m.push(y.ref,null,d),m.push(v,d.__c||k,d)),null!=k?(null==g&&(g=k),\"function\"==typeof d.type&&d.__k===y.__k?d.__d=e=A(d,e,n):e=C(n,d,y,w,k,e),\"function\"==typeof u.type&&(u.__d=e)):e&&y.__e==e&&e.parentNode!=n&&(e=b(y))}for(u.__e=g,h=x;h--;)null!=w[h]&&(\"function\"==typeof u.type&&null!=w[h].__e&&w[h].__e==u.__d&&(u.__d=$(i).nextSibling),S(w[h],w[h]));if(m)for(h=0;h<m.length;h++)O(m[h],m[++h],m[++h])}function A(n,l,u){for(var i,t=n.__k,r=0;t&&r<t.length;r++)(i=t[r])&&(i.__=n,l=\"function\"==typeof i.type?A(i,l,u):C(u,i,i,t,i.__e,l));return l}function P(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(Array.isArray(n)?n.some(function(n){P(n,l)}):l.push(n)),l}function C(n,l,u,i,t,r){var o,f,e;if(void 0!==l.__d)o=l.__d,l.__d=void 0;else if(null==u||t!=r||null==t.parentNode)n:if(null==r||r.parentNode!==n)n.appendChild(t),o=null;else{for(f=r,e=0;(f=f.nextSibling)&&e<i.length;e+=1)if(f==t)break n;n.insertBefore(t,r),o=r}return void 0!==o?o:t.nextSibling}function $(n){var l,u,i;if(null==n.type||\"string\"==typeof n.type)return n.__e;if(n.__k)for(l=n.__k.length-1;l>=0;l--)if((u=n.__k[l])&&(i=$(u)))return i;return null}function H(n,l,u,i,t){var r;for(r in u)\"children\"===r||\"key\"===r||r in l||T(n,r,null,u[r],i);for(r in l)t&&\"function\"!=typeof l[r]||\"children\"===r||\"key\"===r||\"value\"===r||\"checked\"===r||u[r]===l[r]||T(n,r,l[r],u[r],i)}function I(n,l,u){\"-\"===l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||a.test(l)?u:u+\"px\"}function T(n,l,u,i,t){var r;n:if(\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof i&&(n.style.cssText=i=\"\"),i)for(l in i)u&&l in u||I(n.style,l,\"\");if(u)for(l in u)i&&u[l]===i[l]||I(n.style,l,u[l])}else if(\"o\"===l[0]&&\"n\"===l[1])r=l!==(l=l.replace(/Capture$/,\"\")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?i||n.addEventListener(l,r?z:j,r):n.removeEventListener(l,r?z:j,r);else if(\"dangerouslySetInnerHTML\"!==l){if(t)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!==l&&\"height\"!==l&&\"href\"!==l&&\"list\"!==l&&\"form\"!==l&&\"tabIndex\"!==l&&\"download\"!==l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!==l[4]?n.removeAttribute(l):n.setAttribute(l,u))}}function j(n){return this.l[n.type+!1](l.event?l.event(n):n)}function z(n){return this.l[n.type+!0](l.event?l.event(n):n)}function L(n,u,i,t,r,o,f,e,c){var s,a,v,y,p,d,b,g,m,w,A,P,C,$,H,I=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,o=[e]),(s=l.__b)&&s(u);try{n:if(\"function\"==typeof I){if(g=u.props,m=(s=I.contextType)&&t[s.__c],w=s?m?m.props.value:s.__:t,i.__c?b=(a=u.__c=i.__c).__=a.__E:(\"prototype\"in I&&I.prototype.render?u.__c=a=new I(g,w):(u.__c=a=new k(g,w),a.constructor=I,a.render=q),m&&m.sub(a),a.props=g,a.state||(a.state={}),a.context=w,a.__n=t,v=a.__d=!0,a.__h=[],a._sb=[]),null==a.__s&&(a.__s=a.state),null!=I.getDerivedStateFromProps&&(a.__s==a.state&&(a.__s=h({},a.__s)),h(a.__s,I.getDerivedStateFromProps(g,a.__s))),y=a.props,p=a.state,a.__v=u,v)null==I.getDerivedStateFromProps&&null!=a.componentWillMount&&a.componentWillMount(),null!=a.componentDidMount&&a.__h.push(a.componentDidMount);else{if(null==I.getDerivedStateFromProps&&g!==y&&null!=a.componentWillReceiveProps&&a.componentWillReceiveProps(g,w),!a.__e&&null!=a.shouldComponentUpdate&&!1===a.shouldComponentUpdate(g,a.__s,w)||u.__v===i.__v){for(u.__v!==i.__v&&(a.props=g,a.state=a.__s,a.__d=!1),a.__e=!1,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),A=0;A<a._sb.length;A++)a.__h.push(a._sb[A]);a._sb=[],a.__h.length&&f.push(a);break n}null!=a.componentWillUpdate&&a.componentWillUpdate(g,a.__s,w),null!=a.componentDidUpdate&&a.__h.push(function(){a.componentDidUpdate(y,p,d)})}if(a.context=w,a.props=g,a.__P=n,P=l.__r,C=0,\"prototype\"in I&&I.prototype.render){for(a.state=a.__s,a.__d=!1,P&&P(u),s=a.render(a.props,a.state,a.context),$=0;$<a._sb.length;$++)a.__h.push(a._sb[$]);a._sb=[]}else do{a.__d=!1,P&&P(u),s=a.render(a.props,a.state,a.context),a.state=a.__s}while(a.__d&&++C<25);a.state=a.__s,null!=a.getChildContext&&(t=h(h({},t),a.getChildContext())),v||null==a.getSnapshotBeforeUpdate||(d=a.getSnapshotBeforeUpdate(y,p)),H=null!=s&&s.type===_&&null==s.key?s.props.children:s,x(n,Array.isArray(H)?H:[H],u,i,t,r,o,f,e,c),a.base=u.__e,u.__h=null,a.__h.length&&f.push(a),b&&(a.__E=a.__=null),a.__e=!1}else null==o&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=N(i.__e,u,i,t,r,o,f,c);(s=l.diffed)&&s(u)}catch(n){u.__v=null,(c||null!=o)&&(u.__e=e,u.__h=!!c,o[o.indexOf(e)]=null),l.__e(n,u,i)}}function M(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function N(l,u,i,t,r,o,f,e){var s,a,h,y=i.props,p=u.props,d=u.type,_=0;if(\"svg\"===d&&(r=!0),null!=o)for(;_<o.length;_++)if((s=o[_])&&\"setAttribute\"in s==!!d&&(d?s.localName===d:3===s.nodeType)){l=s,o[_]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=r?document.createElementNS(\"http://www.w3.org/2000/svg\",d):document.createElement(d,p.is&&p),o=null,e=!1}if(null===d)y===p||e&&l.data===p||(l.data=p);else{if(o=o&&n.call(l.childNodes),a=(y=i.props||c).dangerouslySetInnerHTML,h=p.dangerouslySetInnerHTML,!e){if(null!=o)for(y={},_=0;_<l.attributes.length;_++)y[l.attributes[_].name]=l.attributes[_].value;(h||a)&&(h&&(a&&h.__html==a.__html||h.__html===l.innerHTML)||(l.innerHTML=h&&h.__html||\"\"))}if(H(l,p,y,r,e),h)u.__k=[];else if(_=u.props.children,x(l,Array.isArray(_)?_:[_],u,i,t,r&&\"foreignObject\"!==d,o,f,o?o[0]:i.__k&&b(i,0),e),null!=o)for(_=o.length;_--;)null!=o[_]&&v(o[_]);e||(\"value\"in p&&void 0!==(_=p.value)&&(_!==l.value||\"progress\"===d&&!_||\"option\"===d&&_!==y.value)&&T(l,\"value\",_,y.value,!1),\"checked\"in p&&void 0!==(_=p.checked)&&_!==l.checked&&T(l,\"checked\",_,y.checked,!1))}return l}function O(n,u,i){try{\"function\"==typeof n?n(u):n.current=u}catch(n){l.__e(n,i)}}function S(n,u,i){var t,r;if(l.unmount&&l.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||O(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(n){l.__e(n,u)}t.base=t.__P=null,n.__c=void 0}if(t=n.__k)for(r=0;r<t.length;r++)t[r]&&S(t[r],u,i||\"function\"!=typeof n.type);i||null==n.__e||v(n.__e),n.__=n.__e=n.__d=void 0}function q(n,l,u){return this.constructor(n,u)}function B(u,i,t){var r,o,f;l.__&&l.__(u,i),o=(r=\"function\"==typeof t)?null:t&&t.__k||i.__k,f=[],L(i,u=(!r&&t||i).__k=y(_,null,[u]),o||c,c,void 0!==i.ownerSVGElement,!r&&t?[t]:o?null:i.firstChild?n.call(i.childNodes):null,f,!r&&t?t:o?o.__e:i.firstChild,r),M(f,u)}function D(n,l){B(n,l,D)}function E(l,u,i){var t,r,o,f=h({},l.props);for(o in u)\"key\"==o?t=u[o]:\"ref\"==o?r=u[o]:f[o]=u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),p(l.type,f,t||l.key,r||l.ref,null)}function F(n,l){var u={__c:l=\"__cC\"+e++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(function(n){n.__e=!0,m(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,i){for(var t,r,o;l=l.__;)if((t=l.__c)&&!t.__)try{if((r=t.constructor)&&null!=r.getDerivedStateFromError&&(t.setState(r.getDerivedStateFromError(n)),o=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),o=t.__d),o)return t.__E=t}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},k.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=h({},this.state),\"function\"==typeof n&&(n=n(h({},u),this.props)),n&&h(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),m(this))},k.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),m(this))},k.prototype.render=_,t=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,f=function(n,l){return n.__v.__b-l.__v.__b},w.__r=0,e=0;export{k as Component,_ as Fragment,E as cloneElement,F as createContext,y as createElement,d as createRef,y as h,D as hydrate,i as isValidElement,l as options,B as render,P as toChildArray};\n//# sourceMappingURL=preact.module.js.map\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}","var htmlEscapes = {\n '&amp;': '&',\n '&lt;': '<',\n '&gt;': '>',\n '&quot;': '\"',\n '&#39;': \"'\"\n};\nvar hasLetterOrNumber = function () {\n try {\n return new RegExp('[\\\\p{L}\\\\p{N}_]', 'u');\n } catch (_unused) {\n return new RegExp(/\\w/i);\n }\n}();\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 (!hasLetterOrNumber.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}","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}","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); }\nexport function createRequester(fetcher, requesterId) {\n function execute(fetcherParams) {\n return fetcher({\n searchClient: fetcherParams.searchClient,\n queries: fetcherParams.requests.map(function (x) {\n return x.query;\n })\n }).then(function (responses) {\n return responses.map(function (response, index) {\n var _fetcherParams$reques = fetcherParams.requests[index],\n sourceId = _fetcherParams$reques.sourceId,\n transformResponse = _fetcherParams$reques.transformResponse;\n return {\n items: response,\n sourceId: sourceId,\n transformResponse: transformResponse\n };\n });\n });\n }\n return function createSpecifiedRequester(requesterParams) {\n return function requester(requestParams) {\n return _objectSpread(_objectSpread({\n requesterId: requesterId,\n execute: execute\n }, requesterParams), requestParams);\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); }\nvar _excluded = [\"params\"];\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; }\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 { userAgents as coreUserAgents, invariant } from '@algolia/autocomplete-shared';\nimport { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\nimport { getAppIdAndApiKey } from '../utils';\nexport function fetchAlgoliaResults(_ref) {\n var searchClient = _ref.searchClient,\n queries = _ref.queries,\n _ref$userAgents = _ref.userAgents,\n userAgents = _ref$userAgents === void 0 ? [] : _ref$userAgents;\n if (typeof searchClient.addAlgoliaAgent === 'function') {\n var algoliaAgents = [].concat(_toConsumableArray(coreUserAgents), _toConsumableArray(userAgents));\n algoliaAgents.forEach(function (_ref2) {\n var segment = _ref2.segment,\n version = _ref2.version;\n searchClient.addAlgoliaAgent(segment, version);\n });\n }\n var _getAppIdAndApiKey = getAppIdAndApiKey(searchClient),\n appId = _getAppIdAndApiKey.appId,\n apiKey = _getAppIdAndApiKey.apiKey;\n invariant(Boolean(appId), 'The Algolia `appId` was not accessible from the searchClient passed.');\n invariant(Boolean(apiKey), 'The Algolia `apiKey` was not accessible from the searchClient passed.');\n return searchClient.search(queries.map(function (searchParameters) {\n var params = searchParameters.params,\n headers = _objectWithoutProperties(searchParameters, _excluded);\n return _objectSpread(_objectSpread({}, headers), {}, {\n params: _objectSpread({\n hitsPerPage: 5,\n highlightPreTag: HIGHLIGHT_PRE_TAG,\n highlightPostTag: HIGHLIGHT_POST_TAG\n }, params)\n });\n })).then(function (response) {\n return response.results.map(function (result, resultIndex) {\n var _result$hits;\n return _objectSpread(_objectSpread({}, result), {}, {\n hits: (_result$hits = result.hits) === null || _result$hits === void 0 ? void 0 : _result$hits.map(function (hit) {\n return _objectSpread(_objectSpread({}, hit), {}, {\n // Bring support for the Insights plugin.\n __autocomplete_indexName: result.index || queries[resultIndex].indexName,\n __autocomplete_queryID: result.queryID,\n __autocomplete_algoliaCredentials: {\n appId: appId,\n apiKey: apiKey\n }\n });\n })\n });\n });\n });\n}","import { parseAlgoliaHitHighlight } from '@algolia/autocomplete-preset-algolia';\n\nimport { AutocompleteRenderer, HighlightHitParams, VNode } from '../types';\n\nexport function createHighlightComponent({\n createElement,\n Fragment,\n}: AutocompleteRenderer) {\n function Highlight<THit>({\n hit,\n attribute,\n tagName = 'mark',\n }: HighlightHitParams<THit>): VNode<any> {\n return createElement(\n Fragment,\n {},\n parseAlgoliaHitHighlight<THit>({ hit, attribute }).map((x, index) =>\n x.isHighlighted\n ? createElement(tagName, { key: index }, x.value)\n : x.value\n )\n );\n }\n\n Highlight.__autocomplete_componentName = 'Highlight';\n\n return Highlight;\n}\n","import { parseAlgoliaHitReverseHighlight } from '@algolia/autocomplete-preset-algolia';\n\nimport { AutocompleteRenderer, HighlightHitParams, VNode } from '../types';\n\nexport function createReverseHighlightComponent({\n createElement,\n Fragment,\n}: AutocompleteRenderer) {\n function ReverseHighlight<THit>({\n hit,\n attribute,\n tagName = 'mark',\n }: HighlightHitParams<THit>): VNode<any> {\n return createElement(\n Fragment,\n {},\n parseAlgoliaHitReverseHighlight<THit>({\n hit,\n attribute,\n }).map((x, index) =>\n x.isHighlighted\n ? createElement(tagName, { key: index }, x.value)\n : x.value\n )\n );\n }\n\n ReverseHighlight.__autocomplete_componentName = 'ReverseHighlight';\n\n return ReverseHighlight;\n}\n","import { parseAlgoliaHitHighlight } from './parseAlgoliaHitHighlight';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\nexport function parseAlgoliaHitReverseHighlight(props) {\n return reverseHighlightedParts(parseAlgoliaHitHighlight(props));\n}","import { parseAlgoliaHitReverseSnippet } from '@algolia/autocomplete-preset-algolia';\n\nimport { AutocompleteRenderer, HighlightHitParams, VNode } from '../types';\n\nexport function createReverseSnippetComponent({\n createElement,\n Fragment,\n}: AutocompleteRenderer) {\n function ReverseSnippet<THit>({\n hit,\n attribute,\n tagName = 'mark',\n }: HighlightHitParams<THit>): VNode<any> {\n return createElement(\n Fragment,\n {},\n parseAlgoliaHitReverseSnippet<THit>({\n hit,\n attribute,\n }).map((x, index) =>\n x.isHighlighted\n ? createElement(tagName, { key: index }, x.value)\n : x.value\n )\n );\n }\n\n ReverseSnippet.__autocomplete_componentName = 'ReverseSnippet';\n\n return ReverseSnippet;\n}\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';\n\nimport { AutocompleteRenderer, HighlightHitParams, VNode } from '../types';\n\nexport function createSnippetComponent({\n createElement,\n Fragment,\n}: AutocompleteRenderer) {\n function Snippet<THit>({\n hit,\n attribute,\n tagName = 'mark',\n }: HighlightHitParams<THit>): VNode<any> {\n return createElement(\n Fragment,\n {},\n parseAlgoliaHitSnippet<THit>({ hit, attribute }).map((x, index) =>\n x.isHighlighted\n ? createElement(tagName, { key: index }, x.value)\n : x.value\n )\n );\n }\n\n Snippet.__autocomplete_componentName = 'Snippet';\n\n return Snippet;\n}\n","import { AutocompleteEnvironment, BaseItem } from '@algolia/autocomplete-core';\nimport {\n generateAutocompleteId,\n invariant,\n warn,\n} from '@algolia/autocomplete-shared';\nimport {\n createElement as preactCreateElement,\n Fragment as PreactFragment,\n render,\n} from 'preact';\n\nimport {\n createHighlightComponent,\n createReverseHighlightComponent,\n createReverseSnippetComponent,\n createSnippetComponent,\n} from './components';\nimport {\n AutocompleteClassNames,\n AutocompleteComponents,\n AutocompleteOptions,\n AutocompleteRender,\n AutocompleteRenderer,\n AutocompleteTranslations,\n} from './types';\nimport { getHTMLElement, mergeClassNames } from './utils';\n\nconst defaultClassNames: AutocompleteClassNames = {\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};\n\nconst defaultRender: AutocompleteRender<any> = ({ children, render }, root) => {\n render(children, root);\n};\n\nconst defaultRenderer: Required<AutocompleteRenderer> = {\n createElement: preactCreateElement,\n Fragment: PreactFragment,\n render,\n};\n\nexport function getDefaultOptions<TItem extends BaseItem>(\n options: AutocompleteOptions<TItem>\n) {\n const {\n classNames,\n container,\n getEnvironmentProps,\n getFormProps,\n getInputProps,\n getItemProps,\n getLabelProps,\n getListProps,\n getPanelProps,\n getRootProps,\n panelContainer,\n panelPlacement,\n render,\n renderNoResults,\n renderer,\n detachedMediaQuery,\n components,\n translations,\n ...core\n } = options;\n\n /* eslint-disable no-restricted-globals */\n const environment: AutocompleteEnvironment = (\n typeof window !== 'undefined' ? window : {}\n ) as typeof window;\n /* eslint-enable no-restricted-globals */\n const containerElement = getHTMLElement(environment, container);\n\n invariant(\n containerElement.tagName !== 'INPUT',\n 'The `container` option does not support `input` elements. You need to change the container to a `div`.'\n );\n\n warn(\n !(render && renderer && !renderer?.render),\n `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\\`.` +\n `\\nTo get rid of this warning, do any of the following depending on your use case.` +\n \"\\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 '\\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 '\\n- If you are using the `render` option to work with React 18, pass an empty `render` function into `renderer`.' +\n '\\nSee https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-render'\n );\n\n warn(\n !renderer ||\n render ||\n (renderer.Fragment && renderer.createElement && renderer.render),\n `You provided an incomplete \\`renderer\\` (missing: ${[\n !renderer?.createElement && '`renderer.createElement`',\n !renderer?.Fragment && '`renderer.Fragment`',\n !renderer?.render && '`renderer.render`',\n ]\n .filter(Boolean)\n .join(', ')}). This can cause rendering issues.` +\n '\\nSee https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-renderer'\n );\n\n const defaultedRenderer = { ...defaultRenderer, ...renderer };\n\n const defaultComponents: AutocompleteComponents = {\n Highlight: createHighlightComponent(defaultedRenderer),\n ReverseHighlight: createReverseHighlightComponent(defaultedRenderer),\n ReverseSnippet: createReverseSnippetComponent(defaultedRenderer),\n Snippet: createSnippetComponent(defaultedRenderer),\n };\n\n const defaultTranslations: AutocompleteTranslations = {\n clearButtonTitle: 'Clear',\n detachedCancelButtonText: 'Cancel',\n detachedSearchButtonTitle: 'Search',\n submitButtonTitle: 'Submit',\n };\n\n return {\n renderer: {\n classNames: mergeClassNames(\n defaultClassNames,\n classNames ?? {}\n ) as AutocompleteClassNames,\n container: containerElement,\n getEnvironmentProps: getEnvironmentProps ?? (({ props }) => props),\n getFormProps: getFormProps ?? (({ props }) => props),\n getInputProps: getInputProps ?? (({ props }) => props),\n getItemProps: getItemProps ?? (({ props }) => props),\n getLabelProps: getLabelProps ?? (({ props }) => props),\n getListProps: getListProps ?? (({ props }) => props),\n getPanelProps: getPanelProps ?? (({ props }) => props),\n getRootProps: getRootProps ?? (({ props }) => props),\n panelContainer: panelContainer\n ? getHTMLElement(environment, panelContainer)\n : environment.document.body,\n panelPlacement: panelPlacement ?? 'input-wrapper-width',\n render: render ?? defaultRender,\n renderNoResults,\n renderer: defaultedRenderer,\n detachedMediaQuery:\n detachedMediaQuery ??\n getComputedStyle(environment.document.documentElement).getPropertyValue(\n '--aa-detached-media-query'\n ),\n components: {\n // @MAJOR Deal with registering components with the same name as the\n // default ones. We could disallow registering these components by\n // merging the default components second.\n ...defaultComponents,\n ...components,\n },\n translations: {\n ...defaultTranslations,\n ...translations,\n },\n },\n core: {\n ...core,\n id: core.id ?? generateAutocompleteId(),\n environment,\n },\n };\n}\n","import { AutocompleteOptions } from './types';\n\ntype GetPanelPlacementStyleParams = Pick<\n Required<AutocompleteOptions<any>>,\n 'panelPlacement' | 'environment'\n> & {\n container: HTMLElement;\n form: HTMLElement;\n};\n\nexport function getPanelPlacementStyle({\n panelPlacement,\n container,\n form,\n environment,\n}: GetPanelPlacementStyleParams) {\n const containerRect = container.getBoundingClientRect();\n const offsetParent =\n container.offsetParent || environment.document.documentElement;\n\n const top = container.offsetTop + containerRect.height;\n\n switch (panelPlacement) {\n case 'start': {\n return {\n top,\n left: container.offsetLeft,\n };\n }\n\n case 'end': {\n return {\n top,\n right:\n offsetParent.clientWidth -\n (container.offsetLeft + containerRect.width),\n };\n }\n\n case 'full-width': {\n return {\n top,\n left: 0,\n right: 0,\n width: 'unset',\n maxWidth: 'unset',\n };\n }\n\n case 'input-wrapper-width': {\n const formRect = form.getBoundingClientRect();\n\n return {\n top,\n left: form.offsetLeft,\n right: offsetParent.clientWidth - (form.offsetLeft + formRect.width),\n width: 'unset',\n maxWidth: 'unset',\n };\n }\n\n default: {\n throw new Error(\n `[Autocomplete] The \\`panelPlacement\\` value ${JSON.stringify(\n panelPlacement\n )} is not valid.`\n );\n }\n }\n}\n","import { version } from '@algolia/autocomplete-shared';\n\nexport const userAgents = [{ segment: 'autocomplete-js', version }];\n","import {\n createRequester,\n fetchAlgoliaResults,\n} from '@algolia/autocomplete-preset-algolia';\n\nimport { userAgents } from '../userAgents';\n\nexport const createAlgoliaRequester = createRequester(\n (params) =>\n fetchAlgoliaResults({\n ...params,\n userAgents,\n }),\n 'algolia'\n);\n","// typed as any, since it accepts the _real_ js clients, not the interface we otherwise expect\nexport function getAppIdAndApiKey(searchClient) {\n var transporter = searchClient.transporter || {};\n var headers = transporter.headers || transporter.baseHeaders || {};\n var queryParameters = transporter.queryParameters || transporter.baseQueryParameters || {};\n var APP_ID = 'x-algolia-application-id';\n var API_KEY = 'x-algolia-api-key';\n var appId = headers[APP_ID] || queryParameters[APP_ID];\n var apiKey = headers[API_KEY] || queryParameters[API_KEY];\n return {\n appId: appId,\n apiKey: apiKey\n };\n}","import { createAlgoliaRequester } from './createAlgoliaRequester';\n\n/**\n * Retrieves Algolia results from multiple indices.\n */\nexport const getAlgoliaResults = createAlgoliaRequester({\n transformResponse: (response) => response.hits,\n});\n","import {\n AutocompleteScopeApi,\n BaseItem,\n createAutocomplete,\n} from '@algolia/autocomplete-core';\nimport {\n createRef,\n debounce,\n getItemsCount,\n warn,\n} from '@algolia/autocomplete-shared';\nimport htm from 'htm';\n\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 {\n AutocompleteApi,\n AutocompleteOptions,\n AutocompletePropGetters,\n AutocompleteSource,\n AutocompleteState,\n VNode,\n} from './types';\nimport { userAgents } from './userAgents';\nimport { mergeDeep, pickBy, setProperties } from './utils';\n\nlet instancesCount = 0;\n\nexport function autocomplete<TItem extends BaseItem>(\n options: AutocompleteOptions<TItem>\n): AutocompleteApi<TItem> {\n const { runEffect, cleanupEffects, runEffects } = createEffectWrapper();\n const { reactive, runReactives } = createReactiveWrapper();\n\n const hasNoResultsSourceTemplateRef = createRef(false);\n const optionsRef = createRef(options);\n const onStateChangeRef =\n createRef<AutocompleteOptions<TItem>['onStateChange']>(undefined);\n const props = reactive(() => getDefaultOptions(optionsRef.current));\n const isDetached = reactive(\n () =>\n props.value.core.environment.matchMedia(\n props.value.renderer.detachedMediaQuery\n ).matches\n );\n\n const autocomplete = reactive(() =>\n createAutocomplete<TItem>({\n ...props.value.core,\n onStateChange(params) {\n hasNoResultsSourceTemplateRef.current = params.state.collections.some(\n (collection) =>\n (collection.source as AutocompleteSource<TItem>).templates.noResults\n );\n onStateChangeRef.current?.(params as any);\n props.value.core.onStateChange?.(params as any);\n },\n shouldPanelOpen:\n optionsRef.current.shouldPanelOpen ||\n (({ state }) => {\n if (isDetached.value) {\n return true;\n }\n\n const hasItems = getItemsCount(state) > 0;\n\n if (!props.value.core.openOnFocus && !state.query) {\n return hasItems;\n }\n\n const hasNoResultsTemplate = Boolean(\n hasNoResultsSourceTemplateRef.current ||\n props.value.renderer.renderNoResults\n );\n\n return (!hasItems && hasNoResultsTemplate) || hasItems;\n }),\n __autocomplete_metadata: {\n userAgents,\n options,\n },\n })\n );\n const lastStateRef = createRef<AutocompleteState<TItem>>({\n collections: [],\n completion: null,\n context: {},\n isOpen: false,\n query: '',\n activeItemId: null,\n status: 'idle',\n ...props.value.core.initialState,\n });\n\n const propGetters: AutocompletePropGetters<TItem> = {\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 const autocompleteScopeApi: AutocompleteScopeApi<TItem> = {\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\n const html = reactive(() =>\n htm.bind<VNode>(props.value.renderer.renderer.createElement)\n );\n\n const dom = reactive(() =>\n createAutocompleteDom({\n autocomplete: autocomplete.value,\n 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,\n setIsModalOpen,\n state: lastStateRef.current,\n translations: props.value.renderer.translations,\n })\n );\n\n function setPanelPosition() {\n setProperties(dom.value.panel, {\n style: isDetached.value\n ? {}\n : 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\n function scheduleRender(state: AutocompleteState<TItem>) {\n lastStateRef.current = state;\n\n const renderProps = {\n autocomplete: autocomplete.value,\n 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\n ? dom.value.detachedContainer\n : props.value.renderer.panelContainer,\n propGetters,\n state: lastStateRef.current,\n renderer: props.value.renderer.renderer,\n };\n\n const render =\n (!getItemsCount(state) &&\n !hasNoResultsSourceTemplateRef.current &&\n props.value.renderer.renderNoResults) ||\n props.value.renderer.render;\n\n renderSearchBox(renderProps);\n renderPanel(render, renderProps);\n }\n\n runEffect(() => {\n const environmentProps = autocomplete.value.getEnvironmentProps({\n formElement: dom.value.form,\n panelElement: dom.value.panel,\n inputElement: dom.value.input,\n });\n\n setProperties(props.value.core.environment as any, environmentProps);\n\n return () => {\n setProperties(\n props.value.core.environment as any,\n Object.keys(environmentProps).reduce((acc, key) => {\n return {\n ...acc,\n [key]: undefined,\n };\n }, {})\n );\n };\n });\n\n runEffect(() => {\n const panelContainerElement = isDetached.value\n ? props.value.core.environment.document.body\n : props.value.renderer.panelContainer;\n const panelElement = isDetached.value\n ? dom.value.detachedOverlay\n : dom.value.panel;\n\n if (isDetached.value && lastStateRef.current.isOpen) {\n setIsModalOpen(true);\n }\n\n scheduleRender(lastStateRef.current);\n\n return () => {\n if (panelContainerElement.contains(panelElement)) {\n panelContainerElement.removeChild(panelElement);\n panelContainerElement.classList.remove('aa-Detached');\n }\n };\n });\n\n runEffect(() => {\n const containerElement = props.value.renderer.container;\n containerElement.appendChild(dom.value.root);\n\n return () => {\n containerElement.removeChild(dom.value.root);\n };\n });\n\n runEffect(() => {\n const debouncedRender = debounce<{\n state: AutocompleteState<TItem>;\n }>(({ state }) => {\n scheduleRender(state);\n }, 0);\n\n onStateChangeRef.current = ({ state, 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 const scrollablePanels =\n props.value.core.environment.document.querySelectorAll(\n '.aa-Panel--scrollable'\n );\n scrollablePanels.forEach((scrollablePanel) => {\n if (scrollablePanel.scrollTop !== 0) {\n scrollablePanel.scrollTop = 0;\n }\n });\n }\n\n debouncedRender({ state });\n };\n\n return () => {\n onStateChangeRef.current = undefined;\n };\n });\n\n runEffect(() => {\n const onResize = debounce<Event>(() => {\n const previousIsDetached = isDetached.value;\n isDetached.value = props.value.core.environment.matchMedia(\n props.value.renderer.detachedMediaQuery\n ).matches;\n\n if (previousIsDetached !== isDetached.value) {\n update({});\n } else {\n requestAnimationFrame(setPanelPosition);\n }\n }, 20);\n props.value.core.environment.addEventListener('resize', onResize);\n\n return () => {\n props.value.core.environment.removeEventListener('resize', onResize);\n };\n });\n\n runEffect(() => {\n if (!isDetached.value) {\n return () => {};\n }\n\n function toggleModalClassname(isActive: boolean) {\n dom.value.detachedContainer.classList.toggle(\n 'aa-DetachedContainer--modal',\n isActive\n );\n }\n\n function onChange(event: MediaQueryListEvent) {\n toggleModalClassname(event.matches);\n }\n\n const isModalDetachedMql = props.value.core.environment.matchMedia(\n getComputedStyle(\n props.value.core.environment.document.documentElement\n ).getPropertyValue('--aa-detached-modal-media-query')\n );\n\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 const hasModernEventListener = Boolean(isModalDetachedMql.addEventListener);\n\n hasModernEventListener\n ? isModalDetachedMql.addEventListener('change', onChange)\n : isModalDetachedMql.addListener(onChange);\n\n return () => {\n hasModernEventListener\n ? isModalDetachedMql.removeEventListener('change', onChange)\n : isModalDetachedMql.removeListener(onChange);\n };\n });\n\n runEffect(() => {\n requestAnimationFrame(setPanelPosition);\n\n return () => {};\n });\n\n function destroy() {\n instancesCount--;\n cleanupEffects();\n }\n\n function update(updatedOptions: Partial<AutocompleteOptions<TItem>> = {}) {\n cleanupEffects();\n\n const { components, ...rendererProps } = props.value.renderer;\n\n optionsRef.current = mergeDeep(\n rendererProps,\n props.value.core,\n {\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(\n components,\n ({ value }) => !value.hasOwnProperty('__autocomplete_componentName')\n ),\n initialState: lastStateRef.current,\n },\n updatedOptions\n );\n\n runReactives();\n runEffects();\n\n autocomplete.value.refresh().then(() => {\n scheduleRender(lastStateRef.current);\n });\n }\n\n function setIsModalOpen(value: boolean) {\n const prevValue = props.value.core.environment.document.body.contains(\n dom.value.detachedOverlay\n );\n\n if (value === prevValue) {\n return;\n }\n\n if (value) {\n props.value.core.environment.document.body.appendChild(\n dom.value.detachedOverlay\n );\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(\n dom.value.detachedOverlay\n );\n props.value.core.environment.document.body.classList.remove(\n 'aa-Detached'\n );\n }\n }\n\n warn(\n instancesCount === 0,\n `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`\n );\n\n instancesCount++;\n\n return {\n ...autocompleteScopeApi,\n update,\n destroy,\n };\n}\n","type ReactiveValue<TValue> = () => TValue;\nexport type Reactive<TValue> = {\n value: TValue;\n /**\n * @private\n */\n _fn: ReactiveValue<TValue>;\n /**\n * @private\n */\n _ref: {\n current: TValue;\n };\n};\n\nexport function createReactiveWrapper() {\n const reactives: Array<Reactive<any>> = [];\n\n return {\n reactive<TValue>(value: ReactiveValue<TValue>) {\n const current = value();\n const reactive: Reactive<TValue> = {\n _fn: value,\n _ref: { current },\n get value() {\n return this._ref.current;\n },\n set value(value) {\n this._ref.current = value;\n },\n };\n\n reactives.push(reactive);\n\n return reactive;\n },\n runReactives() {\n reactives.forEach((value) => {\n value._ref.current = value._fn();\n });\n },\n };\n}\n","type Effect = () => void;\ntype EffectFn = () => Effect;\ntype CleanupFn = () => void;\ntype EffectWrapper = {\n runEffect(fn: EffectFn): void;\n cleanupEffects(): void;\n runEffects(): void;\n};\n\nexport function createEffectWrapper(): EffectWrapper {\n let effects: EffectFn[] = [];\n let cleanups: CleanupFn[] = [];\n\n function runEffect(fn: EffectFn) {\n effects.push(fn);\n const effectCleanup = fn();\n cleanups.push(effectCleanup);\n }\n\n return {\n runEffect,\n cleanupEffects() {\n const currentCleanups = cleanups;\n cleanups = [];\n currentCleanups.forEach((cleanup) => {\n cleanup();\n });\n },\n runEffects() {\n const currentEffects = effects;\n effects = [];\n currentEffects.forEach((effect) => {\n runEffect(effect);\n });\n },\n };\n}\n","/** @jsxRuntime classic */\n/** @jsx renderer.createElement */\nimport {\n AutocompleteApi as AutocompleteCoreApi,\n AutocompleteScopeApi,\n BaseItem,\n} from '@algolia/autocomplete-core';\n\nimport {\n AutocompleteClassNames,\n AutocompleteComponents,\n AutocompleteDom,\n AutocompletePropGetters,\n AutocompleteRender,\n AutocompleteRenderer,\n AutocompleteState,\n HTMLTemplate,\n} from './types';\nimport { setProperties, setPropertiesWithoutEvents } from './utils';\n\ntype RenderProps<TItem extends BaseItem> = {\n autocomplete: AutocompleteCoreApi<TItem>;\n autocompleteScopeApi: AutocompleteScopeApi<TItem>;\n classNames: AutocompleteClassNames;\n components: AutocompleteComponents;\n html: HTMLTemplate;\n dom: AutocompleteDom;\n panelContainer: HTMLElement;\n propGetters: AutocompletePropGetters<TItem>;\n state: AutocompleteState<TItem>;\n renderer: Required<AutocompleteRenderer>;\n};\n\nexport function renderSearchBox<TItem extends BaseItem>({\n autocomplete,\n autocompleteScopeApi,\n dom,\n propGetters,\n state,\n}: RenderProps<TItem>): void {\n setPropertiesWithoutEvents(\n dom.root,\n propGetters.getRootProps({\n state,\n props: autocomplete.getRootProps({}),\n ...autocompleteScopeApi,\n })\n );\n setPropertiesWithoutEvents(\n dom.input,\n propGetters.getInputProps({\n state,\n props: autocomplete.getInputProps({ inputElement: dom.input }),\n inputElement: dom.input,\n ...autocompleteScopeApi,\n })\n );\n setProperties(dom.label, { hidden: state.status === 'stalled' });\n setProperties(dom.loadingIndicator, { hidden: state.status !== 'stalled' });\n toggleAnimation(dom.loadingIndicator, state.status === 'stalled');\n\n setProperties(dom.clearButton, { hidden: !state.query });\n setProperties(dom.detachedSearchButtonQuery, {\n textContent: state.query,\n });\n setProperties(dom.detachedSearchButtonPlaceholder, {\n hidden: Boolean(state.query),\n });\n}\n\n// Safari will animate the SVG even when it's hidden. We need to pause the\n// animation manually. See:\n// - https://github.com/algolia/autocomplete/issues/1322\n// - https://bugs.webkit.org/show_bug.cgi?id=298217\nfunction toggleAnimation(element: HTMLElement, isActive: boolean) {\n const svgElement =\n element.firstChild?.nodeName === 'svg'\n ? (element.firstChild as SVGSVGElement)\n : null;\n if (\n !svgElement ||\n !svgElement.pauseAnimations ||\n !svgElement.unpauseAnimations\n ) {\n return;\n }\n\n if (isActive) {\n svgElement.unpauseAnimations();\n } else {\n svgElement.pauseAnimations();\n }\n}\n\nexport function renderPanel<TItem extends BaseItem>(\n render: AutocompleteRender<TItem>,\n {\n autocomplete,\n autocompleteScopeApi,\n classNames,\n html,\n dom,\n panelContainer,\n propGetters,\n state,\n components,\n renderer,\n }: RenderProps<TItem>\n): void {\n if (!state.isOpen) {\n if (panelContainer.contains(dom.panel)) {\n panelContainer.removeChild(dom.panel);\n }\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\n dom.panel.classList.toggle('aa-Panel--stalled', state.status === 'stalled');\n\n const sections = state.collections\n .filter(\n ({ source, items }) => source.templates.noResults || items.length > 0\n )\n .map(({ source, items }, sourceIndex) => (\n <section\n key={sourceIndex}\n className={classNames.source}\n data-autocomplete-source-id={source.sourceId}\n >\n {source.templates.header && (\n <div className={classNames.sourceHeader}>\n {source.templates.header({\n components,\n createElement: renderer.createElement,\n Fragment: renderer.Fragment,\n items,\n source,\n state,\n html,\n })}\n </div>\n )}\n\n {source.templates.noResults && items.length === 0 ? (\n <div className={classNames.sourceNoResults}>\n {source.templates.noResults({\n components,\n createElement: renderer.createElement,\n Fragment: renderer.Fragment,\n source,\n state,\n html,\n })}\n </div>\n ) : (\n <ul\n className={classNames.list}\n {...propGetters.getListProps({\n state,\n props: autocomplete.getListProps({\n source,\n }),\n ...autocompleteScopeApi,\n })}\n >\n {items.map((item) => {\n const itemProps = autocomplete.getItemProps({\n item,\n source,\n });\n\n return (\n <li\n key={itemProps.id}\n className={classNames.item}\n {...propGetters.getItemProps({\n state,\n props: itemProps,\n ...autocompleteScopeApi,\n })}\n >\n {source.templates.item({\n components,\n createElement: renderer.createElement,\n Fragment: renderer.Fragment,\n item,\n state,\n html,\n })}\n </li>\n );\n })}\n </ul>\n )}\n\n {source.templates.footer && (\n <div className={classNames.sourceFooter}>\n {source.templates.footer({\n components,\n createElement: renderer.createElement,\n Fragment: renderer.Fragment,\n items,\n source,\n state,\n html,\n })}\n </div>\n )}\n </section>\n ));\n\n const children = (\n <renderer.Fragment>\n <div className={classNames.panelLayout}>{sections}</div>\n <div className=\"aa-GradientBottom\" />\n </renderer.Fragment>\n );\n const elements = sections.reduce((acc, current) => {\n acc[current.props['data-autocomplete-source-id']] = current;\n return acc;\n }, {});\n\n render(\n {\n children,\n state,\n sections,\n elements,\n ...renderer,\n components,\n html,\n ...autocompleteScopeApi,\n },\n dom.panel\n );\n}\n","import { RequestParams } from '@algolia/autocomplete-preset-algolia';\nimport { MultipleQueriesQuery } from '@algolia/client-search';\n\nimport { createAlgoliaRequester } from './createAlgoliaRequester';\n\n/**\n * Retrieves Algolia facet hits from multiple indices.\n */\nexport function getAlgoliaFacets<TTHit>(requestParams: RequestParams<TTHit>) {\n const requester = createAlgoliaRequester({\n transformResponse: (response) => response.facetHits,\n });\n\n const queries = requestParams.queries.map((query) => ({\n ...query,\n type: 'facet',\n })) as MultipleQueriesQuery[];\n\n return requester({\n ...requestParams,\n queries,\n });\n}\n"],"names":["createRef","initialValue","current","debounce","fn","time","timerId","undefined","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","flatten","values","reduce","a","b","concat","autocompleteId","generateAutocompleteId","getAttributeValueByPath","record","path","key","getItemsCount","state","collections","sum","collection","items","isPrimitive","obj","Object","isEqual","first","second","keys","_i","_Object$keys","noop","version","userAgents","segment","createClickedEvent","_ref","item","_ref$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","chunk","chunkSize","chunks","objectIDs","mapToInsightsParamsApi","params","map","param","_ref2","createSearchInsightsApi","searchInsights","_split$map2","major","minor","canSendHeaders","split","sendToInsights","method","payloads","_items$0$__autocomple","__autocomplete_algoliaCredentials","headers","appId","apiKey","init","setAuthenticatedUserToken","authenticatedUserToken","setUserToken","userToken","clickedObjectIDsAfterSearch","clickedObjectIDs","_len2","_key2","clickedFilters","_len3","_key3","convertedObjectIDsAfterSearch","_len4","_key4","convertedObjectIDs","_len5","_key5","convertedFilters","_len6","_key6","viewedObjectIDs","_len7","_key7","acc","_ref3","_ref4","payload","_ref5","viewedFilters","_len8","_key8","createViewedEvents","itemsByIndexName","_acc$current$__autoco","indexName","isAlgoliaInsightsHit","hit","ALGOLIA_INSIGHTS_VERSION","ALGOLIA_INSIGHTS_SRC","sendViewedObjectIDs","onItemsChange","insights","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","debouncedOnStateChange","isOpen","subscribe","setContext","setInsightsContext","algoliaInsightsPlugin","__algoliaSearchParameters","clickAnalytics","normalizeUserToken","_error","getItems","_ref6","onStateChange","_ref7","__autocomplete_pluginOptions","_context$algoliaInsig","algoliaSourceBase","__automaticInsights","createInternalCancelablePromise","promise","initialState","then","onfulfilled","onrejected","createCallback","catch","finally","onfinally","onCancelList","cancel","isCanceled","callbacks","cancelable","onResult","fallback","_waitPromise","_hasWaitPromiseResolved","getNextActiveItemId","moveAmount","baseIndex","itemCount","defaultActiveItemId","numericIndex","_createForOfIteratorHelper","allowArrayLike","it","F","s","e","f","normalCompletion","didErr","step","_e2","getPluginSubmitPromise","plugins","pendingRequests","_step","waitUntilComplete","timeouts","_iterator","_plugin$__autocomplet","_plugin$__autocomplet2","_plugin$__autocomplet3","awaitSubmit","wait","Math","max","getActiveItem","collectionIndex","collectionsCount","nextValue","activeItemId","getCollectionFromActiveItemId","isOffsetFound","counter","previousItemsOffset","currentCollection","getRelativeActiveItemId","itemInputValue","getItemInputValue","itemUrl","getItemUrl","getAutocompleteElementId","autocompleteInstanceId","elementId","sourceId","Boolean","join","replace","regex","getNativeEvent","nativeEvent","createStore","reducer","props","onStoreStateChange","list","getState","dispatch","action","prevState","type","add","cancelablePromise","cancelAll","isEmpty","timeout","Promise","race","all","resolve","getDefaultProps","pluginSubscribers","_props$id","debug","openOnFocus","enterKeyHint","ignoreCompositionEvents","placeholder","autoFocus","stallThreshold","shouldPanelOpen","reshape","sources","id","query","completion","status","_props$onStateChange","_x$onStateChange","onSubmit","_props$onSubmit","_x$onSubmit","onReset","_props$onReset","_x$onReset","getSources","plugin","seenSourceIds","maybeSource","includes","Error","JSON","stringify","defaultSource","setIsOpen","onResolve","__default","normalizedSource","getNormalizedSources","nested","_x$onSelect","_x$onActive","_x$onResolve","navigator","navigate","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","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","_excluded3","_excluded4","_excluded5","_excluded6","getPropGetters","getEnvironmentProps","providedProps","inputElement","formElement","panelElement","onMouseDownOrTouchStart","contextNode","parent","child","contains","onTouchStart","onMouseDown","onTouchMove","activeElement","blur","getRootProps","rest","role","getFormProps","handleSubmit","_providedProps$inputE","noValidate","preventDefault","waitForSubmit","_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","scrollIntoView","block","inline","triggerOnActive","nextActiveItemId","metaKey","ctrlKey","shiftKey","altKey","_onKeyDown","onBlur","onClick","getPanelProps","onMouseLeave","getListProps","getItemProps","__autocomplete_id","onMouseMove","_item","_source","getMetadata","_","_options$__autocomple","_options$__autocomple2","_options$__autocomple3","optionsKey","__autocomplete_metadata","extraOptions","ua","getCompletion","_getActiveItem","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","r","u","h","p","Map","htm","get","this","set","l","ClearIcon","element","createElementNS","setAttribute","getHTMLElement","mergeClassNames","accValue","currentValue","isPlainObject","mergeDeep","pickBy","predicate","entries","TOUCH_EVENTS_ALIASES","setStyle","style","eventProxy","_this$_listeners","_listeners","setProperty","dom","useCapture","nameLower","oldValue","toLowerCase","addEventListener","removeEventListener","removeAttribute","getNormalizedName","setProperties","setPropertiesWithoutEvents","getCreateDomElement","tagName","_ref$children","children","append","LoadingIcon","innerHTML","pauseAnimations","parentElement","SearchIcon","createAutocompleteDom","autocomplete","autocompleteScopeApi","classNames","isDetached","_ref$placeholder","setIsModalOpen","translations","createDomElement","rootProps","root","class","detachedContainer","stopPropagation","detachedOverlay","labelProps","submitButton","title","submitButtonTitle","ariaLabel","clearButton","clearButtonTitle","loadingIndicator","getInputPropsCore","inputProps","Input","inputWrapperPrefix","inputWrapperSuffix","inputWrapper","formProps","form","panelProps","panel","detachedSearchButtonQuery","textContent","detachedSearchButtonPlaceholder","hidden","detachedSearchButtonIcon","detachedSearchButtonTitle","detachedSearchButton","detachedCancelButton","detachedCancelButtonText","detachedFormContainer","c","v","parentNode","removeChild","y","defaultProps","ref","__k","__","__b","__e","__d","__c","__h","__v","vnode","k","g","base","m","w","__r","debounceRendering","sort","shift","__P","L","__n","ownerSVGElement","M","d","A","C","$","nextSibling","S","O","insertBefore","I","T","cssText","z","j","P","H","contextType","__E","render","q","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","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","bind","HIGHLIGHT_PRE_TAG","HIGHLIGHT_POST_TAG","parseAttribute","preTagParts","highlightedValue","firstValue","parts","part","lastPart","isHighlighted","createAttributeSet","postTagParts","parseAlgoliaHitHighlight","attribute","htmlEscapes","hasLetterOrNumber","RegExp","_unused","regexEscapedHtml","regexHasEscapedHtml","isPartHighlighted","_parts","_parts2","isNextHighlighted","isPreviousHighlighted","character","reverseHighlightedParts","parseAlgoliaHitSnippet","createHighlightComponent","Fragment","Highlight","_ref2$tagName","__autocomplete_componentName","createReverseHighlightComponent","ReverseHighlight","createReverseSnippetComponent","ReverseSnippet","createSnippetComponent","Snippet","defaultClassNames","panelLayout","sourceFooter","sourceHeader","sourceNoResults","defaultRender","defaultRenderer","preactCreateElement","PreactFragment","firstChild","getPanelPlacementStyle","panelPlacement","containerRect","getBoundingClientRect","offsetParent","documentElement","top","offsetTop","height","left","offsetLeft","right","clientWidth","width","maxWidth","formRect","createAlgoliaRequester","fetcher","fetcherParams","_fetcherParams$reques","requesterParams","requestParams","createRequester","_ref$userAgents","addAlgoliaAgent","coreUserAgents","_getAppIdAndApiKey","transporter","baseHeaders","queryParameters","baseQueryParameters","APP_ID","API_KEY","getAppIdAndApiKey","search","searchParameters","hitsPerPage","highlightPreTag","highlightPostTag","resultIndex","_result$hits","fetchAlgoliaResults","getAlgoliaResults","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","core","containerElement","defaultedRenderer","defaultComponents","getComputedStyle","getPropertyValue","defaultTranslations","getDefaultOptions","matchMedia","_onStateChangeRef$cur","_props$value$core$onS","_props$value$core","templates","noResults","hasItems","hasNoResultsTemplate","lastStateRef","html","setPanelPosition","scheduleRender","renderProps","isActive","svgElement","_element$firstChild","nodeName","unpauseAnimations","renderSearchBox","classList","toggle","sections","sourceIndex","className","header","_extends","itemProps","footer","elements","renderPanel","update","updatedOptions","_props$value$renderer","rendererProps","remove","environmentProps","panelContainerElement","debouncedRender","querySelectorAll","scrollablePanel","scrollTop","onResize","previousIsDetached","requestAnimationFrame","toggleModalClassname","isModalDetachedMql","hasModernEventListener","addListener","removeListener","destroy","requester"],"mappings":"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"}
1
+ {"version":3,"file":"index.production.js","sources":["../../../autocomplete-shared/dist/esm/createRef.js","../../../autocomplete-shared/dist/esm/debounce.js","../../../autocomplete-shared/dist/esm/flatten.js","../../../autocomplete-shared/dist/esm/generateAutocompleteId.js","../../../autocomplete-shared/dist/esm/getAttributeValueByPath.js","../../../autocomplete-shared/dist/esm/getItemsCount.js","../../../autocomplete-shared/dist/esm/isEqual.js","../../../autocomplete-shared/dist/esm/noop.js","../../../autocomplete-shared/dist/esm/version.js","../../../autocomplete-shared/dist/esm/userAgents.js","../../../autocomplete-plugin-algolia-insights/dist/esm/createClickedEvent.js","../../../autocomplete-plugin-algolia-insights/dist/esm/isModernInsightsClient.js","../../../autocomplete-plugin-algolia-insights/dist/esm/createSearchInsightsApi.js","../../../autocomplete-plugin-algolia-insights/dist/esm/createViewedEvents.js","../../../autocomplete-plugin-algolia-insights/dist/esm/isAlgoliaInsightsHit.js","../../../autocomplete-plugin-algolia-insights/dist/esm/createAlgoliaInsightsPlugin.js","../../../autocomplete-shared/dist/esm/safelyRunOnBrowser.js","../../../autocomplete-core/dist/esm/utils/createCancelablePromise.js","../../../autocomplete-core/dist/esm/utils/createCancelablePromiseList.js","../../../autocomplete-core/dist/esm/utils/getNextActiveItemId.js","../../../autocomplete-core/dist/esm/utils/getNormalizedSources.js","../../../autocomplete-core/dist/esm/utils/getPluginSubmitPromise.js","../../../autocomplete-core/dist/esm/utils/getActiveItem.js","../../../autocomplete-core/dist/esm/utils/getAutocompleteElementId.js","../../../autocomplete-core/dist/esm/utils/isSamsung.js","../../../autocomplete-core/dist/esm/utils/getNativeEvent.js","../../../autocomplete-core/dist/esm/createStore.js","../../../autocomplete-core/dist/esm/getAutocompleteSetters.js","../../../autocomplete-core/dist/esm/getDefaultProps.js","../../../autocomplete-core/dist/esm/reshape.js","../../../autocomplete-core/dist/esm/resolve.js","../../../autocomplete-core/dist/esm/utils/mapToAlgoliaResponse.js","../../../autocomplete-core/dist/esm/onInput.js","../../../autocomplete-core/dist/esm/utils/createConcurrentSafePromise.js","../../../autocomplete-core/dist/esm/onKeyDown.js","../../../autocomplete-core/dist/esm/getPropGetters.js","../../../autocomplete-core/dist/esm/utils/isOrContainsNode.js","../../../autocomplete-core/dist/esm/metadata.js","../../../autocomplete-core/dist/esm/getCompletion.js","../../../autocomplete-core/dist/esm/stateReducer.js","../../../autocomplete-core/dist/esm/createAutocomplete.js","../../../../node_modules/htm/dist/htm.mjs","../../src/elements/ClearIcon.ts","../../src/utils/getHTMLElement.ts","../../src/utils/mergeClassNames.ts","../../src/utils/mergeDeep.ts","../../src/utils/pickBy.ts","../../src/utils/setProperties.ts","../../src/getCreateDomElement.ts","../../src/elements/LoadingIcon.ts","../../src/elements/SearchIcon.ts","../../src/createAutocompleteDom.ts","../../src/elements/Input.ts","../../../../node_modules/preact/dist/preact.mjs","../../../autocomplete-preset-algolia/dist/esm/constants/index.js","../../../autocomplete-preset-algolia/dist/esm/highlight/parseAttribute.js","../../../autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitHighlight.js","../../../autocomplete-preset-algolia/dist/esm/highlight/isPartHighlighted.js","../../../autocomplete-preset-algolia/dist/esm/highlight/reverseHighlightedParts.js","../../../autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitSnippet.js","../../../autocomplete-preset-algolia/dist/esm/requester/createRequester.js","../../../autocomplete-preset-algolia/dist/esm/search/fetchAlgoliaResults.js","../../../autocomplete-preset-algolia/dist/esm/utils/getAppIdAndApiKey.js","../../src/components/Highlight.ts","../../src/components/ReverseHighlight.ts","../../../autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitReverseHighlight.js","../../src/components/ReverseSnippet.ts","../../../autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitReverseSnippet.js","../../src/components/Snippet.ts","../../src/getDefaultOptions.ts","../../src/getPanelPlacementStyle.ts","../../src/userAgents.ts","../../src/requesters/createAlgoliaRequester.ts","../../src/requesters/getAlgoliaResults.ts","../../src/autocomplete.ts","../../src/createReactiveWrapper.ts","../../src/createEffectWrapper.ts","../../src/render.tsx","../../src/requesters/getAlgoliaFacets.ts"],"sourcesContent":["export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}","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}","export function flatten(values) {\n return values.reduce(function (a, b) {\n return a.concat(b);\n }, []);\n}","var autocompleteId = 0;\nexport function generateAutocompleteId() {\n return \"autocomplete-\".concat(autocompleteId++);\n}","export function getAttributeValueByPath(record, path) {\n return path.reduce(function (current, key) {\n return current && current[key];\n }, record);\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}","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 var version = '1.19.8';","import { version } from './version';\nexport var userAgents = [{\n segment: 'autocomplete-core',\n version: version\n}];","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(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\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(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _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(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _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(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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 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}","// Ensures multiple callers sync to the same promise.\nvar _hasWaitPromiseResolved = true;\nvar _waitPromise;\nexport 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 wait: function wait(timeout) {\n // Reuse promise if already exists. Keeps multiple callers subscribed to the same promise.\n if (!_hasWaitPromiseResolved) {\n return _waitPromise;\n }\n\n // Creates a promise which either resolves after all pending requests complete\n // or the timeout is reached (if provided). Whichever comes first.\n _hasWaitPromiseResolved = false;\n _waitPromise = !timeout ? Promise.all(list) : Promise.race([Promise.all(list), new Promise(function (resolve) {\n return setTimeout(resolve, timeout);\n })]);\n return _waitPromise.then(function () {\n _hasWaitPromiseResolved = true;\n });\n }\n };\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 ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\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 _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\n/**\n * If a plugin is configured to await a submit event, this returns a promise\n * for either the max timeout value found or until it completes.\n * Otherwise, return undefined.\n */\nexport var getPluginSubmitPromise = function getPluginSubmitPromise(plugins, pendingRequests) {\n var waitUntilComplete = false;\n var timeouts = [];\n var _iterator = _createForOfIteratorHelper(plugins),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _plugin$__autocomplet, _plugin$__autocomplet2;\n var plugin = _step.value;\n var value = (_plugin$__autocomplet = plugin.__autocomplete_pluginOptions) === null || _plugin$__autocomplet === void 0 ? void 0 : (_plugin$__autocomplet2 = _plugin$__autocomplet.awaitSubmit) === null || _plugin$__autocomplet2 === void 0 ? void 0 : _plugin$__autocomplet2.call(_plugin$__autocomplet);\n if (typeof value === 'number') {\n timeouts.push(value);\n } else if (value === true) {\n waitUntilComplete = true;\n break; // break loop as bool overrides num array below\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n if (waitUntilComplete) {\n return pendingRequests.wait();\n } else if (timeouts.length > 0) {\n return pendingRequests.wait(Math.max.apply(Math, timeouts));\n }\n return undefined;\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}","/**\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}","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(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _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(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _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(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\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 _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"event\", \"nextState\", \"props\", \"query\", \"refresh\", \"store\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\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}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"event\", \"props\", \"refresh\", \"store\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport { onInput } from './onInput';\nimport { getPluginSubmitPromise, 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 nodeItem.scrollIntoView({\n block: 'nearest',\n inline: 'nearest'\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 var waitForSubmit = getPluginSubmitPromise(props.plugins, store.pendingRequests);\n if (waitForSubmit !== undefined) {\n waitForSubmit.then(store.pendingRequests.cancelAll); // Cancel the rest if timeout number is provided\n } else if (!props.debug) {\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 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}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\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(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport { noop } from '@algolia/autocomplete-shared';\nimport { onInput } from './onInput';\nimport { onKeyDown as _onKeyDown } from './onKeyDown';\nimport { getPluginSubmitPromise, 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 var handleSubmit = function handleSubmit(event) {\n var _providedProps$inputE;\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 return _objectSpread({\n action: '',\n noValidate: true,\n role: 'search',\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n var waitForSubmit = getPluginSubmitPromise(props.plugins, store.pendingRequests);\n if (waitForSubmit !== undefined) {\n waitForSubmit.then(function () {\n return handleSubmit(event);\n });\n } else {\n handleSubmit(event);\n }\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.filter(function (collection) {\n return collection.items.length > 0;\n }).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}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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<s.length;h++){var p=s[h++],a=s[h]?(s[0]|=p?1:2,r[s[h++]]):s[++h];3===p?e[0]=a:4===p?e[1]=Object.assign(e[1]||{},a):5===p?(e[1]=e[1]||{})[s[++h]]=a:6===p?e[1][s[++h]]+=a+\"\":p?(u=t.apply(a,n(t,a,r,[\"\",null])),e.push(u),a[0]?s[0]|=2:(s[h-2]=0,s[h]=u)):e.push(a)}return e},t=new Map;export default function(s){var r=t.get(this);return r||(r=new Map,t.set(this,r)),(r=n(this,r.get(s)||(r.set(s,r=function(n){for(var t,s,r=1,e=\"\",u=\"\",h=[0],p=function(n){1===r&&(n||(e=e.replace(/^\\s*\\n\\s*|\\s*\\n\\s*$/g,\"\")))?h.push(0,n,e):3===r&&(n||e)?(h.push(3,n,e),r=2):2===r&&\"...\"===e&&n?h.push(4,n,0):2===r&&e&&!n?h.push(5,0,!0,e):r>=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<n.length;a++){a&&(1===r&&p(),p(a));for(var l=0;l<n[a].length;l++)t=n[a][l],1===r?\"<\"===t?(p(),h=[h],r=3):e+=t:4===r?\"--\"===e&&\">\"===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","import { AutocompleteEnvironment } from '@algolia/autocomplete-core';\n\nimport { AutocompleteElement } from '../types/AutocompleteElement';\n\nexport const ClearIcon: AutocompleteElement<\n { environment: AutocompleteEnvironment },\n SVGSVGElement\n> = ({ environment }) => {\n const element = environment.document.createElementNS(\n 'http://www.w3.org/2000/svg',\n 'svg'\n );\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\n const path = environment.document.createElementNS(\n 'http://www.w3.org/2000/svg',\n 'path'\n );\n path.setAttribute(\n 'd',\n '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 );\n\n element.appendChild(path);\n\n return element;\n};\n","import { AutocompleteEnvironment } from '@algolia/autocomplete-core';\nimport { invariant } from '@algolia/autocomplete-shared';\n\nexport function getHTMLElement(\n environment: AutocompleteEnvironment,\n value: string | HTMLElement\n): HTMLElement {\n if (typeof value === 'string') {\n const element = environment.document.querySelector<HTMLElement>(value);\n\n invariant(\n element !== null,\n `The element ${JSON.stringify(value)} is not in the document.`\n );\n\n return element!;\n }\n\n return value;\n}\n","import { AutocompleteClassNames } from '../types';\n\nexport function mergeClassNames(\n ...values: Array<Partial<AutocompleteClassNames>>\n) {\n return values.reduce((acc, current) => {\n Object.keys(current).forEach((key) => {\n const accValue = acc[key];\n const currentValue = current[key];\n\n if (accValue !== currentValue) {\n acc[key] = [accValue, currentValue].filter(Boolean).join(' ');\n }\n });\n\n return acc;\n }, {});\n}\n","const isPlainObject = (value: unknown) =>\n value &&\n typeof value === 'object' &&\n Object.prototype.toString.call(value) === '[object Object]';\n\nexport function mergeDeep(...values: any[]) {\n return values.reduce((acc, current) => {\n Object.keys(current).forEach((key) => {\n const accValue = acc[key];\n const currentValue = current[key];\n\n if (Array.isArray(accValue) && Array.isArray(currentValue)) {\n acc[key] = accValue.concat(...currentValue);\n } else if (isPlainObject(accValue) && isPlainObject(currentValue)) {\n acc[key] = mergeDeep(accValue, currentValue);\n } else {\n acc[key] = currentValue;\n }\n });\n\n return acc;\n }, {});\n}\n","export function pickBy<TValue = unknown>(\n obj: Record<string, TValue>,\n predicate: (value: { key: string; value: TValue }) => boolean\n) {\n return Object.entries(obj).reduce<Record<string, TValue>>(\n (acc, [key, value]) => {\n if (predicate({ key, value })) {\n return { ...acc, [key]: value };\n }\n\n return acc;\n },\n {}\n );\n}\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 */\nconst TOUCH_EVENTS_ALIASES = [\n 'ontouchstart',\n 'ontouchend',\n 'ontouchmove',\n 'ontouchcancel',\n];\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: object, key: string, value: any) {\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(this: any, event: Event) {\n this?._listeners?.[event.type](event);\n}\n\n/**\n * Set a property value on a DOM node\n */\nexport function setProperty(dom: HTMLElement, name: string, value: any) {\n let useCapture: boolean;\n let nameLower: string;\n let oldValue = dom[name];\n\n if (name === 'style') {\n if (typeof value == 'string') {\n (dom as any).style = value;\n } else {\n if (value === null) {\n (dom as any).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))\n name = nameLower;\n name = name.slice(2);\n\n if (!(dom as any)._listeners) (dom as any)._listeners = {};\n (dom as any)._listeners[name] = value;\n\n if (value) {\n if (!oldValue) dom.addEventListener(name, eventProxy, useCapture);\n } else {\n dom.removeEventListener(name, eventProxy, useCapture);\n }\n } else if (\n name !== 'list' &&\n name !== 'tagName' &&\n // HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n // setAttribute\n name !== 'form' &&\n name !== 'type' &&\n name !== 'size' &&\n name !== 'download' &&\n name !== 'href' &&\n name in dom\n ) {\n dom[name] = value == null ? '' : value;\n } else if (typeof value != 'function' && name !== 'dangerouslySetInnerHTML') {\n if (\n value == null ||\n (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 ) {\n dom.removeAttribute(name);\n } else {\n dom.setAttribute(name, value);\n }\n }\n}\n\nfunction getNormalizedName(name: string): string {\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}\n\nexport function setProperties(dom: HTMLElement, props: object): void {\n for (const name in props) {\n setProperty(dom, getNormalizedName(name), props[name]);\n }\n}\n\nexport function setPropertiesWithoutEvents(\n dom: HTMLElement,\n props: object\n): void {\n for (const name in props) {\n if (!(name[0] === 'o' && name[1] === 'n')) {\n setProperty(dom, getNormalizedName(name), props[name]);\n }\n }\n}\n","import { AutocompleteEnvironment } from '@algolia/autocomplete-core';\n\nimport { setProperties } from './utils';\n\ntype CreateDomElementProps = Record<string, unknown> & {\n children?: Node[];\n};\n\nexport function getCreateDomElement(environment: AutocompleteEnvironment) {\n return function createDomElement<KParam extends keyof HTMLElementTagNameMap>(\n tagName: KParam,\n { children = [], ...props }: CreateDomElementProps\n ): HTMLElementTagNameMap[KParam] {\n const element = environment.document.createElement<KParam>(tagName);\n setProperties(element, props);\n element.append(...children);\n\n return element;\n };\n}\n","import { AutocompleteEnvironment } from '@algolia/autocomplete-core';\n\nimport { AutocompleteElement } from '../types/AutocompleteElement';\n\nexport const LoadingIcon: AutocompleteElement<\n { environment: AutocompleteEnvironment },\n SVGSVGElement\n> = ({ environment }) => {\n const element = environment.document.createElementNS(\n 'http://www.w3.org/2000/svg',\n 'svg'\n );\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\n element.innerHTML = `<circle\n cx=\"50\"\n cy=\"50\"\n fill=\"none\"\n r=\"35\"\n stroke=\"currentColor\"\n stroke-dasharray=\"164.93361431346415 56.97787143782138\"\n stroke-width=\"6\"\n>\n <animateTransform\n attributeName=\"transform\"\n type=\"rotate\"\n repeatCount=\"indefinite\"\n dur=\"1s\"\n values=\"0 50 50;90 50 50;180 50 50;360 50 50\"\n keyTimes=\"0;0.40;0.65;1\"\n />\n</circle>`;\n\n const pauseAnimations = () => {\n // Wait until the element is in the DOM.\n if (!element.parentElement) {\n setTimeout(pauseAnimations, 0);\n return;\n }\n\n element.pauseAnimations();\n };\n\n if ('pauseAnimations' in element) {\n pauseAnimations();\n }\n\n return element;\n};\n","import { AutocompleteEnvironment } from '@algolia/autocomplete-core';\n\nimport { AutocompleteElement } from '../types/AutocompleteElement';\n\nexport const SearchIcon: AutocompleteElement<\n { environment: AutocompleteEnvironment },\n SVGSVGElement\n> = ({ environment }) => {\n const element = environment.document.createElementNS(\n 'http://www.w3.org/2000/svg',\n 'svg'\n );\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\n const path = environment.document.createElementNS(\n 'http://www.w3.org/2000/svg',\n 'path'\n );\n path.setAttribute(\n 'd',\n '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 );\n\n element.appendChild(path);\n\n return element;\n};\n","import {\n AutocompleteApi as AutocompleteCoreApi,\n AutocompleteEnvironment,\n AutocompleteScopeApi,\n BaseItem,\n} from '@algolia/autocomplete-core';\n\nimport { ClearIcon, Input, LoadingIcon, SearchIcon } from './elements';\nimport { getCreateDomElement } from './getCreateDomElement';\nimport {\n AutocompleteClassNames,\n AutocompleteDom,\n AutocompletePropGetters,\n AutocompleteState,\n AutocompleteTranslations,\n} from './types';\nimport { setProperties } from './utils';\n\ntype CreateDomProps<TItem extends BaseItem> = {\n autocomplete: AutocompleteCoreApi<TItem>;\n autocompleteScopeApi: AutocompleteScopeApi<TItem>;\n classNames: AutocompleteClassNames;\n environment: AutocompleteEnvironment;\n isDetached: boolean;\n placeholder?: string;\n propGetters: AutocompletePropGetters<TItem>;\n setIsModalOpen(value: boolean): void;\n state: AutocompleteState<TItem>;\n translations: AutocompleteTranslations;\n};\n\nexport function createAutocompleteDom<TItem extends BaseItem>({\n autocomplete,\n autocompleteScopeApi,\n classNames,\n environment,\n isDetached,\n placeholder = 'Search',\n propGetters,\n setIsModalOpen,\n state,\n translations,\n}: CreateDomProps<TItem>): AutocompleteDom {\n const createDomElement = getCreateDomElement(environment);\n\n const rootProps = propGetters.getRootProps({\n state,\n props: autocomplete.getRootProps({}),\n ...autocompleteScopeApi,\n });\n const root = createDomElement('div', {\n class: classNames.root,\n ...rootProps,\n });\n const detachedContainer = createDomElement('div', {\n class: classNames.detachedContainer,\n onMouseDown(event: MouseEvent) {\n event.stopPropagation();\n },\n });\n const detachedOverlay = createDomElement('div', {\n class: classNames.detachedOverlay,\n children: [detachedContainer],\n onMouseDown() {\n setIsModalOpen(false);\n autocomplete.setIsOpen(false);\n },\n });\n\n const labelProps = propGetters.getLabelProps({\n state,\n props: autocomplete.getLabelProps({}),\n ...autocompleteScopeApi,\n });\n const submitButton = createDomElement('button', {\n class: classNames.submitButton,\n type: 'submit',\n title: translations.submitButtonTitle,\n children: [SearchIcon({ environment })],\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 const label = createDomElement('label', {\n class: classNames.label,\n children: [submitButton],\n ariaLabel: translations.submitButtonTitle,\n ...labelProps,\n });\n const clearButton = createDomElement('button', {\n class: classNames.clearButton,\n type: 'reset',\n title: translations.clearButtonTitle,\n children: [ClearIcon({ environment })],\n });\n const loadingIndicator = createDomElement('div', {\n class: classNames.loadingIndicator,\n children: [LoadingIcon({ environment })],\n });\n\n const input = Input({\n class: classNames.input,\n environment,\n state,\n getInputProps: propGetters.getInputProps,\n getInputPropsCore: autocomplete.getInputProps,\n autocompleteScopeApi,\n isDetached,\n });\n\n const inputWrapperPrefix = createDomElement('div', {\n class: classNames.inputWrapperPrefix,\n children: [label, loadingIndicator],\n });\n const inputWrapperSuffix = createDomElement('div', {\n class: classNames.inputWrapperSuffix,\n children: [clearButton],\n });\n const inputWrapper = createDomElement('div', {\n class: classNames.inputWrapper,\n children: [input],\n });\n\n const formProps = propGetters.getFormProps({\n state,\n props: autocomplete.getFormProps({ inputElement: input }),\n ...autocompleteScopeApi,\n });\n const form = createDomElement('form', {\n class: classNames.form,\n children: [inputWrapperPrefix, inputWrapper, inputWrapperSuffix],\n ...formProps,\n });\n const panelProps = propGetters.getPanelProps({\n state,\n props: autocomplete.getPanelProps({}),\n ...autocompleteScopeApi,\n });\n const panel = createDomElement('div', {\n class: classNames.panel,\n ...panelProps,\n });\n\n const detachedSearchButtonQuery = createDomElement('div', {\n class: classNames.detachedSearchButtonQuery,\n textContent: state.query,\n });\n const detachedSearchButtonPlaceholder = createDomElement('div', {\n class: classNames.detachedSearchButtonPlaceholder,\n hidden: Boolean(state.query),\n textContent: placeholder,\n });\n\n if (__TEST__) {\n setProperties(panel, {\n 'data-testid': 'panel',\n });\n }\n\n if (isDetached) {\n const detachedSearchButtonIcon = createDomElement('div', {\n class: classNames.detachedSearchButtonIcon,\n ariaLabel: translations.detachedSearchButtonTitle,\n children: [SearchIcon({ environment })],\n });\n const detachedSearchButton = createDomElement('button', {\n type: 'button',\n class: classNames.detachedSearchButton,\n title: translations.detachedSearchButtonTitle,\n id: labelProps.id,\n onClick() {\n setIsModalOpen(true);\n },\n children: [\n detachedSearchButtonIcon,\n detachedSearchButtonPlaceholder,\n detachedSearchButtonQuery,\n ],\n });\n const 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(event: TouchEvent) {\n event.stopPropagation();\n },\n onClick() {\n autocomplete.setIsOpen(false);\n setIsModalOpen(false);\n },\n });\n const detachedFormContainer = createDomElement('div', {\n class: classNames.detachedFormContainer,\n children: [form, detachedCancelButton],\n });\n\n detachedContainer.appendChild(detachedFormContainer);\n root.appendChild(detachedSearchButton);\n } else {\n root.appendChild(form);\n }\n\n return {\n detachedContainer,\n detachedOverlay,\n detachedSearchButtonQuery,\n detachedSearchButtonPlaceholder,\n inputWrapper,\n input,\n root,\n form,\n label,\n submitButton,\n clearButton,\n loadingIndicator,\n panel,\n };\n}\n","import {\n AutocompleteApi as AutocompleteCoreApi,\n AutocompleteEnvironment,\n AutocompleteScopeApi,\n} from '@algolia/autocomplete-core';\n\nimport { getCreateDomElement } from '../getCreateDomElement';\nimport { AutocompletePropGetters, AutocompleteState } from '../types';\nimport { AutocompleteElement } from '../types/AutocompleteElement';\nimport { setProperties } from '../utils';\n\ntype InputProps = {\n autocompleteScopeApi: AutocompleteScopeApi<any>;\n environment: AutocompleteEnvironment;\n getInputProps: AutocompletePropGetters<any>['getInputProps'];\n getInputPropsCore: AutocompleteCoreApi<any>['getInputProps'];\n isDetached: boolean;\n state: AutocompleteState<any>;\n};\n\nexport const Input: AutocompleteElement<InputProps, HTMLInputElement> = ({\n autocompleteScopeApi,\n environment,\n classNames,\n getInputProps,\n getInputPropsCore,\n isDetached,\n state,\n ...props\n}) => {\n const createDomElement = getCreateDomElement(environment);\n const element = createDomElement('input', props);\n const inputProps = getInputProps({\n state,\n props: getInputPropsCore({ inputElement: element }),\n inputElement: element,\n ...autocompleteScopeApi,\n });\n\n setProperties(element, {\n ...inputProps,\n onKeyDown(event: KeyboardEvent) {\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\n inputProps.onKeyDown(event);\n },\n });\n\n return element;\n};\n","var n,l,u,i,t,r,o,f,e,c={},s=[],a=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function h(n,l){for(var u in l)n[u]=l[u];return n}function v(n){var l=n.parentNode;l&&l.removeChild(n)}function y(l,u,i){var t,r,o,f={};for(o in u)\"key\"==o?t=u[o]:\"ref\"==o?r=u[o]:f[o]=u[o];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===f[o]&&(f[o]=l.defaultProps[o]);return p(l,f,t,r,null)}function p(n,i,t,r,o){var f={type:n,props:i,key:t,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++u:o};return null==o&&null!=l.vnode&&l.vnode(f),f}function d(){return{current:null}}function _(n){return n.children}function k(n,l){this.props=n,this.context=l}function b(n,l){if(null==l)return n.__?b(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?b(n):null}function g(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return g(n)}}function m(n){(!n.__d&&(n.__d=!0)&&t.push(n)&&!w.__r++||r!==l.debounceRendering)&&((r=l.debounceRendering)||o)(w)}function w(){var n,l,u,i,r,o,e,c;for(t.sort(f);n=t.shift();)n.__d&&(l=t.length,i=void 0,r=void 0,e=(o=(u=n).__v).__e,(c=u.__P)&&(i=[],(r=h({},o)).__v=o.__v+1,L(c,o,r,u.__n,void 0!==c.ownerSVGElement,null!=o.__h?[e]:null,i,null==e?b(o):e,o.__h),M(i,o),o.__e!=e&&g(o)),t.length>l&&t.sort(f));w.__r=0}function x(n,l,u,i,t,r,o,f,e,a){var h,v,y,d,k,g,m,w=i&&i.__k||s,x=w.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(d=u.__k[h]=null==(d=l[h])||\"boolean\"==typeof d||\"function\"==typeof d?null:\"string\"==typeof d||\"number\"==typeof d||\"bigint\"==typeof d?p(null,d,null,null,d):Array.isArray(d)?p(_,{children:d},null,null,null):d.__b>0?p(d.type,d.props,d.key,d.ref?d.ref:null,d.__v):d)){if(d.__=u,d.__b=u.__b+1,null===(y=w[h])||y&&d.key==y.key&&d.type===y.type)w[h]=void 0;else for(v=0;v<x;v++){if((y=w[v])&&d.key==y.key&&d.type===y.type){w[v]=void 0;break}y=null}L(n,d,y=y||c,t,r,o,f,e,a),k=d.__e,(v=d.ref)&&y.ref!=v&&(m||(m=[]),y.ref&&m.push(y.ref,null,d),m.push(v,d.__c||k,d)),null!=k?(null==g&&(g=k),\"function\"==typeof d.type&&d.__k===y.__k?d.__d=e=A(d,e,n):e=C(n,d,y,w,k,e),\"function\"==typeof u.type&&(u.__d=e)):e&&y.__e==e&&e.parentNode!=n&&(e=b(y))}for(u.__e=g,h=x;h--;)null!=w[h]&&(\"function\"==typeof u.type&&null!=w[h].__e&&w[h].__e==u.__d&&(u.__d=$(i).nextSibling),S(w[h],w[h]));if(m)for(h=0;h<m.length;h++)O(m[h],m[++h],m[++h])}function A(n,l,u){for(var i,t=n.__k,r=0;t&&r<t.length;r++)(i=t[r])&&(i.__=n,l=\"function\"==typeof i.type?A(i,l,u):C(u,i,i,t,i.__e,l));return l}function P(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(Array.isArray(n)?n.some(function(n){P(n,l)}):l.push(n)),l}function C(n,l,u,i,t,r){var o,f,e;if(void 0!==l.__d)o=l.__d,l.__d=void 0;else if(null==u||t!=r||null==t.parentNode)n:if(null==r||r.parentNode!==n)n.appendChild(t),o=null;else{for(f=r,e=0;(f=f.nextSibling)&&e<i.length;e+=1)if(f==t)break n;n.insertBefore(t,r),o=r}return void 0!==o?o:t.nextSibling}function $(n){var l,u,i;if(null==n.type||\"string\"==typeof n.type)return n.__e;if(n.__k)for(l=n.__k.length-1;l>=0;l--)if((u=n.__k[l])&&(i=$(u)))return i;return null}function H(n,l,u,i,t){var r;for(r in u)\"children\"===r||\"key\"===r||r in l||T(n,r,null,u[r],i);for(r in l)t&&\"function\"!=typeof l[r]||\"children\"===r||\"key\"===r||\"value\"===r||\"checked\"===r||u[r]===l[r]||T(n,r,l[r],u[r],i)}function I(n,l,u){\"-\"===l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||a.test(l)?u:u+\"px\"}function T(n,l,u,i,t){var r;n:if(\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof i&&(n.style.cssText=i=\"\"),i)for(l in i)u&&l in u||I(n.style,l,\"\");if(u)for(l in u)i&&u[l]===i[l]||I(n.style,l,u[l])}else if(\"o\"===l[0]&&\"n\"===l[1])r=l!==(l=l.replace(/Capture$/,\"\")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?i||n.addEventListener(l,r?z:j,r):n.removeEventListener(l,r?z:j,r);else if(\"dangerouslySetInnerHTML\"!==l){if(t)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!==l&&\"height\"!==l&&\"href\"!==l&&\"list\"!==l&&\"form\"!==l&&\"tabIndex\"!==l&&\"download\"!==l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!==l[4]?n.removeAttribute(l):n.setAttribute(l,u))}}function j(n){return this.l[n.type+!1](l.event?l.event(n):n)}function z(n){return this.l[n.type+!0](l.event?l.event(n):n)}function L(n,u,i,t,r,o,f,e,c){var s,a,v,y,p,d,b,g,m,w,A,P,C,$,H,I=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,o=[e]),(s=l.__b)&&s(u);try{n:if(\"function\"==typeof I){if(g=u.props,m=(s=I.contextType)&&t[s.__c],w=s?m?m.props.value:s.__:t,i.__c?b=(a=u.__c=i.__c).__=a.__E:(\"prototype\"in I&&I.prototype.render?u.__c=a=new I(g,w):(u.__c=a=new k(g,w),a.constructor=I,a.render=q),m&&m.sub(a),a.props=g,a.state||(a.state={}),a.context=w,a.__n=t,v=a.__d=!0,a.__h=[],a._sb=[]),null==a.__s&&(a.__s=a.state),null!=I.getDerivedStateFromProps&&(a.__s==a.state&&(a.__s=h({},a.__s)),h(a.__s,I.getDerivedStateFromProps(g,a.__s))),y=a.props,p=a.state,a.__v=u,v)null==I.getDerivedStateFromProps&&null!=a.componentWillMount&&a.componentWillMount(),null!=a.componentDidMount&&a.__h.push(a.componentDidMount);else{if(null==I.getDerivedStateFromProps&&g!==y&&null!=a.componentWillReceiveProps&&a.componentWillReceiveProps(g,w),!a.__e&&null!=a.shouldComponentUpdate&&!1===a.shouldComponentUpdate(g,a.__s,w)||u.__v===i.__v){for(u.__v!==i.__v&&(a.props=g,a.state=a.__s,a.__d=!1),a.__e=!1,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),A=0;A<a._sb.length;A++)a.__h.push(a._sb[A]);a._sb=[],a.__h.length&&f.push(a);break n}null!=a.componentWillUpdate&&a.componentWillUpdate(g,a.__s,w),null!=a.componentDidUpdate&&a.__h.push(function(){a.componentDidUpdate(y,p,d)})}if(a.context=w,a.props=g,a.__P=n,P=l.__r,C=0,\"prototype\"in I&&I.prototype.render){for(a.state=a.__s,a.__d=!1,P&&P(u),s=a.render(a.props,a.state,a.context),$=0;$<a._sb.length;$++)a.__h.push(a._sb[$]);a._sb=[]}else do{a.__d=!1,P&&P(u),s=a.render(a.props,a.state,a.context),a.state=a.__s}while(a.__d&&++C<25);a.state=a.__s,null!=a.getChildContext&&(t=h(h({},t),a.getChildContext())),v||null==a.getSnapshotBeforeUpdate||(d=a.getSnapshotBeforeUpdate(y,p)),H=null!=s&&s.type===_&&null==s.key?s.props.children:s,x(n,Array.isArray(H)?H:[H],u,i,t,r,o,f,e,c),a.base=u.__e,u.__h=null,a.__h.length&&f.push(a),b&&(a.__E=a.__=null),a.__e=!1}else null==o&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=N(i.__e,u,i,t,r,o,f,c);(s=l.diffed)&&s(u)}catch(n){u.__v=null,(c||null!=o)&&(u.__e=e,u.__h=!!c,o[o.indexOf(e)]=null),l.__e(n,u,i)}}function M(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function N(l,u,i,t,r,o,f,e){var s,a,h,y=i.props,p=u.props,d=u.type,_=0;if(\"svg\"===d&&(r=!0),null!=o)for(;_<o.length;_++)if((s=o[_])&&\"setAttribute\"in s==!!d&&(d?s.localName===d:3===s.nodeType)){l=s,o[_]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=r?document.createElementNS(\"http://www.w3.org/2000/svg\",d):document.createElement(d,p.is&&p),o=null,e=!1}if(null===d)y===p||e&&l.data===p||(l.data=p);else{if(o=o&&n.call(l.childNodes),a=(y=i.props||c).dangerouslySetInnerHTML,h=p.dangerouslySetInnerHTML,!e){if(null!=o)for(y={},_=0;_<l.attributes.length;_++)y[l.attributes[_].name]=l.attributes[_].value;(h||a)&&(h&&(a&&h.__html==a.__html||h.__html===l.innerHTML)||(l.innerHTML=h&&h.__html||\"\"))}if(H(l,p,y,r,e),h)u.__k=[];else if(_=u.props.children,x(l,Array.isArray(_)?_:[_],u,i,t,r&&\"foreignObject\"!==d,o,f,o?o[0]:i.__k&&b(i,0),e),null!=o)for(_=o.length;_--;)null!=o[_]&&v(o[_]);e||(\"value\"in p&&void 0!==(_=p.value)&&(_!==l.value||\"progress\"===d&&!_||\"option\"===d&&_!==y.value)&&T(l,\"value\",_,y.value,!1),\"checked\"in p&&void 0!==(_=p.checked)&&_!==l.checked&&T(l,\"checked\",_,y.checked,!1))}return l}function O(n,u,i){try{\"function\"==typeof n?n(u):n.current=u}catch(n){l.__e(n,i)}}function S(n,u,i){var t,r;if(l.unmount&&l.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||O(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(n){l.__e(n,u)}t.base=t.__P=null,n.__c=void 0}if(t=n.__k)for(r=0;r<t.length;r++)t[r]&&S(t[r],u,i||\"function\"!=typeof n.type);i||null==n.__e||v(n.__e),n.__=n.__e=n.__d=void 0}function q(n,l,u){return this.constructor(n,u)}function B(u,i,t){var r,o,f;l.__&&l.__(u,i),o=(r=\"function\"==typeof t)?null:t&&t.__k||i.__k,f=[],L(i,u=(!r&&t||i).__k=y(_,null,[u]),o||c,c,void 0!==i.ownerSVGElement,!r&&t?[t]:o?null:i.firstChild?n.call(i.childNodes):null,f,!r&&t?t:o?o.__e:i.firstChild,r),M(f,u)}function D(n,l){B(n,l,D)}function E(l,u,i){var t,r,o,f=h({},l.props);for(o in u)\"key\"==o?t=u[o]:\"ref\"==o?r=u[o]:f[o]=u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),p(l.type,f,t||l.key,r||l.ref,null)}function F(n,l){var u={__c:l=\"__cC\"+e++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(function(n){n.__e=!0,m(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,i){for(var t,r,o;l=l.__;)if((t=l.__c)&&!t.__)try{if((r=t.constructor)&&null!=r.getDerivedStateFromError&&(t.setState(r.getDerivedStateFromError(n)),o=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),o=t.__d),o)return t.__E=t}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},k.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=h({},this.state),\"function\"==typeof n&&(n=n(h({},u),this.props)),n&&h(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),m(this))},k.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),m(this))},k.prototype.render=_,t=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,f=function(n,l){return n.__v.__b-l.__v.__b},w.__r=0,e=0;export{k as Component,_ as Fragment,E as cloneElement,F as createContext,y as createElement,d as createRef,y as h,D as hydrate,i as isValidElement,l as options,B as render,P as toChildArray};\n//# sourceMappingURL=preact.module.js.map\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(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _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(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\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}","var htmlEscapes = {\n '&amp;': '&',\n '&lt;': '<',\n '&gt;': '>',\n '&quot;': '\"',\n '&#39;': \"'\"\n};\nvar hasLetterOrNumber = function () {\n try {\n return new RegExp('[\\\\p{L}\\\\p{N}_]', 'u');\n } catch (_unused) {\n return new RegExp(/\\w/i);\n }\n}();\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 (!hasLetterOrNumber.test(unescape(current.value)) && isPreviousHighlighted === isNextHighlighted) {\n return isPreviousHighlighted;\n }\n return current.isHighlighted;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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}","function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _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(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\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}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nexport function createRequester(fetcher, requesterId) {\n function execute(fetcherParams) {\n return fetcher({\n searchClient: fetcherParams.searchClient,\n queries: fetcherParams.requests.map(function (x) {\n return x.query;\n })\n }).then(function (responses) {\n return responses.map(function (response, index) {\n var _fetcherParams$reques = fetcherParams.requests[index],\n sourceId = _fetcherParams$reques.sourceId,\n transformResponse = _fetcherParams$reques.transformResponse;\n return {\n items: response,\n sourceId: sourceId,\n transformResponse: transformResponse\n };\n });\n });\n }\n return function createSpecifiedRequester(requesterParams) {\n return function requester(requestParams) {\n return _objectSpread(_objectSpread({\n requesterId: requesterId,\n execute: execute\n }, requesterParams), requestParams);\n };\n };\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"params\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _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(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport { userAgents as coreUserAgents, invariant } from '@algolia/autocomplete-shared';\nimport { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\nimport { getAppIdAndApiKey } from '../utils';\nexport function fetchAlgoliaResults(_ref) {\n var searchClient = _ref.searchClient,\n queries = _ref.queries,\n _ref$userAgents = _ref.userAgents,\n userAgents = _ref$userAgents === void 0 ? [] : _ref$userAgents;\n if (typeof searchClient.addAlgoliaAgent === 'function') {\n var algoliaAgents = [].concat(_toConsumableArray(coreUserAgents), _toConsumableArray(userAgents));\n algoliaAgents.forEach(function (_ref2) {\n var segment = _ref2.segment,\n version = _ref2.version;\n searchClient.addAlgoliaAgent(segment, version);\n });\n }\n var _getAppIdAndApiKey = getAppIdAndApiKey(searchClient),\n appId = _getAppIdAndApiKey.appId,\n apiKey = _getAppIdAndApiKey.apiKey;\n invariant(Boolean(appId), 'The Algolia `appId` was not accessible from the searchClient passed.');\n invariant(Boolean(apiKey), 'The Algolia `apiKey` was not accessible from the searchClient passed.');\n return searchClient.search(queries.map(function (searchParameters) {\n var params = searchParameters.params,\n headers = _objectWithoutProperties(searchParameters, _excluded);\n return _objectSpread(_objectSpread({}, headers), {}, {\n params: _objectSpread({\n hitsPerPage: 5,\n highlightPreTag: HIGHLIGHT_PRE_TAG,\n highlightPostTag: HIGHLIGHT_POST_TAG\n }, params)\n });\n })).then(function (response) {\n return response.results.map(function (result, resultIndex) {\n var _result$hits;\n return _objectSpread(_objectSpread({}, result), {}, {\n hits: (_result$hits = result.hits) === null || _result$hits === void 0 ? void 0 : _result$hits.map(function (hit) {\n return _objectSpread(_objectSpread({}, hit), {}, {\n // Bring support for the Insights plugin.\n __autocomplete_indexName: result.index || queries[resultIndex].indexName,\n __autocomplete_queryID: result.queryID,\n __autocomplete_algoliaCredentials: {\n appId: appId,\n apiKey: apiKey\n }\n });\n })\n });\n });\n });\n}","// typed as any, since it accepts the _real_ js clients, not the interface we otherwise expect\nexport function getAppIdAndApiKey(searchClient) {\n var transporter = searchClient.transporter || {};\n var headers = transporter.headers || transporter.baseHeaders || {};\n var queryParameters = transporter.queryParameters || transporter.baseQueryParameters || {};\n var APP_ID = 'x-algolia-application-id';\n var API_KEY = 'x-algolia-api-key';\n var appId = headers[APP_ID] || queryParameters[APP_ID];\n var apiKey = headers[API_KEY] || queryParameters[API_KEY];\n return {\n appId: appId,\n apiKey: apiKey\n };\n}","import { parseAlgoliaHitHighlight } from '@algolia/autocomplete-preset-algolia';\n\nimport { AutocompleteRenderer, HighlightHitParams, VNode } from '../types';\n\nexport function createHighlightComponent({\n createElement,\n Fragment,\n}: AutocompleteRenderer) {\n function Highlight<THit>({\n hit,\n attribute,\n tagName = 'mark',\n }: HighlightHitParams<THit>): VNode<any> {\n return createElement(\n Fragment,\n {},\n parseAlgoliaHitHighlight<THit>({ hit, attribute }).map((x, index) =>\n x.isHighlighted\n ? createElement(tagName, { key: index }, x.value)\n : x.value\n )\n );\n }\n\n Highlight.__autocomplete_componentName = 'Highlight';\n\n return Highlight;\n}\n","import { parseAlgoliaHitReverseHighlight } from '@algolia/autocomplete-preset-algolia';\n\nimport { AutocompleteRenderer, HighlightHitParams, VNode } from '../types';\n\nexport function createReverseHighlightComponent({\n createElement,\n Fragment,\n}: AutocompleteRenderer) {\n function ReverseHighlight<THit>({\n hit,\n attribute,\n tagName = 'mark',\n }: HighlightHitParams<THit>): VNode<any> {\n return createElement(\n Fragment,\n {},\n parseAlgoliaHitReverseHighlight<THit>({\n hit,\n attribute,\n }).map((x, index) =>\n x.isHighlighted\n ? createElement(tagName, { key: index }, x.value)\n : x.value\n )\n );\n }\n\n ReverseHighlight.__autocomplete_componentName = 'ReverseHighlight';\n\n return ReverseHighlight;\n}\n","import { parseAlgoliaHitHighlight } from './parseAlgoliaHitHighlight';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\nexport function parseAlgoliaHitReverseHighlight(props) {\n return reverseHighlightedParts(parseAlgoliaHitHighlight(props));\n}","import { parseAlgoliaHitReverseSnippet } from '@algolia/autocomplete-preset-algolia';\n\nimport { AutocompleteRenderer, HighlightHitParams, VNode } from '../types';\n\nexport function createReverseSnippetComponent({\n createElement,\n Fragment,\n}: AutocompleteRenderer) {\n function ReverseSnippet<THit>({\n hit,\n attribute,\n tagName = 'mark',\n }: HighlightHitParams<THit>): VNode<any> {\n return createElement(\n Fragment,\n {},\n parseAlgoliaHitReverseSnippet<THit>({\n hit,\n attribute,\n }).map((x, index) =>\n x.isHighlighted\n ? createElement(tagName, { key: index }, x.value)\n : x.value\n )\n );\n }\n\n ReverseSnippet.__autocomplete_componentName = 'ReverseSnippet';\n\n return ReverseSnippet;\n}\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';\n\nimport { AutocompleteRenderer, HighlightHitParams, VNode } from '../types';\n\nexport function createSnippetComponent({\n createElement,\n Fragment,\n}: AutocompleteRenderer) {\n function Snippet<THit>({\n hit,\n attribute,\n tagName = 'mark',\n }: HighlightHitParams<THit>): VNode<any> {\n return createElement(\n Fragment,\n {},\n parseAlgoliaHitSnippet<THit>({ hit, attribute }).map((x, index) =>\n x.isHighlighted\n ? createElement(tagName, { key: index }, x.value)\n : x.value\n )\n );\n }\n\n Snippet.__autocomplete_componentName = 'Snippet';\n\n return Snippet;\n}\n","import { AutocompleteEnvironment, BaseItem } from '@algolia/autocomplete-core';\nimport {\n generateAutocompleteId,\n invariant,\n warn,\n} from '@algolia/autocomplete-shared';\nimport {\n createElement as preactCreateElement,\n Fragment as PreactFragment,\n render,\n} from 'preact';\n\nimport {\n createHighlightComponent,\n createReverseHighlightComponent,\n createReverseSnippetComponent,\n createSnippetComponent,\n} from './components';\nimport {\n AutocompleteClassNames,\n AutocompleteComponents,\n AutocompleteOptions,\n AutocompleteRender,\n AutocompleteRenderer,\n AutocompleteTranslations,\n} from './types';\nimport { getHTMLElement, mergeClassNames } from './utils';\n\nconst defaultClassNames: AutocompleteClassNames = {\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};\n\nconst defaultRender: AutocompleteRender<any> = ({ children, render }, root) => {\n render(children, root);\n};\n\nconst defaultRenderer: Required<AutocompleteRenderer> = {\n createElement: preactCreateElement,\n Fragment: PreactFragment,\n render,\n};\n\nexport function getDefaultOptions<TItem extends BaseItem>(\n options: AutocompleteOptions<TItem>\n) {\n const {\n classNames,\n container,\n getEnvironmentProps,\n getFormProps,\n getInputProps,\n getItemProps,\n getLabelProps,\n getListProps,\n getPanelProps,\n getRootProps,\n panelContainer,\n panelPlacement,\n render,\n renderNoResults,\n renderer,\n detachedMediaQuery,\n components,\n translations,\n ...core\n } = options;\n\n /* eslint-disable no-restricted-globals */\n const environment: AutocompleteEnvironment = (\n typeof window !== 'undefined' ? window : {}\n ) as typeof window;\n /* eslint-enable no-restricted-globals */\n const containerElement = getHTMLElement(environment, container);\n\n invariant(\n containerElement.tagName !== 'INPUT',\n 'The `container` option does not support `input` elements. You need to change the container to a `div`.'\n );\n\n warn(\n !(render && renderer && !renderer?.render),\n `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\\`.` +\n `\\nTo get rid of this warning, do any of the following depending on your use case.` +\n \"\\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 '\\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 '\\n- If you are using the `render` option to work with React 18, pass an empty `render` function into `renderer`.' +\n '\\nSee https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-render'\n );\n\n warn(\n !renderer ||\n render ||\n (renderer.Fragment && renderer.createElement && renderer.render),\n `You provided an incomplete \\`renderer\\` (missing: ${[\n !renderer?.createElement && '`renderer.createElement`',\n !renderer?.Fragment && '`renderer.Fragment`',\n !renderer?.render && '`renderer.render`',\n ]\n .filter(Boolean)\n .join(', ')}). This can cause rendering issues.` +\n '\\nSee https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-renderer'\n );\n\n const defaultedRenderer = { ...defaultRenderer, ...renderer };\n\n const defaultComponents: AutocompleteComponents = {\n Highlight: createHighlightComponent(defaultedRenderer),\n ReverseHighlight: createReverseHighlightComponent(defaultedRenderer),\n ReverseSnippet: createReverseSnippetComponent(defaultedRenderer),\n Snippet: createSnippetComponent(defaultedRenderer),\n };\n\n const defaultTranslations: AutocompleteTranslations = {\n clearButtonTitle: 'Clear',\n detachedCancelButtonText: 'Cancel',\n detachedSearchButtonTitle: 'Search',\n submitButtonTitle: 'Submit',\n };\n\n return {\n renderer: {\n classNames: mergeClassNames(\n defaultClassNames,\n classNames ?? {}\n ) as AutocompleteClassNames,\n container: containerElement,\n getEnvironmentProps: getEnvironmentProps ?? (({ props }) => props),\n getFormProps: getFormProps ?? (({ props }) => props),\n getInputProps: getInputProps ?? (({ props }) => props),\n getItemProps: getItemProps ?? (({ props }) => props),\n getLabelProps: getLabelProps ?? (({ props }) => props),\n getListProps: getListProps ?? (({ props }) => props),\n getPanelProps: getPanelProps ?? (({ props }) => props),\n getRootProps: getRootProps ?? (({ props }) => props),\n panelContainer: panelContainer\n ? getHTMLElement(environment, panelContainer)\n : environment.document.body,\n panelPlacement: panelPlacement ?? 'input-wrapper-width',\n render: render ?? defaultRender,\n renderNoResults,\n renderer: defaultedRenderer,\n detachedMediaQuery:\n detachedMediaQuery ??\n getComputedStyle(environment.document.documentElement).getPropertyValue(\n '--aa-detached-media-query'\n ),\n components: {\n // @MAJOR Deal with registering components with the same name as the\n // default ones. We could disallow registering these components by\n // merging the default components second.\n ...defaultComponents,\n ...components,\n },\n translations: {\n ...defaultTranslations,\n ...translations,\n },\n },\n core: {\n ...core,\n id: core.id ?? generateAutocompleteId(),\n environment,\n },\n };\n}\n","import { AutocompleteOptions } from './types';\n\ntype GetPanelPlacementStyleParams = Pick<\n Required<AutocompleteOptions<any>>,\n 'panelPlacement' | 'environment'\n> & {\n container: HTMLElement;\n form: HTMLElement;\n};\n\nexport function getPanelPlacementStyle({\n panelPlacement,\n container,\n form,\n environment,\n}: GetPanelPlacementStyleParams) {\n const containerRect = container.getBoundingClientRect();\n // Some browsers have specificities to retrieve the document scroll position.\n // See https://stackoverflow.com/a/28633515/9940315\n const scrollTop =\n (environment.pageYOffset as number) ||\n environment.document.documentElement.scrollTop ||\n environment.document.body.scrollTop ||\n 0;\n const top = scrollTop + containerRect.top + containerRect.height;\n\n switch (panelPlacement) {\n case 'start': {\n return {\n top,\n left: containerRect.left,\n };\n }\n\n case 'end': {\n return {\n top,\n right:\n environment.document.documentElement.clientWidth -\n (containerRect.left + containerRect.width),\n };\n }\n\n case 'full-width': {\n return {\n top,\n left: 0,\n right: 0,\n width: 'unset',\n maxWidth: 'unset',\n };\n }\n\n case 'input-wrapper-width': {\n const formRect = form.getBoundingClientRect();\n\n return {\n top,\n left: formRect.left,\n right:\n environment.document.documentElement.clientWidth -\n (formRect.left + formRect.width),\n width: 'unset',\n maxWidth: 'unset',\n };\n }\n\n default: {\n throw new Error(\n `[Autocomplete] The \\`panelPlacement\\` value ${JSON.stringify(\n panelPlacement\n )} is not valid.`\n );\n }\n }\n}\n","import { version } from '@algolia/autocomplete-shared';\n\nexport const userAgents = [{ segment: 'autocomplete-js', version }];\n","import {\n createRequester,\n fetchAlgoliaResults,\n} from '@algolia/autocomplete-preset-algolia';\n\nimport { userAgents } from '../userAgents';\n\nexport const createAlgoliaRequester = createRequester(\n (params) =>\n fetchAlgoliaResults({\n ...params,\n userAgents,\n }),\n 'algolia'\n);\n","import { createAlgoliaRequester } from './createAlgoliaRequester';\n\n/**\n * Retrieves Algolia results from multiple indices.\n */\nexport const getAlgoliaResults = createAlgoliaRequester({\n transformResponse: (response) => response.hits,\n});\n","import {\n AutocompleteScopeApi,\n BaseItem,\n createAutocomplete,\n} from '@algolia/autocomplete-core';\nimport {\n createRef,\n debounce,\n getItemsCount,\n warn,\n} from '@algolia/autocomplete-shared';\nimport htm from 'htm';\n\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 {\n AutocompleteApi,\n AutocompleteOptions,\n AutocompletePropGetters,\n AutocompleteSource,\n AutocompleteState,\n VNode,\n} from './types';\nimport { userAgents } from './userAgents';\nimport { mergeDeep, pickBy, setProperties } from './utils';\n\nlet instancesCount = 0;\n\nexport function autocomplete<TItem extends BaseItem>(\n options: AutocompleteOptions<TItem>\n): AutocompleteApi<TItem> {\n const { runEffect, cleanupEffects, runEffects } = createEffectWrapper();\n const { reactive, runReactives } = createReactiveWrapper();\n\n const hasNoResultsSourceTemplateRef = createRef(false);\n const optionsRef = createRef(options);\n const onStateChangeRef =\n createRef<AutocompleteOptions<TItem>['onStateChange']>(undefined);\n const props = reactive(() => getDefaultOptions(optionsRef.current));\n const isDetached = reactive(\n () =>\n props.value.core.environment.matchMedia(\n props.value.renderer.detachedMediaQuery\n ).matches\n );\n\n const autocomplete = reactive(() =>\n createAutocomplete<TItem>({\n ...props.value.core,\n onStateChange(params) {\n hasNoResultsSourceTemplateRef.current = params.state.collections.some(\n (collection) =>\n (collection.source as AutocompleteSource<TItem>).templates.noResults\n );\n onStateChangeRef.current?.(params as any);\n props.value.core.onStateChange?.(params as any);\n },\n shouldPanelOpen:\n optionsRef.current.shouldPanelOpen ||\n (({ state }) => {\n if (isDetached.value) {\n return true;\n }\n\n const hasItems = getItemsCount(state) > 0;\n\n if (!props.value.core.openOnFocus && !state.query) {\n return hasItems;\n }\n\n const hasNoResultsTemplate = Boolean(\n hasNoResultsSourceTemplateRef.current ||\n props.value.renderer.renderNoResults\n );\n\n return (!hasItems && hasNoResultsTemplate) || hasItems;\n }),\n __autocomplete_metadata: {\n userAgents,\n options,\n },\n })\n );\n const lastStateRef = createRef<AutocompleteState<TItem>>({\n collections: [],\n completion: null,\n context: {},\n isOpen: false,\n query: '',\n activeItemId: null,\n status: 'idle',\n ...props.value.core.initialState,\n });\n\n const propGetters: AutocompletePropGetters<TItem> = {\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 const autocompleteScopeApi: AutocompleteScopeApi<TItem> = {\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\n const html = reactive(() =>\n htm.bind<VNode>(props.value.renderer.renderer.createElement)\n );\n\n const dom = reactive(() =>\n createAutocompleteDom({\n autocomplete: autocomplete.value,\n 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,\n setIsModalOpen,\n state: lastStateRef.current,\n translations: props.value.renderer.translations,\n })\n );\n\n function setPanelPosition() {\n setProperties(dom.value.panel, {\n style: isDetached.value\n ? {}\n : 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\n function scheduleRender(state: AutocompleteState<TItem>) {\n lastStateRef.current = state;\n\n const renderProps = {\n autocomplete: autocomplete.value,\n 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\n ? dom.value.detachedContainer\n : props.value.renderer.panelContainer,\n propGetters,\n state: lastStateRef.current,\n renderer: props.value.renderer.renderer,\n };\n\n const render =\n (!getItemsCount(state) &&\n !hasNoResultsSourceTemplateRef.current &&\n props.value.renderer.renderNoResults) ||\n props.value.renderer.render;\n\n renderSearchBox(renderProps);\n renderPanel(render, renderProps);\n }\n\n runEffect(() => {\n const environmentProps = autocomplete.value.getEnvironmentProps({\n formElement: dom.value.form,\n panelElement: dom.value.panel,\n inputElement: dom.value.input,\n });\n\n setProperties(props.value.core.environment as any, environmentProps);\n\n return () => {\n setProperties(\n props.value.core.environment as any,\n Object.keys(environmentProps).reduce((acc, key) => {\n return {\n ...acc,\n [key]: undefined,\n };\n }, {})\n );\n };\n });\n\n runEffect(() => {\n const panelContainerElement = isDetached.value\n ? props.value.core.environment.document.body\n : props.value.renderer.panelContainer;\n const panelElement = isDetached.value\n ? dom.value.detachedOverlay\n : dom.value.panel;\n\n if (isDetached.value && lastStateRef.current.isOpen) {\n setIsModalOpen(true);\n }\n\n scheduleRender(lastStateRef.current);\n\n return () => {\n if (panelContainerElement.contains(panelElement)) {\n panelContainerElement.removeChild(panelElement);\n panelContainerElement.classList.remove('aa-Detached');\n }\n };\n });\n\n runEffect(() => {\n const containerElement = props.value.renderer.container;\n containerElement.appendChild(dom.value.root);\n\n return () => {\n containerElement.removeChild(dom.value.root);\n };\n });\n\n runEffect(() => {\n const debouncedRender = debounce<{\n state: AutocompleteState<TItem>;\n }>(({ state }) => {\n scheduleRender(state);\n }, 0);\n\n onStateChangeRef.current = ({ state, 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 const scrollablePanels =\n props.value.core.environment.document.querySelectorAll(\n '.aa-Panel--scrollable'\n );\n scrollablePanels.forEach((scrollablePanel) => {\n if (scrollablePanel.scrollTop !== 0) {\n scrollablePanel.scrollTop = 0;\n }\n });\n }\n\n debouncedRender({ state });\n };\n\n return () => {\n onStateChangeRef.current = undefined;\n };\n });\n\n runEffect(() => {\n const onResize = debounce<Event>(() => {\n const previousIsDetached = isDetached.value;\n isDetached.value = props.value.core.environment.matchMedia(\n props.value.renderer.detachedMediaQuery\n ).matches;\n\n if (previousIsDetached !== isDetached.value) {\n update({});\n } else {\n requestAnimationFrame(setPanelPosition);\n }\n }, 20);\n props.value.core.environment.addEventListener('resize', onResize);\n\n return () => {\n props.value.core.environment.removeEventListener('resize', onResize);\n };\n });\n\n runEffect(() => {\n if (!isDetached.value) {\n return () => {};\n }\n\n function toggleModalClassname(isActive: boolean) {\n dom.value.detachedContainer.classList.toggle(\n 'aa-DetachedContainer--modal',\n isActive\n );\n }\n\n function onChange(event: MediaQueryListEvent) {\n toggleModalClassname(event.matches);\n }\n\n const isModalDetachedMql = props.value.core.environment.matchMedia(\n getComputedStyle(\n props.value.core.environment.document.documentElement\n ).getPropertyValue('--aa-detached-modal-media-query')\n );\n\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 const hasModernEventListener = Boolean(isModalDetachedMql.addEventListener);\n\n hasModernEventListener\n ? isModalDetachedMql.addEventListener('change', onChange)\n : isModalDetachedMql.addListener(onChange);\n\n return () => {\n hasModernEventListener\n ? isModalDetachedMql.removeEventListener('change', onChange)\n : isModalDetachedMql.removeListener(onChange);\n };\n });\n\n runEffect(() => {\n requestAnimationFrame(setPanelPosition);\n\n return () => {};\n });\n\n function destroy() {\n instancesCount--;\n cleanupEffects();\n }\n\n function update(updatedOptions: Partial<AutocompleteOptions<TItem>> = {}) {\n cleanupEffects();\n\n const { components, ...rendererProps } = props.value.renderer;\n\n optionsRef.current = mergeDeep(\n rendererProps,\n props.value.core,\n {\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(\n components,\n ({ value }) => !value.hasOwnProperty('__autocomplete_componentName')\n ),\n initialState: lastStateRef.current,\n },\n updatedOptions\n );\n\n runReactives();\n runEffects();\n\n autocomplete.value.refresh().then(() => {\n scheduleRender(lastStateRef.current);\n });\n }\n\n function setIsModalOpen(value: boolean) {\n const prevValue = props.value.core.environment.document.body.contains(\n dom.value.detachedOverlay\n );\n\n if (value === prevValue) {\n return;\n }\n\n if (value) {\n props.value.core.environment.document.body.appendChild(\n dom.value.detachedOverlay\n );\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(\n dom.value.detachedOverlay\n );\n props.value.core.environment.document.body.classList.remove(\n 'aa-Detached'\n );\n }\n }\n\n warn(\n instancesCount === 0,\n `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`\n );\n\n instancesCount++;\n\n return {\n ...autocompleteScopeApi,\n update,\n destroy,\n };\n}\n","type ReactiveValue<TValue> = () => TValue;\nexport type Reactive<TValue> = {\n value: TValue;\n /**\n * @private\n */\n _fn: ReactiveValue<TValue>;\n /**\n * @private\n */\n _ref: {\n current: TValue;\n };\n};\n\nexport function createReactiveWrapper() {\n const reactives: Array<Reactive<any>> = [];\n\n return {\n reactive<TValue>(value: ReactiveValue<TValue>) {\n const current = value();\n const reactive: Reactive<TValue> = {\n _fn: value,\n _ref: { current },\n get value() {\n return this._ref.current;\n },\n set value(value) {\n this._ref.current = value;\n },\n };\n\n reactives.push(reactive);\n\n return reactive;\n },\n runReactives() {\n reactives.forEach((value) => {\n value._ref.current = value._fn();\n });\n },\n };\n}\n","type Effect = () => void;\ntype EffectFn = () => Effect;\ntype CleanupFn = () => void;\ntype EffectWrapper = {\n runEffect(fn: EffectFn): void;\n cleanupEffects(): void;\n runEffects(): void;\n};\n\nexport function createEffectWrapper(): EffectWrapper {\n let effects: EffectFn[] = [];\n let cleanups: CleanupFn[] = [];\n\n function runEffect(fn: EffectFn) {\n effects.push(fn);\n const effectCleanup = fn();\n cleanups.push(effectCleanup);\n }\n\n return {\n runEffect,\n cleanupEffects() {\n const currentCleanups = cleanups;\n cleanups = [];\n currentCleanups.forEach((cleanup) => {\n cleanup();\n });\n },\n runEffects() {\n const currentEffects = effects;\n effects = [];\n currentEffects.forEach((effect) => {\n runEffect(effect);\n });\n },\n };\n}\n","/** @jsxRuntime classic */\n/** @jsx renderer.createElement */\nimport {\n AutocompleteApi as AutocompleteCoreApi,\n AutocompleteScopeApi,\n BaseItem,\n} from '@algolia/autocomplete-core';\n\nimport {\n AutocompleteClassNames,\n AutocompleteComponents,\n AutocompleteDom,\n AutocompletePropGetters,\n AutocompleteRender,\n AutocompleteRenderer,\n AutocompleteState,\n HTMLTemplate,\n} from './types';\nimport { setProperties, setPropertiesWithoutEvents } from './utils';\n\ntype RenderProps<TItem extends BaseItem> = {\n autocomplete: AutocompleteCoreApi<TItem>;\n autocompleteScopeApi: AutocompleteScopeApi<TItem>;\n classNames: AutocompleteClassNames;\n components: AutocompleteComponents;\n html: HTMLTemplate;\n dom: AutocompleteDom;\n panelContainer: HTMLElement;\n propGetters: AutocompletePropGetters<TItem>;\n state: AutocompleteState<TItem>;\n renderer: Required<AutocompleteRenderer>;\n};\n\nexport function renderSearchBox<TItem extends BaseItem>({\n autocomplete,\n autocompleteScopeApi,\n dom,\n propGetters,\n state,\n}: RenderProps<TItem>): void {\n setPropertiesWithoutEvents(\n dom.root,\n propGetters.getRootProps({\n state,\n props: autocomplete.getRootProps({}),\n ...autocompleteScopeApi,\n })\n );\n setPropertiesWithoutEvents(\n dom.input,\n propGetters.getInputProps({\n state,\n props: autocomplete.getInputProps({ inputElement: dom.input }),\n inputElement: dom.input,\n ...autocompleteScopeApi,\n })\n );\n setProperties(dom.label, { hidden: state.status === 'stalled' });\n setProperties(dom.loadingIndicator, { hidden: state.status !== 'stalled' });\n toggleAnimation(dom.loadingIndicator, state.status === 'stalled');\n\n setProperties(dom.clearButton, { hidden: !state.query });\n setProperties(dom.detachedSearchButtonQuery, {\n textContent: state.query,\n });\n setProperties(dom.detachedSearchButtonPlaceholder, {\n hidden: Boolean(state.query),\n });\n}\n\n// Safari will animate the SVG even when it's hidden. We need to pause the\n// animation manually. See:\n// - https://github.com/algolia/autocomplete/issues/1322\n// - https://bugs.webkit.org/show_bug.cgi?id=298217\nfunction toggleAnimation(element: HTMLElement, isActive: boolean) {\n const svgElement =\n element.firstChild?.nodeName === 'svg'\n ? (element.firstChild as SVGSVGElement)\n : null;\n if (\n !svgElement ||\n !svgElement.pauseAnimations ||\n !svgElement.unpauseAnimations\n ) {\n return;\n }\n\n if (isActive) {\n svgElement.unpauseAnimations();\n } else {\n svgElement.pauseAnimations();\n }\n}\n\nexport function renderPanel<TItem extends BaseItem>(\n render: AutocompleteRender<TItem>,\n {\n autocomplete,\n autocompleteScopeApi,\n classNames,\n html,\n dom,\n panelContainer,\n propGetters,\n state,\n components,\n renderer,\n }: RenderProps<TItem>\n): void {\n if (!state.isOpen) {\n if (panelContainer.contains(dom.panel)) {\n panelContainer.removeChild(dom.panel);\n }\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\n dom.panel.classList.toggle('aa-Panel--stalled', state.status === 'stalled');\n\n const sections = state.collections\n .filter(\n ({ source, items }) => source.templates.noResults || items.length > 0\n )\n .map(({ source, items }, sourceIndex) => (\n <section\n key={sourceIndex}\n className={classNames.source}\n data-autocomplete-source-id={source.sourceId}\n >\n {source.templates.header && (\n <div className={classNames.sourceHeader}>\n {source.templates.header({\n components,\n createElement: renderer.createElement,\n Fragment: renderer.Fragment,\n items,\n source,\n state,\n html,\n })}\n </div>\n )}\n\n {source.templates.noResults && items.length === 0 ? (\n <div className={classNames.sourceNoResults}>\n {source.templates.noResults({\n components,\n createElement: renderer.createElement,\n Fragment: renderer.Fragment,\n source,\n state,\n html,\n })}\n </div>\n ) : (\n <ul\n className={classNames.list}\n {...propGetters.getListProps({\n state,\n props: autocomplete.getListProps({\n source,\n }),\n ...autocompleteScopeApi,\n })}\n >\n {items.map((item) => {\n const itemProps = autocomplete.getItemProps({\n item,\n source,\n });\n\n return (\n <li\n key={itemProps.id}\n className={classNames.item}\n {...propGetters.getItemProps({\n state,\n props: itemProps,\n ...autocompleteScopeApi,\n })}\n >\n {source.templates.item({\n components,\n createElement: renderer.createElement,\n Fragment: renderer.Fragment,\n item,\n state,\n html,\n })}\n </li>\n );\n })}\n </ul>\n )}\n\n {source.templates.footer && (\n <div className={classNames.sourceFooter}>\n {source.templates.footer({\n components,\n createElement: renderer.createElement,\n Fragment: renderer.Fragment,\n items,\n source,\n state,\n html,\n })}\n </div>\n )}\n </section>\n ));\n\n const children = (\n <renderer.Fragment>\n <div className={classNames.panelLayout}>{sections}</div>\n <div className=\"aa-GradientBottom\" />\n </renderer.Fragment>\n );\n const elements = sections.reduce((acc, current) => {\n acc[current.props['data-autocomplete-source-id']] = current;\n return acc;\n }, {});\n\n render(\n {\n children,\n state,\n sections,\n elements,\n ...renderer,\n components,\n html,\n ...autocompleteScopeApi,\n },\n dom.panel\n );\n}\n","import { RequestParams } from '@algolia/autocomplete-preset-algolia';\nimport { MultipleQueriesQuery } from '@algolia/client-search';\n\nimport { createAlgoliaRequester } from './createAlgoliaRequester';\n\n/**\n * Retrieves Algolia facet hits from multiple indices.\n */\nexport function getAlgoliaFacets<TTHit>(requestParams: RequestParams<TTHit>) {\n const requester = createAlgoliaRequester({\n transformResponse: (response) => response.facetHits,\n });\n\n const queries = requestParams.queries.map((query) => ({\n ...query,\n type: 'facet',\n })) as MultipleQueriesQuery[];\n\n return requester({\n ...requestParams,\n queries,\n });\n}\n"],"names":["createRef","initialValue","current","debounce","fn","time","timerId","undefined","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","flatten","values","reduce","a","b","concat","autocompleteId","generateAutocompleteId","getAttributeValueByPath","record","path","key","getItemsCount","state","collections","sum","collection","items","isPrimitive","obj","Object","isEqual","first","second","keys","_i","_Object$keys","noop","version","userAgents","segment","createClickedEvent","_ref","item","_ref$items","index","__autocomplete_indexName","positions","findIndex","x","objectID","queryID","__autocomplete_queryID","algoliaSource","_slicedToArray","r","e","isArray","_arrayWithHoles","l","t","Symbol","iterator","n","i","u","f","o","call","next","done","push","value","return","_iterableToArrayLimit","_arrayLikeToArray","toString","slice","constructor","name","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","_excluded","_excluded2","_typeof","prototype","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_objectWithoutProperties","hasOwnProperty","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","propertyIsEnumerable","ownKeys","filter","getOwnPropertyDescriptor","enumerable","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","toPrimitive","String","Number","_toPrimitive","_toPropertyKey","configurable","writable","chunk","chunkSize","chunks","objectIDs","mapToInsightsParamsApi","params","map","param","_ref2","createSearchInsightsApi","searchInsights","_split$map2","major","minor","canSendHeaders","split","sendToInsights","method","payloads","_items$0$__autocomple","__autocomplete_algoliaCredentials","headers","appId","apiKey","init","setAuthenticatedUserToken","authenticatedUserToken","setUserToken","userToken","clickedObjectIDsAfterSearch","clickedObjectIDs","_len2","_key2","clickedFilters","_len3","_key3","convertedObjectIDsAfterSearch","_len4","_key4","convertedObjectIDs","_len5","_key5","convertedFilters","_len6","_key6","viewedObjectIDs","_len7","_key7","acc","_ref3","_ref4","payload","_ref5","viewedFilters","_len8","_key8","createViewedEvents","itemsByIndexName","_acc$current$__autoco","indexName","isAlgoliaInsightsHit","hit","ALGOLIA_INSIGHTS_VERSION","ALGOLIA_INSIGHTS_SRC","sendViewedObjectIDs","onItemsChange","insights","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","debouncedOnStateChange","isOpen","subscribe","setContext","setInsightsContext","algoliaInsightsPlugin","__algoliaSearchParameters","clickAnalytics","normalizeUserToken","_error","source","getItems","_ref6","onStateChange","_ref7","__autocomplete_pluginOptions","_context$algoliaInsig","algoliaSourceBase","__automaticInsights","createInternalCancelablePromise","promise","initialState","then","onfulfilled","onrejected","createCallback","catch","finally","onfinally","onCancelList","cancel","isCanceled","callbacks","cancelable","onResult","fallback","arg","_waitPromise","_hasWaitPromiseResolved","getNextActiveItemId","moveAmount","baseIndex","itemCount","defaultActiveItemId","numericIndex","_createForOfIteratorHelper","_n","F","s","getPluginSubmitPromise","plugins","pendingRequests","_step","waitUntilComplete","timeouts","_iterator","_plugin$__autocomplet","_plugin$__autocomplet2","awaitSubmit","err","wait","Math","max","getActiveItem","collectionIndex","collectionsCount","nextValue","activeItemId","getCollectionFromActiveItemId","isOffsetFound","counter","previousItemsOffset","currentCollection","getRelativeActiveItemId","itemInputValue","getItemInputValue","itemUrl","getItemUrl","getAutocompleteElementId","autocompleteInstanceId","elementId","sourceId","Boolean","join","replace","regex","getNativeEvent","nativeEvent","createStore","reducer","props","onStoreStateChange","list","getState","dispatch","action","prevState","type","add","cancelablePromise","cancelAll","isEmpty","timeout","Promise","race","all","resolve","getDefaultProps","pluginSubscribers","_props$id","debug","openOnFocus","enterKeyHint","ignoreCompositionEvents","placeholder","autoFocus","stallThreshold","shouldPanelOpen","reshape","sources","id","query","completion","status","_props$onStateChange","_x$onStateChange","onSubmit","_props$onSubmit","_x$onSubmit","onReset","_props$onReset","_x$onReset","getSources","plugin","seenSourceIds","maybeSource","includes","Error","JSON","stringify","defaultSource","setIsOpen","onResolve","__default","normalizedSource","getNormalizedSources","nested","_x$onSelect","_x$onActive","_x$onResolve","navigator","navigate","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","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","onKeyDown","triggerScrollIntoView","nodeItem","getElementById","scrollIntoView","block","inline","triggerOnActive","preventDefault","nextActiveItemId","waitForSubmit","metaKey","ctrlKey","shiftKey","altKey","_excluded3","_excluded4","_excluded5","_excluded6","getPropGetters","getEnvironmentProps","providedProps","inputElement","formElement","panelElement","onMouseDownOrTouchStart","target","contextNode","parent","child","contains","onTouchStart","onMouseDown","onTouchMove","activeElement","blur","getRootProps","rest","role","getFormProps","handleSubmit","_providedProps$inputE","noValidate","_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","onBlur","onClick","getPanelProps","onMouseLeave","getListProps","getItemProps","__autocomplete_id","onMouseMove","_item","_source","getMetadata","_","_options$__autocomple","_options$__autocomple2","_options$__autocomple3","optionsKey","__autocomplete_metadata","extraOptions","ua","getCompletion","_getActiveItem","stateReducer","_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","h","p","Map","htm","get","this","set","ClearIcon","element","createElementNS","setAttribute","getHTMLElement","mergeClassNames","accValue","currentValue","isPlainObject","mergeDeep","pickBy","predicate","entries","TOUCH_EVENTS_ALIASES","setStyle","style","eventProxy","_this$_listeners","_listeners","setProperty","dom","useCapture","nameLower","oldValue","toLowerCase","addEventListener","removeEventListener","removeAttribute","getNormalizedName","setProperties","setPropertiesWithoutEvents","getCreateDomElement","tagName","_ref$children","children","append","LoadingIcon","innerHTML","pauseAnimations","parentElement","SearchIcon","createAutocompleteDom","autocomplete","autocompleteScopeApi","classNames","isDetached","_ref$placeholder","setIsModalOpen","translations","createDomElement","rootProps","root","class","detachedContainer","stopPropagation","detachedOverlay","labelProps","submitButton","title","submitButtonTitle","ariaLabel","clearButton","clearButtonTitle","loadingIndicator","input","getInputPropsCore","inputProps","Input","inputWrapperPrefix","inputWrapperSuffix","inputWrapper","formProps","form","panelProps","panel","detachedSearchButtonQuery","textContent","detachedSearchButtonPlaceholder","hidden","detachedSearchButtonIcon","detachedSearchButtonTitle","detachedSearchButton","detachedCancelButton","detachedCancelButtonText","detachedFormContainer","c","v","parentNode","removeChild","y","defaultProps","ref","__k","__","__b","__e","__d","__c","__h","__v","vnode","k","g","base","m","w","__r","debounceRendering","sort","shift","__P","L","__n","ownerSVGElement","M","d","A","C","$","nextSibling","S","O","insertBefore","I","T","cssText","z","j","P","H","contextType","__E","render","q","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","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","bind","HIGHLIGHT_PRE_TAG","HIGHLIGHT_POST_TAG","parseAttribute","preTagParts","highlightedValue","firstValue","parts","part","lastPart","isHighlighted","createAttributeSet","postTagParts","parseAlgoliaHitHighlight","attribute","htmlEscapes","hasLetterOrNumber","RegExp","_unused","regexEscapedHtml","regexHasEscapedHtml","isPartHighlighted","_parts","_parts2","isNextHighlighted","isPreviousHighlighted","character","reverseHighlightedParts","parseAlgoliaHitSnippet","fetchAlgoliaResults","_ref$userAgents","addAlgoliaAgent","coreUserAgents","_getAppIdAndApiKey","transporter","baseHeaders","queryParameters","baseQueryParameters","APP_ID","API_KEY","getAppIdAndApiKey","search","searchParameters","hitsPerPage","highlightPreTag","highlightPostTag","resultIndex","_result$hits","createHighlightComponent","Fragment","Highlight","_ref2$tagName","__autocomplete_componentName","createReverseHighlightComponent","ReverseHighlight","createReverseSnippetComponent","ReverseSnippet","createSnippetComponent","Snippet","defaultClassNames","panelLayout","sourceFooter","sourceHeader","sourceNoResults","defaultRender","defaultRenderer","preactCreateElement","PreactFragment","firstChild","getPanelPlacementStyle","panelPlacement","containerRect","getBoundingClientRect","top","pageYOffset","documentElement","scrollTop","height","left","right","clientWidth","width","maxWidth","formRect","createAlgoliaRequester","fetcher","fetcherParams","_fetcherParams$reques","requesterParams","requestParams","createRequester","getAlgoliaResults","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","core","containerElement","defaultedRenderer","defaultComponents","getComputedStyle","getPropertyValue","defaultTranslations","getDefaultOptions","matchMedia","_onStateChangeRef$cur","_props$value$core$onS","_props$value$core","templates","noResults","hasItems","hasNoResultsTemplate","lastStateRef","html","setPanelPosition","scheduleRender","renderProps","isActive","svgElement","_element$firstChild","nodeName","unpauseAnimations","renderSearchBox","classList","toggle","sections","sourceIndex","className","header","_extends","itemProps","footer","elements","renderPanel","update","updatedOptions","_props$value$renderer","rendererProps","remove","environmentProps","panelContainerElement","debouncedRender","querySelectorAll","scrollablePanel","onResize","previousIsDetached","requestAnimationFrame","toggleModalClassname","isModalDetachedMql","hasModernEventListener","addListener","removeListener","destroy","requester"],"mappings":"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"}