{"version":3,"file":"static/js/132.ac0e0214.chunk.js","mappings":"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","sources":["../node_modules/@algolia/autocomplete-shared/dist/esm/debounce.js","../node_modules/@algolia/autocomplete-shared/dist/esm/createRef.js","../node_modules/@algolia/autocomplete-shared/dist/esm/isEqual.js","../node_modules/@algolia/autocomplete-shared/dist/esm/noop.js","../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createClickedEvent.js","../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/isModernInsightsClient.js","../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createSearchInsightsApi.js","../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createViewedEvents.js","../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/isAlgoliaInsightsHit.js","../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createAlgoliaInsightsPlugin.js","../node_modules/@algolia/autocomplete-shared/dist/esm/safelyRunOnBrowser.js","../node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromiseList.js","../node_modules/@algolia/autocomplete-core/dist/esm/createStore.js","../node_modules/@algolia/autocomplete-shared/dist/esm/flatten.js","../node_modules/@algolia/autocomplete-core/dist/esm/getAutocompleteSetters.js","../node_modules/@algolia/autocomplete-shared/dist/esm/getItemsCount.js","../node_modules/@algolia/autocomplete-shared/dist/esm/generateAutocompleteId.js","../node_modules/@algolia/autocomplete-shared/dist/esm/decycle.js","../node_modules/@algolia/autocomplete-core/dist/esm/utils/getNormalizedSources.js","../node_modules/@algolia/autocomplete-core/dist/esm/getDefaultProps.js","../node_modules/@algolia/autocomplete-core/dist/esm/reshape.js","../node_modules/@algolia/autocomplete-core/dist/esm/resolve.js","../node_modules/@algolia/autocomplete-core/dist/esm/utils/mapToAlgoliaResponse.js","../node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromise.js","../node_modules/@algolia/autocomplete-core/dist/esm/utils/getActiveItem.js","../node_modules/@algolia/autocomplete-core/dist/esm/onInput.js","../node_modules/@algolia/autocomplete-core/dist/esm/utils/createConcurrentSafePromise.js","../node_modules/@algolia/autocomplete-core/dist/esm/utils/getAutocompleteElementId.js","../node_modules/@algolia/autocomplete-core/dist/esm/onKeyDown.js","../node_modules/@algolia/autocomplete-core/dist/esm/utils/isSamsung.js","../node_modules/@algolia/autocomplete-core/dist/esm/utils/getNativeEvent.js","../node_modules/@algolia/autocomplete-core/dist/esm/getPropGetters.js","../node_modules/@algolia/autocomplete-core/dist/esm/utils/isOrContainsNode.js","../node_modules/@algolia/autocomplete-core/dist/esm/metadata.js","../node_modules/@algolia/autocomplete-core/dist/esm/getCompletion.js","../node_modules/@algolia/autocomplete-core/dist/esm/utils/getNextActiveItemId.js","../node_modules/@algolia/autocomplete-core/dist/esm/stateReducer.js","../node_modules/@algolia/autocomplete-core/dist/esm/createAutocomplete.js","../node_modules/htm/dist/htm.module.js","../node_modules/@algolia/autocomplete-js/dist/esm/elements/SearchIcon.js","../node_modules/@algolia/autocomplete-js/dist/esm/elements/ClearIcon.js","../node_modules/@algolia/autocomplete-js/dist/esm/elements/LoadingIcon.js","../node_modules/@algolia/autocomplete-js/dist/esm/utils/setProperties.js","../node_modules/@algolia/autocomplete-js/dist/esm/getCreateDomElement.js","../node_modules/@algolia/autocomplete-js/dist/esm/elements/Input.js","../node_modules/@algolia/autocomplete-js/dist/esm/createAutocompleteDom.js","../node_modules/preact/src/constants.js","../node_modules/preact/src/util.js","../node_modules/preact/src/options.js","../node_modules/preact/src/create-element.js","../node_modules/preact/src/component.js","../node_modules/preact/src/diff/props.js","../node_modules/preact/src/diff/children.js","../node_modules/preact/src/diff/index.js","../node_modules/preact/src/render.js","../node_modules/@algolia/autocomplete-shared/dist/esm/getAttributeValueByPath.js","../node_modules/preact/src/diff/catch-error.js","../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAttribute.js","../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitHighlight.js","../node_modules/@algolia/autocomplete-js/dist/esm/components/Highlight.js","../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/isPartHighlighted.js","../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/reverseHighlightedParts.js","../node_modules/@algolia/autocomplete-js/dist/esm/components/ReverseHighlight.js","../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitReverseHighlight.js","../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitSnippet.js","../node_modules/@algolia/autocomplete-js/dist/esm/components/ReverseSnippet.js","../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitReverseSnippet.js","../node_modules/@algolia/autocomplete-js/dist/esm/components/Snippet.js","../node_modules/@algolia/autocomplete-js/dist/esm/utils/getHTMLElement.js","../node_modules/@algolia/autocomplete-js/dist/esm/utils/mergeClassNames.js","../node_modules/@algolia/autocomplete-js/dist/esm/getDefaultOptions.js","../node_modules/@algolia/autocomplete-js/dist/esm/getPanelPlacementStyle.js","../node_modules/@algolia/autocomplete-js/dist/esm/render.js","../node_modules/@algolia/autocomplete-js/dist/esm/utils/mergeDeep.js","../node_modules/@algolia/autocomplete-js/dist/esm/utils/pickBy.js","../node_modules/@algolia/autocomplete-js/dist/esm/autocomplete.js","../node_modules/@algolia/autocomplete-js/dist/esm/createEffectWrapper.js","../node_modules/@algolia/autocomplete-js/dist/esm/createReactiveWrapper.js","../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/requester/createRequester.js","../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/search/fetchAlgoliaResults.js","../node_modules/@algolia/autocomplete-js/dist/esm/requesters/createAlgoliaRequester.js","../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/utils/getAppIdAndApiKey.js","../node_modules/@algolia/autocomplete-js/dist/esm/requesters/getAlgoliaResults.js","../node_modules/@algolia/autocomplete-js/dist/esm/userAgents.js","../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/constants/index.js","../node_modules/@algolia/autocomplete-shared/dist/esm/invariant.js","../node_modules/@algolia/autocomplete-shared/dist/esm/userAgents.js","../node_modules/@algolia/autocomplete-shared/dist/esm/version.js","../node_modules/algoliasearch/dist/algoliasearch-lite.umd.js"],"sourcesContent":["export function debounce(fn, time) {\n  var timerId = undefined;\n  return function () {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    if (timerId) {\n      clearTimeout(timerId);\n    }\n    timerId = setTimeout(function () {\n      return fn.apply(void 0, args);\n    }, time);\n  };\n}","export function createRef(initialValue) {\n  return {\n    current: initialValue\n  };\n}","function isPrimitive(obj) {\n  return obj !== Object(obj);\n}\nexport function isEqual(first, second) {\n  if (first === second) {\n    return true;\n  }\n  if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {\n    return first === second;\n  }\n  if (Object.keys(first).length !== Object.keys(second).length) {\n    return false;\n  }\n  for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {\n    var key = _Object$keys[_i];\n    if (!(key in second)) {\n      return false;\n    }\n    if (!isEqual(first[key], second[key])) {\n      return false;\n    }\n  }\n  return true;\n}","export var noop = function noop() {};","export function createClickedEvent(_ref) {\n  var item = _ref.item,\n    _ref$items = _ref.items,\n    items = _ref$items === void 0 ? [] : _ref$items;\n  return {\n    index: item.__autocomplete_indexName,\n    items: [item],\n    positions: [1 + items.findIndex(function (x) {\n      return x.objectID === item.objectID;\n    })],\n    queryID: item.__autocomplete_queryID,\n    algoliaSource: ['autocomplete']\n  };\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\n * Determines if a given insights `client` supports the optional call to `init`\n * and the ability to set credentials via extra parameters when sending events.\n */\nexport function isModernInsightsClient(client) {\n  var _split$map = (client.version || '').split('.').map(Number),\n    _split$map2 = _slicedToArray(_split$map, 2),\n    major = _split$map2[0],\n    minor = _split$map2[1];\n\n  /* eslint-disable @typescript-eslint/camelcase */\n  var v3 = major >= 3;\n  var v2_4 = major === 2 && minor >= 4;\n  var v1_10 = major === 1 && minor >= 10;\n  return v3 || v2_4 || v1_10;\n  /* eslint-enable @typescript-eslint/camelcase */\n}","var _excluded = [\"items\"],\n  _excluded2 = [\"items\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { isModernInsightsClient } from './isModernInsightsClient';\nfunction chunk(item) {\n  var chunkSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20;\n  var chunks = [];\n  for (var i = 0; i < item.objectIDs.length; i += chunkSize) {\n    chunks.push(_objectSpread(_objectSpread({}, item), {}, {\n      objectIDs: item.objectIDs.slice(i, i + chunkSize)\n    }));\n  }\n  return chunks;\n}\nfunction mapToInsightsParamsApi(params) {\n  return params.map(function (_ref) {\n    var items = _ref.items,\n      param = _objectWithoutProperties(_ref, _excluded);\n    return _objectSpread(_objectSpread({}, param), {}, {\n      objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref2) {\n        var objectID = _ref2.objectID;\n        return objectID;\n      })) || param.objectIDs\n    });\n  });\n}\nexport function createSearchInsightsApi(searchInsights) {\n  var canSendHeaders = isModernInsightsClient(searchInsights);\n  function sendToInsights(method, payloads, items) {\n    if (canSendHeaders && typeof items !== 'undefined') {\n      var _items$0$__autocomple = items[0].__autocomplete_algoliaCredentials,\n        appId = _items$0$__autocomple.appId,\n        apiKey = _items$0$__autocomple.apiKey;\n      var headers = {\n        'X-Algolia-Application-Id': appId,\n        'X-Algolia-API-Key': apiKey\n      };\n      searchInsights.apply(void 0, [method].concat(_toConsumableArray(payloads), [{\n        headers: headers\n      }]));\n    } else {\n      searchInsights.apply(void 0, [method].concat(_toConsumableArray(payloads)));\n    }\n  }\n  return {\n    /**\n     * Initializes Insights with Algolia credentials.\n     */\n    init: function init(appId, apiKey) {\n      searchInsights('init', {\n        appId: appId,\n        apiKey: apiKey\n      });\n    },\n    /**\n     * Sets the authenticated user token to attach to events.\n     * Unsets the authenticated token by passing `undefined`.\n     *\n     * @link https://www.algolia.com/doc/api-reference/api-methods/set-authenticated-user-token/\n     */\n    setAuthenticatedUserToken: function setAuthenticatedUserToken(authenticatedUserToken) {\n      searchInsights('setAuthenticatedUserToken', authenticatedUserToken);\n    },\n    /**\n     * Sets the user token to attach to events.\n     */\n    setUserToken: function setUserToken(userToken) {\n      searchInsights('setUserToken', userToken);\n    },\n    /**\n     * Sends click events to capture a query and its clicked items and positions.\n     *\n     * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/\n     */\n    clickedObjectIDsAfterSearch: function clickedObjectIDsAfterSearch() {\n      for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {\n        params[_key] = arguments[_key];\n      }\n      if (params.length > 0) {\n        sendToInsights('clickedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);\n      }\n    },\n    /**\n     * Sends click events to capture clicked items.\n     *\n     * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/\n     */\n    clickedObjectIDs: function clickedObjectIDs() {\n      for (var _len2 = arguments.length, params = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        params[_key2] = arguments[_key2];\n      }\n      if (params.length > 0) {\n        sendToInsights('clickedObjectIDs', mapToInsightsParamsApi(params), params[0].items);\n      }\n    },\n    /**\n     * Sends click events to capture the filters a user clicks on.\n     *\n     * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/\n     */\n    clickedFilters: function clickedFilters() {\n      for (var _len3 = arguments.length, params = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        params[_key3] = arguments[_key3];\n      }\n      if (params.length > 0) {\n        searchInsights.apply(void 0, ['clickedFilters'].concat(params));\n      }\n    },\n    /**\n     * Sends conversion events to capture a query and its clicked items.\n     *\n     * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/\n     */\n    convertedObjectIDsAfterSearch: function convertedObjectIDsAfterSearch() {\n      for (var _len4 = arguments.length, params = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n        params[_key4] = arguments[_key4];\n      }\n      if (params.length > 0) {\n        sendToInsights('convertedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);\n      }\n    },\n    /**\n     * Sends conversion events to capture clicked items.\n     *\n     * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/\n     */\n    convertedObjectIDs: function convertedObjectIDs() {\n      for (var _len5 = arguments.length, params = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n        params[_key5] = arguments[_key5];\n      }\n      if (params.length > 0) {\n        sendToInsights('convertedObjectIDs', mapToInsightsParamsApi(params), params[0].items);\n      }\n    },\n    /**\n     * Sends conversion events to capture the filters a user uses when converting.\n     *\n     * @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/\n     */\n    convertedFilters: function convertedFilters() {\n      for (var _len6 = arguments.length, params = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n        params[_key6] = arguments[_key6];\n      }\n      if (params.length > 0) {\n        searchInsights.apply(void 0, ['convertedFilters'].concat(params));\n      }\n    },\n    /**\n     * Sends view events to capture clicked items.\n     *\n     * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/\n     */\n    viewedObjectIDs: function viewedObjectIDs() {\n      for (var _len7 = arguments.length, params = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n        params[_key7] = arguments[_key7];\n      }\n      if (params.length > 0) {\n        params.reduce(function (acc, _ref3) {\n          var items = _ref3.items,\n            param = _objectWithoutProperties(_ref3, _excluded2);\n          return [].concat(_toConsumableArray(acc), _toConsumableArray(chunk(_objectSpread(_objectSpread({}, param), {}, {\n            objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref4) {\n              var objectID = _ref4.objectID;\n              return objectID;\n            })) || param.objectIDs\n          })).map(function (payload) {\n            return {\n              items: items,\n              payload: payload\n            };\n          })));\n        }, []).forEach(function (_ref5) {\n          var items = _ref5.items,\n            payload = _ref5.payload;\n          return sendToInsights('viewedObjectIDs', [payload], items);\n        });\n      }\n    },\n    /**\n     * Sends view events to capture the filters a user uses when viewing.\n     *\n     * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/\n     */\n    viewedFilters: function viewedFilters() {\n      for (var _len8 = arguments.length, params = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n        params[_key8] = arguments[_key8];\n      }\n      if (params.length > 0) {\n        searchInsights.apply(void 0, ['viewedFilters'].concat(params));\n      }\n    }\n  };\n}","export function createViewedEvents(_ref) {\n  var items = _ref.items;\n  var itemsByIndexName = items.reduce(function (acc, current) {\n    var _acc$current$__autoco;\n    acc[current.__autocomplete_indexName] = ((_acc$current$__autoco = acc[current.__autocomplete_indexName]) !== null && _acc$current$__autoco !== void 0 ? _acc$current$__autoco : []).concat(current);\n    return acc;\n  }, {});\n  return Object.keys(itemsByIndexName).map(function (indexName) {\n    var items = itemsByIndexName[indexName];\n    return {\n      index: indexName,\n      items: items,\n      algoliaSource: ['autocomplete']\n    };\n  });\n}","export function isAlgoliaInsightsHit(hit) {\n  return hit.objectID && hit.__autocomplete_indexName && hit.__autocomplete_queryID;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { createRef, debounce, isEqual, noop, safelyRunOnBrowser } from '@algolia/autocomplete-shared';\nimport { createClickedEvent } from './createClickedEvent';\nimport { createSearchInsightsApi } from './createSearchInsightsApi';\nimport { createViewedEvents } from './createViewedEvents';\nimport { isAlgoliaInsightsHit } from './isAlgoliaInsightsHit';\nvar VIEW_EVENT_DELAY = 400;\nvar ALGOLIA_INSIGHTS_VERSION = '2.15.0';\nvar ALGOLIA_INSIGHTS_SRC = \"https://cdn.jsdelivr.net/npm/search-insights@\".concat(ALGOLIA_INSIGHTS_VERSION, \"/dist/search-insights.min.js\");\nvar sendViewedObjectIDs = debounce(function (_ref) {\n  var onItemsChange = _ref.onItemsChange,\n    items = _ref.items,\n    insights = _ref.insights,\n    state = _ref.state;\n  onItemsChange({\n    insights: insights,\n    insightsEvents: createViewedEvents({\n      items: items\n    }).map(function (event) {\n      return _objectSpread({\n        eventName: 'Items Viewed'\n      }, event);\n    }),\n    state: state\n  });\n}, VIEW_EVENT_DELAY);\nexport function createAlgoliaInsightsPlugin(options) {\n  var _getOptions = getOptions(options),\n    providedInsightsClient = _getOptions.insightsClient,\n    insightsInitParams = _getOptions.insightsInitParams,\n    onItemsChange = _getOptions.onItemsChange,\n    onSelectEvent = _getOptions.onSelect,\n    onActiveEvent = _getOptions.onActive,\n    __autocomplete_clickAnalytics = _getOptions.__autocomplete_clickAnalytics;\n  var insightsClient = providedInsightsClient;\n  if (!providedInsightsClient) {\n    safelyRunOnBrowser(function (_ref2) {\n      var window = _ref2.window;\n      var pointer = window.AlgoliaAnalyticsObject || 'aa';\n      if (typeof pointer === 'string') {\n        insightsClient = window[pointer];\n      }\n      if (!insightsClient) {\n        window.AlgoliaAnalyticsObject = pointer;\n        if (!window[pointer]) {\n          window[pointer] = function () {\n            if (!window[pointer].queue) {\n              window[pointer].queue = [];\n            }\n            for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n              args[_key] = arguments[_key];\n            }\n            window[pointer].queue.push(args);\n          };\n        }\n        window[pointer].version = ALGOLIA_INSIGHTS_VERSION;\n        insightsClient = window[pointer];\n        loadInsights(window);\n      }\n    });\n  }\n\n  // We return an empty plugin if `insightsClient` is still undefined at\n  // this stage, which can happen in server environments.\n  if (!insightsClient) {\n    return {};\n  }\n  if (insightsInitParams) {\n    insightsClient('init', _objectSpread({\n      partial: true\n    }, insightsInitParams));\n  }\n  var insights = createSearchInsightsApi(insightsClient);\n  var previousItems = createRef([]);\n  var debouncedOnStateChange = debounce(function (_ref3) {\n    var state = _ref3.state;\n    if (!state.isOpen) {\n      return;\n    }\n    var items = state.collections.reduce(function (acc, current) {\n      return [].concat(_toConsumableArray(acc), _toConsumableArray(current.items));\n    }, []).filter(isAlgoliaInsightsHit);\n    if (!isEqual(previousItems.current.map(function (x) {\n      return x.objectID;\n    }), items.map(function (x) {\n      return x.objectID;\n    }))) {\n      previousItems.current = items;\n      if (items.length > 0) {\n        sendViewedObjectIDs({\n          onItemsChange: onItemsChange,\n          items: items,\n          insights: insights,\n          state: state\n        });\n      }\n    }\n  }, 0);\n  return {\n    name: 'aa.algoliaInsightsPlugin',\n    subscribe: function subscribe(_ref4) {\n      var setContext = _ref4.setContext,\n        onSelect = _ref4.onSelect,\n        onActive = _ref4.onActive;\n      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}","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 { 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 flatten(values) {\n  return values.reduce(function (a, b) {\n    return a.concat(b);\n  }, []);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { flatten } from '@algolia/autocomplete-shared';\nexport function getAutocompleteSetters(_ref) {\n  var store = _ref.store;\n  var setActiveItemId = function setActiveItemId(value) {\n    store.dispatch('setActiveItemId', value);\n  };\n  var setQuery = function setQuery(value) {\n    store.dispatch('setQuery', value);\n  };\n  var setCollections = function setCollections(rawValue) {\n    var baseItemId = 0;\n    var value = rawValue.map(function (collection) {\n      return _objectSpread(_objectSpread({}, collection), {}, {\n        // We flatten the stored items to support calling `getAlgoliaResults`\n        // from the source itself.\n        items: flatten(collection.items).map(function (item) {\n          return _objectSpread(_objectSpread({}, item), {}, {\n            __autocomplete_id: baseItemId++\n          });\n        })\n      });\n    });\n    store.dispatch('setCollections', value);\n  };\n  var setIsOpen = function setIsOpen(value) {\n    store.dispatch('setIsOpen', value);\n  };\n  var setStatus = function setStatus(value) {\n    store.dispatch('setStatus', value);\n  };\n  var setContext = function setContext(value) {\n    store.dispatch('setContext', value);\n  };\n  return {\n    setActiveItemId: setActiveItemId,\n    setQuery: setQuery,\n    setCollections: setCollections,\n    setIsOpen: setIsOpen,\n    setStatus: setStatus,\n    setContext: setContext\n  };\n}","export function getItemsCount(state) {\n  if (state.collections.length === 0) {\n    return 0;\n  }\n  return state.collections.reduce(function (sum, collection) {\n    return sum + collection.items.length;\n  }, 0);\n}","var autocompleteId = 0;\nexport function generateAutocompleteId() {\n  return \"autocomplete-\".concat(autocompleteId++);\n}","function _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; }\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); }\n/**\n * Decycles objects with circular references.\n * This is used to print cyclic structures in development environment only.\n */\nexport function decycle(obj) {\n  var seen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n  if (!(process.env.NODE_ENV !== 'production') || !obj || _typeof(obj) !== 'object') {\n    return obj;\n  }\n  if (seen.has(obj)) {\n    return '[Circular]';\n  }\n  var newSeen = seen.add(obj);\n  if (Array.isArray(obj)) {\n    return obj.map(function (x) {\n      return decycle(x, newSeen);\n    });\n  }\n  return Object.fromEntries(Object.entries(obj).map(function (_ref) {\n    var _ref2 = _slicedToArray(_ref, 2),\n      key = _ref2[0],\n      value = _ref2[1];\n    return [key, decycle(value, newSeen)];\n  }));\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport { invariant, decycle, noop } from '@algolia/autocomplete-shared';\nexport function getNormalizedSources(getSources, params) {\n  var seenSourceIds = [];\n  return Promise.resolve(getSources(params)).then(function (sources) {\n    invariant(Array.isArray(sources), function () {\n      return \"The `getSources` function must return an array of sources but returned type \".concat(JSON.stringify(_typeof(sources)), \":\\n\\n\").concat(JSON.stringify(decycle(sources), null, 2));\n    });\n    return Promise.all(sources\n    // We allow `undefined` and `false` sources to allow users to use\n    // `Boolean(query) && source` (=> `false`).\n    // We need to remove these values at this point.\n    .filter(function (maybeSource) {\n      return Boolean(maybeSource);\n    }).map(function (source) {\n      invariant(typeof source.sourceId === 'string', 'A source must provide a `sourceId` string.');\n      if (seenSourceIds.includes(source.sourceId)) {\n        throw new Error(\"[Autocomplete] The `sourceId` \".concat(JSON.stringify(source.sourceId), \" is not unique.\"));\n      }\n      seenSourceIds.push(source.sourceId);\n      var defaultSource = {\n        getItemInputValue: function getItemInputValue(_ref) {\n          var state = _ref.state;\n          return state.query;\n        },\n        getItemUrl: function getItemUrl() {\n          return undefined;\n        },\n        onSelect: function onSelect(_ref2) {\n          var setIsOpen = _ref2.setIsOpen;\n          setIsOpen(false);\n        },\n        onActive: noop,\n        onResolve: noop\n      };\n      Object.keys(defaultSource).forEach(function (key) {\n        defaultSource[key].__default = true;\n      });\n      var normalizedSource = _objectSpread(_objectSpread({}, defaultSource), source);\n      return Promise.resolve(normalizedSource);\n    }));\n  });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { getItemsCount, generateAutocompleteId, flatten } from '@algolia/autocomplete-shared';\nimport { getNormalizedSources } from './utils';\nexport function getDefaultProps(props, pluginSubscribers) {\n  var _props$id;\n  /* eslint-disable no-restricted-globals */\n  var environment = typeof window !== 'undefined' ? window : {};\n  /* eslint-enable no-restricted-globals */\n  var plugins = props.plugins || [];\n  return _objectSpread(_objectSpread({\n    debug: false,\n    openOnFocus: false,\n    enterKeyHint: undefined,\n    ignoreCompositionEvents: false,\n    placeholder: '',\n    autoFocus: false,\n    defaultActiveItemId: null,\n    stallThreshold: 300,\n    insights: undefined,\n    environment: environment,\n    shouldPanelOpen: function shouldPanelOpen(_ref) {\n      var state = _ref.state;\n      return getItemsCount(state) > 0;\n    },\n    reshape: function reshape(_ref2) {\n      var sources = _ref2.sources;\n      return sources;\n    }\n  }, props), {}, {\n    // Since `generateAutocompleteId` triggers a side effect (it increments\n    // an internal counter), we don't want to execute it if unnecessary.\n    id: (_props$id = props.id) !== null && _props$id !== void 0 ? _props$id : generateAutocompleteId(),\n    plugins: plugins,\n    // The following props need to be deeply defaulted.\n    initialState: _objectSpread({\n      activeItemId: null,\n      query: '',\n      completion: null,\n      collections: [],\n      isOpen: false,\n      status: 'idle',\n      context: {}\n    }, props.initialState),\n    onStateChange: function onStateChange(params) {\n      var _props$onStateChange;\n      (_props$onStateChange = props.onStateChange) === null || _props$onStateChange === void 0 ? void 0 : _props$onStateChange.call(props, params);\n      plugins.forEach(function (x) {\n        var _x$onStateChange;\n        return (_x$onStateChange = x.onStateChange) === null || _x$onStateChange === void 0 ? void 0 : _x$onStateChange.call(x, params);\n      });\n    },\n    onSubmit: function onSubmit(params) {\n      var _props$onSubmit;\n      (_props$onSubmit = props.onSubmit) === null || _props$onSubmit === void 0 ? void 0 : _props$onSubmit.call(props, params);\n      plugins.forEach(function (x) {\n        var _x$onSubmit;\n        return (_x$onSubmit = x.onSubmit) === null || _x$onSubmit === void 0 ? void 0 : _x$onSubmit.call(x, params);\n      });\n    },\n    onReset: function onReset(params) {\n      var _props$onReset;\n      (_props$onReset = props.onReset) === null || _props$onReset === void 0 ? void 0 : _props$onReset.call(props, params);\n      plugins.forEach(function (x) {\n        var _x$onReset;\n        return (_x$onReset = x.onReset) === null || _x$onReset === void 0 ? void 0 : _x$onReset.call(x, params);\n      });\n    },\n    getSources: function getSources(params) {\n      return Promise.all([].concat(_toConsumableArray(plugins.map(function (plugin) {\n        return plugin.getSources;\n      })), [props.getSources]).filter(Boolean).map(function (getSources) {\n        return getNormalizedSources(getSources, params);\n      })).then(function (nested) {\n        return flatten(nested);\n      }).then(function (sources) {\n        return sources.map(function (source) {\n          return _objectSpread(_objectSpread({}, source), {}, {\n            onSelect: function onSelect(params) {\n              source.onSelect(params);\n              pluginSubscribers.forEach(function (x) {\n                var _x$onSelect;\n                return (_x$onSelect = x.onSelect) === null || _x$onSelect === void 0 ? void 0 : _x$onSelect.call(x, params);\n              });\n            },\n            onActive: function onActive(params) {\n              source.onActive(params);\n              pluginSubscribers.forEach(function (x) {\n                var _x$onActive;\n                return (_x$onActive = x.onActive) === null || _x$onActive === void 0 ? void 0 : _x$onActive.call(x, params);\n              });\n            },\n            onResolve: function onResolve(params) {\n              source.onResolve(params);\n              pluginSubscribers.forEach(function (x) {\n                var _x$onResolve;\n                return (_x$onResolve = x.onResolve) === null || _x$onResolve === void 0 ? void 0 : _x$onResolve.call(x, params);\n              });\n            }\n          });\n        });\n      });\n    },\n    navigator: _objectSpread({\n      navigate: function navigate(_ref3) {\n        var itemUrl = _ref3.itemUrl;\n        environment.location.assign(itemUrl);\n      },\n      navigateNewTab: function navigateNewTab(_ref4) {\n        var itemUrl = _ref4.itemUrl;\n        var windowReference = environment.open(itemUrl, '_blank', 'noopener');\n        windowReference === null || windowReference === void 0 ? void 0 : windowReference.focus();\n      },\n      navigateNewWindow: function navigateNewWindow(_ref5) {\n        var itemUrl = _ref5.itemUrl;\n        environment.open(itemUrl, '_blank', 'noopener');\n      }\n    }, props.navigator)\n  });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { flatten } from '@algolia/autocomplete-shared';\nexport function reshape(_ref) {\n  var collections = _ref.collections,\n    props = _ref.props,\n    state = _ref.state;\n  // Sources are grouped by `sourceId` to conveniently pick them via destructuring.\n  // Example: `const { recentSearchesPlugin } = sourcesBySourceId`\n  var originalSourcesBySourceId = collections.reduce(function (acc, collection) {\n    return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, collection.source.sourceId, _objectSpread(_objectSpread({}, collection.source), {}, {\n      getItems: function getItems() {\n        // We provide the resolved items from the collection to the `reshape` prop.\n        return flatten(collection.items);\n      }\n    })));\n  }, {});\n  var _props$plugins$reduce = props.plugins.reduce(function (acc, plugin) {\n      if (plugin.reshape) {\n        return plugin.reshape(acc);\n      }\n      return acc;\n    }, {\n      sourcesBySourceId: originalSourcesBySourceId,\n      state: state\n    }),\n    sourcesBySourceId = _props$plugins$reduce.sourcesBySourceId;\n  var reshapeSources = props.reshape({\n    sourcesBySourceId: sourcesBySourceId,\n    sources: Object.values(sourcesBySourceId),\n    state: state\n  });\n\n  // We reconstruct the collections with the items modified by the `reshape` prop.\n  return flatten(reshapeSources).filter(Boolean).map(function (source) {\n    return {\n      source: source,\n      items: source.getItems()\n    };\n  });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { decycle, flatten, invariant } from '@algolia/autocomplete-shared';\nimport { mapToAlgoliaResponse } from './utils';\nfunction isDescription(item) {\n  return Boolean(item.execute);\n}\nfunction isRequesterDescription(description) {\n  return Boolean(description === null || description === void 0 ? void 0 : description.execute);\n}\nexport function preResolve(itemsOrDescription, sourceId, state) {\n  if (isRequesterDescription(itemsOrDescription)) {\n    var contextParameters = itemsOrDescription.requesterId === 'algolia' ? Object.assign.apply(Object, [{}].concat(_toConsumableArray(Object.keys(state.context).map(function (key) {\n      var _state$context$key;\n      return (_state$context$key = state.context[key]) === null || _state$context$key === void 0 ? void 0 : _state$context$key.__algoliaSearchParameters;\n    })))) : {};\n    return _objectSpread(_objectSpread({}, itemsOrDescription), {}, {\n      requests: itemsOrDescription.queries.map(function (query) {\n        return {\n          query: itemsOrDescription.requesterId === 'algolia' ? _objectSpread(_objectSpread({}, query), {}, {\n            params: _objectSpread(_objectSpread({}, contextParameters), query.params)\n          }) : query,\n          sourceId: sourceId,\n          transformResponse: itemsOrDescription.transformResponse\n        };\n      })\n    });\n  }\n  return {\n    items: itemsOrDescription,\n    sourceId: sourceId\n  };\n}\nexport function resolve(items) {\n  var packed = items.reduce(function (acc, current) {\n    if (!isDescription(current)) {\n      acc.push(current);\n      return acc;\n    }\n    var searchClient = current.searchClient,\n      execute = current.execute,\n      requesterId = current.requesterId,\n      requests = current.requests;\n    var container = acc.find(function (item) {\n      return isDescription(current) && isDescription(item) && item.searchClient === searchClient && Boolean(requesterId) && item.requesterId === requesterId;\n    });\n    if (container) {\n      var _container$items;\n      (_container$items = container.items).push.apply(_container$items, _toConsumableArray(requests));\n    } else {\n      var request = {\n        execute: execute,\n        requesterId: requesterId,\n        items: requests,\n        searchClient: searchClient\n      };\n      acc.push(request);\n    }\n    return acc;\n  }, []);\n  var values = packed.map(function (maybeDescription) {\n    if (!isDescription(maybeDescription)) {\n      return Promise.resolve(maybeDescription);\n    }\n    var _ref = maybeDescription,\n      execute = _ref.execute,\n      items = _ref.items,\n      searchClient = _ref.searchClient;\n    return execute({\n      searchClient: searchClient,\n      requests: items\n    });\n  });\n  return Promise.all(values).then(function (responses) {\n    return flatten(responses);\n  });\n}\nexport function postResolve(responses, sources, store) {\n  return sources.map(function (source) {\n    var matches = responses.filter(function (response) {\n      return response.sourceId === source.sourceId;\n    });\n    var results = matches.map(function (_ref2) {\n      var items = _ref2.items;\n      return items;\n    });\n    var transform = matches[0].transformResponse;\n    var items = transform ? transform(mapToAlgoliaResponse(results)) : results;\n    source.onResolve({\n      source: source,\n      results: results,\n      items: items,\n      state: store.getState()\n    });\n    invariant(Array.isArray(items), function () {\n      return \"The `getItems` function from source \\\"\".concat(source.sourceId, \"\\\" must return an array of items but returned type \").concat(JSON.stringify(_typeof(items)), \":\\n\\n\").concat(JSON.stringify(decycle(items), null, 2), \".\\n\\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems\");\n    });\n    invariant(items.every(Boolean), \"The `getItems` function from source \\\"\".concat(source.sourceId, \"\\\" must return an array of items but returned \").concat(JSON.stringify(undefined), \".\\n\\nDid you forget to return items?\\n\\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems\"));\n    return {\n      source: source,\n      items: items\n    };\n  });\n}","export function mapToAlgoliaResponse(rawResults) {\n  return {\n    results: rawResults,\n    hits: rawResults.map(function (result) {\n      return result.hits;\n    }).filter(Boolean),\n    facetHits: rawResults.map(function (result) {\n      var _facetHits;\n      return (_facetHits = result.facetHits) === null || _facetHits === void 0 ? void 0 : _facetHits.map(function (facetHit) {\n        // Bring support for the highlighting components.\n        return {\n          label: facetHit.value,\n          count: facetHit.count,\n          _highlightResult: {\n            label: {\n              value: facetHit.highlighted\n            }\n          }\n        };\n      });\n    }).filter(Boolean)\n  };\n}","function createInternalCancelablePromise(promise, initialState) {\n  var state = initialState;\n  return {\n    then: function then(onfulfilled, onrejected) {\n      return createInternalCancelablePromise(promise.then(createCallback(onfulfilled, state, promise), createCallback(onrejected, state, promise)), state);\n    },\n    catch: function _catch(onrejected) {\n      return createInternalCancelablePromise(promise.catch(createCallback(onrejected, state, promise)), state);\n    },\n    finally: function _finally(onfinally) {\n      if (onfinally) {\n        state.onCancelList.push(onfinally);\n      }\n      return createInternalCancelablePromise(promise.finally(createCallback(onfinally && function () {\n        state.onCancelList = [];\n        return onfinally();\n      }, state, promise)), state);\n    },\n    cancel: function cancel() {\n      state.isCanceled = true;\n      var callbacks = state.onCancelList;\n      state.onCancelList = [];\n      callbacks.forEach(function (callback) {\n        callback();\n      });\n    },\n    isCanceled: function isCanceled() {\n      return state.isCanceled === true;\n    }\n  };\n}\nexport function createCancelablePromise(executor) {\n  return createInternalCancelablePromise(new Promise(function (resolve, reject) {\n    return executor(resolve, reject);\n  }), {\n    isCanceled: false,\n    onCancelList: []\n  });\n}\ncreateCancelablePromise.resolve = function (value) {\n  return cancelable(Promise.resolve(value));\n};\ncreateCancelablePromise.reject = function (reason) {\n  return cancelable(Promise.reject(reason));\n};\nexport function cancelable(promise) {\n  return createInternalCancelablePromise(promise, {\n    isCanceled: false,\n    onCancelList: []\n  });\n}\nfunction createCallback(onResult, state, fallback) {\n  if (!onResult) {\n    return fallback;\n  }\n  return function callback(arg) {\n    if (state.isCanceled) {\n      return arg;\n    }\n    return onResult(arg);\n  };\n}","// We don't have access to the autocomplete source when we call `onKeyDown`\n// or `onClick` because those are native browser events.\n// However, we can get the source from the suggestion index.\nfunction getCollectionFromActiveItemId(state) {\n  // Given 3 sources with respectively 1, 2 and 3 suggestions: [1, 2, 3]\n  // We want to get the accumulated counts:\n  // [1, 1 + 2, 1 + 2 + 3] = [1, 3, 3 + 3] = [1, 3, 6]\n  var accumulatedCollectionsCount = state.collections.map(function (collections) {\n    return collections.items.length;\n  }).reduce(function (acc, collectionsCount, index) {\n    var previousValue = acc[index - 1] || 0;\n    var nextValue = previousValue + collectionsCount;\n    acc.push(nextValue);\n    return acc;\n  }, []);\n\n  // Based on the accumulated counts, we can infer the index of the suggestion.\n  var collectionIndex = accumulatedCollectionsCount.reduce(function (acc, current) {\n    if (current <= state.activeItemId) {\n      return acc + 1;\n    }\n    return acc;\n  }, 0);\n  return state.collections[collectionIndex];\n}\n\n/**\n * Gets the highlighted index relative to a suggestion object (not the absolute\n * highlighted index).\n *\n * Example:\n *  [['a', 'b'], ['c', 'd', 'e'], ['f']]\n *                      ↑\n *         (absolute: 3, relative: 1)\n */\nfunction getRelativeActiveItemId(_ref) {\n  var state = _ref.state,\n    collection = _ref.collection;\n  var isOffsetFound = false;\n  var counter = 0;\n  var previousItemsOffset = 0;\n  while (isOffsetFound === false) {\n    var currentCollection = state.collections[counter];\n    if (currentCollection === collection) {\n      isOffsetFound = true;\n      break;\n    }\n    previousItemsOffset += currentCollection.items.length;\n    counter++;\n  }\n  return state.activeItemId - previousItemsOffset;\n}\nexport function getActiveItem(state) {\n  var collection = getCollectionFromActiveItemId(state);\n  if (!collection) {\n    return null;\n  }\n  var item = collection.items[getRelativeActiveItemId({\n    state: state,\n    collection: collection\n  })];\n  var source = collection.source;\n  var itemInputValue = source.getItemInputValue({\n    item: item,\n    state: state\n  });\n  var itemUrl = source.getItemUrl({\n    item: item,\n    state: state\n  });\n  return {\n    item: item,\n    itemInputValue: itemInputValue,\n    itemUrl: itemUrl,\n    source: source\n  };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"event\", \"nextState\", \"props\", \"query\", \"refresh\", \"store\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { reshape } from './reshape';\nimport { preResolve, resolve, postResolve } from './resolve';\nimport { cancelable, createConcurrentSafePromise, getActiveItem } from './utils';\nvar lastStalledId = null;\nvar runConcurrentSafePromise = createConcurrentSafePromise();\nexport function onInput(_ref) {\n  var event = _ref.event,\n    _ref$nextState = _ref.nextState,\n    nextState = _ref$nextState === void 0 ? {} : _ref$nextState,\n    props = _ref.props,\n    query = _ref.query,\n    refresh = _ref.refresh,\n    store = _ref.store,\n    setters = _objectWithoutProperties(_ref, _excluded);\n  if (lastStalledId) {\n    props.environment.clearTimeout(lastStalledId);\n  }\n  var setCollections = setters.setCollections,\n    setIsOpen = setters.setIsOpen,\n    setQuery = setters.setQuery,\n    setActiveItemId = setters.setActiveItemId,\n    setStatus = setters.setStatus,\n    setContext = setters.setContext;\n  setQuery(query);\n  setActiveItemId(props.defaultActiveItemId);\n  if (!query && props.openOnFocus === false) {\n    var _nextState$isOpen;\n    var collections = store.getState().collections.map(function (collection) {\n      return _objectSpread(_objectSpread({}, collection), {}, {\n        items: []\n      });\n    });\n    setStatus('idle');\n    setCollections(collections);\n    setIsOpen((_nextState$isOpen = nextState.isOpen) !== null && _nextState$isOpen !== void 0 ? _nextState$isOpen : props.shouldPanelOpen({\n      state: store.getState()\n    }));\n\n    // We make sure to update the latest resolved value of the tracked\n    // promises to keep late resolving promises from \"cancelling\" the state\n    // updates performed in this code path.\n    // We chain with a void promise to respect `onInput`'s expected return type.\n    var _request = cancelable(runConcurrentSafePromise(collections).then(function () {\n      return Promise.resolve();\n    }));\n    return store.pendingRequests.add(_request);\n  }\n  setStatus('loading');\n  lastStalledId = props.environment.setTimeout(function () {\n    setStatus('stalled');\n  }, props.stallThreshold);\n\n  // We track the entire promise chain triggered by `onInput` before mutating\n  // the Autocomplete state to make sure that any state manipulation is based on\n  // fresh data regardless of when promises individually resolve.\n  // We don't track nested promises and only rely on the full chain resolution,\n  // meaning we should only ever manipulate the state once this concurrent-safe\n  // promise is resolved.\n  var request = cancelable(runConcurrentSafePromise(props.getSources(_objectSpread({\n    query: query,\n    refresh: refresh,\n    state: store.getState()\n  }, setters)).then(function (sources) {\n    return Promise.all(sources.map(function (source) {\n      return Promise.resolve(source.getItems(_objectSpread({\n        query: query,\n        refresh: refresh,\n        state: store.getState()\n      }, setters))).then(function (itemsOrDescription) {\n        return preResolve(itemsOrDescription, source.sourceId, store.getState());\n      });\n    })).then(resolve).then(function (responses) {\n      var __automaticInsights = responses.some(function (_ref2) {\n        var items = _ref2.items;\n        return isSearchResponseWithAutomaticInsightsFlag(items);\n      });\n\n      // No need to pollute the context if `__automaticInsights=false`\n      if (__automaticInsights) {\n        var _store$getState$conte;\n        setContext({\n          algoliaInsightsPlugin: _objectSpread(_objectSpread({}, ((_store$getState$conte = store.getState().context) === null || _store$getState$conte === void 0 ? void 0 : _store$getState$conte.algoliaInsightsPlugin) || {}), {}, {\n            __automaticInsights: __automaticInsights\n          })\n        });\n      }\n      return postResolve(responses, sources, store);\n    }).then(function (collections) {\n      return reshape({\n        collections: collections,\n        props: props,\n        state: store.getState()\n      });\n    });\n  }))).then(function (collections) {\n    var _nextState$isOpen2;\n    // Parameters passed to `onInput` could be stale when the following code\n    // executes, because `onInput` calls may not resolve in order.\n    // If it becomes a problem we'll need to save the last passed parameters.\n    // See: https://codesandbox.io/s/agitated-cookies-y290z\n\n    setStatus('idle');\n    setCollections(collections);\n    var isPanelOpen = props.shouldPanelOpen({\n      state: store.getState()\n    });\n    setIsOpen((_nextState$isOpen2 = nextState.isOpen) !== null && _nextState$isOpen2 !== void 0 ? _nextState$isOpen2 : props.openOnFocus && !query && isPanelOpen || isPanelOpen);\n    var highlightedItem = getActiveItem(store.getState());\n    if (store.getState().activeItemId !== null && highlightedItem) {\n      var item = highlightedItem.item,\n        itemInputValue = highlightedItem.itemInputValue,\n        itemUrl = highlightedItem.itemUrl,\n        source = highlightedItem.source;\n      source.onActive(_objectSpread({\n        event: event,\n        item: item,\n        itemInputValue: itemInputValue,\n        itemUrl: itemUrl,\n        refresh: refresh,\n        source: source,\n        state: store.getState()\n      }, setters));\n    }\n  }).finally(function () {\n    setStatus('idle');\n    if (lastStalledId) {\n      props.environment.clearTimeout(lastStalledId);\n    }\n  });\n  return store.pendingRequests.add(request);\n}\nfunction isSearchResponseWithAutomaticInsightsFlag(items) {\n  return !Array.isArray(items) && Boolean(items === null || items === void 0 ? void 0 : items._automaticInsights);\n}","/**\n * Creates a runner that executes promises in a concurrent-safe way.\n *\n * This is useful to prevent older promises to resolve after a newer promise,\n * otherwise resulting in stale resolved values.\n */\nexport function createConcurrentSafePromise() {\n  var basePromiseId = -1;\n  var latestResolvedId = -1;\n  var latestResolvedValue = undefined;\n  return function runConcurrentSafePromise(promise) {\n    basePromiseId++;\n    var currentPromiseId = basePromiseId;\n    return Promise.resolve(promise).then(function (x) {\n      // The promise might take too long to resolve and get outdated. This would\n      // result in resolving stale values.\n      // When this happens, we ignore the promise value and return the one\n      // coming from the latest resolved value.\n      //\n      // +----------------------------------+\n      // |        100ms                     |\n      // | run(1) +--->  R1                 |\n      // |        300ms                     |\n      // | run(2) +-------------> R2 (SKIP) |\n      // |        200ms                     |\n      // | run(3) +--------> R3             |\n      // +----------------------------------+\n      if (latestResolvedValue && currentPromiseId < latestResolvedId) {\n        return latestResolvedValue;\n      }\n      latestResolvedId = currentPromiseId;\n      latestResolvedValue = x;\n      return x;\n    });\n  };\n}","/**\n * Returns a full element id for an autocomplete element.\n *\n * @param autocompleteInstanceId The id of the autocomplete instance\n * @param elementId The specific element id\n * @param source The source of the element, when it needs to be scoped\n */\nexport function getAutocompleteElementId(autocompleteInstanceId, elementId, source) {\n  return [autocompleteInstanceId, source === null || source === void 0 ? void 0 : source.sourceId, elementId].filter(Boolean).join('-').replace(/\\s/g, '');\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"event\", \"props\", \"refresh\", \"store\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { onInput } from './onInput';\nimport { getActiveItem, getAutocompleteElementId } from './utils';\nexport function onKeyDown(_ref) {\n  var event = _ref.event,\n    props = _ref.props,\n    refresh = _ref.refresh,\n    store = _ref.store,\n    setters = _objectWithoutProperties(_ref, _excluded);\n  if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n    // eslint-disable-next-line no-inner-declarations\n    var triggerScrollIntoView = function triggerScrollIntoView() {\n      var highlightedItem = getActiveItem(store.getState());\n      var nodeItem = props.environment.document.getElementById(getAutocompleteElementId(props.id, \"item-\".concat(store.getState().activeItemId), highlightedItem === null || highlightedItem === void 0 ? void 0 : highlightedItem.source));\n      if (nodeItem) {\n        if (nodeItem.scrollIntoViewIfNeeded) {\n          nodeItem.scrollIntoViewIfNeeded(false);\n        } else {\n          nodeItem.scrollIntoView(false);\n        }\n      }\n    }; // eslint-disable-next-line no-inner-declarations\n    var triggerOnActive = function triggerOnActive() {\n      var highlightedItem = getActiveItem(store.getState());\n      if (store.getState().activeItemId !== null && highlightedItem) {\n        var item = highlightedItem.item,\n          itemInputValue = highlightedItem.itemInputValue,\n          itemUrl = highlightedItem.itemUrl,\n          source = highlightedItem.source;\n        source.onActive(_objectSpread({\n          event: event,\n          item: item,\n          itemInputValue: itemInputValue,\n          itemUrl: itemUrl,\n          refresh: refresh,\n          source: source,\n          state: store.getState()\n        }, setters));\n      }\n    }; // Default browser behavior changes the caret placement on ArrowUp and\n    // ArrowDown.\n    event.preventDefault();\n\n    // When re-opening the panel, we need to split the logic to keep the actions\n    // synchronized as `onInput` returns a promise.\n    if (store.getState().isOpen === false && (props.openOnFocus || Boolean(store.getState().query))) {\n      onInput(_objectSpread({\n        event: event,\n        props: props,\n        query: store.getState().query,\n        refresh: refresh,\n        store: store\n      }, setters)).then(function () {\n        store.dispatch(event.key, {\n          nextActiveItemId: props.defaultActiveItemId\n        });\n        triggerOnActive();\n        // Since we rely on the DOM, we need to wait for all the micro tasks to\n        // finish (which include re-opening the panel) to make sure all the\n        // elements are available.\n        setTimeout(triggerScrollIntoView, 0);\n      });\n    } else {\n      store.dispatch(event.key, {});\n      triggerOnActive();\n      triggerScrollIntoView();\n    }\n  } else if (event.key === 'Escape') {\n    // This prevents the default browser behavior on `input[type=\"search\"]`\n    // from removing the query right away because we first want to close the\n    // panel.\n    event.preventDefault();\n    store.dispatch(event.key, null);\n\n    // Hitting the `Escape` key signals the end of a user interaction with the\n    // autocomplete. At this point, we should ignore any requests that are still\n    // pending and could reopen the panel once they resolve, because that would\n    // result in an unsolicited UI behavior.\n    store.pendingRequests.cancelAll();\n  } else if (event.key === 'Tab') {\n    store.dispatch('blur', null);\n\n    // Hitting the `Tab` key signals the end of a user interaction with the\n    // autocomplete. At this point, we should ignore any requests that are still\n    // pending and could reopen the panel once they resolve, because that would\n    // result in an unsolicited UI behavior.\n    store.pendingRequests.cancelAll();\n  } else if (event.key === 'Enter') {\n    // No active item, so we let the browser handle the native `onSubmit` form\n    // event.\n    if (store.getState().activeItemId === null || store.getState().collections.every(function (collection) {\n      return collection.items.length === 0;\n    })) {\n      // If requests are still pending when the panel closes, they could reopen\n      // the panel once they resolve.\n      // We want to prevent any subsequent query from reopening the panel\n      // because it would result in an unsolicited UI behavior.\n      if (!props.debug) {\n        store.pendingRequests.cancelAll();\n      }\n      return;\n    }\n\n    // This prevents the `onSubmit` event to be sent because an item is\n    // highlighted.\n    event.preventDefault();\n    var _ref2 = getActiveItem(store.getState()),\n      item = _ref2.item,\n      itemInputValue = _ref2.itemInputValue,\n      itemUrl = _ref2.itemUrl,\n      source = _ref2.source;\n    if (event.metaKey || event.ctrlKey) {\n      if (itemUrl !== undefined) {\n        source.onSelect(_objectSpread({\n          event: event,\n          item: item,\n          itemInputValue: itemInputValue,\n          itemUrl: itemUrl,\n          refresh: refresh,\n          source: source,\n          state: store.getState()\n        }, setters));\n        props.navigator.navigateNewTab({\n          itemUrl: itemUrl,\n          item: item,\n          state: store.getState()\n        });\n      }\n    } else if (event.shiftKey) {\n      if (itemUrl !== undefined) {\n        source.onSelect(_objectSpread({\n          event: event,\n          item: item,\n          itemInputValue: itemInputValue,\n          itemUrl: itemUrl,\n          refresh: refresh,\n          source: source,\n          state: store.getState()\n        }, setters));\n        props.navigator.navigateNewWindow({\n          itemUrl: itemUrl,\n          item: item,\n          state: store.getState()\n        });\n      }\n    } else if (event.altKey) {\n      // Keep native browser behavior\n    } else {\n      if (itemUrl !== undefined) {\n        source.onSelect(_objectSpread({\n          event: event,\n          item: item,\n          itemInputValue: itemInputValue,\n          itemUrl: itemUrl,\n          refresh: refresh,\n          source: source,\n          state: store.getState()\n        }, setters));\n        props.navigator.navigate({\n          itemUrl: itemUrl,\n          item: item,\n          state: store.getState()\n        });\n        return;\n      }\n      onInput(_objectSpread({\n        event: event,\n        nextState: {\n          isOpen: false\n        },\n        props: props,\n        query: itemInputValue,\n        refresh: refresh,\n        store: store\n      }, setters)).then(function () {\n        source.onSelect(_objectSpread({\n          event: event,\n          item: item,\n          itemInputValue: itemInputValue,\n          itemUrl: itemUrl,\n          refresh: refresh,\n          source: source,\n          state: store.getState()\n        }, setters));\n      });\n    }\n  }\n}","var regex = /((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;\nexport function isSamsung(userAgent) {\n  return Boolean(userAgent && userAgent.match(regex));\n}","export function getNativeEvent(event) {\n  return event.nativeEvent || event;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"props\", \"refresh\", \"store\"],\n  _excluded2 = [\"inputElement\", \"formElement\", \"panelElement\"],\n  _excluded3 = [\"inputElement\"],\n  _excluded4 = [\"inputElement\", \"maxLength\"],\n  _excluded5 = [\"source\"],\n  _excluded6 = [\"item\", \"source\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { noop } from '@algolia/autocomplete-shared';\nimport { onInput } from './onInput';\nimport { onKeyDown as _onKeyDown } from './onKeyDown';\nimport { getActiveItem, getAutocompleteElementId, isOrContainsNode, isSamsung, getNativeEvent } from './utils';\nexport function getPropGetters(_ref) {\n  var props = _ref.props,\n    refresh = _ref.refresh,\n    store = _ref.store,\n    setters = _objectWithoutProperties(_ref, _excluded);\n  var getEnvironmentProps = function getEnvironmentProps(providedProps) {\n    var inputElement = providedProps.inputElement,\n      formElement = providedProps.formElement,\n      panelElement = providedProps.panelElement,\n      rest = _objectWithoutProperties(providedProps, _excluded2);\n    function onMouseDownOrTouchStart(event) {\n      // The `onTouchStart`/`onMouseDown` events shouldn't trigger the `blur`\n      // handler when it's not an interaction with Autocomplete.\n      // We detect it with the following heuristics:\n      // - the panel is closed AND there are no pending requests\n      //   (no interaction with the autocomplete, no future state updates)\n      // - OR the touched target is the input element (should open the panel)\n      var isAutocompleteInteraction = store.getState().isOpen || !store.pendingRequests.isEmpty();\n      if (!isAutocompleteInteraction || event.target === inputElement) {\n        return;\n      }\n\n      // @TODO: support cases where there are multiple Autocomplete instances.\n      // Right now, a second instance makes this computation return false.\n      var isTargetWithinAutocomplete = [formElement, panelElement].some(function (contextNode) {\n        return isOrContainsNode(contextNode, event.target);\n      });\n      if (isTargetWithinAutocomplete === false) {\n        store.dispatch('blur', null);\n\n        // If requests are still pending when the user closes the panel, they\n        // could reopen the panel once they resolve.\n        // We want to prevent any subsequent query from reopening the panel\n        // because it would result in an unsolicited UI behavior.\n        if (!props.debug) {\n          store.pendingRequests.cancelAll();\n        }\n      }\n    }\n    return _objectSpread({\n      // We do not rely on the native `blur` event of the input to close the\n      // panel, but rather on a custom `touchstart`/`mousedown` event outside\n      // of the autocomplete elements.\n      // This ensures we don't mistakenly interpret interactions within the\n      // autocomplete (but outside of the input) as a signal to close the panel.\n      // For example, clicking reset button causes an input blur, but if\n      // `openOnFocus=true`, it shouldn't close the panel.\n      // On touch devices, scrolling results (`touchmove`) causes an input blur\n      // but shouldn't close the panel.\n      onTouchStart: onMouseDownOrTouchStart,\n      onMouseDown: onMouseDownOrTouchStart,\n      // When scrolling on touch devices (mobiles, tablets, etc.), we want to\n      // mimic the native platform behavior where the input is blurred to\n      // hide the virtual keyboard. This gives more vertical space to\n      // discover all the suggestions showing up in the panel.\n      onTouchMove: function onTouchMove(event) {\n        if (store.getState().isOpen === false || inputElement !== props.environment.document.activeElement || event.target === inputElement) {\n          return;\n        }\n        inputElement.blur();\n      }\n    }, rest);\n  };\n  var getRootProps = function getRootProps(rest) {\n    return _objectSpread({\n      role: 'combobox',\n      'aria-expanded': store.getState().isOpen,\n      'aria-haspopup': 'listbox',\n      'aria-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}","/**\n * Returns the next active item ID from the current state.\n *\n * We allow circular keyboard navigation from the base index.\n * The base index can either be `null` (nothing is highlighted) or `0`\n * (the first item is highlighted).\n * The base index is allowed to get assigned `null` only if\n * `props.defaultActiveItemId` is `null`. This pattern allows to \"stop\"\n * by the actual query before navigating to other suggestions as seen on\n * Google or Amazon.\n *\n * @param moveAmount The offset to increment (or decrement) the last index\n * @param baseIndex The current index to compute the next index from\n * @param itemCount The number of items\n * @param defaultActiveItemId The default active index to fallback to\n */\nexport function getNextActiveItemId(moveAmount, baseIndex, itemCount, defaultActiveItemId) {\n  if (!itemCount) {\n    return null;\n  }\n  if (moveAmount < 0 && (baseIndex === null || defaultActiveItemId !== null && baseIndex === 0)) {\n    return itemCount + moveAmount;\n  }\n  var numericIndex = (baseIndex === null ? -1 : baseIndex) + moveAmount;\n  if (numericIndex <= -1 || numericIndex >= itemCount) {\n    return defaultActiveItemId === null ? null : 0;\n  }\n  return numericIndex;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { getItemsCount, invariant } from '@algolia/autocomplete-shared';\nimport { getCompletion } from './getCompletion';\nimport { getNextActiveItemId } from './utils';\nexport var stateReducer = function stateReducer(state, action) {\n  switch (action.type) {\n    case 'setActiveItemId':\n      {\n        return _objectSpread(_objectSpread({}, state), {}, {\n          activeItemId: action.payload\n        });\n      }\n    case 'setQuery':\n      {\n        return _objectSpread(_objectSpread({}, state), {}, {\n          query: action.payload,\n          completion: null\n        });\n      }\n    case 'setCollections':\n      {\n        return _objectSpread(_objectSpread({}, state), {}, {\n          collections: action.payload\n        });\n      }\n    case 'setIsOpen':\n      {\n        return _objectSpread(_objectSpread({}, state), {}, {\n          isOpen: action.payload\n        });\n      }\n    case 'setStatus':\n      {\n        return _objectSpread(_objectSpread({}, state), {}, {\n          status: action.payload\n        });\n      }\n    case 'setContext':\n      {\n        return _objectSpread(_objectSpread({}, state), {}, {\n          context: _objectSpread(_objectSpread({}, state.context), action.payload)\n        });\n      }\n    case 'ArrowDown':\n      {\n        var nextState = _objectSpread(_objectSpread({}, state), {}, {\n          activeItemId: action.payload.hasOwnProperty('nextActiveItemId') ? action.payload.nextActiveItemId : getNextActiveItemId(1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)\n        });\n        return _objectSpread(_objectSpread({}, nextState), {}, {\n          completion: getCompletion({\n            state: nextState\n          })\n        });\n      }\n    case 'ArrowUp':\n      {\n        var _nextState = _objectSpread(_objectSpread({}, state), {}, {\n          activeItemId: getNextActiveItemId(-1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)\n        });\n        return _objectSpread(_objectSpread({}, _nextState), {}, {\n          completion: getCompletion({\n            state: _nextState\n          })\n        });\n      }\n    case 'Escape':\n      {\n        if (state.isOpen) {\n          return _objectSpread(_objectSpread({}, state), {}, {\n            activeItemId: null,\n            isOpen: false,\n            completion: null\n          });\n        }\n        return _objectSpread(_objectSpread({}, state), {}, {\n          activeItemId: null,\n          query: '',\n          status: 'idle',\n          collections: []\n        });\n      }\n    case 'submit':\n      {\n        return _objectSpread(_objectSpread({}, state), {}, {\n          activeItemId: null,\n          isOpen: false,\n          status: 'idle'\n        });\n      }\n    case 'reset':\n      {\n        return _objectSpread(_objectSpread({}, state), {}, {\n          activeItemId:\n          // Since we open the panel on reset when openOnFocus=true\n          // we need to restore the highlighted index to the defaultActiveItemId. (DocSearch use-case)\n\n          // Since we close the panel when openOnFocus=false\n          // we lose track of the highlighted index. (Query-suggestions use-case)\n          action.props.openOnFocus === true ? action.props.defaultActiveItemId : null,\n          status: 'idle',\n          completion: null,\n          query: ''\n        });\n      }\n    case 'focus':\n      {\n        return _objectSpread(_objectSpread({}, state), {}, {\n          activeItemId: action.props.defaultActiveItemId,\n          isOpen: (action.props.openOnFocus || Boolean(state.query)) && action.props.shouldPanelOpen({\n            state: state\n          })\n        });\n      }\n    case 'blur':\n      {\n        if (action.props.debug) {\n          return state;\n        }\n        return _objectSpread(_objectSpread({}, state), {}, {\n          isOpen: false,\n          activeItemId: null\n        });\n      }\n    case 'mousemove':\n      {\n        return _objectSpread(_objectSpread({}, state), {}, {\n          activeItemId: action.payload\n        });\n      }\n    case 'mouseleave':\n      {\n        return _objectSpread(_objectSpread({}, state), {}, {\n          activeItemId: action.props.defaultActiveItemId\n        });\n      }\n    default:\n      invariant(false, \"The reducer action \".concat(JSON.stringify(action.type), \" is not supported.\"));\n      return state;\n  }\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { createAlgoliaInsightsPlugin } from '@algolia/autocomplete-plugin-algolia-insights';\nimport { checkOptions } from './checkOptions';\nimport { createStore } from './createStore';\nimport { getAutocompleteSetters } from './getAutocompleteSetters';\nimport { getDefaultProps } from './getDefaultProps';\nimport { getPropGetters } from './getPropGetters';\nimport { getMetadata, injectMetadata } from './metadata';\nimport { onInput } from './onInput';\nimport { stateReducer } from './stateReducer';\nexport function createAutocomplete(options) {\n  checkOptions(options);\n  var subscribers = [];\n  var props = getDefaultProps(options, subscribers);\n  var store = createStore(stateReducer, props, onStoreStateChange);\n  var setters = getAutocompleteSetters({\n    store: store\n  });\n  var propGetters = getPropGetters(_objectSpread({\n    props: props,\n    refresh: refresh,\n    store: store,\n    navigator: props.navigator\n  }, setters));\n  function onStoreStateChange(_ref) {\n    var _state$context, _state$context$algoli;\n    var prevState = _ref.prevState,\n      state = _ref.state;\n    props.onStateChange(_objectSpread({\n      prevState: prevState,\n      state: state,\n      refresh: refresh,\n      navigator: props.navigator\n    }, setters));\n    if (!isAlgoliaInsightsPluginEnabled() && (_state$context = state.context) !== null && _state$context !== void 0 && (_state$context$algoli = _state$context.algoliaInsightsPlugin) !== null && _state$context$algoli !== void 0 && _state$context$algoli.__automaticInsights && props.insights !== false) {\n      var plugin = createAlgoliaInsightsPlugin({\n        __autocomplete_clickAnalytics: false\n      });\n      props.plugins.push(plugin);\n      subscribePlugins([plugin]);\n    }\n  }\n  function refresh() {\n    return onInput(_objectSpread({\n      event: new Event('input'),\n      nextState: {\n        isOpen: store.getState().isOpen\n      },\n      props: props,\n      navigator: props.navigator,\n      query: store.getState().query,\n      refresh: refresh,\n      store: store\n    }, setters));\n  }\n  function subscribePlugins(plugins) {\n    plugins.forEach(function (plugin) {\n      var _plugin$subscribe;\n      return (_plugin$subscribe = plugin.subscribe) === null || _plugin$subscribe === void 0 ? void 0 : _plugin$subscribe.call(plugin, _objectSpread(_objectSpread({}, setters), {}, {\n        navigator: props.navigator,\n        refresh: refresh,\n        onSelect: function onSelect(fn) {\n          subscribers.push({\n            onSelect: fn\n          });\n        },\n        onActive: function onActive(fn) {\n          subscribers.push({\n            onActive: fn\n          });\n        },\n        onResolve: function onResolve(fn) {\n          subscribers.push({\n            onResolve: fn\n          });\n        }\n      }));\n    });\n  }\n  function isAlgoliaInsightsPluginEnabled() {\n    return props.plugins.some(function (plugin) {\n      return plugin.name === 'aa.algoliaInsightsPlugin';\n    });\n  }\n  if (props.insights && !isAlgoliaInsightsPluginEnabled()) {\n    var insightsParams = typeof props.insights === 'boolean' ? {} : props.insights;\n    props.plugins.push(createAlgoliaInsightsPlugin(insightsParams));\n  }\n  subscribePlugins(props.plugins);\n  injectMetadata({\n    metadata: getMetadata({\n      plugins: props.plugins,\n      options: options\n    }),\n    environment: props.environment\n  });\n  return _objectSpread(_objectSpread({\n    refresh: refresh,\n    navigator: props.navigator\n  }, propGetters), setters);\n}","var n=function(t,s,r,e){var u;s[0]=0;for(var h=1;h<s.length;h++){var p=s[h++],a=s[h]?(s[0]|=p?1:2,r[s[h++]]):s[++h];3===p?e[0]=a:4===p?e[1]=Object.assign(e[1]||{},a):5===p?(e[1]=e[1]||{})[s[++h]]=a:6===p?e[1][s[++h]]+=a+\"\":p?(u=t.apply(a,n(t,a,r,[\"\",null])),e.push(u),a[0]?s[0]|=2:(s[h-2]=0,s[h]=u)):e.push(a)}return e},t=new Map;export default function(s){var r=t.get(this);return r||(r=new Map,t.set(this,r)),(r=n(this,r.get(s)||(r.set(s,r=function(n){for(var t,s,r=1,e=\"\",u=\"\",h=[0],p=function(n){1===r&&(n||(e=e.replace(/^\\s*\\n\\s*|\\s*\\n\\s*$/g,\"\")))?h.push(0,n,e):3===r&&(n||e)?(h.push(3,n,e),r=2):2===r&&\"...\"===e&&n?h.push(4,n,0):2===r&&e&&!n?h.push(5,0,!0,e):r>=5&&((e||!n&&5===r)&&(h.push(r,0,e,s),r=6),n&&(h.push(r,n,0,s),r=6)),e=\"\"},a=0;a<n.length;a++){a&&(1===r&&p(),p(a));for(var l=0;l<n[a].length;l++)t=n[a][l],1===r?\"<\"===t?(p(),h=[h],r=3):e+=t:4===r?\"--\"===e&&\">\"===t?(r=1,e=\"\"):e=t+e[0]:u?t===u?u=\"\":e+=t:'\"'===t||\"'\"===t?u=t:\">\"===t?(p(),r=1):r&&(\"=\"===t?(r=5,s=e,e=\"\"):\"/\"===t&&(r<5||\">\"===n[a][l+1])?(p(),3===r&&(h=h[0]),r=h,(h=h[0]).push(2,0,r),r=0):\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t?(p(),r=2):e+=t),3===r&&\"!--\"===e&&(r=4,h=h[0])}return p(),h}(s)),r),arguments,[])).length>1?r:r[0]}\n","export var SearchIcon = function SearchIcon(_ref) {\n  var environment = _ref.environment;\n  var element = environment.document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n  element.setAttribute('class', 'aa-SubmitIcon');\n  element.setAttribute('viewBox', '0 0 24 24');\n  element.setAttribute('width', '20');\n  element.setAttribute('height', '20');\n  element.setAttribute('fill', 'currentColor');\n  var path = environment.document.createElementNS('http://www.w3.org/2000/svg', 'path');\n  path.setAttribute('d', 'M16.041 15.856c-0.034 0.026-0.067 0.055-0.099 0.087s-0.060 0.064-0.087 0.099c-1.258 1.213-2.969 1.958-4.855 1.958-1.933 0-3.682-0.782-4.95-2.050s-2.050-3.017-2.050-4.95 0.782-3.682 2.050-4.95 3.017-2.050 4.95-2.050 3.682 0.782 4.95 2.050 2.050 3.017 2.050 4.95c0 1.886-0.745 3.597-1.959 4.856zM21.707 20.293l-3.675-3.675c1.231-1.54 1.968-3.493 1.968-5.618 0-2.485-1.008-4.736-2.636-6.364s-3.879-2.636-6.364-2.636-4.736 1.008-6.364 2.636-2.636 3.879-2.636 6.364 1.008 4.736 2.636 6.364 3.879 2.636 6.364 2.636c2.125 0 4.078-0.737 5.618-1.968l3.675 3.675c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414z');\n  element.appendChild(path);\n  return element;\n};","export var ClearIcon = function ClearIcon(_ref) {\n  var environment = _ref.environment;\n  var element = environment.document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n  element.setAttribute('class', 'aa-ClearIcon');\n  element.setAttribute('viewBox', '0 0 24 24');\n  element.setAttribute('width', '18');\n  element.setAttribute('height', '18');\n  element.setAttribute('fill', 'currentColor');\n  var path = environment.document.createElementNS('http://www.w3.org/2000/svg', 'path');\n  path.setAttribute('d', 'M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z');\n  element.appendChild(path);\n  return element;\n};","export var LoadingIcon = function LoadingIcon(_ref) {\n  var environment = _ref.environment;\n  var element = environment.document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n  element.setAttribute('class', 'aa-LoadingIcon');\n  element.setAttribute('viewBox', '0 0 100 100');\n  element.setAttribute('width', '20');\n  element.setAttribute('height', '20');\n  element.innerHTML = \"<circle\\n  cx=\\\"50\\\"\\n  cy=\\\"50\\\"\\n  fill=\\\"none\\\"\\n  r=\\\"35\\\"\\n  stroke=\\\"currentColor\\\"\\n  stroke-dasharray=\\\"164.93361431346415 56.97787143782138\\\"\\n  stroke-width=\\\"6\\\"\\n>\\n  <animateTransform\\n    attributeName=\\\"transform\\\"\\n    type=\\\"rotate\\\"\\n    repeatCount=\\\"indefinite\\\"\\n    dur=\\\"1s\\\"\\n    values=\\\"0 50 50;90 50 50;180 50 50;360 50 50\\\"\\n    keyTimes=\\\"0;0.40;0.65;1\\\"\\n  />\\n</circle>\";\n  return element;\n};","/* eslint-disable */\n\n/**\n * Touch-specific event aliases\n *\n * See https://w3c.github.io/touch-events/#extensions-to-the-globaleventhandlers-mixin\n */\nvar TOUCH_EVENTS_ALIASES = ['ontouchstart', 'ontouchend', 'ontouchmove', 'ontouchcancel'];\n\n/*\n * Taken from Preact\n *\n * See https://github.com/preactjs/preact/blob/6ab49d9020740127577bf4af66bf63f4af7f9fee/src/diff/props.js#L58-L151\n */\n\nfunction setStyle(style, key, value) {\n  if (value === null) {\n    style[key] = '';\n  } else if (typeof value !== 'number') {\n    style[key] = value;\n  } else {\n    style[key] = value + 'px';\n  }\n}\n\n/**\n * Proxy an event to hooked event handlers\n */\nfunction eventProxy(event) {\n  this._listeners[event.type](event);\n}\n\n/**\n * Set a property value on a DOM node\n */\nexport function setProperty(dom, name, value) {\n  var useCapture;\n  var nameLower;\n  var oldValue = dom[name];\n  if (name === 'style') {\n    if (typeof value == 'string') {\n      dom.style = value;\n    } else {\n      if (value === null) {\n        dom.style = '';\n      } else {\n        for (name in value) {\n          if (!oldValue || value[name] !== oldValue[name]) {\n            setStyle(dom.style, name, value[name]);\n          }\n        }\n      }\n    }\n  }\n  // Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n  else if (name[0] === 'o' && name[1] === 'n') {\n    useCapture = name !== (name = name.replace(/Capture$/, ''));\n    nameLower = name.toLowerCase();\n    if (nameLower in dom || TOUCH_EVENTS_ALIASES.includes(nameLower)) name = nameLower;\n    name = name.slice(2);\n    if (!dom._listeners) dom._listeners = {};\n    dom._listeners[name] = value;\n    if (value) {\n      if (!oldValue) dom.addEventListener(name, eventProxy, useCapture);\n    } else {\n      dom.removeEventListener(name, eventProxy, useCapture);\n    }\n  } else if (name !== 'list' && name !== 'tagName' &&\n  // HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n  // setAttribute\n  name !== 'form' && name !== 'type' && name !== 'size' && name !== 'download' && name !== 'href' && name in dom) {\n    dom[name] = value == null ? '' : value;\n  } else if (typeof value != 'function' && name !== 'dangerouslySetInnerHTML') {\n    if (value == null || value === false &&\n    // ARIA-attributes have a different notion of boolean values.\n    // The value `false` is different from the attribute not\n    // existing on the DOM, so we can't remove it. For non-boolean\n    // ARIA-attributes we could treat false as a removal, but the\n    // amount of exceptions would cost us too many bytes. On top of\n    // that other VDOM frameworks also always stringify `false`.\n    !/^ar/.test(name)) {\n      dom.removeAttribute(name);\n    } else {\n      dom.setAttribute(name, value);\n    }\n  }\n}\nfunction getNormalizedName(name) {\n  switch (name) {\n    case 'onChange':\n      return 'onInput';\n    // see: https://github.com/preactjs/preact/issues/1978\n    case 'onCompositionEnd':\n      return 'oncompositionend';\n    default:\n      return name;\n  }\n}\nexport function setProperties(dom, props) {\n  for (var name in props) {\n    setProperty(dom, getNormalizedName(name), props[name]);\n  }\n}\nexport function setPropertiesWithoutEvents(dom, props) {\n  for (var name in props) {\n    if (!(name[0] === 'o' && name[1] === 'n')) {\n      setProperty(dom, getNormalizedName(name), props[name]);\n    }\n  }\n}","var _excluded = [\"children\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { setProperties } from './utils';\nexport function getCreateDomElement(environment) {\n  return function createDomElement(tagName, _ref) {\n    var _ref$children = _ref.children,\n      children = _ref$children === void 0 ? [] : _ref$children,\n      props = _objectWithoutProperties(_ref, _excluded);\n    var element = environment.document.createElement(tagName);\n    setProperties(element, props);\n    element.append.apply(element, _toConsumableArray(children));\n    return element;\n  };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"autocompleteScopeApi\", \"environment\", \"classNames\", \"getInputProps\", \"getInputPropsCore\", \"isDetached\", \"state\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { getCreateDomElement } from '../getCreateDomElement';\nimport { setProperties } from '../utils';\nexport var Input = function Input(_ref) {\n  var autocompleteScopeApi = _ref.autocompleteScopeApi,\n    environment = _ref.environment,\n    classNames = _ref.classNames,\n    getInputProps = _ref.getInputProps,\n    getInputPropsCore = _ref.getInputPropsCore,\n    isDetached = _ref.isDetached,\n    state = _ref.state,\n    props = _objectWithoutProperties(_ref, _excluded);\n  var createDomElement = getCreateDomElement(environment);\n  var element = createDomElement('input', props);\n  var inputProps = getInputProps(_objectSpread({\n    state: state,\n    props: getInputPropsCore({\n      inputElement: element\n    }),\n    inputElement: element\n  }, autocompleteScopeApi));\n  setProperties(element, _objectSpread(_objectSpread({}, inputProps), {}, {\n    onKeyDown: function onKeyDown(event) {\n      // In detached mode we don't want to close the panel when hitting `Tab`.\n      if (isDetached && event.key === 'Tab') {\n        return;\n      }\n      inputProps.onKeyDown(event);\n    }\n  }));\n  return element;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { ClearIcon, Input, LoadingIcon, SearchIcon } from './elements';\nimport { getCreateDomElement } from './getCreateDomElement';\nimport { setProperties } from './utils';\nexport function createAutocompleteDom(_ref) {\n  var autocomplete = _ref.autocomplete,\n    autocompleteScopeApi = _ref.autocompleteScopeApi,\n    classNames = _ref.classNames,\n    environment = _ref.environment,\n    isDetached = _ref.isDetached,\n    _ref$placeholder = _ref.placeholder,\n    placeholder = _ref$placeholder === void 0 ? 'Search' : _ref$placeholder,\n    propGetters = _ref.propGetters,\n    setIsModalOpen = _ref.setIsModalOpen,\n    state = _ref.state,\n    translations = _ref.translations;\n  var createDomElement = getCreateDomElement(environment);\n  var rootProps = propGetters.getRootProps(_objectSpread({\n    state: state,\n    props: autocomplete.getRootProps({})\n  }, autocompleteScopeApi));\n  var root = createDomElement('div', _objectSpread({\n    class: classNames.root\n  }, rootProps));\n  var detachedContainer = createDomElement('div', {\n    class: classNames.detachedContainer,\n    onMouseDown: function onMouseDown(event) {\n      event.stopPropagation();\n    }\n  });\n  var detachedOverlay = createDomElement('div', {\n    class: classNames.detachedOverlay,\n    children: [detachedContainer],\n    onMouseDown: function onMouseDown() {\n      setIsModalOpen(false);\n      autocomplete.setIsOpen(false);\n    }\n  });\n  var labelProps = propGetters.getLabelProps(_objectSpread({\n    state: state,\n    props: autocomplete.getLabelProps({})\n  }, autocompleteScopeApi));\n  var submitButton = createDomElement('button', {\n    class: classNames.submitButton,\n    type: 'submit',\n    title: translations.submitButtonTitle,\n    children: [SearchIcon({\n      environment: environment\n    })]\n  });\n  // @MAJOR Remove the label wrapper for the submit button.\n  // The submit button is sufficient for accessibility purposes, and\n  // wrapping it with the label actually makes it less accessible (see CR-6077).\n  var label = createDomElement('label', _objectSpread({\n    class: classNames.label,\n    children: [submitButton],\n    ariaLabel: translations.submitButtonTitle\n  }, labelProps));\n  var clearButton = createDomElement('button', {\n    class: classNames.clearButton,\n    type: 'reset',\n    title: translations.clearButtonTitle,\n    children: [ClearIcon({\n      environment: environment\n    })]\n  });\n  var loadingIndicator = createDomElement('div', {\n    class: classNames.loadingIndicator,\n    children: [LoadingIcon({\n      environment: environment\n    })]\n  });\n  var input = Input({\n    class: classNames.input,\n    environment: environment,\n    state: state,\n    getInputProps: propGetters.getInputProps,\n    getInputPropsCore: autocomplete.getInputProps,\n    autocompleteScopeApi: autocompleteScopeApi,\n    isDetached: isDetached\n  });\n  var inputWrapperPrefix = createDomElement('div', {\n    class: classNames.inputWrapperPrefix,\n    children: [label, loadingIndicator]\n  });\n  var inputWrapperSuffix = createDomElement('div', {\n    class: classNames.inputWrapperSuffix,\n    children: [clearButton]\n  });\n  var inputWrapper = createDomElement('div', {\n    class: classNames.inputWrapper,\n    children: [input]\n  });\n  var formProps = propGetters.getFormProps(_objectSpread({\n    state: state,\n    props: autocomplete.getFormProps({\n      inputElement: input\n    })\n  }, autocompleteScopeApi));\n  var form = createDomElement('form', _objectSpread({\n    class: classNames.form,\n    children: [inputWrapperPrefix, inputWrapper, inputWrapperSuffix]\n  }, formProps));\n  var panelProps = propGetters.getPanelProps(_objectSpread({\n    state: state,\n    props: autocomplete.getPanelProps({})\n  }, autocompleteScopeApi));\n  var panel = createDomElement('div', _objectSpread({\n    class: classNames.panel\n  }, panelProps));\n  var detachedSearchButtonQuery = createDomElement('div', {\n    class: classNames.detachedSearchButtonQuery,\n    textContent: state.query\n  });\n  var detachedSearchButtonPlaceholder = createDomElement('div', {\n    class: classNames.detachedSearchButtonPlaceholder,\n    hidden: Boolean(state.query),\n    textContent: placeholder\n  });\n  if (process.env.NODE_ENV === 'test') {\n    setProperties(panel, {\n      'data-testid': 'panel'\n    });\n  }\n  if (isDetached) {\n    var detachedSearchButtonIcon = createDomElement('div', {\n      class: classNames.detachedSearchButtonIcon,\n      children: [SearchIcon({\n        environment: environment\n      })]\n    });\n    var detachedSearchButton = createDomElement('button', {\n      type: 'button',\n      class: classNames.detachedSearchButton,\n      title: translations.detachedSearchButtonTitle,\n      id: labelProps.id,\n      onClick: function onClick() {\n        setIsModalOpen(true);\n      },\n      children: [detachedSearchButtonIcon, detachedSearchButtonPlaceholder, detachedSearchButtonQuery]\n    });\n    var detachedCancelButton = createDomElement('button', {\n      type: 'button',\n      class: classNames.detachedCancelButton,\n      textContent: translations.detachedCancelButtonText,\n      // Prevent `onTouchStart` from closing the panel\n      // since it should be initiated by `onClick` only\n      onTouchStart: function onTouchStart(event) {\n        event.stopPropagation();\n      },\n      onClick: function onClick() {\n        autocomplete.setIsOpen(false);\n        setIsModalOpen(false);\n      }\n    });\n    var detachedFormContainer = createDomElement('div', {\n      class: classNames.detachedFormContainer,\n      children: [form, detachedCancelButton]\n    });\n    detachedContainer.appendChild(detachedFormContainer);\n    root.appendChild(detachedSearchButton);\n  } else {\n    root.appendChild(form);\n  }\n  return {\n    detachedContainer: detachedContainer,\n    detachedOverlay: detachedOverlay,\n    detachedSearchButtonQuery: detachedSearchButtonQuery,\n    detachedSearchButtonPlaceholder: detachedSearchButtonPlaceholder,\n    inputWrapper: inputWrapper,\n    input: input,\n    root: root,\n    form: form,\n    label: label,\n    submitButton: submitButton,\n    clearButton: clearButton,\n    loadingIndicator: loadingIndicator,\n    panel: panel\n  };\n}","/** Normal hydration that attaches to a DOM tree but does not diff it. */\nexport const MODE_HYDRATE = 1 << 5;\n/** Signifies this VNode suspended on the previous render */\nexport const MODE_SUSPENDED = 1 << 7;\n/** Indicates that this node needs to be inserted while patching children */\nexport const INSERT_VNODE = 1 << 16;\n/** Indicates a VNode has been matched with another VNode in the diff */\nexport const MATCHED = 1 << 17;\n\n/** Reset all mode flags */\nexport const RESET_MODE = ~(MODE_HYDRATE | MODE_SUSPENDED);\n\nexport const EMPTY_OBJ = /** @type {any} */ ({});\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL =\n\t/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { EMPTY_ARR } from './constants';\n\nexport const isArray = Array.isArray;\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-expect-error We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {preact.ContainerNode} node The node to remove\n */\nexport function removeNode(node) {\n\tif (node && node.parentNode) node.parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {VNode[\"type\"]} type The node name or Component constructor for this\n * virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array<import('.').ComponentChildren>} [children] The children of the\n * virtual node\n * @returns {VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\t/** @type {VNode} */\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original,\n\t\t_index: -1,\n\t\t_flags: 0\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor == undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\nimport { MODE_HYDRATE } from './constants';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function BaseComponent(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nBaseComponent.prototype.setState = function (update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) {\n\t\t\tthis._stateCallbacks.push(callback);\n\t\t}\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nBaseComponent.prototype.forceUpdate = function (callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {ComponentChildren | void}\n */\nBaseComponent.prototype.render = Fragment;\n\n/**\n * @param {VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._index + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet oldVNode = component._vnode,\n\t\toldDom = oldVNode._dom,\n\t\tcommitQueue = [],\n\t\trefQueue = [];\n\n\tif (component._parentDom) {\n\t\tconst newVNode = assign({}, oldVNode);\n\t\tnewVNode._original = oldVNode._original + 1;\n\t\tif (options.vnode) options.vnode(newVNode);\n\n\t\tdiff(\n\t\t\tcomponent._parentDom,\n\t\t\tnewVNode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tcomponent._parentDom.namespaceURI,\n\t\t\toldVNode._flags & MODE_HYDRATE ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(oldVNode) : oldDom,\n\t\t\t!!(oldVNode._flags & MODE_HYDRATE),\n\t\t\trefQueue\n\t\t);\n\n\t\tnewVNode._original = oldVNode._original;\n\t\tnewVNode._parent._children[newVNode._index] = newVNode;\n\t\tcommitRoot(commitQueue, newVNode, refQueue);\n\n\t\tif (newVNode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(newVNode);\n\t\t}\n\t}\n}\n\n/**\n * @param {VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array<Component>}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/**\n * Enqueue a rerender of a component\n * @param {Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/**\n * @param {Component} a\n * @param {Component} b\n */\nconst depthSort = (a, b) => a._vnode._depth - b._vnode._depth;\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet c;\n\trerenderQueue.sort(depthSort);\n\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t// process() calls from getting scheduled while `queue` is still being consumed.\n\twhile ((c = rerenderQueue.shift())) {\n\t\tif (c._dirty) {\n\t\t\tlet renderQueueLength = rerenderQueue.length;\n\t\t\trenderComponent(c);\n\t\t\tif (rerenderQueue.length > renderQueueLength) {\n\t\t\t\t// When i.e. rerendering a provider additional new items can be injected, we want to\n\t\t\t\t// keep the order from top to bottom with those new items so we can handle them in a\n\t\t\t\t// single pass\n\t\t\t\trerenderQueue.sort(depthSort);\n\t\t\t}\n\t\t}\n\t}\n\tprocess._rerenderCount = 0;\n}\n\nprocess._rerenderCount = 0;\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value == null ? '' : value);\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else if (typeof value != 'number' || IS_NON_DIMENSIONAL.test(key)) {\n\t\tstyle[key] = value;\n\t} else {\n\t\tstyle[key] = value + 'px';\n\t}\n}\n\n// A logical clock to solve issues like https://github.com/preactjs/preact/issues/3927.\n// When the DOM performs an event it leaves micro-ticks in between bubbling up which means that\n// an event can trigger on a newly reated DOM-node while the event bubbles up.\n//\n// Originally inspired by Vue\n// (https://github.com/vuejs/core/blob/caeb8a68811a1b0f79/packages/runtime-dom/src/modules/events.ts#L90-L101),\n// but modified to use a logical clock instead of Date.now() in case event handlers get attached\n// and events get dispatched during the same millisecond.\n//\n// The clock is incremented after each new event dispatch. This allows 1 000 000 new events\n// per second for over 280 years before the value reaches Number.MAX_SAFE_INTEGER (2**53 - 1).\nlet eventClock = 0;\n\n/**\n * Set a property value on a DOM node\n * @param {PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {string} namespace Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, namespace) {\n\tlet useCapture;\n\n\to: if (name === 'style') {\n\t\tif (typeof value == 'string') {\n\t\t\tdom.style.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\tdom.style.cssText = oldValue = '';\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (name in oldValue) {\n\t\t\t\t\tif (!(value && name in value)) {\n\t\t\t\t\t\tsetStyle(dom.style, name, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (name in value) {\n\t\t\t\t\tif (!oldValue || value[name] !== oldValue[name]) {\n\t\t\t\t\t\tsetStyle(dom.style, name, value[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tuseCapture =\n\t\t\tname !== (name = name.replace(/(PointerCapture)$|Capture$/i, '$1'));\n\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (\n\t\t\tname.toLowerCase() in dom ||\n\t\t\tname === 'onFocusOut' ||\n\t\t\tname === 'onFocusIn'\n\t\t)\n\t\t\tname = name.toLowerCase().slice(2);\n\t\telse name = name.slice(2);\n\n\t\tif (!dom._listeners) dom._listeners = {};\n\t\tdom._listeners[name + useCapture] = value;\n\n\t\tif (value) {\n\t\t\tif (!oldValue) {\n\t\t\t\tvalue._attached = eventClock;\n\t\t\t\tdom.addEventListener(\n\t\t\t\t\tname,\n\t\t\t\t\tuseCapture ? eventProxyCapture : eventProxy,\n\t\t\t\t\tuseCapture\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tvalue._attached = oldValue._attached;\n\t\t\t}\n\t\t} else {\n\t\t\tdom.removeEventListener(\n\t\t\t\tname,\n\t\t\t\tuseCapture ? eventProxyCapture : eventProxy,\n\t\t\t\tuseCapture\n\t\t\t);\n\t\t}\n\t} else {\n\t\tif (namespace == 'http://www.w3.org/2000/svg') {\n\t\t\t// Normalize incorrect prop usage for SVG:\n\t\t\t// - xlink:href / xlinkHref --> href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname != 'width' &&\n\t\t\tname != 'height' &&\n\t\t\tname != 'href' &&\n\t\t\tname != 'list' &&\n\t\t\tname != 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname != 'tabIndex' &&\n\t\t\tname != 'download' &&\n\t\t\tname != 'rowSpan' &&\n\t\t\tname != 'colSpan' &&\n\t\t\tname != 'role' &&\n\t\t\tname != 'popover' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// aria- and data- attributes have no boolean representation.\n\t\t// A `false` value is different from the attribute not being\n\t\t// present, so we can't remove it. For non-boolean aria\n\t\t// attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost too many bytes. On top of\n\t\t// that other frameworks generally stringify `false`.\n\n\t\tif (typeof value == 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (value != null && (value !== false || name[4] === '-')) {\n\t\t\tdom.setAttribute(name, name == 'popover' && value == true ? '' : value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Create an event proxy function.\n * @param {boolean} useCapture Is the event handler for the capture phase.\n * @private\n */\nfunction createEventProxy(useCapture) {\n\t/**\n\t * Proxy an event to hooked event handlers\n\t * @param {PreactEvent} e The event object from the browser\n\t * @private\n\t */\n\treturn function (e) {\n\t\tif (this._listeners) {\n\t\t\tconst eventHandler = this._listeners[e.type + useCapture];\n\t\t\tif (e._dispatched == null) {\n\t\t\t\te._dispatched = eventClock++;\n\n\t\t\t\t// When `e._dispatched` is smaller than the time when the targeted event\n\t\t\t\t// handler was attached we know we have bubbled up to an element that was added\n\t\t\t\t// during patching the DOM.\n\t\t\t} else if (e._dispatched < eventHandler._attached) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn eventHandler(options.event ? options.event(e) : e);\n\t\t}\n\t};\n}\n\nconst eventProxy = createEventProxy(false);\nconst eventProxyCapture = createEventProxy(true);\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR, INSERT_VNODE, MATCHED } from '../constants';\nimport { isArray } from '../util';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {PreactElement} parentDom The DOM element whose children are being\n * diffed\n * @param {ComponentChildren[]} renderResult\n * @param {VNode} newParentVNode The new virtual node whose children should be\n * diff'ed against oldParentVNode\n * @param {VNode} oldParentVNode The old virtual node whose children should be\n * diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by\n * getChildContext\n * @param {string} namespace Current namespace of the DOM node (HTML, SVG, or MathML)\n * @param {Array<PreactElement>} excessDomChildren\n * @param {Array<Component>} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {PreactElement} oldDom The current attached DOM element any new dom\n * elements should be placed around. Likely `null` on first render (except when\n * hydrating). Can be a sibling DOM element when diffing Fragments that have\n * siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tnamespace,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating,\n\trefQueue\n) {\n\tlet i,\n\t\t/** @type {VNode} */\n\t\toldVNode,\n\t\t/** @type {VNode} */\n\t\tchildVNode,\n\t\t/** @type {PreactElement} */\n\t\tnewDom,\n\t\t/** @type {PreactElement} */\n\t\tfirstChildDom;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\t/** @type {VNode[]} */\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet newChildrenLength = renderResult.length;\n\n\tnewParentVNode._nextDom = oldDom;\n\tconstructNewChildrenArray(newParentVNode, renderResult, oldChildren);\n\toldDom = newParentVNode._nextDom;\n\n\tfor (i = 0; i < newChildrenLength; i++) {\n\t\tchildVNode = newParentVNode._children[i];\n\t\tif (childVNode == null) continue;\n\n\t\t// At this point, constructNewChildrenArray has assigned _index to be the\n\t\t// matchingIndex for this VNode's oldVNode (or -1 if there is no oldVNode).\n\t\tif (childVNode._index === -1) {\n\t\t\toldVNode = EMPTY_OBJ;\n\t\t} else {\n\t\t\toldVNode = oldChildren[childVNode._index] || EMPTY_OBJ;\n\t\t}\n\n\t\t// Update childVNode._index to its final index\n\t\tchildVNode._index = i;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tnamespace,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating,\n\t\t\trefQueue\n\t\t);\n\n\t\t// Adjust DOM nodes\n\t\tnewDom = childVNode._dom;\n\t\tif (childVNode.ref && oldVNode.ref != childVNode.ref) {\n\t\t\tif (oldVNode.ref) {\n\t\t\t\tapplyRef(oldVNode.ref, null, childVNode);\n\t\t\t}\n\t\t\trefQueue.push(\n\t\t\t\tchildVNode.ref,\n\t\t\t\tchildVNode._component || newDom,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t}\n\n\t\tif (firstChildDom == null && newDom != null) {\n\t\t\tfirstChildDom = newDom;\n\t\t}\n\n\t\tif (\n\t\t\tchildVNode._flags & INSERT_VNODE ||\n\t\t\toldVNode._children === childVNode._children\n\t\t) {\n\t\t\toldDom = insert(childVNode, oldDom, parentDom);\n\t\t} else if (\n\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\tchildVNode._nextDom !== undefined\n\t\t) {\n\t\t\t// Since Fragments or components that return Fragment like VNodes can\n\t\t\t// contain multiple DOM nodes as the same level, continue the diff from\n\t\t\t// the sibling of last DOM child of this child VNode\n\t\t\toldDom = childVNode._nextDom;\n\t\t} else if (newDom) {\n\t\t\toldDom = newDom.nextSibling;\n\t\t}\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because it\n\t\t// is only used by `diffChildren` to determine where to resume the diff\n\t\t// after diffing Components and Fragments. Once we store it the nextDOM\n\t\t// local var, we can clean up the property. Also prevents us hanging on to\n\t\t// DOM nodes that may have been unmounted.\n\t\tchildVNode._nextDom = undefined;\n\n\t\t// Unset diffing flags\n\t\tchildVNode._flags &= ~(INSERT_VNODE | MATCHED);\n\t}\n\n\t// TODO: With new child diffing algo, consider alt ways to diff Fragments.\n\t// Such as dropping oldDom and moving fragments in place\n\t//\n\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t// _nextDom property to the nextSibling of its last child DOM node.\n\t//\n\t// `oldDom` contains the correct value here because if the last child\n\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t// node's nextSibling.\n\tnewParentVNode._nextDom = oldDom;\n\tnewParentVNode._dom = firstChildDom;\n}\n\n/**\n * @param {VNode} newParentVNode\n * @param {ComponentChildren[]} renderResult\n * @param {VNode[]} oldChildren\n */\nfunction constructNewChildrenArray(newParentVNode, renderResult, oldChildren) {\n\t/** @type {number} */\n\tlet i;\n\t/** @type {VNode} */\n\tlet childVNode;\n\t/** @type {VNode} */\n\tlet oldVNode;\n\n\tconst newChildrenLength = renderResult.length;\n\tlet oldChildrenLength = oldChildren.length,\n\t\tremainingOldChildren = oldChildrenLength;\n\n\tlet skew = 0;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < newChildrenLength; i++) {\n\t\t// @ts-expect-error We are reusing the childVNode variable to hold both the\n\t\t// pre and post normalized childVNode\n\t\tchildVNode = renderResult[i];\n\n\t\tif (\n\t\t\tchildVNode == null ||\n\t\t\ttypeof childVNode == 'boolean' ||\n\t\t\ttypeof childVNode == 'function'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t\tcontinue;\n\t\t}\n\t\t// If this newVNode is being reused (e.g. <div>{reuse}{reuse}</div>) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint' ||\n\t\t\tchildVNode.constructor == String\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode.constructor === undefined && childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t//   const reuse = <div />\n\t\t\t//   <div>{reuse}<span />{reuse}</div>\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tchildVNode.ref ? childVNode.ref : null,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\tconst skewedIndex = i + skew;\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Temporarily store the matchingIndex on the _index property so we can pull\n\t\t// out the oldVNode in diffChildren. We'll override this to the VNode's\n\t\t// final index after using this property to get the oldVNode\n\t\tconst matchingIndex = (childVNode._index = findMatchingIndex(\n\t\t\tchildVNode,\n\t\t\toldChildren,\n\t\t\tskewedIndex,\n\t\t\tremainingOldChildren\n\t\t));\n\n\t\toldVNode = null;\n\t\tif (matchingIndex !== -1) {\n\t\t\toldVNode = oldChildren[matchingIndex];\n\t\t\tremainingOldChildren--;\n\t\t\tif (oldVNode) {\n\t\t\t\toldVNode._flags |= MATCHED;\n\t\t\t}\n\t\t}\n\n\t\t// Here, we define isMounting for the purposes of the skew diffing\n\t\t// algorithm. Nodes that are unsuspending are considered mounting and we detect\n\t\t// this by checking if oldVNode._original === null\n\t\tconst isMounting = oldVNode == null || oldVNode._original === null;\n\n\t\tif (isMounting) {\n\t\t\tif (matchingIndex == -1) {\n\t\t\t\tskew--;\n\t\t\t}\n\n\t\t\t// If we are mounting a DOM VNode, mark it for insertion\n\t\t\tif (typeof childVNode.type != 'function') {\n\t\t\t\tchildVNode._flags |= INSERT_VNODE;\n\t\t\t}\n\t\t} else if (matchingIndex !== skewedIndex) {\n\t\t\t// When we move elements around i.e. [0, 1, 2] --> [1, 0, 2]\n\t\t\t// --> we diff 1, we find it at position 1 while our skewed index is 0 and our skew is 0\n\t\t\t//     we set the skew to 1 as we found an offset.\n\t\t\t// --> we diff 0, we find it at position 0 while our skewed index is at 2 and our skew is 1\n\t\t\t//     this makes us increase the skew again.\n\t\t\t// --> we diff 2, we find it at position 2 while our skewed index is at 4 and our skew is 2\n\t\t\t//\n\t\t\t// this becomes an optimization question where currently we see a 1 element offset as an insertion\n\t\t\t// or deletion i.e. we optimize for [0, 1, 2] --> [9, 0, 1, 2]\n\t\t\t// while a more than 1 offset we see as a swap.\n\t\t\t// We could probably build heuristics for having an optimized course of action here as well, but\n\t\t\t// might go at the cost of some bytes.\n\t\t\t//\n\t\t\t// If we wanted to optimize for i.e. only swaps we'd just do the last two code-branches and have\n\t\t\t// only the first item be a re-scouting and all the others fall in their skewed counter-part.\n\t\t\t// We could also further optimize for swaps\n\t\t\tif (matchingIndex == skewedIndex - 1) {\n\t\t\t\tskew--;\n\t\t\t} else if (matchingIndex == skewedIndex + 1) {\n\t\t\t\tskew++;\n\t\t\t} else {\n\t\t\t\tif (matchingIndex > skewedIndex) {\n\t\t\t\t\tskew--;\n\t\t\t\t} else {\n\t\t\t\t\tskew++;\n\t\t\t\t}\n\n\t\t\t\t// Move this VNode's DOM if the original index (matchingIndex) doesn't\n\t\t\t\t// match the new skew index (i + new skew)\n\t\t\t\t// In the former two branches we know that it matches after skewing\n\t\t\t\tchildVNode._flags |= INSERT_VNODE;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove remaining oldChildren if there are any. Loop forwards so that as we\n\t// unmount DOM from the beginning of the oldChildren, we can adjust oldDom to\n\t// point to the next child, which needs to be the first DOM node that won't be\n\t// unmounted.\n\tif (remainingOldChildren) {\n\t\tfor (i = 0; i < oldChildrenLength; i++) {\n\t\t\toldVNode = oldChildren[i];\n\t\t\tif (oldVNode != null && (oldVNode._flags & MATCHED) === 0) {\n\t\t\t\tif (oldVNode._dom == newParentVNode._nextDom) {\n\t\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldVNode);\n\t\t\t\t}\n\n\t\t\t\tunmount(oldVNode, oldVNode);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * @param {VNode} parentVNode\n * @param {PreactElement} oldDom\n * @param {PreactElement} parentDom\n * @returns {PreactElement}\n */\nfunction insert(parentVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\n\tif (typeof parentVNode.type == 'function') {\n\t\tlet children = parentVNode._children;\n\t\tfor (let i = 0; children && i < children.length; i++) {\n\t\t\tif (children[i]) {\n\t\t\t\t// If we enter this code path on sCU bailout, where we copy\n\t\t\t\t// oldVNode._children to newVNode._children, we need to update the old\n\t\t\t\t// children's _parent pointer to point to the newVNode (parentVNode\n\t\t\t\t// here).\n\t\t\t\tchildren[i]._parent = parentVNode;\n\t\t\t\toldDom = insert(children[i], oldDom, parentDom);\n\t\t\t}\n\t\t}\n\n\t\treturn oldDom;\n\t} else if (parentVNode._dom != oldDom) {\n\t\tif (oldDom && parentVNode.type && !parentDom.contains(oldDom)) {\n\t\t\toldDom = getDomSibling(parentVNode);\n\t\t}\n\t\tparentDom.insertBefore(parentVNode._dom, oldDom || null);\n\t\toldDom = parentVNode._dom;\n\t}\n\n\tdo {\n\t\toldDom = oldDom && oldDom.nextSibling;\n\t} while (oldDom != null && oldDom.nodeType === 8);\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {ComponentChildren} children The unflattened children of a virtual\n * node\n * @returns {VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\n/**\n * @param {VNode} childVNode\n * @param {VNode[]} oldChildren\n * @param {number} skewedIndex\n * @param {number} remainingOldChildren\n * @returns {number}\n */\nfunction findMatchingIndex(\n\tchildVNode,\n\toldChildren,\n\tskewedIndex,\n\tremainingOldChildren\n) {\n\tconst key = childVNode.key;\n\tconst type = childVNode.type;\n\tlet x = skewedIndex - 1;\n\tlet y = skewedIndex + 1;\n\tlet oldVNode = oldChildren[skewedIndex];\n\n\t// We only need to perform a search if there are more children\n\t// (remainingOldChildren) to search. However, if the oldVNode we just looked\n\t// at skewedIndex was not already used in this diff, then there must be at\n\t// least 1 other (so greater than 1) remainingOldChildren to attempt to match\n\t// against. So the following condition checks that ensuring\n\t// remainingOldChildren > 1 if the oldVNode is not already used/matched. Else\n\t// if the oldVNode was null or matched, then there could needs to be at least\n\t// 1 (aka `remainingOldChildren > 0`) children to find and compare against.\n\tlet shouldSearch =\n\t\tremainingOldChildren >\n\t\t(oldVNode != null && (oldVNode._flags & MATCHED) === 0 ? 1 : 0);\n\n\tif (\n\t\toldVNode === null ||\n\t\t(oldVNode &&\n\t\t\tkey == oldVNode.key &&\n\t\t\ttype === oldVNode.type &&\n\t\t\t(oldVNode._flags & MATCHED) === 0)\n\t) {\n\t\treturn skewedIndex;\n\t} else if (shouldSearch) {\n\t\twhile (x >= 0 || y < oldChildren.length) {\n\t\t\tif (x >= 0) {\n\t\t\t\toldVNode = oldChildren[x];\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\t(oldVNode._flags & MATCHED) === 0 &&\n\t\t\t\t\tkey == oldVNode.key &&\n\t\t\t\t\ttype === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\treturn x;\n\t\t\t\t}\n\t\t\t\tx--;\n\t\t\t}\n\n\t\t\tif (y < oldChildren.length) {\n\t\t\t\toldVNode = oldChildren[y];\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\t(oldVNode._flags & MATCHED) === 0 &&\n\t\t\t\t\tkey == oldVNode.key &&\n\t\t\t\t\ttype === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\treturn y;\n\t\t\t\t}\n\t\t\t\ty++;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn -1;\n}\n","import {\n\tEMPTY_OBJ,\n\tMODE_HYDRATE,\n\tMODE_SUSPENDED,\n\tRESET_MODE\n} from '../constants';\nimport { BaseComponent, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { setProperty } from './props';\nimport { assign, isArray, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {PreactElement} parentDom The parent of the DOM element\n * @param {VNode} newVNode The new virtual node\n * @param {VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by\n * getChildContext\n * @param {string} namespace Current namespace of the DOM node (HTML, SVG, or MathML)\n * @param {Array<PreactElement>} excessDomChildren\n * @param {Array<Component>} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {PreactElement} oldDom The current attached DOM element any new dom\n * elements should be placed around. Likely `null` on first render (except when\n * hydrating). Can be a sibling DOM element when diffing Fragments that have\n * siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tnamespace,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating,\n\trefQueue\n) {\n\t/** @type {any} */\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._flags & MODE_SUSPENDED) {\n\t\tisHydrating = !!(oldVNode._flags & MODE_HYDRATE);\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\touter: if (typeof newType == 'function') {\n\t\ttry {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\t\t\tconst isClassComponent =\n\t\t\t\t'prototype' in newType && newType.prototype.render;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif (isClassComponent) {\n\t\t\t\t\t// @ts-expect-error The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-expect-error Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new BaseComponent(\n\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (isClassComponent && c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\n\t\t\tif (isClassComponent && newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\t\t\tc._vnode = newVNode;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tisClassComponent &&\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (isClassComponent && c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tisClassComponent &&\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!c._force &&\n\t\t\t\t\t((c.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\t\tnewVNode._original === oldVNode._original)\n\t\t\t\t) {\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) {\n\t\t\t\t\t\t// When we are dealing with a bail because of sCU we have to update\n\t\t\t\t\t\t// the props, state and dirty-state.\n\t\t\t\t\t\t// when we are dealing with strict-equality we don't as the child could still\n\t\t\t\t\t\t// be dirtied see #3883\n\t\t\t\t\t\tc.props = newProps;\n\t\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t\tc._dirty = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.some(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t\t}\n\t\t\t\t\tc._stateCallbacks = [];\n\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (isClassComponent && c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._parentDom = parentDom;\n\t\t\tc._force = false;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif (isClassComponent) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t}\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty && ++count < 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (isClassComponent && !isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tisArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnamespace,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating,\n\t\t\t\trefQueue\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._flags &= RESET_MODE;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tnewVNode._original = null;\n\t\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\t\tnewVNode._flags |= isHydrating\n\t\t\t\t\t? MODE_HYDRATE | MODE_SUSPENDED\n\t\t\t\t\t: MODE_HYDRATE;\n\n\t\t\t\twhile (oldDom && oldDom.nodeType === 8 && oldDom.nextSibling) {\n\t\t\t\t\toldDom = oldDom.nextSibling;\n\t\t\t\t}\n\t\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t\tnewVNode._dom = oldDom;\n\t\t\t} else {\n\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t}\n\t\t\toptions._catchError(e, newVNode, oldVNode);\n\t\t}\n\t} else if (\n\t\texcessDomChildren == null &&\n\t\tnewVNode._original === oldVNode._original\n\t) {\n\t\tnewVNode._children = oldVNode._children;\n\t\tnewVNode._dom = oldVNode._dom;\n\t} else {\n\t\tnewVNode._dom = diffElementNodes(\n\t\t\toldVNode._dom,\n\t\t\tnewVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tnamespace,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\tisHydrating,\n\t\t\trefQueue\n\t\t);\n\t}\n\n\tif ((tmp = options.diffed)) tmp(newVNode);\n}\n\n/**\n * @param {Array<Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {VNode} root\n */\nexport function commitRoot(commitQueue, root, refQueue) {\n\troot._nextDom = undefined;\n\n\tfor (let i = 0; i < refQueue.length; i++) {\n\t\tapplyRef(refQueue[i], refQueue[++i], refQueue[++i]);\n\t}\n\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-expect-error Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-expect-error See above comment on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {PreactElement} dom The DOM element representing the virtual nodes\n * being diffed\n * @param {VNode} newVNode The new virtual node\n * @param {VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {string} namespace Current namespace of the DOM node (HTML, SVG, or MathML)\n * @param {Array<PreactElement>} excessDomChildren\n * @param {Array<Component>} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n * @returns {PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tnamespace,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating,\n\trefQueue\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = /** @type {string} */ (newVNode.type);\n\t/** @type {any} */\n\tlet i;\n\t/** @type {{ __html?: string }} */\n\tlet newHtml;\n\t/** @type {{ __html?: string }} */\n\tlet oldHtml;\n\t/** @type {ComponentChildren} */\n\tlet newChildren;\n\tlet value;\n\tlet inputValue;\n\tlet checked;\n\n\t// Tracks entering and exiting namespaces when descending through the tree.\n\tif (nodeType === 'svg') namespace = 'http://www.w3.org/2000/svg';\n\telse if (nodeType === 'math')\n\t\tnamespace = 'http://www.w3.org/1998/Math/MathML';\n\telse if (!namespace) namespace = 'http://www.w3.org/1999/xhtml';\n\n\tif (excessDomChildren != null) {\n\t\tfor (i = 0; i < excessDomChildren.length; i++) {\n\t\t\tvalue = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tvalue &&\n\t\t\t\t'setAttribute' in value === !!nodeType &&\n\t\t\t\t(nodeType ? value.localName === nodeType : value.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = value;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tdom = document.createElementNS(\n\t\t\tnamespace,\n\t\t\tnodeType,\n\t\t\tnewProps.is && newProps\n\t\t);\n\n\t\t// we are creating a new node, so we can assume this is a new subtree (in\n\t\t// case we are hydrating), this deopts the hydrate\n\t\tif (isHydrating) {\n\t\t\tif (options._hydrationMismatch)\n\t\t\t\toptions._hydrationMismatch(newVNode, excessDomChildren);\n\t\t\tisHydrating = false;\n\t\t}\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\t// If we are in a situation where we are not hydrating but are using\n\t\t// existing DOM (e.g. replaceNode) we should read the existing DOM\n\t\t// attributes to diff them\n\t\tif (!isHydrating && excessDomChildren != null) {\n\t\t\toldProps = {};\n\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\tvalue = dom.attributes[i];\n\t\t\t\toldProps[value.name] = value.value;\n\t\t\t}\n\t\t}\n\n\t\tfor (i in oldProps) {\n\t\t\tvalue = oldProps[i];\n\t\t\tif (i == 'children') {\n\t\t\t} else if (i == 'dangerouslySetInnerHTML') {\n\t\t\t\toldHtml = value;\n\t\t\t} else if (!(i in newProps)) {\n\t\t\t\tif (\n\t\t\t\t\t(i == 'value' && 'defaultValue' in newProps) ||\n\t\t\t\t\t(i == 'checked' && 'defaultChecked' in newProps)\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tsetProperty(dom, i, null, value, namespace);\n\t\t\t}\n\t\t}\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tfor (i in newProps) {\n\t\t\tvalue = newProps[i];\n\t\t\tif (i == 'children') {\n\t\t\t\tnewChildren = value;\n\t\t\t} else if (i == 'dangerouslySetInnerHTML') {\n\t\t\t\tnewHtml = value;\n\t\t\t} else if (i == 'value') {\n\t\t\t\tinputValue = value;\n\t\t\t} else if (i == 'checked') {\n\t\t\t\tchecked = value;\n\t\t\t} else if (\n\t\t\t\t(!isHydrating || typeof value == 'function') &&\n\t\t\t\toldProps[i] !== value\n\t\t\t) {\n\t\t\t\tsetProperty(dom, i, value, oldProps[i], namespace);\n\t\t\t}\n\t\t}\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\tif (\n\t\t\t\t!isHydrating &&\n\t\t\t\t(!oldHtml ||\n\t\t\t\t\t(newHtml.__html !== oldHtml.__html &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML))\n\t\t\t) {\n\t\t\t\tdom.innerHTML = newHtml.__html;\n\t\t\t}\n\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\tif (oldHtml) dom.innerHTML = '';\n\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tisArray(newChildren) ? newChildren : [newChildren],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnodeType === 'foreignObject'\n\t\t\t\t\t? 'http://www.w3.org/1999/xhtml'\n\t\t\t\t\t: namespace,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating,\n\t\t\t\trefQueue\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tremoveNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// As above, don't diff props during hydration\n\t\tif (!isHydrating) {\n\t\t\ti = 'value';\n\t\t\tif (nodeType === 'progress' && inputValue == null) {\n\t\t\t\tdom.removeAttribute('value');\n\t\t\t} else if (\n\t\t\t\tinputValue !== undefined &&\n\t\t\t\t// #2756 For the <progress>-element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(inputValue !== dom[i] ||\n\t\t\t\t\t(nodeType === 'progress' && !inputValue) ||\n\t\t\t\t\t// This is only for IE 11 to fix <select> value not being updated.\n\t\t\t\t\t// To avoid a stale select value we need to set the option.value\n\t\t\t\t\t// again, which triggers IE11 to re-evaluate the select value\n\t\t\t\t\t(nodeType === 'option' && inputValue !== oldProps[i]))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, i, inputValue, oldProps[i], namespace);\n\t\t\t}\n\n\t\t\ti = 'checked';\n\t\t\tif (checked !== undefined && checked !== dom[i]) {\n\t\t\t\tsetProperty(dom, i, checked, oldProps[i], namespace);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {Ref<any> & { _unmount?: unknown }} ref\n * @param {any} value\n * @param {VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') {\n\t\t\tlet hasRefUnmount = typeof ref._unmount == 'function';\n\t\t\tif (hasRefUnmount) {\n\t\t\t\t// @ts-ignore TS doesn't like moving narrowing checks into variables\n\t\t\t\tref._unmount();\n\t\t\t}\n\n\t\t\tif (!hasRefUnmount || value != null) {\n\t\t\t\t// Store the cleanup function on the function\n\t\t\t\t// instance object itself to avoid shape\n\t\t\t\t// transitioning vnode\n\t\t\t\tref._unmount = ref(value);\n\t\t\t}\n\t\t} else ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {VNode} vnode The virtual node to unmount\n * @param {VNode} parentVNode The parent of the VNode that initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) {\n\t\t\tapplyRef(r, null, parentVNode);\n\t\t}\n\t}\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) {\n\t\t\t\tunmount(\n\t\t\t\t\tr[i],\n\t\t\t\t\tparentVNode,\n\t\t\t\t\tskipRemove || typeof vnode.type != 'function'\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!skipRemove) {\n\t\tremoveNode(vnode._dom);\n\t}\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._component = vnode._parent = vnode._dom = vnode._nextDom = undefined;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { EMPTY_OBJ } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\nimport { slice } from './util';\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {ComponentChild} vnode The virtual node to render\n * @param {PreactElement} parentDom The DOM element to render into\n * @param {PreactElement | object} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we are in\n\t// hydration mode or not by passing the `hydrate` function instead of a DOM\n\t// element..\n\tlet isHydrating = typeof replaceNode == 'function';\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\n\tvnode = ((!isHydrating && replaceNode) || parentDom)._children =\n\t\tcreateElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [],\n\t\trefQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\tvnode,\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.namespaceURI,\n\t\t!isHydrating && replaceNode\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t\t? null\n\t\t\t\t: parentDom.firstChild\n\t\t\t\t\t? slice.call(parentDom.childNodes)\n\t\t\t\t\t: null,\n\t\tcommitQueue,\n\t\t!isHydrating && replaceNode\n\t\t\t? replaceNode\n\t\t\t: oldVNode\n\t\t\t\t? oldVNode._dom\n\t\t\t\t: parentDom.firstChild,\n\t\tisHydrating,\n\t\trefQueue\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode, refQueue);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {ComponentChild} vnode The virtual node to render\n * @param {PreactElement} parentDom The DOM element to update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, hydrate);\n}\n","export function getAttributeValueByPath(record, path) {\n  return path.reduce(function (current, key) {\n    return current && current[key];\n  }, record);\n}","/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {VNode} vnode The vnode that threw the error that was caught (except\n * for unmounting when this parameter is the highest parent that was being\n * unmounted)\n * @param {VNode} [oldVNode]\n * @param {ErrorInfo} [errorInfo]\n */\nexport function _catchError(error, vnode, oldVNode, errorInfo) {\n\t/** @type {Component} */\n\tlet component,\n\t\t/** @type {ComponentType} */\n\t\tctor,\n\t\t/** @type {boolean} */\n\t\thandled;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error, errorInfo || {});\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","import { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\n/**\n * Creates a data structure that allows to concatenate similar highlighting\n * parts in a single value.\n */\nfunction createAttributeSet() {\n  var initialValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var value = initialValue;\n  return {\n    get: function get() {\n      return value;\n    },\n    add: function add(part) {\n      var lastPart = value[value.length - 1];\n      if ((lastPart === null || lastPart === void 0 ? void 0 : lastPart.isHighlighted) === part.isHighlighted) {\n        value[value.length - 1] = {\n          value: lastPart.value + part.value,\n          isHighlighted: lastPart.isHighlighted\n        };\n      } else {\n        value.push(part);\n      }\n    }\n  };\n}\nexport function parseAttribute(_ref) {\n  var highlightedValue = _ref.highlightedValue;\n  var preTagParts = highlightedValue.split(HIGHLIGHT_PRE_TAG);\n  var firstValue = preTagParts.shift();\n  var parts = createAttributeSet(firstValue ? [{\n    value: firstValue,\n    isHighlighted: false\n  }] : []);\n  preTagParts.forEach(function (part) {\n    var postTagParts = part.split(HIGHLIGHT_POST_TAG);\n    parts.add({\n      value: postTagParts[0],\n      isHighlighted: true\n    });\n    if (postTagParts[1] !== '') {\n      parts.add({\n        value: postTagParts[1],\n        isHighlighted: false\n      });\n    }\n  });\n  return parts.get();\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\nimport { parseAttribute } from './parseAttribute';\nexport function parseAlgoliaHitHighlight(_ref) {\n  var hit = _ref.hit,\n    attribute = _ref.attribute;\n  var path = Array.isArray(attribute) ? attribute : [attribute];\n  var highlightedValue = getAttributeValueByPath(hit, ['_highlightResult'].concat(_toConsumableArray(path), ['value']));\n  if (typeof highlightedValue !== 'string') {\n    process.env.NODE_ENV !== 'production' ? warn(false, \"The attribute \\\"\".concat(path.join('.'), \"\\\" described by the path \").concat(JSON.stringify(path), \" does not exist on the hit. Did you set it in `attributesToHighlight`?\") + '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToHighlight/') : void 0;\n    highlightedValue = getAttributeValueByPath(hit, path) || '';\n  }\n  return parseAttribute({\n    highlightedValue: highlightedValue\n  });\n}","import { parseAlgoliaHitHighlight } from '@algolia/autocomplete-preset-algolia';\nexport function createHighlightComponent(_ref) {\n  var createElement = _ref.createElement,\n    Fragment = _ref.Fragment;\n  function Highlight(_ref2) {\n    var hit = _ref2.hit,\n      attribute = _ref2.attribute,\n      _ref2$tagName = _ref2.tagName,\n      tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;\n    return createElement(Fragment, {}, parseAlgoliaHitHighlight({\n      hit: hit,\n      attribute: attribute\n    }).map(function (x, index) {\n      return x.isHighlighted ? createElement(tagName, {\n        key: index\n      }, x.value) : x.value;\n    }));\n  }\n  Highlight.__autocomplete_componentName = 'Highlight';\n  return Highlight;\n}","var htmlEscapes = {\n  '&amp;': '&',\n  '&lt;': '<',\n  '&gt;': '>',\n  '&quot;': '\"',\n  '&#39;': \"'\"\n};\nvar hasAlphanumeric = new RegExp(/\\w/i);\nvar regexEscapedHtml = /&(amp|quot|lt|gt|#39);/g;\nvar regexHasEscapedHtml = RegExp(regexEscapedHtml.source);\nfunction unescape(value) {\n  return value && regexHasEscapedHtml.test(value) ? value.replace(regexEscapedHtml, function (character) {\n    return htmlEscapes[character];\n  }) : value;\n}\nexport function isPartHighlighted(parts, i) {\n  var _parts, _parts2;\n  var current = parts[i];\n  var isNextHighlighted = ((_parts = parts[i + 1]) === null || _parts === void 0 ? void 0 : _parts.isHighlighted) || true;\n  var isPreviousHighlighted = ((_parts2 = parts[i - 1]) === null || _parts2 === void 0 ? void 0 : _parts2.isHighlighted) || true;\n  if (!hasAlphanumeric.test(unescape(current.value)) && isPreviousHighlighted === isNextHighlighted) {\n    return isPreviousHighlighted;\n  }\n  return current.isHighlighted;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { isPartHighlighted } from './isPartHighlighted';\nexport function reverseHighlightedParts(parts) {\n  // We don't want to highlight the whole word when no parts match.\n  if (!parts.some(function (part) {\n    return part.isHighlighted;\n  })) {\n    return parts.map(function (part) {\n      return _objectSpread(_objectSpread({}, part), {}, {\n        isHighlighted: false\n      });\n    });\n  }\n  return parts.map(function (part, i) {\n    return _objectSpread(_objectSpread({}, part), {}, {\n      isHighlighted: !isPartHighlighted(parts, i)\n    });\n  });\n}","import { parseAlgoliaHitReverseHighlight } from '@algolia/autocomplete-preset-algolia';\nexport function createReverseHighlightComponent(_ref) {\n  var createElement = _ref.createElement,\n    Fragment = _ref.Fragment;\n  function ReverseHighlight(_ref2) {\n    var hit = _ref2.hit,\n      attribute = _ref2.attribute,\n      _ref2$tagName = _ref2.tagName,\n      tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;\n    return createElement(Fragment, {}, parseAlgoliaHitReverseHighlight({\n      hit: hit,\n      attribute: attribute\n    }).map(function (x, index) {\n      return x.isHighlighted ? createElement(tagName, {\n        key: index\n      }, x.value) : x.value;\n    }));\n  }\n  ReverseHighlight.__autocomplete_componentName = 'ReverseHighlight';\n  return ReverseHighlight;\n}","import { parseAlgoliaHitHighlight } from './parseAlgoliaHitHighlight';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\nexport function parseAlgoliaHitReverseHighlight(props) {\n  return reverseHighlightedParts(parseAlgoliaHitHighlight(props));\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\nimport { parseAttribute } from './parseAttribute';\nexport function parseAlgoliaHitSnippet(_ref) {\n  var hit = _ref.hit,\n    attribute = _ref.attribute;\n  var path = Array.isArray(attribute) ? attribute : [attribute];\n  var highlightedValue = getAttributeValueByPath(hit, ['_snippetResult'].concat(_toConsumableArray(path), ['value']));\n  if (typeof highlightedValue !== 'string') {\n    process.env.NODE_ENV !== 'production' ? warn(false, \"The attribute \\\"\".concat(path.join('.'), \"\\\" described by the path \").concat(JSON.stringify(path), \" does not exist on the hit. Did you set it in `attributesToSnippet`?\") + '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToSnippet/') : void 0;\n    highlightedValue = getAttributeValueByPath(hit, path) || '';\n  }\n  return parseAttribute({\n    highlightedValue: highlightedValue\n  });\n}","import { parseAlgoliaHitReverseSnippet } from '@algolia/autocomplete-preset-algolia';\nexport function createReverseSnippetComponent(_ref) {\n  var createElement = _ref.createElement,\n    Fragment = _ref.Fragment;\n  function ReverseSnippet(_ref2) {\n    var hit = _ref2.hit,\n      attribute = _ref2.attribute,\n      _ref2$tagName = _ref2.tagName,\n      tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;\n    return createElement(Fragment, {}, parseAlgoliaHitReverseSnippet({\n      hit: hit,\n      attribute: attribute\n    }).map(function (x, index) {\n      return x.isHighlighted ? createElement(tagName, {\n        key: index\n      }, x.value) : x.value;\n    }));\n  }\n  ReverseSnippet.__autocomplete_componentName = 'ReverseSnippet';\n  return ReverseSnippet;\n}","import { parseAlgoliaHitSnippet } from './parseAlgoliaHitSnippet';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\nexport function parseAlgoliaHitReverseSnippet(props) {\n  return reverseHighlightedParts(parseAlgoliaHitSnippet(props));\n}","import { parseAlgoliaHitSnippet } from '@algolia/autocomplete-preset-algolia';\nexport function createSnippetComponent(_ref) {\n  var createElement = _ref.createElement,\n    Fragment = _ref.Fragment;\n  function Snippet(_ref2) {\n    var hit = _ref2.hit,\n      attribute = _ref2.attribute,\n      _ref2$tagName = _ref2.tagName,\n      tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;\n    return createElement(Fragment, {}, parseAlgoliaHitSnippet({\n      hit: hit,\n      attribute: attribute\n    }).map(function (x, index) {\n      return x.isHighlighted ? createElement(tagName, {\n        key: index\n      }, x.value) : x.value;\n    }));\n  }\n  Snippet.__autocomplete_componentName = 'Snippet';\n  return Snippet;\n}","import { invariant } from '@algolia/autocomplete-shared';\nexport function getHTMLElement(environment, value) {\n  if (typeof value === 'string') {\n    var element = environment.document.querySelector(value);\n    invariant(element !== null, \"The element \".concat(JSON.stringify(value), \" is not in the document.\"));\n    return element;\n  }\n  return value;\n}","export function mergeClassNames() {\n  for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n    values[_key] = arguments[_key];\n  }\n  return values.reduce(function (acc, current) {\n    Object.keys(current).forEach(function (key) {\n      var accValue = acc[key];\n      var currentValue = current[key];\n      if (accValue !== currentValue) {\n        acc[key] = [accValue, currentValue].filter(Boolean).join(' ');\n      }\n    });\n    return acc;\n  }, {});\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"classNames\", \"container\", \"getEnvironmentProps\", \"getFormProps\", \"getInputProps\", \"getItemProps\", \"getLabelProps\", \"getListProps\", \"getPanelProps\", \"getRootProps\", \"panelContainer\", \"panelPlacement\", \"render\", \"renderNoResults\", \"renderer\", \"detachedMediaQuery\", \"components\", \"translations\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { generateAutocompleteId, invariant, warn } from '@algolia/autocomplete-shared';\nimport { createElement as preactCreateElement, Fragment as PreactFragment, render } from 'preact';\nimport { createHighlightComponent, createReverseHighlightComponent, createReverseSnippetComponent, createSnippetComponent } from './components';\nimport { getHTMLElement, mergeClassNames } from './utils';\nvar defaultClassNames = {\n  clearButton: 'aa-ClearButton',\n  detachedCancelButton: 'aa-DetachedCancelButton',\n  detachedContainer: 'aa-DetachedContainer',\n  detachedFormContainer: 'aa-DetachedFormContainer',\n  detachedOverlay: 'aa-DetachedOverlay',\n  detachedSearchButton: 'aa-DetachedSearchButton',\n  detachedSearchButtonIcon: 'aa-DetachedSearchButtonIcon',\n  detachedSearchButtonPlaceholder: 'aa-DetachedSearchButtonPlaceholder',\n  detachedSearchButtonQuery: 'aa-DetachedSearchButtonQuery',\n  form: 'aa-Form',\n  input: 'aa-Input',\n  inputWrapper: 'aa-InputWrapper',\n  inputWrapperPrefix: 'aa-InputWrapperPrefix',\n  inputWrapperSuffix: 'aa-InputWrapperSuffix',\n  item: 'aa-Item',\n  label: 'aa-Label',\n  list: 'aa-List',\n  loadingIndicator: 'aa-LoadingIndicator',\n  panel: 'aa-Panel',\n  panelLayout: 'aa-PanelLayout aa-Panel--scrollable',\n  root: 'aa-Autocomplete',\n  source: 'aa-Source',\n  sourceFooter: 'aa-SourceFooter',\n  sourceHeader: 'aa-SourceHeader',\n  sourceNoResults: 'aa-SourceNoResults',\n  submitButton: 'aa-SubmitButton'\n};\nvar defaultRender = function defaultRender(_ref, root) {\n  var children = _ref.children,\n    render = _ref.render;\n  render(children, root);\n};\nvar defaultRenderer = {\n  createElement: preactCreateElement,\n  Fragment: PreactFragment,\n  render: render\n};\nexport function getDefaultOptions(options) {\n  var _core$id;\n  var classNames = options.classNames,\n    container = options.container,\n    getEnvironmentProps = options.getEnvironmentProps,\n    getFormProps = options.getFormProps,\n    getInputProps = options.getInputProps,\n    getItemProps = options.getItemProps,\n    getLabelProps = options.getLabelProps,\n    getListProps = options.getListProps,\n    getPanelProps = options.getPanelProps,\n    getRootProps = options.getRootProps,\n    panelContainer = options.panelContainer,\n    panelPlacement = options.panelPlacement,\n    render = options.render,\n    renderNoResults = options.renderNoResults,\n    renderer = options.renderer,\n    detachedMediaQuery = options.detachedMediaQuery,\n    components = options.components,\n    translations = options.translations,\n    core = _objectWithoutProperties(options, _excluded);\n\n  /* eslint-disable no-restricted-globals */\n  var environment = typeof window !== 'undefined' ? window : {};\n  /* eslint-enable no-restricted-globals */\n  var containerElement = getHTMLElement(environment, container);\n  invariant(containerElement.tagName !== 'INPUT', 'The `container` option does not support `input` elements. You need to change the container to a `div`.');\n  process.env.NODE_ENV !== 'production' ? warn(!(render && renderer && !(renderer !== null && renderer !== void 0 && renderer.render)), \"You provided the `render` option but did not provide a `renderer.render`. Since v1.6.0, you can provide a `render` function directly in `renderer`.\" + \"\\nTo get rid of this warning, do any of the following depending on your use case.\" + \"\\n- If you are using the `render` option only to override Autocomplete's default `render` function, pass the `render` function into `renderer` and remove the `render` option.\" + '\\n- If you are using the `render` option to customize the layout, pass your `render` function into `renderer` and use it from the provided parameters of the `render` option.' + '\\n- If you are using the `render` option to work with React 18, pass an empty `render` function into `renderer`.' + '\\nSee https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-render') : void 0;\n  process.env.NODE_ENV !== 'production' ? warn(!renderer || render || renderer.Fragment && renderer.createElement && renderer.render, \"You provided an incomplete `renderer` (missing: \".concat([!(renderer !== null && renderer !== void 0 && renderer.createElement) && '`renderer.createElement`', !(renderer !== null && renderer !== void 0 && renderer.Fragment) && '`renderer.Fragment`', !(renderer !== null && renderer !== void 0 && renderer.render) && '`renderer.render`'].filter(Boolean).join(', '), \"). This can cause rendering issues.\") + '\\nSee https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-renderer') : void 0;\n  var defaultedRenderer = _objectSpread(_objectSpread({}, defaultRenderer), renderer);\n  var defaultComponents = {\n    Highlight: createHighlightComponent(defaultedRenderer),\n    ReverseHighlight: createReverseHighlightComponent(defaultedRenderer),\n    ReverseSnippet: createReverseSnippetComponent(defaultedRenderer),\n    Snippet: createSnippetComponent(defaultedRenderer)\n  };\n  var defaultTranslations = {\n    clearButtonTitle: 'Clear',\n    detachedCancelButtonText: 'Cancel',\n    detachedSearchButtonTitle: 'Search',\n    submitButtonTitle: 'Submit'\n  };\n  return {\n    renderer: {\n      classNames: mergeClassNames(defaultClassNames, classNames !== null && classNames !== void 0 ? classNames : {}),\n      container: containerElement,\n      getEnvironmentProps: getEnvironmentProps !== null && getEnvironmentProps !== void 0 ? getEnvironmentProps : function (_ref2) {\n        var props = _ref2.props;\n        return props;\n      },\n      getFormProps: getFormProps !== null && getFormProps !== void 0 ? getFormProps : function (_ref3) {\n        var props = _ref3.props;\n        return props;\n      },\n      getInputProps: getInputProps !== null && getInputProps !== void 0 ? getInputProps : function (_ref4) {\n        var props = _ref4.props;\n        return props;\n      },\n      getItemProps: getItemProps !== null && getItemProps !== void 0 ? getItemProps : function (_ref5) {\n        var props = _ref5.props;\n        return props;\n      },\n      getLabelProps: getLabelProps !== null && getLabelProps !== void 0 ? getLabelProps : function (_ref6) {\n        var props = _ref6.props;\n        return props;\n      },\n      getListProps: getListProps !== null && getListProps !== void 0 ? getListProps : function (_ref7) {\n        var props = _ref7.props;\n        return props;\n      },\n      getPanelProps: getPanelProps !== null && getPanelProps !== void 0 ? getPanelProps : function (_ref8) {\n        var props = _ref8.props;\n        return props;\n      },\n      getRootProps: getRootProps !== null && getRootProps !== void 0 ? getRootProps : function (_ref9) {\n        var props = _ref9.props;\n        return props;\n      },\n      panelContainer: panelContainer ? getHTMLElement(environment, panelContainer) : environment.document.body,\n      panelPlacement: panelPlacement !== null && panelPlacement !== void 0 ? panelPlacement : 'input-wrapper-width',\n      render: render !== null && render !== void 0 ? render : defaultRender,\n      renderNoResults: renderNoResults,\n      renderer: defaultedRenderer,\n      detachedMediaQuery: detachedMediaQuery !== null && detachedMediaQuery !== void 0 ? detachedMediaQuery : getComputedStyle(environment.document.documentElement).getPropertyValue('--aa-detached-media-query'),\n      components: _objectSpread(_objectSpread({}, defaultComponents), components),\n      translations: _objectSpread(_objectSpread({}, defaultTranslations), translations)\n    },\n    core: _objectSpread(_objectSpread({}, core), {}, {\n      id: (_core$id = core.id) !== null && _core$id !== void 0 ? _core$id : generateAutocompleteId(),\n      environment: environment\n    })\n  };\n}","export function getPanelPlacementStyle(_ref) {\n  var panelPlacement = _ref.panelPlacement,\n    container = _ref.container,\n    form = _ref.form,\n    environment = _ref.environment;\n  var containerRect = container.getBoundingClientRect();\n  // Some browsers have specificities to retrieve the document scroll position.\n  // See https://stackoverflow.com/a/28633515/9940315\n  var scrollTop = environment.pageYOffset || environment.document.documentElement.scrollTop || environment.document.body.scrollTop || 0;\n  var top = scrollTop + containerRect.top + containerRect.height;\n  switch (panelPlacement) {\n    case 'start':\n      {\n        return {\n          top: top,\n          left: containerRect.left\n        };\n      }\n    case 'end':\n      {\n        return {\n          top: top,\n          right: environment.document.documentElement.clientWidth - (containerRect.left + containerRect.width)\n        };\n      }\n    case 'full-width':\n      {\n        return {\n          top: top,\n          left: 0,\n          right: 0,\n          width: 'unset',\n          maxWidth: 'unset'\n        };\n      }\n    case 'input-wrapper-width':\n      {\n        var formRect = form.getBoundingClientRect();\n        return {\n          top: top,\n          left: formRect.left,\n          right: environment.document.documentElement.clientWidth - (formRect.left + formRect.width),\n          width: 'unset',\n          maxWidth: 'unset'\n        };\n      }\n    default:\n      {\n        throw new Error(\"[Autocomplete] The `panelPlacement` value \".concat(JSON.stringify(panelPlacement), \" is not valid.\"));\n      }\n  }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/** @jsxRuntime classic */\n/** @jsx renderer.createElement */\n\nimport { setProperties, setPropertiesWithoutEvents } from './utils';\nexport function renderSearchBox(_ref) {\n  var autocomplete = _ref.autocomplete,\n    autocompleteScopeApi = _ref.autocompleteScopeApi,\n    dom = _ref.dom,\n    propGetters = _ref.propGetters,\n    state = _ref.state;\n  setPropertiesWithoutEvents(dom.root, propGetters.getRootProps(_objectSpread({\n    state: state,\n    props: autocomplete.getRootProps({})\n  }, autocompleteScopeApi)));\n  setPropertiesWithoutEvents(dom.input, propGetters.getInputProps(_objectSpread({\n    state: state,\n    props: autocomplete.getInputProps({\n      inputElement: dom.input\n    }),\n    inputElement: dom.input\n  }, autocompleteScopeApi)));\n  setProperties(dom.label, {\n    hidden: state.status === 'stalled'\n  });\n  setProperties(dom.loadingIndicator, {\n    hidden: state.status !== 'stalled'\n  });\n  setProperties(dom.clearButton, {\n    hidden: !state.query\n  });\n  setProperties(dom.detachedSearchButtonQuery, {\n    textContent: state.query\n  });\n  setProperties(dom.detachedSearchButtonPlaceholder, {\n    hidden: Boolean(state.query)\n  });\n}\nexport function renderPanel(render, _ref2) {\n  var autocomplete = _ref2.autocomplete,\n    autocompleteScopeApi = _ref2.autocompleteScopeApi,\n    classNames = _ref2.classNames,\n    html = _ref2.html,\n    dom = _ref2.dom,\n    panelContainer = _ref2.panelContainer,\n    propGetters = _ref2.propGetters,\n    state = _ref2.state,\n    components = _ref2.components,\n    renderer = _ref2.renderer;\n  if (!state.isOpen) {\n    if (panelContainer.contains(dom.panel)) {\n      panelContainer.removeChild(dom.panel);\n    }\n    return;\n  }\n\n  // We add the panel element to the DOM when it's not yet appended and that the\n  // items are fetched.\n  if (!panelContainer.contains(dom.panel) && state.status !== 'loading') {\n    panelContainer.appendChild(dom.panel);\n  }\n  dom.panel.classList.toggle('aa-Panel--stalled', state.status === 'stalled');\n  var sections = state.collections.filter(function (_ref3) {\n    var source = _ref3.source,\n      items = _ref3.items;\n    return source.templates.noResults || items.length > 0;\n  }).map(function (_ref4, sourceIndex) {\n    var source = _ref4.source,\n      items = _ref4.items;\n    return renderer.createElement(\"section\", {\n      key: sourceIndex,\n      className: classNames.source,\n      \"data-autocomplete-source-id\": source.sourceId\n    }, source.templates.header && renderer.createElement(\"div\", {\n      className: classNames.sourceHeader\n    }, source.templates.header({\n      components: components,\n      createElement: renderer.createElement,\n      Fragment: renderer.Fragment,\n      items: items,\n      source: source,\n      state: state,\n      html: html\n    })), source.templates.noResults && items.length === 0 ? renderer.createElement(\"div\", {\n      className: classNames.sourceNoResults\n    }, source.templates.noResults({\n      components: components,\n      createElement: renderer.createElement,\n      Fragment: renderer.Fragment,\n      source: source,\n      state: state,\n      html: html\n    })) : renderer.createElement(\"ul\", _extends({\n      className: classNames.list\n    }, propGetters.getListProps(_objectSpread({\n      state: state,\n      props: autocomplete.getListProps({\n        source: source\n      })\n    }, autocompleteScopeApi))), items.map(function (item) {\n      var itemProps = autocomplete.getItemProps({\n        item: item,\n        source: source\n      });\n      return renderer.createElement(\"li\", _extends({\n        key: itemProps.id,\n        className: classNames.item\n      }, propGetters.getItemProps(_objectSpread({\n        state: state,\n        props: itemProps\n      }, autocompleteScopeApi))), source.templates.item({\n        components: components,\n        createElement: renderer.createElement,\n        Fragment: renderer.Fragment,\n        item: item,\n        state: state,\n        html: html\n      }));\n    })), source.templates.footer && renderer.createElement(\"div\", {\n      className: classNames.sourceFooter\n    }, source.templates.footer({\n      components: components,\n      createElement: renderer.createElement,\n      Fragment: renderer.Fragment,\n      items: items,\n      source: source,\n      state: state,\n      html: html\n    })));\n  });\n  var children = renderer.createElement(renderer.Fragment, null, renderer.createElement(\"div\", {\n    className: classNames.panelLayout\n  }, sections), renderer.createElement(\"div\", {\n    className: \"aa-GradientBottom\"\n  }));\n  var elements = sections.reduce(function (acc, current) {\n    acc[current.props['data-autocomplete-source-id']] = current;\n    return acc;\n  }, {});\n  render(_objectSpread(_objectSpread({\n    children: children,\n    state: state,\n    sections: sections,\n    elements: elements\n  }, renderer), {}, {\n    components: components,\n    html: html\n  }, autocompleteScopeApi), dom.panel);\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar isPlainObject = function isPlainObject(value) {\n  return value && _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Object]';\n};\nexport function mergeDeep() {\n  for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n    values[_key] = arguments[_key];\n  }\n  return values.reduce(function (acc, current) {\n    Object.keys(current).forEach(function (key) {\n      var accValue = acc[key];\n      var currentValue = current[key];\n      if (Array.isArray(accValue) && Array.isArray(currentValue)) {\n        acc[key] = accValue.concat.apply(accValue, _toConsumableArray(currentValue));\n      } else if (isPlainObject(accValue) && isPlainObject(currentValue)) {\n        acc[key] = mergeDeep(accValue, currentValue);\n      } else {\n        acc[key] = currentValue;\n      }\n    });\n    return acc;\n  }, {});\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nexport function pickBy(obj, predicate) {\n  return Object.entries(obj).reduce(function (acc, _ref) {\n    var _ref2 = _slicedToArray(_ref, 2),\n      key = _ref2[0],\n      value = _ref2[1];\n    if (predicate({\n      key: key,\n      value: value\n    })) {\n      return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, value));\n    }\n    return acc;\n  }, {});\n}","var _excluded = [\"components\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { createAutocomplete } from '@algolia/autocomplete-core';\nimport { createRef, debounce, getItemsCount, warn } from '@algolia/autocomplete-shared';\nimport htm from 'htm';\nimport { createAutocompleteDom } from './createAutocompleteDom';\nimport { createEffectWrapper } from './createEffectWrapper';\nimport { createReactiveWrapper } from './createReactiveWrapper';\nimport { getDefaultOptions } from './getDefaultOptions';\nimport { getPanelPlacementStyle } from './getPanelPlacementStyle';\nimport { renderPanel, renderSearchBox } from './render';\nimport { userAgents } from './userAgents';\nimport { mergeDeep, pickBy, setProperties } from './utils';\nvar instancesCount = 0;\nexport function autocomplete(options) {\n  var _createEffectWrapper = createEffectWrapper(),\n    runEffect = _createEffectWrapper.runEffect,\n    cleanupEffects = _createEffectWrapper.cleanupEffects,\n    runEffects = _createEffectWrapper.runEffects;\n  var _createReactiveWrappe = createReactiveWrapper(),\n    reactive = _createReactiveWrappe.reactive,\n    runReactives = _createReactiveWrappe.runReactives;\n  var hasNoResultsSourceTemplateRef = createRef(false);\n  var optionsRef = createRef(options);\n  var onStateChangeRef = createRef(undefined);\n  var props = reactive(function () {\n    return getDefaultOptions(optionsRef.current);\n  });\n  var isDetached = reactive(function () {\n    return props.value.core.environment.matchMedia(props.value.renderer.detachedMediaQuery).matches;\n  });\n  var autocomplete = reactive(function () {\n    return createAutocomplete(_objectSpread(_objectSpread({}, props.value.core), {}, {\n      onStateChange: function onStateChange(params) {\n        var _onStateChangeRef$cur, _props$value$core$onS, _props$value$core;\n        hasNoResultsSourceTemplateRef.current = params.state.collections.some(function (collection) {\n          return collection.source.templates.noResults;\n        });\n        (_onStateChangeRef$cur = onStateChangeRef.current) === null || _onStateChangeRef$cur === void 0 ? void 0 : _onStateChangeRef$cur.call(onStateChangeRef, params);\n        (_props$value$core$onS = (_props$value$core = props.value.core).onStateChange) === null || _props$value$core$onS === void 0 ? void 0 : _props$value$core$onS.call(_props$value$core, params);\n      },\n      shouldPanelOpen: optionsRef.current.shouldPanelOpen || function (_ref) {\n        var state = _ref.state;\n        if (isDetached.value) {\n          return true;\n        }\n        var hasItems = getItemsCount(state) > 0;\n        if (!props.value.core.openOnFocus && !state.query) {\n          return hasItems;\n        }\n        var hasNoResultsTemplate = Boolean(hasNoResultsSourceTemplateRef.current || props.value.renderer.renderNoResults);\n        return !hasItems && hasNoResultsTemplate || hasItems;\n      },\n      __autocomplete_metadata: {\n        userAgents: userAgents,\n        options: options\n      }\n    }));\n  });\n  var lastStateRef = createRef(_objectSpread({\n    collections: [],\n    completion: null,\n    context: {},\n    isOpen: false,\n    query: '',\n    activeItemId: null,\n    status: 'idle'\n  }, props.value.core.initialState));\n  var propGetters = {\n    getEnvironmentProps: props.value.renderer.getEnvironmentProps,\n    getFormProps: props.value.renderer.getFormProps,\n    getInputProps: props.value.renderer.getInputProps,\n    getItemProps: props.value.renderer.getItemProps,\n    getLabelProps: props.value.renderer.getLabelProps,\n    getListProps: props.value.renderer.getListProps,\n    getPanelProps: props.value.renderer.getPanelProps,\n    getRootProps: props.value.renderer.getRootProps\n  };\n  var autocompleteScopeApi = {\n    setActiveItemId: autocomplete.value.setActiveItemId,\n    setQuery: autocomplete.value.setQuery,\n    setCollections: autocomplete.value.setCollections,\n    setIsOpen: autocomplete.value.setIsOpen,\n    setStatus: autocomplete.value.setStatus,\n    setContext: autocomplete.value.setContext,\n    refresh: autocomplete.value.refresh,\n    navigator: autocomplete.value.navigator\n  };\n  var html = reactive(function () {\n    return htm.bind(props.value.renderer.renderer.createElement);\n  });\n  var dom = reactive(function () {\n    return createAutocompleteDom({\n      autocomplete: autocomplete.value,\n      autocompleteScopeApi: autocompleteScopeApi,\n      classNames: props.value.renderer.classNames,\n      environment: props.value.core.environment,\n      isDetached: isDetached.value,\n      placeholder: props.value.core.placeholder,\n      propGetters: propGetters,\n      setIsModalOpen: setIsModalOpen,\n      state: lastStateRef.current,\n      translations: props.value.renderer.translations\n    });\n  });\n  function setPanelPosition() {\n    setProperties(dom.value.panel, {\n      style: isDetached.value ? {} : getPanelPlacementStyle({\n        panelPlacement: props.value.renderer.panelPlacement,\n        container: dom.value.root,\n        form: dom.value.form,\n        environment: props.value.core.environment\n      })\n    });\n  }\n  function scheduleRender(state) {\n    lastStateRef.current = state;\n    var renderProps = {\n      autocomplete: autocomplete.value,\n      autocompleteScopeApi: autocompleteScopeApi,\n      classNames: props.value.renderer.classNames,\n      components: props.value.renderer.components,\n      container: props.value.renderer.container,\n      html: html.value,\n      dom: dom.value,\n      panelContainer: isDetached.value ? dom.value.detachedContainer : props.value.renderer.panelContainer,\n      propGetters: propGetters,\n      state: lastStateRef.current,\n      renderer: props.value.renderer.renderer\n    };\n    var render = !getItemsCount(state) && !hasNoResultsSourceTemplateRef.current && props.value.renderer.renderNoResults || props.value.renderer.render;\n    renderSearchBox(renderProps);\n    renderPanel(render, renderProps);\n  }\n  runEffect(function () {\n    var environmentProps = autocomplete.value.getEnvironmentProps({\n      formElement: dom.value.form,\n      panelElement: dom.value.panel,\n      inputElement: dom.value.input\n    });\n    setProperties(props.value.core.environment, environmentProps);\n    return function () {\n      setProperties(props.value.core.environment, Object.keys(environmentProps).reduce(function (acc, key) {\n        return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));\n      }, {}));\n    };\n  });\n  runEffect(function () {\n    var panelContainerElement = isDetached.value ? props.value.core.environment.document.body : props.value.renderer.panelContainer;\n    var panelElement = isDetached.value ? dom.value.detachedOverlay : dom.value.panel;\n    if (isDetached.value && lastStateRef.current.isOpen) {\n      setIsModalOpen(true);\n    }\n    scheduleRender(lastStateRef.current);\n    return function () {\n      if (panelContainerElement.contains(panelElement)) {\n        panelContainerElement.removeChild(panelElement);\n        panelContainerElement.classList.remove('aa-Detached');\n      }\n    };\n  });\n  runEffect(function () {\n    var containerElement = props.value.renderer.container;\n    containerElement.appendChild(dom.value.root);\n    return function () {\n      containerElement.removeChild(dom.value.root);\n    };\n  });\n  runEffect(function () {\n    var debouncedRender = debounce(function (_ref2) {\n      var state = _ref2.state;\n      scheduleRender(state);\n    }, 0);\n    onStateChangeRef.current = function (_ref3) {\n      var state = _ref3.state,\n        prevState = _ref3.prevState;\n      if (isDetached.value && prevState.isOpen !== state.isOpen) {\n        setIsModalOpen(state.isOpen);\n      }\n\n      // The outer DOM might have changed since the last time the panel was\n      // positioned. The layout might have shifted vertically for instance.\n      // It's therefore safer to re-calculate the panel position before opening\n      // it again.\n      if (!isDetached.value && state.isOpen && !prevState.isOpen) {\n        setPanelPosition();\n      }\n\n      // We scroll to the top of the panel whenever the query changes (i.e. new\n      // results come in) so that users don't have to.\n      if (state.query !== prevState.query) {\n        var scrollablePanels = props.value.core.environment.document.querySelectorAll('.aa-Panel--scrollable');\n        scrollablePanels.forEach(function (scrollablePanel) {\n          if (scrollablePanel.scrollTop !== 0) {\n            scrollablePanel.scrollTop = 0;\n          }\n        });\n      }\n      debouncedRender({\n        state: state\n      });\n    };\n    return function () {\n      onStateChangeRef.current = undefined;\n    };\n  });\n  runEffect(function () {\n    var onResize = debounce(function () {\n      var previousIsDetached = isDetached.value;\n      isDetached.value = props.value.core.environment.matchMedia(props.value.renderer.detachedMediaQuery).matches;\n      if (previousIsDetached !== isDetached.value) {\n        update({});\n      } else {\n        requestAnimationFrame(setPanelPosition);\n      }\n    }, 20);\n    props.value.core.environment.addEventListener('resize', onResize);\n    return function () {\n      props.value.core.environment.removeEventListener('resize', onResize);\n    };\n  });\n  runEffect(function () {\n    if (!isDetached.value) {\n      return function () {};\n    }\n    function toggleModalClassname(isActive) {\n      dom.value.detachedContainer.classList.toggle('aa-DetachedContainer--modal', isActive);\n    }\n    function onChange(event) {\n      toggleModalClassname(event.matches);\n    }\n    var isModalDetachedMql = props.value.core.environment.matchMedia(getComputedStyle(props.value.core.environment.document.documentElement).getPropertyValue('--aa-detached-modal-media-query'));\n    toggleModalClassname(isModalDetachedMql.matches);\n\n    // Prior to Safari 14, `MediaQueryList` isn't based on `EventTarget`,\n    // so we must use `addListener` and `removeListener` to observe media query lists.\n    // See https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList/addListener\n    var hasModernEventListener = Boolean(isModalDetachedMql.addEventListener);\n    hasModernEventListener ? isModalDetachedMql.addEventListener('change', onChange) : isModalDetachedMql.addListener(onChange);\n    return function () {\n      hasModernEventListener ? isModalDetachedMql.removeEventListener('change', onChange) : isModalDetachedMql.removeListener(onChange);\n    };\n  });\n  runEffect(function () {\n    requestAnimationFrame(setPanelPosition);\n    return function () {};\n  });\n  function destroy() {\n    instancesCount--;\n    cleanupEffects();\n  }\n  function update() {\n    var updatedOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    cleanupEffects();\n    var _props$value$renderer = props.value.renderer,\n      components = _props$value$renderer.components,\n      rendererProps = _objectWithoutProperties(_props$value$renderer, _excluded);\n    optionsRef.current = mergeDeep(rendererProps, props.value.core, {\n      // We need to filter out default components so they can be replaced with\n      // a new `renderer`, without getting rid of user components.\n      // @MAJOR Deal with registering components with the same name as the\n      // default ones. If we disallow overriding default components, we'd just\n      // need to pass all `components` here.\n      components: pickBy(components, function (_ref4) {\n        var value = _ref4.value;\n        return !value.hasOwnProperty('__autocomplete_componentName');\n      }),\n      initialState: lastStateRef.current\n    }, updatedOptions);\n    runReactives();\n    runEffects();\n    autocomplete.value.refresh().then(function () {\n      scheduleRender(lastStateRef.current);\n    });\n  }\n  function setIsModalOpen(value) {\n    var prevValue = props.value.core.environment.document.body.contains(dom.value.detachedOverlay);\n    if (value === prevValue) {\n      return;\n    }\n    if (value) {\n      props.value.core.environment.document.body.appendChild(dom.value.detachedOverlay);\n      props.value.core.environment.document.body.classList.add('aa-Detached');\n      dom.value.input.focus();\n    } else {\n      props.value.core.environment.document.body.removeChild(dom.value.detachedOverlay);\n      props.value.core.environment.document.body.classList.remove('aa-Detached');\n    }\n  }\n  process.env.NODE_ENV !== 'production' ? warn(instancesCount === 0, \"Autocomplete doesn't support multiple instances running at the same time. Make sure to destroy the previous instance before creating a new one.\\n\\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-destroy\") : void 0;\n  instancesCount++;\n  return _objectSpread(_objectSpread({}, autocompleteScopeApi), {}, {\n    update: update,\n    destroy: destroy\n  });\n}","export function createEffectWrapper() {\n  var effects = [];\n  var cleanups = [];\n  function runEffect(fn) {\n    effects.push(fn);\n    var effectCleanup = fn();\n    cleanups.push(effectCleanup);\n  }\n  return {\n    runEffect: runEffect,\n    cleanupEffects: function cleanupEffects() {\n      var currentCleanups = cleanups;\n      cleanups = [];\n      currentCleanups.forEach(function (cleanup) {\n        cleanup();\n      });\n    },\n    runEffects: function runEffects() {\n      var currentEffects = effects;\n      effects = [];\n      currentEffects.forEach(function (effect) {\n        runEffect(effect);\n      });\n    }\n  };\n}","export function createReactiveWrapper() {\n  var reactives = [];\n  return {\n    reactive: function reactive(value) {\n      var current = value();\n      var reactive = {\n        _fn: value,\n        _ref: {\n          current: current\n        },\n        get value() {\n          return this._ref.current;\n        },\n        set value(value) {\n          this._ref.current = value;\n        }\n      };\n      reactives.push(reactive);\n      return reactive;\n    },\n    runReactives: function runReactives() {\n      reactives.forEach(function (value) {\n        value._ref.current = value._fn();\n      });\n    }\n  };\n}","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}","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 { createRequester, fetchAlgoliaResults } from '@algolia/autocomplete-preset-algolia';\nimport { userAgents } from '../userAgents';\nexport var createAlgoliaRequester = createRequester(function (params) {\n  return fetchAlgoliaResults(_objectSpread(_objectSpread({}, params), {}, {\n    userAgents: userAgents\n  }));\n}, 'algolia');","// typed as any, since it accepts the _real_ js clients, not the interface we otherwise expect\nexport function getAppIdAndApiKey(searchClient) {\n  var transporter = searchClient.transporter || {};\n  var headers = transporter.headers || transporter.baseHeaders || {};\n  var queryParameters = transporter.queryParameters || transporter.baseQueryParameters || {};\n  var APP_ID = 'x-algolia-application-id';\n  var API_KEY = 'x-algolia-api-key';\n  var appId = headers[APP_ID] || queryParameters[APP_ID];\n  var apiKey = headers[API_KEY] || queryParameters[API_KEY];\n  return {\n    appId: appId,\n    apiKey: apiKey\n  };\n}","import { createAlgoliaRequester } from './createAlgoliaRequester';\n\n/**\n * Retrieves Algolia results from multiple indices.\n */\nexport var getAlgoliaResults = createAlgoliaRequester({\n  transformResponse: function transformResponse(response) {\n    return response.hits;\n  }\n});","import { version } from '@algolia/autocomplete-shared';\nexport var userAgents = [{\n  segment: 'autocomplete-js',\n  version: version\n}];","export var HIGHLIGHT_PRE_TAG = '__aa-highlight__';\nexport var HIGHLIGHT_POST_TAG = '__/aa-highlight__';","/**\n * Throws an error if the condition is not met in development mode.\n * This is used to make development a better experience to provide guidance as\n * to where the error comes from.\n */\nexport function invariant(condition, message) {\n  if (!(process.env.NODE_ENV !== 'production')) {\n    return;\n  }\n  if (!condition) {\n    throw new Error(\"[Autocomplete] \".concat(typeof message === 'function' ? message() : message));\n  }\n}","import { version } from './version';\nexport var userAgents = [{\n  segment: 'autocomplete-core',\n  version: version\n}];","export var version = '1.17.4';","/*! algoliasearch-lite.umd.js | 4.24.0 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */\n!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=e||self).algoliasearch=t()}(this,(function(){\"use strict\";function e(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function t(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function r(r){for(var n=1;n<arguments.length;n++){var o=null!=arguments[n]?arguments[n]:{};n%2?t(Object(o),!0).forEach((function(t){e(r,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):t(Object(o)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}))}return r}function n(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)))return;var r=[],n=!0,o=!1,a=void 0;try{for(var u,i=e[Symbol.iterator]();!(n=(u=i.next()).done)&&(r.push(u.value),!t||r.length!==t);n=!0);}catch(e){o=!0,a=e}finally{try{n||null==i.return||i.return()}finally{if(o)throw a}}return r}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}()}function a(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}()}function u(e){var t,r=\"algoliasearch-client-js-\".concat(e.key),n=function(){return void 0===t&&(t=e.localStorage||window.localStorage),t},a=function(){return JSON.parse(n().getItem(r)||\"{}\")},u=function(e){n().setItem(r,JSON.stringify(e))},i=function(){var t=e.timeToLive?1e3*e.timeToLive:null,r=a(),n=Object.fromEntries(Object.entries(r).filter((function(e){return void 0!==o(e,2)[1].timestamp})));if(u(n),t){var i=Object.fromEntries(Object.entries(n).filter((function(e){var r=o(e,2)[1],n=(new Date).getTime();return!(r.timestamp+t<n)})));u(i)}};return{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){i();var t=JSON.stringify(e);return a()[t]})).then((function(e){return Promise.all([e?e.value:t(),void 0!==e])})).then((function(e){var t=o(e,2),n=t[0],a=t[1];return Promise.all([n,a||r.miss(n)])})).then((function(e){return o(e,1)[0]}))},set:function(e,t){return Promise.resolve().then((function(){var o=a();return o[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:t},n().setItem(r,JSON.stringify(o)),t}))},delete:function(e){return Promise.resolve().then((function(){var t=a();delete t[JSON.stringify(e)],n().setItem(r,JSON.stringify(t))}))},clear:function(){return Promise.resolve().then((function(){n().removeItem(r)}))}}}function i(e){var t=a(e.caches),r=t.shift();return void 0===r?{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},n=t();return n.then((function(e){return Promise.all([e,r.miss(e)])})).then((function(e){return o(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(e,n,o).catch((function(){return i({caches:t}).get(e,n,o)}))},set:function(e,n){return r.set(e,n).catch((function(){return i({caches:t}).set(e,n)}))},delete:function(e){return r.delete(e).catch((function(){return i({caches:t}).delete(e)}))},clear:function(){return r.clear().catch((function(){return i({caches:t}).clear()}))}}}function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(r,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},a=JSON.stringify(r);if(a in t)return Promise.resolve(e.serializable?JSON.parse(t[a]):t[a]);var u=n(),i=o&&o.miss||function(){return Promise.resolve()};return u.then((function(e){return i(e)})).then((function(){return u}))},set:function(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function c(e){for(var t=e.length-1;t>0;t--){var r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function l(e,t){return t?(Object.keys(t).forEach((function(r){e[r]=t[r](e)})),e):e}function f(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var o=0;return e.replace(/%s/g,(function(){return encodeURIComponent(r[o++])}))}var h={WithinQueryParameters:0,WithinHeaders:1};function m(e,t){var r=e||{},n=r.data||{};return Object.keys(r).forEach((function(e){-1===[\"timeout\",\"headers\",\"queryParameters\",\"data\",\"cacheable\"].indexOf(e)&&(n[e]=r[e])})),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var d={Read:1,Write:2,Any:3},p=1,v=2,g=3;function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:p;return r(r({},e),{},{status:t,lastUpdate:Date.now()})}function b(e){return\"string\"==typeof e?{protocol:\"https\",url:e,accept:d.Any}:{protocol:e.protocol||\"https\",url:e.url,accept:e.accept||d.Any}}var O=\"GET\",P=\"POST\";function q(e,t){return Promise.all(t.map((function(t){return e.get(t,(function(){return Promise.resolve(y(t))}))}))).then((function(e){var r=e.filter((function(e){return function(e){return e.status===p||Date.now()-e.lastUpdate>12e4}(e)})),n=e.filter((function(e){return function(e){return e.status===g&&Date.now()-e.lastUpdate<=12e4}(e)})),o=[].concat(a(r),a(n));return{getTimeout:function(e,t){return(0===n.length&&0===e?1:n.length+3+e)*t},statelessHosts:o.length>0?o.map((function(e){return b(e)})):t}}))}function j(e,t,n,o){var u=[],i=function(e,t){if(e.method===O||void 0===e.data&&void 0===t.data)return;var n=Array.isArray(e.data)?e.data:r(r({},e.data),t.data);return JSON.stringify(n)}(n,o),s=function(e,t){var n=r(r({},e.headers),t.headers),o={};return Object.keys(n).forEach((function(e){var t=n[e];o[e.toLowerCase()]=t})),o}(e,o),c=n.method,l=n.method!==O?{}:r(r({},n.data),o.data),f=r(r(r({\"x-algolia-agent\":e.userAgent.value},e.queryParameters),l),o.queryParameters),h=0,m=function t(r,a){var l=r.pop();if(void 0===l)throw{name:\"RetryError\",message:\"Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support .\",transporterStackTrace:A(u)};var m={data:i,headers:s,method:c,url:S(l,n.path,f),connectTimeout:a(h,e.timeouts.connect),responseTimeout:a(h,o.timeout)},d=function(e){var t={request:m,response:e,host:l,triesLeft:r.length};return u.push(t),t},p={onSuccess:function(e){return function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:\"DeserializationError\",message:e,response:t}}(t.message,e)}}(e)},onRetry:function(n){var o=d(n);return n.isTimedOut&&h++,Promise.all([e.logger.info(\"Retryable failure\",x(o)),e.hostsCache.set(l,y(l,n.isTimedOut?g:v))]).then((function(){return t(r,a)}))},onFail:function(e){throw d(e),function(e,t){var r=e.content,n=e.status,o=r;try{o=JSON.parse(r).message}catch(e){}return function(e,t,r){return{name:\"ApiError\",message:e,status:t,transporterStackTrace:r}}(o,n,t)}(e,A(u))}};return e.requester.send(m).then((function(e){return function(e,t){return function(e){var t=e.status;return e.isTimedOut||function(e){var t=e.isTimedOut,r=e.status;return!t&&0==~~r}(e)||2!=~~(t/100)&&4!=~~(t/100)}(e)?t.onRetry(e):2==~~(e.status/100)?t.onSuccess(e):t.onFail(e)}(e,p)}))};return q(e.hostsCache,t).then((function(e){return m(a(e.statelessHosts).reverse(),e.getTimeout)}))}function w(e){var t={value:\"Algolia for JavaScript (\".concat(e,\")\"),add:function(e){var r=\"; \".concat(e.segment).concat(void 0!==e.version?\" (\".concat(e.version,\")\"):\"\");return-1===t.value.indexOf(r)&&(t.value=\"\".concat(t.value).concat(r)),t}};return t}function S(e,t,r){var n=T(r),o=\"\".concat(e.protocol,\"://\").concat(e.url,\"/\").concat(\"/\"===t.charAt(0)?t.substr(1):t);return n.length&&(o+=\"?\".concat(n)),o}function T(e){return Object.keys(e).map((function(t){return f(\"%s=%s\",t,(r=e[t],\"[object Object]\"===Object.prototype.toString.call(r)||\"[object Array]\"===Object.prototype.toString.call(r)?JSON.stringify(e[t]):e[t]));var r})).join(\"&\")}function A(e){return e.map((function(e){return x(e)}))}function x(e){var t=e.request.headers[\"x-algolia-api-key\"]?{\"x-algolia-api-key\":\"*****\"}:{};return r(r({},e),{},{request:r(r({},e.request),{},{headers:r(r({},e.request.headers),t)})})}var N=function(e){var t=e.appId,n=function(e,t,r){var n={\"x-algolia-api-key\":r,\"x-algolia-application-id\":t};return{headers:function(){return e===h.WithinHeaders?n:{}},queryParameters:function(){return e===h.WithinQueryParameters?n:{}}}}(void 0!==e.authMode?e.authMode:h.WithinHeaders,t,e.apiKey),a=function(e){var t=e.hostsCache,r=e.logger,n=e.requester,a=e.requestsCache,u=e.responsesCache,i=e.timeouts,s=e.userAgent,c=e.hosts,l=e.queryParameters,f={hostsCache:t,logger:r,requester:n,requestsCache:a,responsesCache:u,timeouts:i,userAgent:s,headers:e.headers,queryParameters:l,hosts:c.map((function(e){return b(e)})),read:function(e,t){var r=m(t,f.timeouts.read),n=function(){return j(f,f.hosts.filter((function(e){return 0!=(e.accept&d.Read)})),e,r)};if(!0!==(void 0!==r.cacheable?r.cacheable:e.cacheable))return n();var a={request:e,mappedRequestOptions:r,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(a,(function(){return f.requestsCache.get(a,(function(){return f.requestsCache.set(a,n()).then((function(e){return Promise.all([f.requestsCache.delete(a),e])}),(function(e){return Promise.all([f.requestsCache.delete(a),Promise.reject(e)])})).then((function(e){var t=o(e,2);t[0];return t[1]}))}))}),{miss:function(e){return f.responsesCache.set(a,e)}})},write:function(e,t){return j(f,f.hosts.filter((function(e){return 0!=(e.accept&d.Write)})),e,m(t,f.timeouts.write))}};return f}(r(r({hosts:[{url:\"\".concat(t,\"-dsn.algolia.net\"),accept:d.Read},{url:\"\".concat(t,\".algolia.net\"),accept:d.Write}].concat(c([{url:\"\".concat(t,\"-1.algolianet.com\")},{url:\"\".concat(t,\"-2.algolianet.com\")},{url:\"\".concat(t,\"-3.algolianet.com\")}]))},e),{},{headers:r(r(r({},n.headers()),{\"content-type\":\"application/x-www-form-urlencoded\"}),e.headers),queryParameters:r(r({},n.queryParameters()),e.queryParameters)}));return l({transporter:a,appId:t,addAlgoliaAgent:function(e,t){a.userAgent.add({segment:e,version:t})},clearCache:function(){return Promise.all([a.requestsCache.clear(),a.responsesCache.clear()]).then((function(){}))}},e.methods)},C=function(e){return function(t,r){return t.method===O?e.transporter.read(t,r):e.transporter.write(t,r)}},E=function(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={transporter:e.transporter,appId:e.appId,indexName:t};return l(n,r.methods)}},J=function(e){return function(t,n){var o=t.map((function(e){return r(r({},e),{},{params:T(e.params||{})})}));return e.transporter.read({method:P,path:\"1/indexes/*/queries\",data:{requests:o},cacheable:!0},n)}},k=function(e){return function(t,o){return Promise.all(t.map((function(t){var a=t.params,u=a.facetName,i=a.facetQuery,s=n(a,[\"facetName\",\"facetQuery\"]);return E(e)(t.indexName,{methods:{searchForFacetValues:F}}).searchForFacetValues(u,i,r(r({},o),s))})))}},I=function(e){return function(t,r,n){return e.transporter.read({method:P,path:f(\"1/answers/%s/prediction\",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n)}},R=function(e){return function(t,r){return e.transporter.read({method:P,path:f(\"1/indexes/%s/query\",e.indexName),data:{query:t},cacheable:!0},r)}},F=function(e){return function(t,r,n){return e.transporter.read({method:P,path:f(\"1/indexes/%s/facets/%s/query\",e.indexName,t),data:{facetQuery:r},cacheable:!0},n)}},D=1,W=2,H=3;var Q=function(e){return function(t,n){var o=t.map((function(e){return r(r({},e),{},{threshold:e.threshold||0})}));return e.transporter.read({method:P,path:\"1/indexes/*/recommendations\",data:{requests:o},cacheable:!0},n)}};function L(e,t,n){var o,a={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:function(e){return new Promise((function(t){var r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return r.setRequestHeader(t,e.headers[t])}));var n,o=function(e,n){return setTimeout((function(){r.abort(),t({status:0,content:n,isTimedOut:!0})}),1e3*e)},a=o(e.connectTimeout,\"Connection timeout\");r.onreadystatechange=function(){r.readyState>r.OPENED&&void 0===n&&(clearTimeout(a),n=o(e.responseTimeout,\"Socket timeout\"))},r.onerror=function(){0===r.status&&(clearTimeout(a),clearTimeout(n),t({content:r.responseText||\"Network request failed\",status:r.status,isTimedOut:!1}))},r.onload=function(){clearTimeout(a),clearTimeout(n),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},logger:(o=H,{debug:function(e,t){return D>=o&&console.debug(e,t),Promise.resolve()},info:function(e,t){return W>=o&&console.info(e,t),Promise.resolve()},error:function(e,t){return console.error(e,t),Promise.resolve()}}),responsesCache:s(),requestsCache:s({serializable:!1}),hostsCache:i({caches:[u({key:\"\".concat(\"4.24.0\",\"-\").concat(e)}),s()]}),userAgent:w(\"4.24.0\").add({segment:\"Browser\",version:\"lite\"}),authMode:h.WithinQueryParameters};return N(r(r(r({},a),n),{},{methods:{search:J,searchForFacetValues:k,multipleQueries:J,multipleSearchForFacetValues:k,customRequest:C,initIndex:function(e){return function(t){return E(e)(t,{methods:{search:R,searchForFacetValues:F,findAnswers:I}})}},getRecommendations:Q}}))}return L.version=\"4.24.0\",L}));\n"],"names":["debounce","fn","time","timerId","undefined","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","createRef","initialValue","current","isPrimitive","obj","Object","isEqual","first","second","keys","_i","_Object$keys","key","noop","createClickedEvent","_ref","item","_ref$items","items","index","__autocomplete_indexName","positions","findIndex","x","objectID","queryID","__autocomplete_queryID","algoliaSource","_slicedToArray","arr","i","isArray","_arrayWithHoles","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","call","next","done","push","value","err","return","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","n","prototype","toString","slice","constructor","name","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","_excluded","_excluded2","_typeof","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","_objectWithoutProperties","source","excluded","target","sourceKeys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","ownKeys","object","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","arg","input","hint","prim","toPrimitive","res","String","Number","_toPrimitive","_toPropertyKey","configurable","writable","chunk","chunkSize","chunks","objectIDs","mapToInsightsParamsApi","params","map","param","_ref2","createSearchInsightsApi","searchInsights","canSendHeaders","client","_split$map2","version","split","major","minor","isModernInsightsClient","sendToInsights","method","payloads","_items$0$__autocomple","__autocomplete_algoliaCredentials","headers","appId","apiKey","concat","init","setAuthenticatedUserToken","authenticatedUserToken","setUserToken","userToken","clickedObjectIDsAfterSearch","clickedObjectIDs","_len2","_key2","clickedFilters","_len3","_key3","convertedObjectIDsAfterSearch","_len4","_key4","convertedObjectIDs","_len5","_key5","convertedFilters","_len6","_key6","viewedObjectIDs","_len7","_key7","reduce","acc","_ref3","_ref4","payload","_ref5","viewedFilters","_len8","_key8","createViewedEvents","itemsByIndexName","_acc$current$__autoco","indexName","isAlgoliaInsightsHit","hit","ALGOLIA_INSIGHTS_VERSION","ALGOLIA_INSIGHTS_SRC","sendViewedObjectIDs","onItemsChange","insights","state","insightsEvents","event","eventName","createAlgoliaInsightsPlugin","options","_getOptions","_ref8","getAlgoliaSources","context","onSelect","_ref9","onActive","__autocomplete_clickAnalytics","getOptions","providedInsightsClient","insightsClient","insightsInitParams","onSelectEvent","onActiveEvent","callback","window","safelyRunOnBrowser","pointer","AlgoliaAnalyticsObject","queue","environment","errorMessage","script","document","createElement","async","src","onerror","console","error","body","appendChild","cause","loadInsights","partial","previousItems","debouncedOnStateChange","isOpen","collections","subscribe","setContext","isAuthenticatedToken","setInsightsContext","algoliaInsightsPlugin","__algoliaSearchParameters","clickAnalytics","normalizeUserToken","_error","getItems","_ref6","onStateChange","_ref7","__autocomplete_pluginOptions","_context$algoliaInsig","algoliaSourceBase","__automaticInsights","createCancelablePromiseList","list","add","cancelablePromise","finally","cancelAll","promise","cancel","isEmpty","createStore","reducer","props","onStoreStateChange","initialState","getState","dispatch","action","prevState","type","pendingRequests","flatten","values","a","b","getItemsCount","sum","collection","autocompleteId","generateAutocompleteId","decycle","Set","getDefaultProps","pluginSubscribers","_props$id","plugins","debug","openOnFocus","enterKeyHint","ignoreCompositionEvents","placeholder","autoFocus","defaultActiveItemId","stallThreshold","shouldPanelOpen","reshape","sources","id","activeItemId","query","completion","status","_props$onStateChange","_x$onStateChange","onSubmit","_props$onSubmit","_x$onSubmit","onReset","_props$onReset","_x$onReset","getSources","Promise","all","plugin","Boolean","seenSourceIds","resolve","then","invariant","JSON","stringify","maybeSource","sourceId","includes","Error","defaultSource","getItemInputValue","getItemUrl","setIsOpen","onResolve","__default","normalizedSource","getNormalizedSources","nested","_x$onSelect","_x$onActive","_x$onResolve","navigator","navigate","itemUrl","location","assign","navigateNewTab","windowReference","open","focus","navigateNewWindow","isDescription","execute","preResolve","itemsOrDescription","description","contextParameters","requesterId","_state$context$key","requests","queries","transformResponse","searchClient","container","find","_container$items","request","maybeDescription","responses","postResolve","store","rawResults","matches","response","results","transform","hits","result","facetHits","_facetHits","facetHit","label","count","_highlightResult","highlighted","every","createInternalCancelablePromise","onfulfilled","onrejected","createCallback","catch","onfinally","onCancelList","isCanceled","callbacks","createCancelablePromise","executor","reject","cancelable","onResult","fallback","getActiveItem","collectionIndex","collectionsCount","nextValue","getCollectionFromActiveItemId","isOffsetFound","counter","previousItemsOffset","currentCollection","getRelativeActiveItemId","itemInputValue","reason","lastStalledId","runConcurrentSafePromise","basePromiseId","latestResolvedId","latestResolvedValue","currentPromiseId","createConcurrentSafePromise","onInput","_ref$nextState","nextState","refresh","setters","setCollections","setQuery","setActiveItemId","setStatus","_nextState$isOpen","_request","_store$getState$conte","some","_automaticInsights","isSearchResponseWithAutomaticInsightsFlag","originalSourcesBySourceId","sourcesBySourceId","_nextState$isOpen2","isPanelOpen","highlightedItem","getAutocompleteElementId","autocompleteInstanceId","elementId","join","replace","regex","getNativeEvent","nativeEvent","_excluded3","_excluded4","_excluded5","_excluded6","getPropGetters","getEnvironmentProps","providedProps","inputElement","formElement","panelElement","onMouseDownOrTouchStart","contextNode","parent","child","contains","onTouchStart","onMouseDown","onTouchMove","activeElement","blur","getRootProps","rest","role","getFormProps","noValidate","_providedProps$inputE","preventDefault","_providedProps$inputE2","getLabelProps","htmlFor","getInputProps","_props$environment$na","onFocus","_ref3$maxLength","maxLength","activeItem","shouldFallbackKeyHint","userAgent","match","isSamsung","autoComplete","autoCorrect","autoCapitalize","spellCheck","onChange","currentTarget","isComposing","onCompositionEnd","onKeyDown","triggerScrollIntoView","nodeItem","getElementById","scrollIntoViewIfNeeded","scrollIntoView","triggerOnActive","nextActiveItemId","metaKey","ctrlKey","shiftKey","altKey","_onKeyDown","onBlur","onClick","getPanelProps","onMouseLeave","getListProps","getItemProps","__autocomplete_id","onMouseMove","_item","_source","getMetadata","_","_options$__autocomple","_options$__autocomple2","_options$__autocomple3","optionsKey","__autocomplete_metadata","userAgents","segment","extraOptions","ua","getCompletion","_getActiveItem","getNextActiveItemId","moveAmount","baseIndex","itemCount","numericIndex","stateReducer","hasOwnProperty","_nextState","createAutocomplete","subscribers","_state$context","_state$context$algoli","isAlgoliaInsightsPluginEnabled","subscribePlugins","rawValue","baseItemId","getAutocompleteSetters","propGetters","Event","_plugin$subscribe","insightsParams","_environment$navigato","_environment$navigato2","metadata","metadataContainer","headRef","querySelector","content","injectMetadata","t","s","r","e","u","h","p","Map","get","this","set","l","SearchIcon","element","createElementNS","setAttribute","path","ClearIcon","LoadingIcon","innerHTML","TOUCH_EVENTS_ALIASES","setStyle","style","eventProxy","_listeners","setProperty","dom","useCapture","nameLower","oldValue","toLowerCase","addEventListener","removeEventListener","removeAttribute","getNormalizedName","setProperties","setPropertiesWithoutEvents","getCreateDomElement","tagName","_ref$children","children","append","createAutocompleteDom","autocomplete","autocompleteScopeApi","classNames","isDetached","_ref$placeholder","setIsModalOpen","translations","createDomElement","rootProps","root","class","detachedContainer","stopPropagation","detachedOverlay","labelProps","submitButton","title","submitButtonTitle","ariaLabel","clearButton","clearButtonTitle","loadingIndicator","getInputPropsCore","inputProps","Input","inputWrapperPrefix","inputWrapperSuffix","inputWrapper","formProps","form","panelProps","panel","detachedSearchButtonQuery","textContent","detachedSearchButtonPlaceholder","hidden","detachedSearchButtonIcon","detachedSearchButton","detachedSearchButtonTitle","detachedCancelButton","detachedCancelButtonText","detachedFormContainer","vnodeId","rerenderQueue","prevDebounce","defer","depthSort","eventClock","eventProxyCapture","EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","node","parentNode","removeChild","ref","normalizedProps","defaultProps","createVNode","original","vnode","__k","__","__b","__e","__d","__c","__v","__i","__u","Fragment","BaseComponent","childIndex","getDomSibling","sibling","updateParentDomPointers","base","c","process","__r","debounceRendering","renderQueueLength","component","newVNode","oldVNode","oldDom","commitQueue","refQueue","sort","shift","__P","diff","__n","namespaceURI","commitRoot","diffChildren","parentDom","renderResult","newParentVNode","oldParentVNode","globalContext","namespace","excessDomChildren","isHydrating","childVNode","newDom","firstChildDom","oldChildren","newChildrenLength","constructNewChildrenArray","applyRef","insert","nextSibling","skewedIndex","matchingIndex","oldChildrenLength","remainingOldChildren","skew","findMatchingIndex","unmount","parentVNode","insertBefore","nodeType","y","cssText","_attached","createEventProxy","eventHandler","_dispatched","tmp","isNew","oldProps","oldState","snapshot","clearProcessingException","newProps","isClassComponent","provider","componentContext","renderHook","newType","outer","render","contextType","__E","doRender","sub","__h","_sb","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","MODE_HYDRATE","diffElementNodes","diffed","cb","newHtml","oldHtml","newChildren","inputValue","checked","localName","createTextNode","is","__m","data","childNodes","attributes","__html","removeNode","hasRefUnmount","skipRemove","componentWillUnmount","replaceNode","firstChild","getAttributeValueByPath","record","errorInfo","ctor","handled","getDerivedStateFromError","setState","componentDidCatch","update","enqueueRender","forceUpdate","bind","parseAttribute","preTagParts","highlightedValue","HIGHLIGHT_PRE_TAG","firstValue","parts","part","lastPart","isHighlighted","createAttributeSet","postTagParts","HIGHLIGHT_POST_TAG","parseAlgoliaHitHighlight","attribute","createHighlightComponent","Highlight","_ref2$tagName","__autocomplete_componentName","htmlEscapes","hasAlphanumeric","RegExp","regexEscapedHtml","regexHasEscapedHtml","isPartHighlighted","_parts","_parts2","isNextHighlighted","isPreviousHighlighted","character","reverseHighlightedParts","createReverseHighlightComponent","ReverseHighlight","parseAlgoliaHitSnippet","createReverseSnippetComponent","ReverseSnippet","createSnippetComponent","Snippet","getHTMLElement","mergeClassNames","accValue","currentValue","defaultClassNames","panelLayout","sourceFooter","sourceHeader","sourceNoResults","defaultRender","defaultRenderer","preactCreateElement","PreactFragment","getPanelPlacementStyle","panelPlacement","containerRect","getBoundingClientRect","top","pageYOffset","documentElement","scrollTop","height","left","right","clientWidth","width","maxWidth","formRect","_extends","isPlainObject","mergeDeep","pickBy","predicate","entries","_createEffectWrapper","effects","cleanups","runEffect","effectCleanup","cleanupEffects","currentCleanups","cleanup","runEffects","currentEffects","effect","createEffectWrapper","_createReactiveWrappe","reactives","reactive","_fn","runReactives","createReactiveWrapper","hasNoResultsSourceTemplateRef","optionsRef","onStateChangeRef","_core$id","panelContainer","renderNoResults","renderer","detachedMediaQuery","components","core","containerElement","defaultedRenderer","defaultComponents","getComputedStyle","getPropertyValue","getDefaultOptions","matchMedia","_onStateChangeRef$cur","_props$value$core$onS","_props$value$core","templates","noResults","hasItems","hasNoResultsTemplate","lastStateRef","html","htm","setPanelPosition","scheduleRender","renderProps","renderSearchBox","classList","toggle","sections","sourceIndex","className","header","itemProps","footer","elements","renderPanel","updatedOptions","_props$value$renderer","rendererProps","remove","environmentProps","panelContainerElement","debouncedRender","querySelectorAll","scrollablePanel","onResize","previousIsDetached","requestAnimationFrame","toggleModalClassname","isActive","isModalDetachedMql","hasModernEventListener","addListener","removeListener","destroy","createAlgoliaRequester","fetcher","fetcherParams","_fetcherParams$reques","requesterParams","requestParams","createRequester","_ref$userAgents","addAlgoliaAgent","coreUserAgents","_getAppIdAndApiKey","transporter","baseHeaders","queryParameters","baseQueryParameters","APP_ID","API_KEY","getAppIdAndApiKey","search","searchParameters","hitsPerPage","highlightPreTag","highlightPostTag","resultIndex","_result$hits","fetchAlgoliaResults","getAlgoliaResults","condition","message","module","exports","localStorage","parse","getItem","setItem","timeToLive","fromEntries","timestamp","Date","getTime","miss","delete","clear","removeItem","caches","serializable","Math","floor","random","f","encodeURIComponent","WithinQueryParameters","WithinHeaders","m","timeout","cacheable","d","Read","Write","Any","v","g","lastUpdate","now","protocol","url","accept","O","P","q","getTimeout","statelessHosts","j","pop","transporterStackTrace","A","S","connectTimeout","timeouts","connect","responseTimeout","host","triesLeft","onSuccess","onRetry","isTimedOut","logger","info","hostsCache","onFail","requester","send","reverse","w","T","charAt","substr","N","authMode","requestsCache","responsesCache","hosts","read","mappedRequestOptions","write","clearCache","methods","C","E","J","k","facetName","facetQuery","searchForFacetValues","F","I","queryLanguages","R","D","W","H","Q","threshold","L","XMLHttpRequest","setRequestHeader","abort","onreadystatechange","readyState","OPENED","responseText","onload","multipleQueries","multipleSearchForFacetValues","customRequest","initIndex","findAnswers","getRecommendations"],"sourceRoot":""}