{"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/getNextActiveItemId.js","../../../autocomplete-core/dist/esm/utils/getNormalizedSources.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/utils/createCancelablePromiseList.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.17.0';","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.13.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 var isAuthenticatedToken = false;\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 if (!isAuthenticatedToken) {\n setInsightsContext(userToken);\n }\n });\n insightsClient('getUserToken', null, function (_error, userToken) {\n if (!isAuthenticatedToken) {\n setInsightsContext(userToken);\n }\n });\n\n // Handles authenticated user token changes\n insightsClient('onAuthenticatedUserTokenChange', function (authenticatedUserToken) {\n if (authenticatedUserToken) {\n isAuthenticatedToken = true;\n setInsightsContext(authenticatedUserToken);\n } else {\n isAuthenticatedToken = false;\n insightsClient('getUserToken', null, function (_error, userToken) {\n return setInsightsContext(userToken);\n });\n }\n });\n insightsClient('getAuthenticatedUserToken', null, function (_error, authenticatedUserToken) {\n if (authenticatedUserToken) {\n isAuthenticatedToken = true;\n setInsightsContext(authenticatedUserToken);\n }\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}","/**\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}","// 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}","export function createCancelablePromiseList() {\n var list = [];\n return {\n add: function add(cancelablePromise) {\n list.push(cancelablePromise);\n return cancelablePromise.finally(function () {\n list = list.filter(function (item) {\n return item !== cancelablePromise;\n });\n });\n },\n cancelAll: function cancelAll() {\n list.forEach(function (promise) {\n return promise.cancel();\n });\n },\n isEmpty: function isEmpty() {\n return list.length === 0;\n }\n };\n}","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 { getActiveItem, getAutocompleteElementId } from './utils';\nexport function onKeyDown(_ref) {\n var event = _ref.event,\n props = _ref.props,\n refresh = _ref.refresh,\n store = _ref.store,\n setters = _objectWithoutProperties(_ref, _excluded);\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n // eslint-disable-next-line no-inner-declarations\n var triggerScrollIntoView = function triggerScrollIntoView() {\n var highlightedItem = getActiveItem(store.getState());\n var nodeItem = props.environment.document.getElementById(getAutocompleteElementId(props.id, \"item-\".concat(store.getState().activeItemId), highlightedItem === null || highlightedItem === void 0 ? void 0 : highlightedItem.source));\n if (nodeItem) {\n if (nodeItem.scrollIntoViewIfNeeded) {\n nodeItem.scrollIntoViewIfNeeded(false);\n } else {\n nodeItem.scrollIntoView(false);\n }\n }\n }; // eslint-disable-next-line no-inner-declarations\n var triggerOnActive = function triggerOnActive() {\n var highlightedItem = getActiveItem(store.getState());\n if (store.getState().activeItemId !== null && highlightedItem) {\n var item = highlightedItem.item,\n itemInputValue = highlightedItem.itemInputValue,\n itemUrl = highlightedItem.itemUrl,\n source = highlightedItem.source;\n source.onActive(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n }\n }; // Default browser behavior changes the caret placement on ArrowUp and\n // ArrowDown.\n event.preventDefault();\n\n // When re-opening the panel, we need to split the logic to keep the actions\n // synchronized as `onInput` returns a promise.\n if (store.getState().isOpen === false && (props.openOnFocus || Boolean(store.getState().query))) {\n onInput(_objectSpread({\n event: event,\n props: props,\n query: store.getState().query,\n refresh: refresh,\n store: store\n }, setters)).then(function () {\n store.dispatch(event.key, {\n nextActiveItemId: props.defaultActiveItemId\n });\n triggerOnActive();\n // Since we rely on the DOM, we need to wait for all the micro tasks to\n // finish (which include re-opening the panel) to make sure all the\n // elements are available.\n setTimeout(triggerScrollIntoView, 0);\n });\n } else {\n store.dispatch(event.key, {});\n triggerOnActive();\n triggerScrollIntoView();\n }\n } else if (event.key === 'Escape') {\n // This prevents the default browser behavior on `input[type=\"search\"]`\n // from removing the query right away because we first want to close the\n // panel.\n event.preventDefault();\n store.dispatch(event.key, null);\n\n // Hitting the `Escape` key signals the end of a user interaction with the\n // autocomplete. At this point, we should ignore any requests that are still\n // pending and could reopen the panel once they resolve, because that would\n // result in an unsolicited UI behavior.\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Tab') {\n store.dispatch('blur', null);\n\n // Hitting the `Tab` key signals the end of a user interaction with the\n // autocomplete. At this point, we should ignore any requests that are still\n // pending and could reopen the panel once they resolve, because that would\n // result in an unsolicited UI behavior.\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Enter') {\n // No active item, so we let the browser handle the native `onSubmit` form\n // event.\n if (store.getState().activeItemId === null || store.getState().collections.every(function (collection) {\n return collection.items.length === 0;\n })) {\n // If requests are still pending when the panel closes, they could reopen\n // the panel once they resolve.\n // We want to prevent any subsequent query from reopening the panel\n // because it would result in an unsolicited UI behavior.\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\n return;\n }\n\n // This prevents the `onSubmit` event to be sent because an item is\n // highlighted.\n event.preventDefault();\n var _ref2 = getActiveItem(store.getState()),\n item = _ref2.item,\n itemInputValue = _ref2.itemInputValue,\n itemUrl = _ref2.itemUrl,\n source = _ref2.source;\n if (event.metaKey || event.ctrlKey) {\n if (itemUrl !== undefined) {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n props.navigator.navigateNewTab({\n itemUrl: itemUrl,\n item: item,\n state: store.getState()\n });\n }\n } else if (event.shiftKey) {\n if (itemUrl !== undefined) {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n props.navigator.navigateNewWindow({\n itemUrl: itemUrl,\n item: item,\n state: store.getState()\n });\n }\n } else if (event.altKey) {\n // Keep native browser behavior\n } else {\n if (itemUrl !== undefined) {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n props.navigator.navigate({\n itemUrl: itemUrl,\n item: item,\n state: store.getState()\n });\n return;\n }\n onInput(_objectSpread({\n event: event,\n nextState: {\n isOpen: false\n },\n props: props,\n query: itemInputValue,\n refresh: refresh,\n store: store\n }, setters)).then(function () {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n });\n }\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"props\", \"refresh\", \"store\"],\n _excluded2 = [\"inputElement\", \"formElement\", \"panelElement\"],\n _excluded3 = [\"inputElement\"],\n _excluded4 = [\"inputElement\", \"maxLength\"],\n _excluded5 = [\"source\"],\n _excluded6 = [\"item\", \"source\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { noop } from '@algolia/autocomplete-shared';\nimport { onInput } from './onInput';\nimport { onKeyDown as _onKeyDown } from './onKeyDown';\nimport { getActiveItem, getAutocompleteElementId, isOrContainsNode, isSamsung, getNativeEvent } from './utils';\nexport function getPropGetters(_ref) {\n var props = _ref.props,\n refresh = _ref.refresh,\n store = _ref.store,\n setters = _objectWithoutProperties(_ref, _excluded);\n var getEnvironmentProps = function getEnvironmentProps(providedProps) {\n var inputElement = providedProps.inputElement,\n formElement = providedProps.formElement,\n panelElement = providedProps.panelElement,\n rest = _objectWithoutProperties(providedProps, _excluded2);\n function onMouseDownOrTouchStart(event) {\n // The `onTouchStart`/`onMouseDown` events shouldn't trigger the `blur`\n // handler when it's not an interaction with Autocomplete.\n // We detect it with the following heuristics:\n // - the panel is closed AND there are no pending requests\n // (no interaction with the autocomplete, no future state updates)\n // - OR the touched target is the input element (should open the panel)\n var isAutocompleteInteraction = store.getState().isOpen || !store.pendingRequests.isEmpty();\n if (!isAutocompleteInteraction || event.target === inputElement) {\n return;\n }\n\n // @TODO: support cases where there are multiple Autocomplete instances.\n // Right now, a second instance makes this computation return false.\n var isTargetWithinAutocomplete = [formElement, panelElement].some(function (contextNode) {\n return isOrContainsNode(contextNode, event.target);\n });\n if (isTargetWithinAutocomplete === false) {\n store.dispatch('blur', null);\n\n // If requests are still pending when the user closes the panel, they\n // could reopen the panel once they resolve.\n // We want to prevent any subsequent query from reopening the panel\n // because it would result in an unsolicited UI behavior.\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\n }\n }\n return _objectSpread({\n // We do not rely on the native `blur` event of the input to close the\n // panel, but rather on a custom `touchstart`/`mousedown` event outside\n // of the autocomplete elements.\n // This ensures we don't mistakenly interpret interactions within the\n // autocomplete (but outside of the input) as a signal to close the panel.\n // For example, clicking reset button causes an input blur, but if\n // `openOnFocus=true`, it shouldn't close the panel.\n // On touch devices, scrolling results (`touchmove`) causes an input blur\n // but shouldn't close the panel.\n onTouchStart: onMouseDownOrTouchStart,\n onMouseDown: onMouseDownOrTouchStart,\n // When scrolling on touch devices (mobiles, tablets, etc.), we want to\n // mimic the native platform behavior where the input is blurred to\n // hide the virtual keyboard. This gives more vertical space to\n // discover all the suggestions showing up in the panel.\n onTouchMove: function onTouchMove(event) {\n if (store.getState().isOpen === false || inputElement !== props.environment.document.activeElement || event.target === inputElement) {\n return;\n }\n inputElement.blur();\n }\n }, rest);\n };\n var getRootProps = function getRootProps(rest) {\n return _objectSpread({\n role: 'combobox',\n 'aria-expanded': store.getState().isOpen,\n 'aria-haspopup': 'listbox',\n 'aria-owns': store.getState().isOpen ? store.getState().collections.map(function (_ref2) {\n var source = _ref2.source;\n return getAutocompleteElementId(props.id, 'list', source);\n }).join(' ') : undefined,\n 'aria-labelledby': getAutocompleteElementId(props.id, 'label')\n }, rest);\n };\n var getFormProps = function getFormProps(providedProps) {\n var inputElement = providedProps.inputElement,\n rest = _objectWithoutProperties(providedProps, _excluded3);\n return _objectSpread({\n action: '',\n noValidate: true,\n role: 'search',\n onSubmit: function onSubmit(event) {\n var _providedProps$inputE;\n event.preventDefault();\n props.onSubmit(_objectSpread({\n event: event,\n refresh: refresh,\n state: store.getState()\n }, setters));\n store.dispatch('submit', null);\n (_providedProps$inputE = providedProps.inputElement) === null || _providedProps$inputE === void 0 ? void 0 : _providedProps$inputE.blur();\n },\n onReset: function onReset(event) {\n var _providedProps$inputE2;\n event.preventDefault();\n props.onReset(_objectSpread({\n event: event,\n refresh: refresh,\n state: store.getState()\n }, setters));\n store.dispatch('reset', null);\n (_providedProps$inputE2 = providedProps.inputElement) === null || _providedProps$inputE2 === void 0 ? void 0 : _providedProps$inputE2.focus();\n }\n }, rest);\n };\n var getInputProps = function getInputProps(providedProps) {\n var _props$environment$na;\n function onFocus(event) {\n // We want to trigger a query when `openOnFocus` is true\n // because the panel should open with the current query.\n if (props.openOnFocus || Boolean(store.getState().query)) {\n onInput(_objectSpread({\n event: event,\n props: props,\n query: store.getState().completion || store.getState().query,\n refresh: refresh,\n store: store\n }, setters));\n }\n store.dispatch('focus', null);\n }\n var _ref3 = providedProps || {},\n inputElement = _ref3.inputElement,\n _ref3$maxLength = _ref3.maxLength,\n maxLength = _ref3$maxLength === void 0 ? 512 : _ref3$maxLength,\n rest = _objectWithoutProperties(_ref3, _excluded4);\n var activeItem = getActiveItem(store.getState());\n var userAgent = ((_props$environment$na = props.environment.navigator) === null || _props$environment$na === void 0 ? void 0 : _props$environment$na.userAgent) || '';\n var shouldFallbackKeyHint = isSamsung(userAgent);\n var enterKeyHint = props.enterKeyHint || (activeItem !== null && activeItem !== void 0 && activeItem.itemUrl && !shouldFallbackKeyHint ? 'go' : 'search');\n return _objectSpread({\n 'aria-autocomplete': 'both',\n 'aria-activedescendant': store.getState().isOpen && store.getState().activeItemId !== null ? getAutocompleteElementId(props.id, \"item-\".concat(store.getState().activeItemId), activeItem === null || activeItem === void 0 ? void 0 : activeItem.source) : undefined,\n 'aria-controls': store.getState().isOpen ? store.getState().collections.map(function (_ref4) {\n var source = _ref4.source;\n return getAutocompleteElementId(props.id, 'list', source);\n }).join(' ') : undefined,\n 'aria-labelledby': getAutocompleteElementId(props.id, 'label'),\n value: store.getState().completion || store.getState().query,\n id: getAutocompleteElementId(props.id, 'input'),\n autoComplete: 'off',\n autoCorrect: 'off',\n autoCapitalize: 'off',\n enterKeyHint: enterKeyHint,\n spellCheck: 'false',\n autoFocus: props.autoFocus,\n placeholder: props.placeholder,\n maxLength: maxLength,\n type: 'search',\n onChange: function onChange(event) {\n var value = event.currentTarget.value;\n if (props.ignoreCompositionEvents && getNativeEvent(event).isComposing) {\n setters.setQuery(value);\n return;\n }\n onInput(_objectSpread({\n event: event,\n props: props,\n query: value.slice(0, maxLength),\n refresh: refresh,\n store: store\n }, setters));\n },\n onCompositionEnd: function onCompositionEnd(event) {\n onInput(_objectSpread({\n event: event,\n props: props,\n query: event.currentTarget.value.slice(0, maxLength),\n refresh: refresh,\n store: store\n }, setters));\n },\n onKeyDown: function onKeyDown(event) {\n if (getNativeEvent(event).isComposing) {\n return;\n }\n _onKeyDown(_objectSpread({\n event: event,\n props: props,\n refresh: refresh,\n store: store\n }, setters));\n },\n onFocus: onFocus,\n // We don't rely on the `blur` event.\n // See explanation in `onTouchStart`/`onMouseDown`.\n // @MAJOR See if we need to keep this handler.\n onBlur: noop,\n onClick: function onClick(event) {\n // When the panel is closed and you click on the input while\n // the input is focused, the `onFocus` event is not triggered\n // (default browser behavior).\n // In an autocomplete context, it makes sense to open the panel in this\n // case.\n // We mimic this event by catching the `onClick` event which\n // triggers the `onFocus` for the panel to open.\n if (providedProps.inputElement === props.environment.document.activeElement && !store.getState().isOpen) {\n onFocus(event);\n }\n }\n }, rest);\n };\n var getLabelProps = function getLabelProps(rest) {\n return _objectSpread({\n htmlFor: getAutocompleteElementId(props.id, 'input'),\n id: getAutocompleteElementId(props.id, 'label')\n }, rest);\n };\n var getListProps = function getListProps(providedProps) {\n var _ref5 = providedProps || {},\n source = _ref5.source,\n rest = _objectWithoutProperties(_ref5, _excluded5);\n return _objectSpread({\n role: 'listbox',\n 'aria-labelledby': getAutocompleteElementId(props.id, 'label'),\n id: getAutocompleteElementId(props.id, 'list', source)\n }, rest);\n };\n var getPanelProps = function getPanelProps(rest) {\n return _objectSpread({\n onMouseDown: function onMouseDown(event) {\n // Prevents the `activeElement` from being changed to the panel so\n // that the blur event is not triggered, otherwise it closes the\n // panel.\n event.preventDefault();\n },\n onMouseLeave: function onMouseLeave() {\n store.dispatch('mouseleave', null);\n }\n }, rest);\n };\n var getItemProps = function getItemProps(providedProps) {\n var item = providedProps.item,\n source = providedProps.source,\n rest = _objectWithoutProperties(providedProps, _excluded6);\n return _objectSpread({\n id: getAutocompleteElementId(props.id, \"item-\".concat(item.__autocomplete_id), source),\n role: 'option',\n 'aria-selected': store.getState().activeItemId === item.__autocomplete_id,\n onMouseMove: function onMouseMove(event) {\n if (item.__autocomplete_id === store.getState().activeItemId) {\n return;\n }\n store.dispatch('mousemove', item.__autocomplete_id);\n var activeItem = getActiveItem(store.getState());\n if (store.getState().activeItemId !== null && activeItem) {\n var _item = activeItem.item,\n itemInputValue = activeItem.itemInputValue,\n itemUrl = activeItem.itemUrl,\n _source = activeItem.source;\n _source.onActive(_objectSpread({\n event: event,\n item: _item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: _source,\n state: store.getState()\n }, setters));\n }\n },\n onMouseDown: function onMouseDown(event) {\n // Prevents the `activeElement` from being changed to the item so it\n // can remain with the current `activeElement`.\n event.preventDefault();\n },\n onClick: function onClick(event) {\n var itemInputValue = source.getItemInputValue({\n item: item,\n state: store.getState()\n });\n var itemUrl = source.getItemUrl({\n item: item,\n state: store.getState()\n });\n\n // If `getItemUrl` is provided, it means that the suggestion\n // is a link, not plain text that aims at updating the query.\n // We can therefore skip the state change because it will update\n // the `activeItemId`, resulting in a UI flash, especially\n // noticeable on mobile.\n var runPreCommand = itemUrl ? Promise.resolve() : onInput(_objectSpread({\n event: event,\n nextState: {\n isOpen: false\n },\n props: props,\n query: itemInputValue,\n refresh: refresh,\n store: store\n }, setters));\n runPreCommand.then(function () {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n });\n }\n }, rest);\n };\n return {\n getEnvironmentProps: getEnvironmentProps,\n getRootProps: getRootProps,\n getFormProps: getFormProps,\n getLabelProps: getLabelProps,\n getInputProps: getInputProps,\n getPanelProps: getPanelProps,\n getListProps: getListProps,\n getItemProps: getItemProps\n };\n}","export function isOrContainsNode(parent, child) {\n return parent === child || parent.contains(child);\n}","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=5&&((e||!n&&5===r)&&(h.push(r,0,e,s),r=6),n&&(h.push(r,n,0,s),r=6)),e=\"\"},a=0;a\"===t?(r=1,e=\"\"):e=t+e[0]:u?t===u?u=\"\":e+=t:'\"'===t||\"'\"===t?u=t:\">\"===t?(p(),r=1):r&&(\"=\"===t?(r=5,s=e,e=\"\"):\"/\"===t&&(r<5||\">\"===n[a][l+1])?(p(),3===r&&(h=h[0]),r=h,(h=h[0]).push(2,0,r),r=0):\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t?(p(),r=2):e+=t),3===r&&\"!--\"===e&&(r=4,h=h[0])}return p(),h}(s)),r),arguments,[])).length>1?r:r[0]}\n","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(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>\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(\n obj: Record,\n predicate: (value: { key: string; value: TValue }) => boolean\n) {\n return Object.entries(obj).reduce>(\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 & {\n children?: Node[];\n};\n\nexport function getCreateDomElement(environment: AutocompleteEnvironment) {\n return function createDomElement(\n tagName: KParam,\n { children = [], ...props }: CreateDomElementProps\n ): HTMLElementTagNameMap[KParam] {\n const element = environment.document.createElement(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 = `\n \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 = {\n autocomplete: AutocompleteCoreApi;\n autocompleteScopeApi: AutocompleteScopeApi;\n classNames: AutocompleteClassNames;\n environment: AutocompleteEnvironment;\n isDetached: boolean;\n placeholder?: string;\n propGetters: AutocompletePropGetters;\n setIsModalOpen(value: boolean): void;\n state: AutocompleteState;\n translations: AutocompleteTranslations;\n};\n\nexport function createAutocompleteDom({\n autocomplete,\n autocompleteScopeApi,\n classNames,\n environment,\n isDetached,\n placeholder = 'Search',\n propGetters,\n setIsModalOpen,\n state,\n translations,\n}: CreateDomProps): 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 const label = createDomElement('label', {\n class: classNames.label,\n children: [submitButton],\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 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;\n environment: AutocompleteEnvironment;\n getInputProps: AutocompletePropGetters['getInputProps'];\n getInputPropsCore: AutocompleteCoreApi['getInputProps'];\n isDetached: boolean;\n state: AutocompleteState;\n};\n\nexport const Input: AutocompleteElement = ({\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;ll&&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;h0?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=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;A2&&(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 '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n};\nvar hasAlphanumeric = new RegExp(/\\w/i);\nvar regexEscapedHtml = /&(amp|quot|lt|gt|#39);/g;\nvar regexHasEscapedHtml = RegExp(regexEscapedHtml.source);\nfunction unescape(value) {\n return value && regexHasEscapedHtml.test(value) ? value.replace(regexEscapedHtml, function (character) {\n return htmlEscapes[character];\n }) : value;\n}\nexport function isPartHighlighted(parts, i) {\n var _parts, _parts2;\n var current = parts[i];\n var isNextHighlighted = ((_parts = parts[i + 1]) === null || _parts === void 0 ? void 0 : _parts.isHighlighted) || true;\n var isPreviousHighlighted = ((_parts2 = parts[i - 1]) === null || _parts2 === void 0 ? void 0 : _parts2.isHighlighted) || true;\n if (!hasAlphanumeric.test(unescape(current.value)) && isPreviousHighlighted === isNextHighlighted) {\n return isPreviousHighlighted;\n }\n return current.isHighlighted;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { isPartHighlighted } from './isPartHighlighted';\nexport function reverseHighlightedParts(parts) {\n // We don't want to highlight the whole word when no parts match.\n if (!parts.some(function (part) {\n return part.isHighlighted;\n })) {\n return parts.map(function (part) {\n return _objectSpread(_objectSpread({}, part), {}, {\n isHighlighted: false\n });\n });\n }\n return parts.map(function (part, i) {\n return _objectSpread(_objectSpread({}, part), {}, {\n isHighlighted: !isPartHighlighted(parts, i)\n });\n });\n}","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 } from '../types';\n\nexport function createHighlightComponent({\n createElement,\n Fragment,\n}: AutocompleteRenderer) {\n function Highlight({\n hit,\n attribute,\n tagName = 'mark',\n }: HighlightHitParams): JSX.Element {\n return createElement(\n Fragment,\n {},\n parseAlgoliaHitHighlight({ 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 } from '../types';\n\nexport function createReverseHighlightComponent({\n createElement,\n Fragment,\n}: AutocompleteRenderer) {\n function ReverseHighlight({\n hit,\n attribute,\n tagName = 'mark',\n }: HighlightHitParams): JSX.Element {\n return createElement(\n Fragment,\n {},\n parseAlgoliaHitReverseHighlight({\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 } from '../types';\n\nexport function createReverseSnippetComponent({\n createElement,\n Fragment,\n}: AutocompleteRenderer) {\n function ReverseSnippet({\n hit,\n attribute,\n tagName = 'mark',\n }: HighlightHitParams): JSX.Element {\n return createElement(\n Fragment,\n {},\n parseAlgoliaHitReverseSnippet({\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 } from '../types';\n\nexport function createSnippetComponent({\n createElement,\n Fragment,\n}: AutocompleteRenderer) {\n function Snippet({\n hit,\n attribute,\n tagName = 'mark',\n }: HighlightHitParams): JSX.Element {\n return createElement(\n Fragment,\n {},\n parseAlgoliaHitSnippet({ 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 = ({ children, render }, root) => {\n render(children, root);\n};\n\nconst defaultRenderer: Required = {\n createElement: preactCreateElement,\n Fragment: PreactFragment,\n render,\n};\n\nexport function getDefaultOptions(\n options: AutocompleteOptions\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>,\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","export function getAppIdAndApiKey(searchClient) {\n var _ref = searchClient.transporter || {},\n _ref$headers = _ref.headers,\n headers = _ref$headers === void 0 ? {} : _ref$headers,\n _ref$queryParameters = _ref.queryParameters,\n queryParameters = _ref$queryParameters === void 0 ? {} : _ref$queryParameters;\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(\n options: AutocompleteOptions\n): AutocompleteApi {\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['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({\n ...props.value.core,\n onStateChange(params) {\n hasNoResultsSourceTemplateRef.current = params.state.collections.some(\n (collection) =>\n (collection.source as AutocompleteSource).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>({\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 = {\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 = {\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(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) {\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 }\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;\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(() => {\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> = {}) {\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;\nexport type Reactive = {\n value: TValue;\n /**\n * @private\n */\n _fn: ReactiveValue;\n /**\n * @private\n */\n _ref: {\n current: TValue;\n };\n};\n\nexport function createReactiveWrapper() {\n const reactives: Array> = [];\n\n return {\n reactive(value: ReactiveValue) {\n const current = value();\n const reactive: Reactive = {\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 = {\n autocomplete: AutocompleteCoreApi;\n autocompleteScopeApi: AutocompleteScopeApi;\n classNames: AutocompleteClassNames;\n components: AutocompleteComponents;\n html: HTMLTemplate;\n dom: AutocompleteDom;\n panelContainer: HTMLElement;\n propGetters: AutocompletePropGetters;\n state: AutocompleteState;\n renderer: Required;\n};\n\nexport function renderSearchBox({\n autocomplete,\n autocompleteScopeApi,\n dom,\n propGetters,\n state,\n}: RenderProps): 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 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\nexport function renderPanel(\n render: AutocompleteRender,\n {\n autocomplete,\n autocompleteScopeApi,\n classNames,\n html,\n dom,\n panelContainer,\n propGetters,\n state,\n components,\n renderer,\n }: RenderProps\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 \n {source.templates.header && (\n
\n {source.templates.header({\n components,\n createElement: renderer.createElement,\n Fragment: renderer.Fragment,\n items,\n source,\n state,\n html,\n })}\n
\n )}\n\n {source.templates.noResults && items.length === 0 ? (\n
\n {source.templates.noResults({\n components,\n createElement: renderer.createElement,\n Fragment: renderer.Fragment,\n source,\n state,\n html,\n })}\n
\n ) : (\n \n {items.map((item) => {\n const itemProps = autocomplete.getItemProps({\n item,\n source,\n });\n\n return (\n \n {source.templates.item({\n components,\n createElement: renderer.createElement,\n Fragment: renderer.Fragment,\n item,\n state,\n html,\n })}\n \n );\n })}\n \n )}\n\n {source.templates.footer && (\n
\n {source.templates.footer({\n components,\n createElement: renderer.createElement,\n Fragment: renderer.Fragment,\n items,\n source,\n state,\n html,\n })}\n
\n )}\n \n ));\n\n const children = (\n \n
{sections}
\n
\n \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(requestParams: RequestParams) {\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","isAuthenticatedToken","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","getNextActiveItemId","moveAmount","baseIndex","itemCount","defaultActiveItemId","numericIndex","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","pendingRequests","add","cancelablePromise","cancelAll","isEmpty","getDefaultProps","pluginSubscribers","_props$id","plugins","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","Promise","all","plugin","seenSourceIds","resolve","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","noValidate","_providedProps$inputE","preventDefault","_providedProps$inputE2","getLabelProps","htmlFor","getInputProps","_props$environment$na","onFocus","_ref3$maxLength","maxLength","activeItem","shouldFallbackKeyHint","userAgent","match","isSamsung","autoComplete","autoCorrect","autoCapitalize","spellCheck","onChange","currentTarget","isComposing","onCompositionEnd","onKeyDown","triggerScrollIntoView","nodeItem","getElementById","scrollIntoViewIfNeeded","scrollIntoView","triggerOnActive","nextActiveItemId","metaKey","ctrlKey","shiftKey","altKey","_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","s","r","e","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","_listeners","setProperty","dom","useCapture","nameLower","oldValue","toLowerCase","addEventListener","removeEventListener","removeAttribute","getNormalizedName","setProperties","setPropertiesWithoutEvents","getCreateDomElement","tagName","_ref$children","children","append","LoadingIcon","innerHTML","SearchIcon","createAutocompleteDom","autocomplete","autocompleteScopeApi","classNames","isDetached","_ref$placeholder","setIsModalOpen","translations","createDomElement","rootProps","root","class","detachedContainer","stopPropagation","detachedOverlay","labelProps","submitButton","title","submitButtonTitle","clearButton","clearButtonTitle","loadingIndicator","getInputPropsCore","inputProps","Input","inputWrapperPrefix","inputWrapperSuffix","inputWrapper","formProps","form","panelProps","panel","detachedSearchButtonQuery","textContent","detachedSearchButtonPlaceholder","hidden","detachedSearchButtonIcon","detachedSearchButton","detachedSearchButtonTitle","detachedCancelButton","detachedCancelButtonText","detachedFormContainer","f","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","hasAlphanumeric","RegExp","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","top","pageYOffset","documentElement","scrollTop","height","left","right","clientWidth","width","maxWidth","formRect","createAlgoliaRequester","fetcher","fetcherParams","_fetcherParams$reques","requesterParams","requestParams","createRequester","_ref$userAgents","addAlgoliaAgent","coreUserAgents","_getAppIdAndApiKey","transporter","_ref$headers","_ref$queryParameters","queryParameters","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","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","isActive","isModalDetachedMql","hasModernEventListener","addListener","removeListener","destroy","requester"],"mappings":"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"}