{"version":3,"file":"index.js","sources":["../../../../node_modules/preact/dist/preact.module.js","../../../../node_modules/preact/hooks/dist/hooks.module.js","../../../../node_modules/preact/compat/dist/compat.module.js","../../../docsearch-react/dist/esm/icons/ControlKeyIcon.js","../../../docsearch-react/dist/esm/icons/SearchIcon.js","../../../docsearch-react/dist/esm/DocSearchButton.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/debounce.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/decycle.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/flatten.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/generateAutocompleteId.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/getItemsCount.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/invariant.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/isEqual.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/noop.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/userAgents.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/version.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/warn.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-shared/dist/esm/createRef.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/checkOptions.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromise.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/getNextActiveItemId.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/getNormalizedSources.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/getActiveItem.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/isSamsung.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/createStore.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromiseList.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/getAutocompleteSetters.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/onInput.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/createConcurrentSafePromise.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/onKeyDown.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/stateReducer.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/createAutocomplete.js","../../../docsearch-react/dist/esm/AlgoliaLogo.js","../../../docsearch-react/dist/esm/Footer.js","../../../docsearch-react/dist/esm/Hit.js","../../../docsearch-react/dist/esm/icons/LoadingIcon.js","../../../docsearch-react/dist/esm/icons/RecentIcon.js","../../../docsearch-react/dist/esm/icons/ResetIcon.js","../../../docsearch-react/dist/esm/icons/SelectIcon.js","../../../docsearch-react/dist/esm/icons/SourceIcon.js","../../../docsearch-react/dist/esm/icons/StarIcon.js","../../../docsearch-react/dist/esm/icons/ErrorIcon.js","../../../docsearch-react/dist/esm/icons/NoResultsIcon.js","../../../docsearch-react/dist/esm/ErrorScreen.js","../../../docsearch-react/dist/esm/NoResultsScreen.js","../../../docsearch-react/dist/esm/Snippet.js","../../../docsearch-react/dist/esm/Results.js","../../../docsearch-react/dist/esm/utils/groupBy.js","../../../docsearch-react/dist/esm/utils/identity.js","../../../docsearch-react/dist/esm/utils/isModifierEvent.js","../../../docsearch-react/dist/esm/utils/noop.js","../../../docsearch-react/dist/esm/utils/removeHighlightTags.js","../../../docsearch-react/dist/esm/ResultsScreen.js","../../../docsearch-react/dist/esm/StartScreen.js","../../../docsearch-react/dist/esm/ScreenState.js","../../../docsearch-react/dist/esm/SearchBox.js","../../../docsearch-react/dist/esm/constants.js","../../../docsearch-react/dist/esm/stored-searches.js","../../../docsearch-react/node_modules/algoliasearch/dist/algoliasearch-lite.esm.browser.js","../../../docsearch-react/dist/esm/DocSearchModal.js","../../../docsearch-react/dist/esm/useSearchClient.js","../../../docsearch-react/dist/esm/version.js","../../../docsearch-react/dist/esm/useTouchEvents.js","../../../docsearch-react/dist/esm/useTrapFocus.js","../../../docsearch-react/dist/esm/DocSearch.js","../../../docsearch-react/dist/esm/useDocSearchKeyboardEvents.js","../../src/docsearch.tsx"],"sourcesContent":["var n,l,u,i,t,r,o={},f=[],e=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function c(n,l){for(var u in l)n[u]=l[u];return n}function s(n){var l=n.parentNode;l&&l.removeChild(n)}function a(n,l,u){var i,t,r,o=arguments,f={};for(r in l)\"key\"==r?i=l[r]:\"ref\"==r?t=l[r]:f[r]=l[r];if(arguments.length>3)for(u=[u],r=3;r0?v(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(_=A[h])||_&&k.key==_.key&&k.type===_.type)A[h]=void 0;else for(p=0;p3)for(u=[u],r=3;r=i.__.length&&i.__.push({}),i.__[t]}function l(n){return o=1,p(w,n)}function p(n,r,o){var i=m(t++,2);return i.t=n,i.__c||(i.__=[o?o(r):w(void 0,r),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=u),i.__}function y(r,o){var i=m(t++,3);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i))}function h(r,o){var i=m(t++,4);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i))}function s(n){return o=5,d(function(){return{current:n}},[])}function _(n,t,u){o=6,h(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function d(n,u){var r=m(t++,7);return k(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function A(n,t){return o=8,d(function(){return n},t)}function F(n){var r=u.context[n.__c],o=m(t++,9);return o.__c=n,r?(null==o.__&&(o.__=!0,r.sub(u)),r.props.value):n.__}function T(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function q(n){var r=m(t++,10),o=l();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}function x(){i.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(j),t.__H.__h=[]}catch(u){t.__H.__h=[],n.__e(u,t.__v)}}),i=[]}n.__b=function(n){u=null,c&&c(n)},n.__r=function(n){f&&f(n),t=0;var r=(u=n.__c).__H;r&&(r.__h.forEach(g),r.__h.forEach(j),r.__h=[])},n.diffed=function(t){e&&e(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==i.push(o)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),b&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);b&&(t=requestAnimationFrame(u))})(x)),u=void 0},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||j(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),a&&a(t,u)},n.unmount=function(t){v&&v(t);var u=t.__c;if(u&&u.__H)try{u.__H.__.forEach(g)}catch(t){n.__e(t,u.__v)}};var b=\"function\"==typeof requestAnimationFrame;function g(n){var t=u;\"function\"==typeof n.__c&&n.__c(),u=t}function j(n){var t=u;n.__c=n.__(),u=t}function k(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function w(n,t){return\"function\"==typeof t?t(n):t}export{l as useState,p as useReducer,y as useEffect,h as useLayoutEffect,s as useRef,_ as useImperativeHandle,d as useMemo,A as useCallback,F as useContext,T as useDebugValue,q as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","import{useState as n,useReducer as t,useEffect as e,useLayoutEffect as r,useRef as u,useImperativeHandle as o,useMemo as i,useCallback as l,useContext as f,useDebugValue as c}from\"preact/hooks\";export*from\"preact/hooks\";import{Component as a,createElement as s,options as h,toChildArray as p,Fragment as v,render as d,hydrate as m,cloneElement as y,createRef as b,createContext as _}from\"preact\";export{createElement,createContext,createRef,Fragment,Component}from\"preact\";function C(n,t){for(var e in t)n[e]=t[e];return n}function S(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function E(n){this.props=n}function g(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return!r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:S(this.props,n)}function r(t){return this.shouldComponentUpdate=e,s(n,t)}return r.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",r.prototype.isReactComponent=!0,r.__f=!0,r}(E.prototype=new a).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return S(this.props,n)||S(this.state,t)};var w=h.__b;h.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),w&&w(n)};var R=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function x(n){function t(t,e){var r=C({},t);return delete r.ref,n(r,(e=t.ref||e)&&(\"object\"!=typeof e||\"current\"in e)?e:null)}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var N=function(n,t){return null==n?null:p(p(n).map(t))},k={map:N,forEach:N,count:function(n){return n?p(n).length:0},only:function(n){var t=p(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:p},A=h.__e;function O(){this.__u=0,this.t=null,this.__b=null}function L(n){var t=n.__.__c;return t&&t.__e&&t.__e(n)}function U(n){var t,e,r;function u(u){if(t||(t=n()).then(function(n){e=n.default||n},function(n){r=n}),r)throw r;if(!e)throw t;return s(e,u)}return u.displayName=\"Lazy\",u.__f=!0,u}function D(){this.u=null,this.o=null}h.__e=function(n,t,e){if(n.then)for(var r,u=t;u=u.__;)if((r=u.__c)&&r.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),r.__c(n,t);A(n,t,e)},(O.prototype=new a).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=L(r.__v),o=!1,i=function(){o||(o=!0,e.componentWillUnmount=e.__c,u?u(l):l())};e.__c=e.componentWillUnmount,e.componentWillUnmount=function(){i(),e.__c&&e.__c()};var l=function(){if(!--r.__u){if(r.state.__e){var n=r.state.__e;r.__v.__k[0]=function n(t,e,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)}),t.__c&&t.__c.__P===e&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__e:r.__b=null});t=r.t.pop();)t.forceUpdate()}},f=!0===t.__h;r.__u++||f||r.setState({__e:r.__b=r.__v.__k[0]}),n.then(i,i)},O.prototype.componentWillUnmount=function(){this.t=[]},O.prototype.render=function(n,t){if(this.__b){if(this.__v.__k){var e=document.createElement(\"div\"),r=this.__v.__k[0].__c;this.__v.__k[0]=function n(t,e,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),t.__c.__H=null),null!=(t=C({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)})),t}(this.__b,e,r.__O=r.__P)}this.__b=null}var u=t.__e&&s(v,null,n.fallback);return u&&(u.__h=null),[s(v,null,t.__e?null:n.children),u]};var F=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]>>1,1),t.i.removeChild(n)}}),d(s(M,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount()}function j(n,t){return s(T,{__v:n,i:t})}(D.prototype=new a).__e=function(n){var t=this,e=L(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),F(t,n,r)):u()};e?e(o):o()}},D.prototype.render=function(n){this.u=null,this.o=new Map;var t=p(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},D.prototype.componentDidUpdate=D.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){F(n,e,t)})};var I=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,W=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,P=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function V(n,t,e){return null==t.__k&&(t.textContent=\"\"),d(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function z(n,t,e){return m(n,t),\"function\"==typeof e&&e(),n?n.__c:null}a.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(n){Object.defineProperty(a.prototype,n,{configurable:!0,get:function(){return this[\"UNSAFE_\"+n]},set:function(t){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:t})}})});var B=h.event;function H(){}function Z(){return this.cancelBubble}function Y(){return this.defaultPrevented}h.event=function(n){return B&&(n=B(n)),n.persist=H,n.isPropagationStopped=Z,n.isDefaultPrevented=Y,n.nativeEvent=n};var $,q={configurable:!0,get:function(){return this.class}},G=h.vnode;h.vnode=function(n){var t=n.type,e=n.props,r=e;if(\"string\"==typeof t){for(var u in r={},e){var o=e[u];\"value\"===u&&\"defaultValue\"in e&&null==o||(\"defaultValue\"===u&&\"value\"in e&&null==e.value?u=\"value\":\"download\"===u&&!0===o?o=\"\":/ondoubleclick/i.test(u)?u=\"ondblclick\":/^onchange(textarea|input)/i.test(u+t)&&!P(e.type)?u=\"oninput\":/^on(Ani|Tra|Tou|BeforeInp)/.test(u)?u=u.toLowerCase():W.test(u)?u=u.replace(/[A-Z0-9]/,\"-$&\").toLowerCase():null===o&&(o=void 0),r[u]=o)}\"select\"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=p(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value)})),\"select\"==t&&null!=r.defaultValue&&(r.value=p(e.children).forEach(function(n){n.props.selected=r.multiple?-1!=r.defaultValue.indexOf(n.props.value):r.defaultValue==n.props.value})),n.props=r}t&&e.class!=e.className&&(q.enumerable=\"className\"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,\"className\",q)),n.$$typeof=I,G&&G(n)};var J=h.__r;h.__r=function(n){J&&J(n),$=n.__c};var K={ReactCurrentDispatcher:{current:{readContext:function(n){return $.__n[n.__c].props.value}}}},Q=1,X=2,nn=3,tn=4,en=5;function rn(n,t){return t()}var un=\"object\"==typeof performance&&\"function\"==typeof performance.now?performance.now.bind(performance):function(){return Date.now()},on=\"16.8.0\";function ln(n){return s.bind(null,n)}function fn(n){return!!n&&n.$$typeof===I}function cn(n){return fn(n)?y.apply(null,arguments):n}function an(n){return!!n.__k&&(d(null,n),!0)}function sn(n){return n&&(n.base||1===n.nodeType&&n)||null}var hn=function(n,t){return n(t)},pn=v;export default{useState:n,useReducer:t,useEffect:e,useLayoutEffect:r,useRef:u,useImperativeHandle:o,useMemo:i,useCallback:l,useContext:f,useDebugValue:c,version:\"16.8.0\",Children:k,render:V,hydrate:z,unmountComponentAtNode:an,createPortal:j,createElement:s,createContext:_,createFactory:ln,cloneElement:cn,createRef:b,Fragment:v,isValidElement:fn,findDOMNode:sn,Component:a,PureComponent:E,memo:g,forwardRef:x,unstable_batchedUpdates:hn,StrictMode:v,Suspense:O,SuspenseList:D,lazy:U,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:K};export{on as version,k as Children,V as render,z as hydrate,an as unmountComponentAtNode,j as createPortal,ln as createFactory,cn as cloneElement,fn as isValidElement,sn as findDOMNode,E as PureComponent,g as memo,x as forwardRef,hn as unstable_batchedUpdates,pn as StrictMode,O as Suspense,D as SuspenseList,U as lazy,K as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Q as unstable_ImmediatePriority,X as unstable_UserBlockingPriority,nn as unstable_NormalPriority,tn as unstable_LowPriority,en as unstable_IdlePriority,rn as unstable_runWithPriority,un as unstable_now};\n//# sourceMappingURL=compat.module.js.map\n","import React from 'react';\nexport function ControlKeyIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"15\",\n height: \"15\",\n className: \"DocSearch-Control-Key-Icon\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953\",\n strokeWidth: \"1.2\",\n stroke: \"currentColor\",\n fill: \"none\",\n strokeLinecap: \"square\"\n }));\n}","import React from 'react';\nexport function SearchIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"20\",\n height: \"20\",\n className: \"DocSearch-Search-Icon\",\n viewBox: \"0 0 20 20\",\n \"aria-hidden\": \"true\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z\",\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }));\n}","var _excluded = [\"translations\"];\n\nfunction _extends() { _extends = Object.assign || 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); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\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.\"); }\n\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); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\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; }\n\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; }\n\nimport React, { useEffect, useState } from 'react';\nimport { ControlKeyIcon } from './icons/ControlKeyIcon';\nimport { SearchIcon } from './icons/SearchIcon';\nvar ACTION_KEY_DEFAULT = 'Ctrl';\nvar ACTION_KEY_APPLE = '⌘';\n\nfunction isAppleDevice() {\n return /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);\n}\n\nexport var DocSearchButton = React.forwardRef(function (_ref, ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _translations$buttonT = translations.buttonText,\n buttonText = _translations$buttonT === void 0 ? 'Search' : _translations$buttonT,\n _translations$buttonA = translations.buttonAriaLabel,\n buttonAriaLabel = _translations$buttonA === void 0 ? 'Search' : _translations$buttonA;\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n key = _useState2[0],\n setKey = _useState2[1];\n\n useEffect(function () {\n if (typeof navigator !== 'undefined') {\n isAppleDevice() ? setKey(ACTION_KEY_APPLE) : setKey(ACTION_KEY_DEFAULT);\n }\n }, []);\n return /*#__PURE__*/React.createElement(\"button\", _extends({\n type: \"button\",\n className: \"DocSearch DocSearch-Button\",\n \"aria-label\": buttonAriaLabel\n }, props, {\n ref: ref\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"DocSearch-Button-Container\"\n }, /*#__PURE__*/React.createElement(SearchIcon, null), /*#__PURE__*/React.createElement(\"span\", {\n className: \"DocSearch-Button-Placeholder\"\n }, buttonText)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"DocSearch-Button-Keys\"\n }, key !== null && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DocSearchButtonKey, {\n reactsToKey: key === ACTION_KEY_DEFAULT ? ACTION_KEY_DEFAULT : 'Meta'\n }, key === ACTION_KEY_DEFAULT ? /*#__PURE__*/React.createElement(ControlKeyIcon, null) : key), /*#__PURE__*/React.createElement(DocSearchButtonKey, {\n reactsToKey: \"k\"\n }, \"K\"))));\n});\n\nfunction DocSearchButtonKey(_ref2) {\n var reactsToKey = _ref2.reactsToKey,\n children = _ref2.children;\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n isKeyDown = _useState4[0],\n setIsKeyDown = _useState4[1];\n\n useEffect(function () {\n if (!reactsToKey) {\n return undefined;\n }\n\n function handleKeyDown(e) {\n if (e.key === reactsToKey) {\n setIsKeyDown(true);\n }\n }\n\n function handleKeyUp(e) {\n if (e.key === reactsToKey || // keyup doesn't fire when Command is held down,\n // workaround is to mark key as also released when Command is released\n // See https://stackoverflow.com/a/73419500\n e.key === 'Meta') {\n setIsKeyDown(false);\n }\n }\n\n window.addEventListener('keydown', handleKeyDown);\n window.addEventListener('keyup', handleKeyUp);\n return function () {\n window.removeEventListener('keydown', handleKeyDown);\n window.removeEventListener('keyup', handleKeyUp);\n };\n }, [reactsToKey]);\n return /*#__PURE__*/React.createElement(\"kbd\", {\n className: isKeyDown ? 'DocSearch-Button-Key DocSearch-Button-Key--pressed' : 'DocSearch-Button-Key'\n }, children);\n}","export function debounce(fn, time) {\n var timerId = undefined;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(function () {\n return fn.apply(void 0, args);\n }, time);\n };\n}","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}","export function flatten(values) {\n return values.reduce(function (a, b) {\n return a.concat(b);\n }, []);\n}","var autocompleteId = 0;\nexport function generateAutocompleteId() {\n return \"autocomplete-\".concat(autocompleteId++);\n}","export function 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}","/**\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}","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() {};","import { version } from './version';\nexport var userAgents = [{\n segment: 'autocomplete-core',\n version: version\n}];","export var version = '1.9.3';","export var warnCache = {\n current: {}\n};\n\n/**\n * Logs a warning if the condition is not met.\n * This is used to log issues in development environment only.\n */\nexport function warn(condition, message) {\n if (!(process.env.NODE_ENV !== 'production')) {\n return;\n }\n if (condition) {\n return;\n }\n var sanitizedMessage = message.trim();\n var hasAlreadyPrinted = warnCache.current[sanitizedMessage];\n if (!hasAlreadyPrinted) {\n warnCache.current[sanitizedMessage] = true;\n\n // eslint-disable-next-line no-console\n console.warn(\"[Autocomplete] \".concat(sanitizedMessage));\n }\n}","export function createClickedEvent(_ref) {\n var item = _ref.item,\n items = _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 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.6.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 onItemsChange = _getOptions.onItemsChange,\n onSelectEvent = _getOptions.onSelect,\n onActiveEvent = _getOptions.onActive;\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 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 insightsClient('addAlgoliaAgent', 'insights-plugin');\n setContext({\n algoliaInsightsPlugin: {\n __algoliaSearchParameters: {\n clickAnalytics: true\n },\n insights: insights\n }\n });\n onSelect(function (_ref5) {\n var item = _ref5.item,\n state = _ref5.state,\n event = _ref5.event;\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: previousItems.current\n }))]\n });\n });\n onActive(function (_ref6) {\n var item = _ref6.item,\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: previousItems.current\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 getOptions(options) {\n return _objectSpread({\n onItemsChange: function onItemsChange(_ref8) {\n var insights = _ref8.insights,\n insightsEvents = _ref8.insightsEvents;\n insights.viewedObjectIDs.apply(insights, _toConsumableArray(insightsEvents.map(function (event) {\n return _objectSpread(_objectSpread({}, event), {}, {\n algoliaSource: [].concat(_toConsumableArray(event.algoliaSource || []), ['autocomplete-internal'])\n });\n })));\n },\n onSelect: function onSelect(_ref9) {\n var insights = _ref9.insights,\n insightsEvents = _ref9.insightsEvents;\n insights.clickedObjectIDsAfterSearch.apply(insights, _toConsumableArray(insightsEvents.map(function (event) {\n return _objectSpread(_objectSpread({}, event), {}, {\n algoliaSource: [].concat(_toConsumableArray(event.algoliaSource || []), ['autocomplete-internal'])\n });\n })));\n },\n onActive: noop\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 * 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 createRef(initialValue) {\n return {\n current: initialValue\n };\n}","import { warn } from '@algolia/autocomplete-shared';\nexport function checkOptions(options) {\n process.env.NODE_ENV !== 'production' ? warn(!options.debug, 'The `debug` option is meant for development debugging and should not be used in production.') : void 0;\n}","function createInternalCancelablePromise(promise, initialState) {\n var state = initialState;\n return {\n then: function then(onfulfilled, onrejected) {\n return createInternalCancelablePromise(promise.then(createCallback(onfulfilled, state, promise), createCallback(onrejected, state, promise)), state);\n },\n catch: function _catch(onrejected) {\n return createInternalCancelablePromise(promise.catch(createCallback(onrejected, state, promise)), state);\n },\n finally: function _finally(onfinally) {\n if (onfinally) {\n state.onCancelList.push(onfinally);\n }\n return createInternalCancelablePromise(promise.finally(createCallback(onfinally && function () {\n state.onCancelList = [];\n return onfinally();\n }, state, promise)), state);\n },\n cancel: function cancel() {\n state.isCanceled = true;\n var callbacks = state.onCancelList;\n state.onCancelList = [];\n callbacks.forEach(function (callback) {\n callback();\n });\n },\n isCanceled: function isCanceled() {\n return state.isCanceled === true;\n }\n };\n}\nexport function createCancelablePromise(executor) {\n return createInternalCancelablePromise(new Promise(function (resolve, reject) {\n return executor(resolve, reject);\n }), {\n isCanceled: false,\n onCancelList: []\n });\n}\ncreateCancelablePromise.resolve = function (value) {\n return cancelable(Promise.resolve(value));\n};\ncreateCancelablePromise.reject = function (reason) {\n return cancelable(Promise.reject(reason));\n};\nexport function cancelable(promise) {\n return createInternalCancelablePromise(promise, {\n isCanceled: false,\n onCancelList: []\n });\n}\nfunction createCallback(onResult, state, fallback) {\n if (!onResult) {\n return fallback;\n }\n return function callback(arg) {\n if (state.isCanceled) {\n return arg;\n }\n return onResult(arg);\n };\n}","/**\n * Returns the next active item ID from the current state.\n *\n * We allow circular keyboard navigation from the base index.\n * The base index can either be `null` (nothing is highlighted) or `0`\n * (the first item is highlighted).\n * The base index is allowed to get assigned `null` only if\n * `props.defaultActiveItemId` is `null`. This pattern allows to \"stop\"\n * by the actual query before navigating to other suggestions as seen on\n * Google or Amazon.\n *\n * @param moveAmount The offset to increment (or decrement) the last index\n * @param baseIndex The current index to compute the next index from\n * @param itemCount The number of items\n * @param defaultActiveItemId The default active index to fallback to\n */\nexport function getNextActiveItemId(moveAmount, baseIndex, itemCount, defaultActiveItemId) {\n if (!itemCount) {\n return null;\n }\n if (moveAmount < 0 && (baseIndex === null || defaultActiveItemId !== null && baseIndex === 0)) {\n return itemCount + moveAmount;\n }\n var numericIndex = (baseIndex === null ? -1 : baseIndex) + moveAmount;\n if (numericIndex <= -1 || numericIndex >= itemCount) {\n return defaultActiveItemId === null ? null : 0;\n }\n return numericIndex;\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport { invariant, decycle, noop } from '@algolia/autocomplete-shared';\nexport function getNormalizedSources(getSources, params) {\n var seenSourceIds = [];\n return Promise.resolve(getSources(params)).then(function (sources) {\n invariant(Array.isArray(sources), function () {\n return \"The `getSources` function must return an array of sources but returned type \".concat(JSON.stringify(_typeof(sources)), \":\\n\\n\").concat(JSON.stringify(decycle(sources), null, 2));\n });\n return Promise.all(sources\n // We allow `undefined` and `false` sources to allow users to use\n // `Boolean(query) && source` (=> `false`).\n // We need to remove these values at this point.\n .filter(function (maybeSource) {\n return Boolean(maybeSource);\n }).map(function (source) {\n invariant(typeof source.sourceId === 'string', 'A source must provide a `sourceId` string.');\n if (seenSourceIds.includes(source.sourceId)) {\n throw new Error(\"[Autocomplete] The `sourceId` \".concat(JSON.stringify(source.sourceId), \" is not unique.\"));\n }\n seenSourceIds.push(source.sourceId);\n var defaultSource = {\n getItemInputValue: function getItemInputValue(_ref) {\n var state = _ref.state;\n return state.query;\n },\n getItemUrl: function getItemUrl() {\n return undefined;\n },\n onSelect: function onSelect(_ref2) {\n var setIsOpen = _ref2.setIsOpen;\n setIsOpen(false);\n },\n onActive: noop,\n onResolve: noop\n };\n Object.keys(defaultSource).forEach(function (key) {\n defaultSource[key].__default = true;\n });\n var normalizedSource = _objectSpread(_objectSpread({}, defaultSource), source);\n return Promise.resolve(normalizedSource);\n }));\n });\n}","// We don't have access to the autocomplete source when we call `onKeyDown`\n// or `onClick` because those are native browser events.\n// However, we can get the source from the suggestion index.\nfunction getCollectionFromActiveItemId(state) {\n // Given 3 sources with respectively 1, 2 and 3 suggestions: [1, 2, 3]\n // We want to get the accumulated counts:\n // [1, 1 + 2, 1 + 2 + 3] = [1, 3, 3 + 3] = [1, 3, 6]\n var accumulatedCollectionsCount = state.collections.map(function (collections) {\n return collections.items.length;\n }).reduce(function (acc, collectionsCount, index) {\n var previousValue = acc[index - 1] || 0;\n var nextValue = previousValue + collectionsCount;\n acc.push(nextValue);\n return acc;\n }, []);\n\n // Based on the accumulated counts, we can infer the index of the suggestion.\n var collectionIndex = accumulatedCollectionsCount.reduce(function (acc, current) {\n if (current <= state.activeItemId) {\n return acc + 1;\n }\n return acc;\n }, 0);\n return state.collections[collectionIndex];\n}\n\n/**\n * Gets the highlighted index relative to a suggestion object (not the absolute\n * highlighted index).\n *\n * Example:\n * [['a', 'b'], ['c', 'd', 'e'], ['f']]\n * ↑\n * (absolute: 3, relative: 1)\n */\nfunction getRelativeActiveItemId(_ref) {\n var state = _ref.state,\n collection = _ref.collection;\n var isOffsetFound = false;\n var counter = 0;\n var previousItemsOffset = 0;\n while (isOffsetFound === false) {\n var currentCollection = state.collections[counter];\n if (currentCollection === collection) {\n isOffsetFound = true;\n break;\n }\n previousItemsOffset += currentCollection.items.length;\n counter++;\n }\n return state.activeItemId - previousItemsOffset;\n}\nexport function getActiveItem(state) {\n var collection = getCollectionFromActiveItemId(state);\n if (!collection) {\n return null;\n }\n var item = collection.items[getRelativeActiveItemId({\n state: state,\n collection: collection\n })];\n var source = collection.source;\n var itemInputValue = source.getItemInputValue({\n item: item,\n state: state\n });\n var itemUrl = source.getItemUrl({\n item: item,\n state: state\n });\n return {\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n source: source\n };\n}","var regex = /((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;\nexport function isSamsung(userAgent) {\n return Boolean(userAgent && userAgent.match(regex));\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { createCancelablePromiseList } from './utils';\nexport function createStore(reducer, props, onStoreStateChange) {\n var state = props.initialState;\n return {\n getState: function getState() {\n return state;\n },\n dispatch: function dispatch(action, payload) {\n var prevState = _objectSpread({}, state);\n state = reducer(state, {\n type: action,\n props: props,\n payload: payload\n });\n onStoreStateChange({\n state: state,\n prevState: prevState\n });\n },\n pendingRequests: createCancelablePromiseList()\n };\n}","export function createCancelablePromiseList() {\n var list = [];\n return {\n add: function add(cancelablePromise) {\n list.push(cancelablePromise);\n return cancelablePromise.finally(function () {\n list = list.filter(function (item) {\n return item !== cancelablePromise;\n });\n });\n },\n cancelAll: function cancelAll() {\n list.forEach(function (promise) {\n return promise.cancel();\n });\n },\n isEmpty: function isEmpty() {\n return list.length === 0;\n }\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { flatten } from '@algolia/autocomplete-shared';\nexport function getAutocompleteSetters(_ref) {\n var store = _ref.store;\n var setActiveItemId = function setActiveItemId(value) {\n store.dispatch('setActiveItemId', value);\n };\n var setQuery = function setQuery(value) {\n store.dispatch('setQuery', value);\n };\n var setCollections = function setCollections(rawValue) {\n var baseItemId = 0;\n var value = rawValue.map(function (collection) {\n return _objectSpread(_objectSpread({}, collection), {}, {\n // We flatten the stored items to support calling `getAlgoliaResults`\n // from the source itself.\n items: flatten(collection.items).map(function (item) {\n return _objectSpread(_objectSpread({}, item), {}, {\n __autocomplete_id: baseItemId++\n });\n })\n });\n });\n store.dispatch('setCollections', value);\n };\n var setIsOpen = function setIsOpen(value) {\n store.dispatch('setIsOpen', value);\n };\n var setStatus = function setStatus(value) {\n store.dispatch('setStatus', value);\n };\n var setContext = function setContext(value) {\n store.dispatch('setContext', value);\n };\n return {\n setActiveItemId: setActiveItemId,\n setQuery: setQuery,\n setCollections: setCollections,\n setIsOpen: setIsOpen,\n setStatus: setStatus,\n setContext: setContext\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { getItemsCount, generateAutocompleteId, flatten } from '@algolia/autocomplete-shared';\nimport { getNormalizedSources } from './utils';\nexport function getDefaultProps(props, pluginSubscribers) {\n var _props$id;\n /* eslint-disable no-restricted-globals */\n var environment = typeof window !== 'undefined' ? window : {};\n /* eslint-enable no-restricted-globals */\n var plugins = props.plugins || [];\n return _objectSpread(_objectSpread({\n debug: false,\n openOnFocus: false,\n placeholder: '',\n autoFocus: false,\n defaultActiveItemId: null,\n stallThreshold: 300,\n insights: false,\n environment: environment,\n shouldPanelOpen: function shouldPanelOpen(_ref) {\n var state = _ref.state;\n return getItemsCount(state) > 0;\n },\n reshape: function reshape(_ref2) {\n var sources = _ref2.sources;\n return sources;\n }\n }, props), {}, {\n // Since `generateAutocompleteId` triggers a side effect (it increments\n // an internal counter), we don't want to execute it if unnecessary.\n id: (_props$id = props.id) !== null && _props$id !== void 0 ? _props$id : generateAutocompleteId(),\n plugins: plugins,\n // The following props need to be deeply defaulted.\n initialState: _objectSpread({\n activeItemId: null,\n query: '',\n completion: null,\n collections: [],\n isOpen: false,\n status: 'idle',\n context: {}\n }, props.initialState),\n onStateChange: function onStateChange(params) {\n var _props$onStateChange;\n (_props$onStateChange = props.onStateChange) === null || _props$onStateChange === void 0 ? void 0 : _props$onStateChange.call(props, params);\n plugins.forEach(function (x) {\n var _x$onStateChange;\n return (_x$onStateChange = x.onStateChange) === null || _x$onStateChange === void 0 ? void 0 : _x$onStateChange.call(x, params);\n });\n },\n onSubmit: function onSubmit(params) {\n var _props$onSubmit;\n (_props$onSubmit = props.onSubmit) === null || _props$onSubmit === void 0 ? void 0 : _props$onSubmit.call(props, params);\n plugins.forEach(function (x) {\n var _x$onSubmit;\n return (_x$onSubmit = x.onSubmit) === null || _x$onSubmit === void 0 ? void 0 : _x$onSubmit.call(x, params);\n });\n },\n onReset: function onReset(params) {\n var _props$onReset;\n (_props$onReset = props.onReset) === null || _props$onReset === void 0 ? void 0 : _props$onReset.call(props, params);\n plugins.forEach(function (x) {\n var _x$onReset;\n return (_x$onReset = x.onReset) === null || _x$onReset === void 0 ? void 0 : _x$onReset.call(x, params);\n });\n },\n getSources: function getSources(params) {\n return Promise.all([].concat(_toConsumableArray(plugins.map(function (plugin) {\n return plugin.getSources;\n })), [props.getSources]).filter(Boolean).map(function (getSources) {\n return getNormalizedSources(getSources, params);\n })).then(function (nested) {\n return flatten(nested);\n }).then(function (sources) {\n return sources.map(function (source) {\n return _objectSpread(_objectSpread({}, source), {}, {\n onSelect: function onSelect(params) {\n source.onSelect(params);\n pluginSubscribers.forEach(function (x) {\n var _x$onSelect;\n return (_x$onSelect = x.onSelect) === null || _x$onSelect === void 0 ? void 0 : _x$onSelect.call(x, params);\n });\n },\n onActive: function onActive(params) {\n source.onActive(params);\n pluginSubscribers.forEach(function (x) {\n var _x$onActive;\n return (_x$onActive = x.onActive) === null || _x$onActive === void 0 ? void 0 : _x$onActive.call(x, params);\n });\n },\n onResolve: function onResolve(params) {\n source.onResolve(params);\n pluginSubscribers.forEach(function (x) {\n var _x$onResolve;\n return (_x$onResolve = x.onResolve) === null || _x$onResolve === void 0 ? void 0 : _x$onResolve.call(x, params);\n });\n }\n });\n });\n });\n },\n navigator: _objectSpread({\n navigate: function navigate(_ref3) {\n var itemUrl = _ref3.itemUrl;\n environment.location.assign(itemUrl);\n },\n navigateNewTab: function navigateNewTab(_ref4) {\n var itemUrl = _ref4.itemUrl;\n var windowReference = environment.open(itemUrl, '_blank', 'noopener');\n windowReference === null || windowReference === void 0 ? void 0 : windowReference.focus();\n },\n navigateNewWindow: function navigateNewWindow(_ref5) {\n var itemUrl = _ref5.itemUrl;\n environment.open(itemUrl, '_blank', 'noopener');\n }\n }, props.navigator)\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { flatten } from '@algolia/autocomplete-shared';\nexport function reshape(_ref) {\n var collections = _ref.collections,\n props = _ref.props,\n state = _ref.state;\n // Sources are grouped by `sourceId` to conveniently pick them via destructuring.\n // Example: `const { recentSearchesPlugin } = sourcesBySourceId`\n var originalSourcesBySourceId = collections.reduce(function (acc, collection) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, collection.source.sourceId, _objectSpread(_objectSpread({}, collection.source), {}, {\n getItems: function getItems() {\n // We provide the resolved items from the collection to the `reshape` prop.\n return flatten(collection.items);\n }\n })));\n }, {});\n var _props$plugins$reduce = props.plugins.reduce(function (acc, plugin) {\n if (plugin.reshape) {\n return plugin.reshape(acc);\n }\n return acc;\n }, {\n sourcesBySourceId: originalSourcesBySourceId,\n state: state\n }),\n sourcesBySourceId = _props$plugins$reduce.sourcesBySourceId;\n var reshapeSources = props.reshape({\n sourcesBySourceId: sourcesBySourceId,\n sources: Object.values(sourcesBySourceId),\n state: state\n });\n\n // We reconstruct the collections with the items modified by the `reshape` prop.\n return flatten(reshapeSources).filter(Boolean).map(function (source) {\n return {\n source: source,\n items: source.getItems()\n };\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { decycle, flatten, invariant } from '@algolia/autocomplete-shared';\nimport { mapToAlgoliaResponse } from './utils';\nfunction isDescription(item) {\n return Boolean(item.execute);\n}\nfunction isRequesterDescription(description) {\n return Boolean(description === null || description === void 0 ? void 0 : description.execute);\n}\nexport function preResolve(itemsOrDescription, sourceId, state) {\n if (isRequesterDescription(itemsOrDescription)) {\n var contextParameters = itemsOrDescription.requesterId === 'algolia' ? Object.assign.apply(Object, [{}].concat(_toConsumableArray(Object.keys(state.context).map(function (key) {\n var _state$context$key;\n return (_state$context$key = state.context[key]) === null || _state$context$key === void 0 ? void 0 : _state$context$key.__algoliaSearchParameters;\n })))) : {};\n return _objectSpread(_objectSpread({}, itemsOrDescription), {}, {\n requests: itemsOrDescription.queries.map(function (query) {\n return {\n query: itemsOrDescription.requesterId === 'algolia' ? _objectSpread(_objectSpread({}, query), {}, {\n params: _objectSpread(_objectSpread({}, contextParameters), query.params)\n }) : query,\n sourceId: sourceId,\n transformResponse: itemsOrDescription.transformResponse\n };\n })\n });\n }\n return {\n items: itemsOrDescription,\n sourceId: sourceId\n };\n}\nexport function resolve(items) {\n var packed = items.reduce(function (acc, current) {\n if (!isDescription(current)) {\n acc.push(current);\n return acc;\n }\n var searchClient = current.searchClient,\n execute = current.execute,\n requesterId = current.requesterId,\n requests = current.requests;\n var container = acc.find(function (item) {\n return isDescription(current) && isDescription(item) && item.searchClient === searchClient && Boolean(requesterId) && item.requesterId === requesterId;\n });\n if (container) {\n var _container$items;\n (_container$items = container.items).push.apply(_container$items, _toConsumableArray(requests));\n } else {\n var request = {\n execute: execute,\n requesterId: requesterId,\n items: requests,\n searchClient: searchClient\n };\n acc.push(request);\n }\n return acc;\n }, []);\n var values = packed.map(function (maybeDescription) {\n if (!isDescription(maybeDescription)) {\n return Promise.resolve(maybeDescription);\n }\n var _ref = maybeDescription,\n execute = _ref.execute,\n items = _ref.items,\n searchClient = _ref.searchClient;\n return execute({\n searchClient: searchClient,\n requests: items\n });\n });\n return Promise.all(values).then(function (responses) {\n return flatten(responses);\n });\n}\nexport function postResolve(responses, sources, store) {\n return sources.map(function (source) {\n var matches = responses.filter(function (response) {\n return response.sourceId === source.sourceId;\n });\n var results = matches.map(function (_ref2) {\n var items = _ref2.items;\n return items;\n });\n var transform = matches[0].transformResponse;\n var items = transform ? transform(mapToAlgoliaResponse(results)) : results;\n source.onResolve({\n source: source,\n results: results,\n items: items,\n state: store.getState()\n });\n invariant(Array.isArray(items), function () {\n return \"The `getItems` function from source \\\"\".concat(source.sourceId, \"\\\" must return an array of items but returned type \").concat(JSON.stringify(_typeof(items)), \":\\n\\n\").concat(JSON.stringify(decycle(items), null, 2), \".\\n\\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems\");\n });\n invariant(items.every(Boolean), \"The `getItems` function from source \\\"\".concat(source.sourceId, \"\\\" must return an array of items but returned \").concat(JSON.stringify(undefined), \".\\n\\nDid you forget to return items?\\n\\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems\"));\n return {\n source: source,\n items: items\n };\n });\n}","export function mapToAlgoliaResponse(rawResults) {\n return {\n results: rawResults,\n hits: rawResults.map(function (result) {\n return result.hits;\n }).filter(Boolean),\n facetHits: rawResults.map(function (result) {\n var _facetHits;\n return (_facetHits = result.facetHits) === null || _facetHits === void 0 ? void 0 : _facetHits.map(function (facetHit) {\n // Bring support for the highlighting components.\n return {\n label: facetHit.value,\n count: facetHit.count,\n _highlightResult: {\n label: {\n value: facetHit.highlighted\n }\n }\n };\n });\n }).filter(Boolean)\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"event\", \"nextState\", \"props\", \"query\", \"refresh\", \"store\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { reshape } from './reshape';\nimport { preResolve, resolve, postResolve } from './resolve';\nimport { cancelable, createConcurrentSafePromise, getActiveItem } from './utils';\nvar lastStalledId = null;\nvar runConcurrentSafePromise = createConcurrentSafePromise();\nexport function onInput(_ref) {\n var event = _ref.event,\n _ref$nextState = _ref.nextState,\n nextState = _ref$nextState === void 0 ? {} : _ref$nextState,\n props = _ref.props,\n query = _ref.query,\n refresh = _ref.refresh,\n store = _ref.store,\n setters = _objectWithoutProperties(_ref, _excluded);\n if (lastStalledId) {\n props.environment.clearTimeout(lastStalledId);\n }\n var setCollections = setters.setCollections,\n setIsOpen = setters.setIsOpen,\n setQuery = setters.setQuery,\n setActiveItemId = setters.setActiveItemId,\n setStatus = setters.setStatus;\n 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 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}","/**\n * Creates a runner that executes promises in a concurrent-safe way.\n *\n * This is useful to prevent older promises to resolve after a newer promise,\n * otherwise resulting in stale resolved values.\n */\nexport function createConcurrentSafePromise() {\n var basePromiseId = -1;\n var latestResolvedId = -1;\n var latestResolvedValue = undefined;\n return function runConcurrentSafePromise(promise) {\n basePromiseId++;\n var currentPromiseId = basePromiseId;\n return Promise.resolve(promise).then(function (x) {\n // The promise might take too long to resolve and get outdated. This would\n // result in resolving stale values.\n // When this happens, we ignore the promise value and return the one\n // coming from the latest resolved value.\n //\n // +----------------------------------+\n // | 100ms |\n // | run(1) +---> R1 |\n // | 300ms |\n // | run(2) +-------------> R2 (SKIP) |\n // | 200ms |\n // | run(3) +--------> R3 |\n // +----------------------------------+\n if (latestResolvedValue && currentPromiseId < latestResolvedId) {\n return latestResolvedValue;\n }\n latestResolvedId = currentPromiseId;\n latestResolvedValue = x;\n return x;\n });\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"event\", \"props\", \"refresh\", \"store\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { onInput } from './onInput';\nimport { getActiveItem } 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 nodeItem = props.environment.document.getElementById(\"\".concat(props.id, \"-item-\").concat(store.getState().activeItemId));\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 `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 === 'Enter') {\n // No active item, so we let the browser handle the native `onSubmit` form\n // event.\n if (store.getState().activeItemId === null || store.getState().collections.every(function (collection) {\n return collection.items.length === 0;\n })) {\n // If requests are still pending when the panel closes, they could reopen\n // the panel once they resolve.\n // We want to prevent any subsequent query from reopening the panel\n // because it would result in an unsolicited UI behavior.\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\n return;\n }\n\n // This prevents the `onSubmit` event to be sent because an item is\n // highlighted.\n event.preventDefault();\n var _ref2 = getActiveItem(store.getState()),\n item = _ref2.item,\n itemInputValue = _ref2.itemInputValue,\n itemUrl = _ref2.itemUrl,\n source = _ref2.source;\n if (event.metaKey || event.ctrlKey) {\n if (itemUrl !== undefined) {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n props.navigator.navigateNewTab({\n itemUrl: itemUrl,\n item: item,\n state: store.getState()\n });\n }\n } else if (event.shiftKey) {\n if (itemUrl !== undefined) {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n props.navigator.navigateNewWindow({\n itemUrl: itemUrl,\n item: item,\n state: store.getState()\n });\n }\n } else if (event.altKey) {\n // Keep native browser behavior\n } else {\n if (itemUrl !== undefined) {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n props.navigator.navigate({\n itemUrl: itemUrl,\n item: item,\n state: store.getState()\n });\n return;\n }\n onInput(_objectSpread({\n event: event,\n nextState: {\n isOpen: false\n },\n props: props,\n query: itemInputValue,\n refresh: refresh,\n store: store\n }, setters)).then(function () {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n });\n }\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"props\", \"refresh\", \"store\"],\n _excluded2 = [\"inputElement\", \"formElement\", \"panelElement\"],\n _excluded3 = [\"inputElement\"],\n _excluded4 = [\"inputElement\", \"maxLength\"],\n _excluded5 = [\"sourceIndex\"],\n _excluded6 = [\"sourceIndex\"],\n _excluded7 = [\"item\", \"source\", \"sourceIndex\"];\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, isOrContainsNode, isSamsung } 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 ? \"\".concat(props.id, \"-list\") : undefined,\n 'aria-labelledby': \"\".concat(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 _ref2 = providedProps || {},\n inputElement = _ref2.inputElement,\n _ref2$maxLength = _ref2.maxLength,\n maxLength = _ref2$maxLength === void 0 ? 512 : _ref2$maxLength,\n rest = _objectWithoutProperties(_ref2, _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 = 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 ? \"\".concat(props.id, \"-item-\").concat(store.getState().activeItemId) : undefined,\n 'aria-controls': store.getState().isOpen ? \"\".concat(props.id, \"-list\") : undefined,\n 'aria-labelledby': \"\".concat(props.id, \"-label\"),\n value: store.getState().completion || store.getState().query,\n id: \"\".concat(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 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 _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 getAutocompleteId = function getAutocompleteId(instanceId, sourceId) {\n return typeof sourceId !== 'undefined' ? \"\".concat(instanceId, \"-\").concat(sourceId) : instanceId;\n };\n var getLabelProps = function getLabelProps(providedProps) {\n var _ref3 = providedProps || {},\n sourceIndex = _ref3.sourceIndex,\n rest = _objectWithoutProperties(_ref3, _excluded5);\n return _objectSpread({\n htmlFor: \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-input\"),\n id: \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-label\")\n }, rest);\n };\n var getListProps = function getListProps(providedProps) {\n var _ref4 = providedProps || {},\n sourceIndex = _ref4.sourceIndex,\n rest = _objectWithoutProperties(_ref4, _excluded6);\n return _objectSpread({\n role: 'listbox',\n 'aria-labelledby': \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-label\"),\n id: \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-list\")\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 sourceIndex = providedProps.sourceIndex,\n rest = _objectWithoutProperties(providedProps, _excluded7);\n return _objectSpread({\n id: \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-item-\").concat(item.__autocomplete_id),\n role: 'option',\n 'aria-selected': store.getState().activeItemId === item.__autocomplete_id,\n onMouseMove: function onMouseMove(event) {\n if (item.__autocomplete_id === store.getState().activeItemId) {\n return;\n }\n store.dispatch('mousemove', item.__autocomplete_id);\n var activeItem = getActiveItem(store.getState());\n if (store.getState().activeItemId !== null && activeItem) {\n var _item = activeItem.item,\n itemInputValue = activeItem.itemInputValue,\n itemUrl = activeItem.itemUrl,\n _source = activeItem.source;\n _source.onActive(_objectSpread({\n event: event,\n item: _item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: _source,\n state: store.getState()\n }, setters));\n }\n },\n onMouseDown: function onMouseDown(event) {\n // Prevents the `activeElement` from being changed to the item so it\n // can remain with the current `activeElement`.\n event.preventDefault();\n },\n onClick: function onClick(event) {\n var itemInputValue = source.getItemInputValue({\n item: item,\n state: store.getState()\n });\n var itemUrl = source.getItemUrl({\n item: item,\n state: store.getState()\n });\n\n // If `getItemUrl` is provided, it means that the suggestion\n // is a link, not plain text that aims at updating the query.\n // We can therefore skip the state change because it will update\n // the `activeItemId`, resulting in a UI flash, especially\n // noticeable on mobile.\n var runPreCommand = itemUrl ? Promise.resolve() : onInput(_objectSpread({\n event: event,\n nextState: {\n isOpen: false\n },\n props: props,\n query: itemInputValue,\n refresh: refresh,\n store: store\n }, setters));\n runPreCommand.then(function () {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n });\n }\n }, rest);\n };\n return {\n getEnvironmentProps: getEnvironmentProps,\n getRootProps: getRootProps,\n getFormProps: getFormProps,\n getLabelProps: getLabelProps,\n getInputProps: getInputProps,\n getPanelProps: getPanelProps,\n getListProps: getListProps,\n getItemProps: getItemProps\n };\n}","export function isOrContainsNode(parent, child) {\n return parent === child || parent.contains(child);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { userAgents } from '@algolia/autocomplete-shared';\nexport function getMetadata(_ref) {\n var _, _options$__autocomple, _options$__autocomple2, _options$__autocomple3;\n var plugins = _ref.plugins,\n options = _ref.options;\n var optionsKey = (_ = (((_options$__autocomple = options.__autocomplete_metadata) === null || _options$__autocomple === void 0 ? void 0 : _options$__autocomple.userAgents) || [])[0]) === null || _ === void 0 ? void 0 : _.segment;\n var extraOptions = optionsKey ? _defineProperty({}, optionsKey, Object.keys(((_options$__autocomple2 = options.__autocomplete_metadata) === null || _options$__autocomple2 === void 0 ? void 0 : _options$__autocomple2.options) || {})) : {};\n return {\n plugins: plugins.map(function (plugin) {\n return {\n name: plugin.name,\n options: Object.keys(plugin.__autocomplete_pluginOptions || [])\n };\n }),\n options: _objectSpread({\n 'autocomplete-core': Object.keys(options)\n }, extraOptions),\n ua: userAgents.concat(((_options$__autocomple3 = options.__autocomplete_metadata) === null || _options$__autocomple3 === void 0 ? void 0 : _options$__autocomple3.userAgents) || [])\n };\n}\nexport function injectMetadata(_ref3) {\n var _environment$navigato, _environment$navigato2;\n var metadata = _ref3.metadata,\n environment = _ref3.environment;\n var isMetadataEnabled = (_environment$navigato = environment.navigator) === null || _environment$navigato === void 0 ? void 0 : (_environment$navigato2 = _environment$navigato.userAgent) === null || _environment$navigato2 === void 0 ? void 0 : _environment$navigato2.includes('Algolia Crawler');\n if (isMetadataEnabled) {\n var metadataContainer = environment.document.createElement('meta');\n var headRef = environment.document.querySelector('head');\n metadataContainer.name = 'algolia:metadata';\n setTimeout(function () {\n metadataContainer.content = JSON.stringify(metadata);\n headRef.appendChild(metadataContainer);\n }, 0);\n }\n}","import { getActiveItem } from './utils';\nexport function getCompletion(_ref) {\n var _getActiveItem;\n var state = _ref.state;\n if (state.isOpen === false || state.activeItemId === null) {\n return null;\n }\n return ((_getActiveItem = getActiveItem(state)) === null || _getActiveItem === void 0 ? void 0 : _getActiveItem.itemInputValue) || null;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { getItemsCount, invariant } from '@algolia/autocomplete-shared';\nimport { getCompletion } from './getCompletion';\nimport { getNextActiveItemId } from './utils';\nexport var stateReducer = function stateReducer(state, action) {\n switch (action.type) {\n case 'setActiveItemId':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.payload\n });\n }\n case 'setQuery':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n query: action.payload,\n completion: null\n });\n }\n case 'setCollections':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n collections: action.payload\n });\n }\n case 'setIsOpen':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n isOpen: action.payload\n });\n }\n case 'setStatus':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n status: action.payload\n });\n }\n case 'setContext':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n context: _objectSpread(_objectSpread({}, state.context), action.payload)\n });\n }\n case 'ArrowDown':\n {\n var nextState = _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.payload.hasOwnProperty('nextActiveItemId') ? action.payload.nextActiveItemId : getNextActiveItemId(1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)\n });\n return _objectSpread(_objectSpread({}, nextState), {}, {\n completion: getCompletion({\n state: nextState\n })\n });\n }\n case 'ArrowUp':\n {\n var _nextState = _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: getNextActiveItemId(-1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)\n });\n return _objectSpread(_objectSpread({}, _nextState), {}, {\n completion: getCompletion({\n state: _nextState\n })\n });\n }\n case 'Escape':\n {\n if (state.isOpen) {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n isOpen: false,\n completion: null\n });\n }\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n query: '',\n status: 'idle',\n collections: []\n });\n }\n case 'submit':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n isOpen: false,\n status: 'idle'\n });\n }\n case 'reset':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId:\n // Since we open the panel on reset when openOnFocus=true\n // we need to restore the highlighted index to the defaultActiveItemId. (DocSearch use-case)\n\n // Since we close the panel when openOnFocus=false\n // we lose track of the highlighted index. (Query-suggestions use-case)\n action.props.openOnFocus === true ? action.props.defaultActiveItemId : null,\n status: 'idle',\n 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 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 }\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 if (options.insights && !props.plugins.some(function (plugin) {\n return plugin.name === 'aa.algoliaInsightsPlugin';\n })) {\n var insightsParams = typeof options.insights === 'boolean' ? {} : options.insights;\n props.plugins.push(createAlgoliaInsightsPlugin(insightsParams));\n }\n props.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 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}","import React from 'react';\nexport function AlgoliaLogo(_ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations;\n var _translations$searchB = translations.searchByText,\n searchByText = _translations$searchB === void 0 ? 'Search by' : _translations$searchB;\n return /*#__PURE__*/React.createElement(\"a\", {\n href: \"https://www.algolia.com/ref/docsearch/?utm_source=\".concat(window.location.hostname, \"&utm_medium=referral&utm_content=powered_by&utm_campaign=docsearch\"),\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"DocSearch-Label\"\n }, searchByText), /*#__PURE__*/React.createElement(\"svg\", {\n width: \"77\",\n height: \"19\",\n \"aria-label\": \"Algolia\",\n role: \"img\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 2196.2 500\"\n }, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1,.cls-2{fill:#003dff;}.cls-2{fill-rule:evenodd;}\")), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M1070.38,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z\"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n className: \"cls-1\",\n x: \"1845.88\",\n y: \"104.73\",\n width: \"62.58\",\n height: \"277.9\",\n rx: \"5.9\",\n ry: \"5.9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M1851.78,71.38h50.77c3.26,0,5.9-2.64,5.9-5.9V5.9c0-3.62-3.24-6.39-6.82-5.83l-50.77,7.95c-2.87,.45-4.99,2.92-4.99,5.83v51.62c0,3.26,2.64,5.9,5.9,5.9Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M1764.03,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M1631.95,142.72c-11.14-12.25-24.83-21.65-40.78-28.31-15.92-6.53-33.26-9.85-52.07-9.85-18.78,0-36.15,3.17-51.92,9.85-15.59,6.66-29.29,16.05-40.76,28.31-11.47,12.23-20.38,26.87-26.76,44.03-6.38,17.17-9.24,37.37-9.24,58.36,0,20.99,3.19,36.87,9.55,54.21,6.38,17.32,15.14,32.11,26.45,44.36,11.29,12.23,24.83,21.62,40.6,28.46,15.77,6.83,40.12,10.33,52.4,10.48,12.25,0,36.78-3.82,52.7-10.48,15.92-6.68,29.46-16.23,40.78-28.46,11.29-12.25,20.05-27.04,26.25-44.36,6.22-17.34,9.24-33.22,9.24-54.21,0-20.99-3.34-41.19-10.03-58.36-6.38-17.17-15.14-31.8-26.43-44.03Zm-44.43,163.75c-11.47,15.75-27.56,23.7-48.09,23.7-20.55,0-36.63-7.8-48.1-23.7-11.47-15.75-17.21-34.01-17.21-61.2,0-26.89,5.59-49.14,17.06-64.87,11.45-15.75,27.54-23.52,48.07-23.52,20.55,0,36.63,7.78,48.09,23.52,11.47,15.57,17.36,37.98,17.36,64.87,0,27.19-5.72,45.3-17.19,61.2Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M894.42,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M2133.97,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M1314.05,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-11.79,18.34-19.6,39.64-22.11,62.59-.58,5.3-.88,10.68-.88,16.14s.31,11.15,.93,16.59c4.28,38.09,23.14,71.61,50.66,94.52,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47h0c17.99,0,34.61-5.93,48.16-15.97,16.29-11.58,28.88-28.54,34.48-47.75v50.26h-.11v11.08c0,21.84-5.71,38.27-17.34,49.36-11.61,11.08-31.04,16.63-58.25,16.63-11.12,0-28.79-.59-46.6-2.41-2.83-.29-5.46,1.5-6.27,4.22l-12.78,43.11c-1.02,3.46,1.27,7.02,4.83,7.53,21.52,3.08,42.52,4.68,54.65,4.68,48.91,0,85.16-10.75,108.89-32.21,21.48-19.41,33.15-48.89,35.2-88.52V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,64.1s.65,139.13,0,143.36c-12.08,9.77-27.11,13.59-43.49,14.7-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-1.32,0-2.63-.03-3.94-.1-40.41-2.11-74.52-37.26-74.52-79.38,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M249.83,0C113.3,0,2,110.09,.03,246.16c-2,138.19,110.12,252.7,248.33,253.5,42.68,.25,83.79-10.19,120.3-30.03,3.56-1.93,4.11-6.83,1.08-9.51l-23.38-20.72c-4.75-4.21-11.51-5.4-17.36-2.92-25.48,10.84-53.17,16.38-81.71,16.03-111.68-1.37-201.91-94.29-200.13-205.96,1.76-110.26,92-199.41,202.67-199.41h202.69V407.41l-115-102.18c-3.72-3.31-9.42-2.66-12.42,1.31-18.46,24.44-48.53,39.64-81.93,37.34-46.33-3.2-83.87-40.5-87.34-86.81-4.15-55.24,39.63-101.52,94-101.52,49.18,0,89.68,37.85,93.91,85.95,.38,4.28,2.31,8.27,5.52,11.12l29.95,26.55c3.4,3.01,8.79,1.17,9.63-3.3,2.16-11.55,2.92-23.58,2.07-35.92-4.82-70.34-61.8-126.93-132.17-131.26-80.68-4.97-148.13,58.14-150.27,137.25-2.09,77.1,61.08,143.56,138.19,145.26,32.19,.71,62.03-9.41,86.14-26.95l150.26,133.2c6.44,5.71,16.61,1.14,16.61-7.47V9.48C499.66,4.25,495.42,0,490.18,0H249.83Z\"\n })));\n}","import React from 'react';\nimport { AlgoliaLogo } from './AlgoliaLogo';\n\nfunction CommandIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"15\",\n height: \"15\",\n \"aria-label\": props.ariaLabel,\n role: \"img\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: \"1.2\"\n }, props.children));\n}\n\nexport function Footer(_ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations;\n var _translations$selectT = translations.selectText,\n selectText = _translations$selectT === void 0 ? 'to select' : _translations$selectT,\n _translations$selectK = translations.selectKeyAriaLabel,\n selectKeyAriaLabel = _translations$selectK === void 0 ? 'Enter key' : _translations$selectK,\n _translations$navigat = translations.navigateText,\n navigateText = _translations$navigat === void 0 ? 'to navigate' : _translations$navigat,\n _translations$navigat2 = translations.navigateUpKeyAriaLabel,\n navigateUpKeyAriaLabel = _translations$navigat2 === void 0 ? 'Arrow up' : _translations$navigat2,\n _translations$navigat3 = translations.navigateDownKeyAriaLabel,\n navigateDownKeyAriaLabel = _translations$navigat3 === void 0 ? 'Arrow down' : _translations$navigat3,\n _translations$closeTe = translations.closeText,\n closeText = _translations$closeTe === void 0 ? 'to close' : _translations$closeTe,\n _translations$closeKe = translations.closeKeyAriaLabel,\n closeKeyAriaLabel = _translations$closeKe === void 0 ? 'Escape key' : _translations$closeKe,\n _translations$searchB = translations.searchByText,\n searchByText = _translations$searchB === void 0 ? 'Search by' : _translations$searchB;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Logo\"\n }, /*#__PURE__*/React.createElement(AlgoliaLogo, {\n translations: {\n searchByText: searchByText\n }\n })), /*#__PURE__*/React.createElement(\"ul\", {\n className: \"DocSearch-Commands\"\n }, /*#__PURE__*/React.createElement(\"li\", null, /*#__PURE__*/React.createElement(\"kbd\", {\n className: \"DocSearch-Commands-Key\"\n }, /*#__PURE__*/React.createElement(CommandIcon, {\n ariaLabel: selectKeyAriaLabel\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 3.53088v3c0 1-1 2-2 2H4M7 11.53088l-3-3 3-3\"\n }))), /*#__PURE__*/React.createElement(\"span\", {\n className: \"DocSearch-Label\"\n }, selectText)), /*#__PURE__*/React.createElement(\"li\", null, /*#__PURE__*/React.createElement(\"kbd\", {\n className: \"DocSearch-Commands-Key\"\n }, /*#__PURE__*/React.createElement(CommandIcon, {\n ariaLabel: navigateDownKeyAriaLabel\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 3.5v8M10.5 8.5l-3 3-3-3\"\n }))), /*#__PURE__*/React.createElement(\"kbd\", {\n className: \"DocSearch-Commands-Key\"\n }, /*#__PURE__*/React.createElement(CommandIcon, {\n ariaLabel: navigateUpKeyAriaLabel\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 11.5v-8M10.5 6.5l-3-3-3 3\"\n }))), /*#__PURE__*/React.createElement(\"span\", {\n className: \"DocSearch-Label\"\n }, navigateText)), /*#__PURE__*/React.createElement(\"li\", null, /*#__PURE__*/React.createElement(\"kbd\", {\n className: \"DocSearch-Commands-Key\"\n }, /*#__PURE__*/React.createElement(CommandIcon, {\n ariaLabel: closeKeyAriaLabel\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.6167 8.936c-.1065.3583-.6883.962-1.4875.962-.7993 0-1.653-.9165-1.653-2.1258v-.5678c0-1.2548.7896-2.1016 1.653-2.1016.8634 0 1.3601.4778 1.4875 1.0724M9 6c-.1352-.4735-.7506-.9219-1.46-.8972-.7092.0246-1.344.57-1.344 1.2166s.4198.8812 1.3445.9805C8.465 7.3992 8.968 7.9337 9 8.5c.032.5663-.454 1.398-1.4595 1.398C6.6593 9.898 6 9 5.963 8.4851m-1.4748.5368c-.2635.5941-.8099.876-1.5443.876s-1.7073-.6248-1.7073-2.204v-.4603c0-1.0416.721-2.131 1.7073-2.131.9864 0 1.6425 1.031 1.5443 2.2492h-2.956\"\n }))), /*#__PURE__*/React.createElement(\"span\", {\n className: \"DocSearch-Label\"\n }, closeText))));\n}","import React from 'react';\nexport function Hit(_ref) {\n var hit = _ref.hit,\n children = _ref.children;\n return /*#__PURE__*/React.createElement(\"a\", {\n href: hit.url\n }, children);\n}","import React from 'react';\nexport function LoadingIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n viewBox: \"0 0 38 38\",\n stroke: \"currentColor\",\n strokeOpacity: \".5\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1 1)\",\n strokeWidth: \"2\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n strokeOpacity: \".3\",\n cx: \"18\",\n cy: \"18\",\n r: \"18\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36 18c0-9.94-8.06-18-18-18\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"rotate\",\n from: \"0 18 18\",\n to: \"360 18 18\",\n dur: \"1s\",\n repeatCount: \"indefinite\"\n })))));\n}","import React from 'react';\nexport function RecentIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.18 6.6a8.23 8.23 0 1112.93 9.94h0a8.23 8.23 0 01-11.63 0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.44 7.25H2.55V3.36M10.45 6v5.6M10.45 11.6L13 13\"\n })));\n}","import React from 'react';\nexport function ResetIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 10l5.09-5.09L10 10l5.09 5.09L10 10zm0 0L4.91 4.91 10 10l-5.09 5.09L10 10z\",\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }));\n}","import React from 'react';\nexport function SelectIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: \"DocSearch-Hit-Select-Icon\",\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18 3v4c0 2-2 4-4 4H2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 17l-6-6 6-6\"\n })));\n}","import React from 'react';\n\nvar LvlIcon = function LvlIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17 6v12c0 .52-.2 1-1 1H4c-.7 0-1-.33-1-1V2c0-.55.42-1 1-1h8l5 5zM14 8h-3.13c-.51 0-.87-.34-.87-.87V4\",\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinejoin: \"round\"\n }));\n};\n\nexport function SourceIcon(props) {\n switch (props.type) {\n case 'lvl1':\n return /*#__PURE__*/React.createElement(LvlIcon, null);\n\n case 'content':\n return /*#__PURE__*/React.createElement(ContentIcon, null);\n\n default:\n return /*#__PURE__*/React.createElement(AnchorIcon, null);\n }\n}\n\nfunction AnchorIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13 13h4-4V8H7v5h6v4-4H7V8H3h4V3v5h6V3v5h4-4v5zm-6 0v4-4H3h4z\",\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }));\n}\n\nfunction ContentIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17 5H3h14zm0 5H3h14zm0 5H3h14z\",\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinejoin: \"round\"\n }));\n}","import React from 'react';\nexport function StarIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 14.2L5 17l1-5.6-4-4 5.5-.7 2.5-5 2.5 5 5.6.8-4 4 .9 5.5z\",\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinejoin: \"round\"\n }));\n}","import React from 'react';\nexport function ErrorIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"40\",\n height: \"40\",\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n fillRule: \"evenodd\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 4.8a16 16 0 00-2-1.2m-3.3-1.2A16 16 0 001.1 4.7M16.7 8a12 12 0 00-2.8-1.4M10 6a12 12 0 00-6.7 2M12.3 14.7a4 4 0 00-4.5 0M14.5 11.4A8 8 0 0010 10M3 16L18 2M10 18h0\"\n }));\n}","import React from 'react';\nexport function NoResultsIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"40\",\n height: \"40\",\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n fillRule: \"evenodd\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.5 4.8c2 3 1.7 7-1 9.7h0l4.3 4.3-4.3-4.3a7.8 7.8 0 01-9.8 1m-2.2-2.2A7.8 7.8 0 0113.2 2.4M2 18L18 2\"\n }));\n}","import React from 'react';\nimport { ErrorIcon } from './icons';\nexport function ErrorScreen(_ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations;\n var _translations$titleTe = translations.titleText,\n titleText = _translations$titleTe === void 0 ? 'Unable to fetch results' : _translations$titleTe,\n _translations$helpTex = translations.helpText,\n helpText = _translations$helpTex === void 0 ? 'You might want to check your network connection.' : _translations$helpTex;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-ErrorScreen\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Screen-Icon\"\n }, /*#__PURE__*/React.createElement(ErrorIcon, null)), /*#__PURE__*/React.createElement(\"p\", {\n className: \"DocSearch-Title\"\n }, titleText), /*#__PURE__*/React.createElement(\"p\", {\n className: \"DocSearch-Help\"\n }, helpText));\n}","var _excluded = [\"translations\"];\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\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.\"); }\n\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); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n\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; }\n\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; }\n\nimport React from 'react';\nimport { NoResultsIcon } from './icons';\nexport function NoResultsScreen(_ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _translations$noResul = translations.noResultsText,\n noResultsText = _translations$noResul === void 0 ? 'No results for' : _translations$noResul,\n _translations$suggest = translations.suggestedQueryText,\n suggestedQueryText = _translations$suggest === void 0 ? 'Try searching for' : _translations$suggest,\n _translations$reportM = translations.reportMissingResultsText,\n reportMissingResultsText = _translations$reportM === void 0 ? 'Believe this query should return results?' : _translations$reportM,\n _translations$reportM2 = translations.reportMissingResultsLinkText,\n reportMissingResultsLinkText = _translations$reportM2 === void 0 ? 'Let us know.' : _translations$reportM2;\n var searchSuggestions = props.state.context.searchSuggestions;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-NoResults\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Screen-Icon\"\n }, /*#__PURE__*/React.createElement(NoResultsIcon, null)), /*#__PURE__*/React.createElement(\"p\", {\n className: \"DocSearch-Title\"\n }, noResultsText, \" \\\"\", /*#__PURE__*/React.createElement(\"strong\", null, props.state.query), \"\\\"\"), searchSuggestions && searchSuggestions.length > 0 && /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-NoResults-Prefill-List\"\n }, /*#__PURE__*/React.createElement(\"p\", {\n className: \"DocSearch-Help\"\n }, suggestedQueryText, \":\"), /*#__PURE__*/React.createElement(\"ul\", null, searchSuggestions.slice(0, 3).reduce(function (acc, search) {\n return [].concat(_toConsumableArray(acc), [/*#__PURE__*/React.createElement(\"li\", {\n key: search\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: \"DocSearch-Prefill\",\n key: search,\n type: \"button\",\n onClick: function onClick() {\n props.setQuery(search.toLowerCase() + ' ');\n props.refresh();\n props.inputRef.current.focus();\n }\n }, search))]);\n }, []))), props.getMissingResultsUrl && /*#__PURE__*/React.createElement(\"p\", {\n className: \"DocSearch-Help\"\n }, \"\".concat(reportMissingResultsText, \" \"), /*#__PURE__*/React.createElement(\"a\", {\n href: props.getMissingResultsUrl({\n query: props.state.query\n }),\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, reportMissingResultsLinkText)));\n}","var _excluded = [\"hit\", \"attribute\", \"tagName\"];\n\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; }\n\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; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\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; }\n\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; }\n\nimport { createElement } from 'react';\n\nfunction getPropertyByPath(object, path) {\n var parts = path.split('.');\n return parts.reduce(function (prev, current) {\n if (prev !== null && prev !== void 0 && prev[current]) return prev[current];\n return null;\n }, object);\n}\n\nexport function Snippet(_ref) {\n var hit = _ref.hit,\n attribute = _ref.attribute,\n _ref$tagName = _ref.tagName,\n tagName = _ref$tagName === void 0 ? 'span' : _ref$tagName,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n return createElement(tagName, _objectSpread(_objectSpread({}, rest), {}, {\n dangerouslySetInnerHTML: {\n __html: getPropertyByPath(hit, \"_snippetResult.\".concat(attribute, \".value\")) || getPropertyByPath(hit, attribute)\n }\n }));\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\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.\"); }\n\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); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _extends() { _extends = Object.assign || 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); }\n\nimport React from 'react';\nimport { Snippet } from './Snippet';\nexport function Results(props) {\n if (!props.collection || props.collection.items.length === 0) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"section\", {\n className: \"DocSearch-Hits\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-source\"\n }, props.title), /*#__PURE__*/React.createElement(\"ul\", props.getListProps(), props.collection.items.map(function (item, index) {\n return /*#__PURE__*/React.createElement(Result, _extends({\n key: [props.title, item.objectID].join(':'),\n item: item,\n index: index\n }, props));\n })));\n}\n\nfunction Result(_ref) {\n var item = _ref.item,\n index = _ref.index,\n renderIcon = _ref.renderIcon,\n renderAction = _ref.renderAction,\n getItemProps = _ref.getItemProps,\n onItemClick = _ref.onItemClick,\n collection = _ref.collection,\n hitComponent = _ref.hitComponent;\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n isDeleting = _React$useState2[0],\n setIsDeleting = _React$useState2[1];\n\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n isFavoriting = _React$useState4[0],\n setIsFavoriting = _React$useState4[1];\n\n var action = React.useRef(null);\n var Hit = hitComponent;\n\n function runDeleteTransition(cb) {\n setIsDeleting(true);\n action.current = cb;\n }\n\n function runFavoriteTransition(cb) {\n setIsFavoriting(true);\n action.current = cb;\n }\n\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: ['DocSearch-Hit', item.__docsearch_parent && 'DocSearch-Hit--Child', isDeleting && 'DocSearch-Hit--deleting', isFavoriting && 'DocSearch-Hit--favoriting'].filter(Boolean).join(' '),\n onTransitionEnd: function onTransitionEnd() {\n if (action.current) {\n action.current();\n }\n }\n }, getItemProps({\n item: item,\n source: collection.source,\n onClick: function onClick(event) {\n onItemClick(item, event);\n }\n })), /*#__PURE__*/React.createElement(Hit, {\n hit: item\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-Container\"\n }, renderIcon({\n item: item,\n index: index\n }), item.hierarchy[item.type] && item.type === 'lvl1' && /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-content-wrapper\"\n }, /*#__PURE__*/React.createElement(Snippet, {\n className: \"DocSearch-Hit-title\",\n hit: item,\n attribute: \"hierarchy.lvl1\"\n }), item.content && /*#__PURE__*/React.createElement(Snippet, {\n className: \"DocSearch-Hit-path\",\n hit: item,\n attribute: \"content\"\n })), item.hierarchy[item.type] && (item.type === 'lvl2' || item.type === 'lvl3' || item.type === 'lvl4' || item.type === 'lvl5' || item.type === 'lvl6') && /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-content-wrapper\"\n }, /*#__PURE__*/React.createElement(Snippet, {\n className: \"DocSearch-Hit-title\",\n hit: item,\n attribute: \"hierarchy.\".concat(item.type)\n }), /*#__PURE__*/React.createElement(Snippet, {\n className: \"DocSearch-Hit-path\",\n hit: item,\n attribute: \"hierarchy.lvl1\"\n })), item.type === 'content' && /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-content-wrapper\"\n }, /*#__PURE__*/React.createElement(Snippet, {\n className: \"DocSearch-Hit-title\",\n hit: item,\n attribute: \"content\"\n }), /*#__PURE__*/React.createElement(Snippet, {\n className: \"DocSearch-Hit-path\",\n hit: item,\n attribute: \"hierarchy.lvl1\"\n })), renderAction({\n item: item,\n runDeleteTransition: runDeleteTransition,\n runFavoriteTransition: runFavoriteTransition\n }))));\n}","export function groupBy(values, predicate, maxResultsPerGroup) {\n return values.reduce(function (acc, item) {\n var key = predicate(item);\n\n if (!acc.hasOwnProperty(key)) {\n acc[key] = [];\n } // We limit each section to show 5 hits maximum.\n // This acts as a frontend alternative to `distinct`.\n\n\n if (acc[key].length < (maxResultsPerGroup || 5)) {\n acc[key].push(item);\n }\n\n return acc;\n }, {});\n}","export function identity(x) {\n return x;\n}","/**\n * Detect when an event is modified with a special key to let the browser\n * trigger its default behavior.\n */\nexport function isModifierEvent(event) {\n var isMiddleClick = event.button === 1;\n return isMiddleClick || event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;\n}","export function noop() {}","var regexHighlightTags = /(|<\\/mark>)/g;\nvar regexHasHighlightTags = RegExp(regexHighlightTags.source);\nexport function removeHighlightTags(hit) {\n var _internalDocSearchHit, _hit$_highlightResult;\n\n var internalDocSearchHit = hit;\n\n if (!internalDocSearchHit.__docsearch_parent && !hit._highlightResult) {\n return hit.hierarchy.lvl0;\n }\n\n var _ref = (internalDocSearchHit.__docsearch_parent ? (_internalDocSearchHit = internalDocSearchHit.__docsearch_parent) === null || _internalDocSearchHit === void 0 || (_internalDocSearchHit = _internalDocSearchHit._highlightResult) === null || _internalDocSearchHit === void 0 || (_internalDocSearchHit = _internalDocSearchHit.hierarchy) === null || _internalDocSearchHit === void 0 ? void 0 : _internalDocSearchHit.lvl0 : (_hit$_highlightResult = hit._highlightResult) === null || _hit$_highlightResult === void 0 || (_hit$_highlightResult = _hit$_highlightResult.hierarchy) === null || _hit$_highlightResult === void 0 ? void 0 : _hit$_highlightResult.lvl0) || {},\n value = _ref.value;\n\n return value && regexHasHighlightTags.test(value) ? value.replace(regexHighlightTags, '') : value;\n}","function _extends() { _extends = Object.assign || 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); }\n\nimport React from 'react';\nimport { SelectIcon, SourceIcon } from './icons';\nimport { Results } from './Results';\nimport { removeHighlightTags } from './utils';\nexport function ResultsScreen(props) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Dropdown-Container\"\n }, props.state.collections.map(function (collection) {\n if (collection.items.length === 0) {\n return null;\n }\n\n var title = removeHighlightTags(collection.items[0]);\n return /*#__PURE__*/React.createElement(Results, _extends({}, props, {\n key: collection.source.sourceId,\n title: title,\n collection: collection,\n renderIcon: function renderIcon(_ref) {\n var _collection$items;\n\n var item = _ref.item,\n index = _ref.index;\n return /*#__PURE__*/React.createElement(React.Fragment, null, item.__docsearch_parent && /*#__PURE__*/React.createElement(\"svg\", {\n className: \"DocSearch-Hit-Tree\",\n viewBox: \"0 0 24 54\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, item.__docsearch_parent !== ((_collection$items = collection.items[index + 1]) === null || _collection$items === void 0 ? void 0 : _collection$items.__docsearch_parent) ? /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 6v21M20 27H8.3\"\n }) : /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 6v42M20 27H8.3\"\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-icon\"\n }, /*#__PURE__*/React.createElement(SourceIcon, {\n type: item.type\n })));\n },\n renderAction: function renderAction() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-action\"\n }, /*#__PURE__*/React.createElement(SelectIcon, null));\n }\n }));\n }), props.resultsFooterComponent && /*#__PURE__*/React.createElement(\"section\", {\n className: \"DocSearch-HitsFooter\"\n }, /*#__PURE__*/React.createElement(props.resultsFooterComponent, {\n state: props.state\n })));\n}","var _excluded = [\"translations\"];\n\nfunction _extends() { _extends = Object.assign || 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); }\n\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; }\n\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; }\n\nimport React from 'react';\nimport { RecentIcon, ResetIcon, StarIcon } from './icons';\nimport { Results } from './Results';\nexport function StartScreen(_ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _translations$recentS = translations.recentSearchesTitle,\n recentSearchesTitle = _translations$recentS === void 0 ? 'Recent' : _translations$recentS,\n _translations$noRecen = translations.noRecentSearchesText,\n noRecentSearchesText = _translations$noRecen === void 0 ? 'No recent searches' : _translations$noRecen,\n _translations$saveRec = translations.saveRecentSearchButtonTitle,\n saveRecentSearchButtonTitle = _translations$saveRec === void 0 ? 'Save this search' : _translations$saveRec,\n _translations$removeR = translations.removeRecentSearchButtonTitle,\n removeRecentSearchButtonTitle = _translations$removeR === void 0 ? 'Remove this search from history' : _translations$removeR,\n _translations$favorit = translations.favoriteSearchesTitle,\n favoriteSearchesTitle = _translations$favorit === void 0 ? 'Favorite' : _translations$favorit,\n _translations$removeF = translations.removeFavoriteSearchButtonTitle,\n removeFavoriteSearchButtonTitle = _translations$removeF === void 0 ? 'Remove this search from favorites' : _translations$removeF;\n\n if (props.state.status === 'idle' && props.hasCollections === false) {\n if (props.disableUserPersonalization) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-StartScreen\"\n }, /*#__PURE__*/React.createElement(\"p\", {\n className: \"DocSearch-Help\"\n }, noRecentSearchesText));\n }\n\n if (props.hasCollections === false) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Dropdown-Container\"\n }, /*#__PURE__*/React.createElement(Results, _extends({}, props, {\n title: recentSearchesTitle,\n collection: props.state.collections[0],\n renderIcon: function renderIcon() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-icon\"\n }, /*#__PURE__*/React.createElement(RecentIcon, null));\n },\n renderAction: function renderAction(_ref2) {\n var item = _ref2.item,\n runFavoriteTransition = _ref2.runFavoriteTransition,\n runDeleteTransition = _ref2.runDeleteTransition;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-action\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: \"DocSearch-Hit-action-button\",\n title: saveRecentSearchButtonTitle,\n type: \"submit\",\n onClick: function onClick(event) {\n event.preventDefault();\n event.stopPropagation();\n runFavoriteTransition(function () {\n props.favoriteSearches.add(item);\n props.recentSearches.remove(item);\n props.refresh();\n });\n }\n }, /*#__PURE__*/React.createElement(StarIcon, null))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-action\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: \"DocSearch-Hit-action-button\",\n title: removeRecentSearchButtonTitle,\n type: \"submit\",\n onClick: function onClick(event) {\n event.preventDefault();\n event.stopPropagation();\n runDeleteTransition(function () {\n props.recentSearches.remove(item);\n props.refresh();\n });\n }\n }, /*#__PURE__*/React.createElement(ResetIcon, null))));\n }\n })), /*#__PURE__*/React.createElement(Results, _extends({}, props, {\n title: favoriteSearchesTitle,\n collection: props.state.collections[1],\n renderIcon: function renderIcon() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-icon\"\n }, /*#__PURE__*/React.createElement(StarIcon, null));\n },\n renderAction: function renderAction(_ref3) {\n var item = _ref3.item,\n runDeleteTransition = _ref3.runDeleteTransition;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-action\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: \"DocSearch-Hit-action-button\",\n title: removeFavoriteSearchButtonTitle,\n type: \"submit\",\n onClick: function onClick(event) {\n event.preventDefault();\n event.stopPropagation();\n runDeleteTransition(function () {\n props.favoriteSearches.remove(item);\n props.refresh();\n });\n }\n }, /*#__PURE__*/React.createElement(ResetIcon, null)));\n }\n })));\n}","var _excluded = [\"translations\"];\n\nfunction _extends() { _extends = Object.assign || 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); }\n\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; }\n\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; }\n\nimport React from 'react';\nimport { ErrorScreen } from './ErrorScreen';\nimport { NoResultsScreen } from './NoResultsScreen';\nimport { ResultsScreen } from './ResultsScreen';\nimport { StartScreen } from './StartScreen';\nexport var ScreenState = React.memo(function (_ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations,\n props = _objectWithoutProperties(_ref, _excluded);\n\n if (props.state.status === 'error') {\n return /*#__PURE__*/React.createElement(ErrorScreen, {\n translations: translations === null || translations === void 0 ? void 0 : translations.errorScreen\n });\n }\n\n var hasCollections = props.state.collections.some(function (collection) {\n return collection.items.length > 0;\n });\n\n if (!props.state.query) {\n return /*#__PURE__*/React.createElement(StartScreen, _extends({}, props, {\n hasCollections: hasCollections,\n translations: translations === null || translations === void 0 ? void 0 : translations.startScreen\n }));\n }\n\n if (hasCollections === false) {\n return /*#__PURE__*/React.createElement(NoResultsScreen, _extends({}, props, {\n translations: translations === null || translations === void 0 ? void 0 : translations.noResultsScreen\n }));\n }\n\n return /*#__PURE__*/React.createElement(ResultsScreen, props);\n}, function areEqual(_prevProps, nextProps) {\n // We don't update the screen when Autocomplete is loading or stalled to\n // avoid UI flashes:\n // - Empty screen → Results screen\n // - NoResults screen → NoResults screen with another query\n return nextProps.state.status === 'loading' || nextProps.state.status === 'stalled';\n});","var _excluded = [\"translations\"];\n\nfunction _extends() { _extends = Object.assign || 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); }\n\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; }\n\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; }\n\nimport React from 'react';\nimport { MAX_QUERY_SIZE } from './constants';\nimport { LoadingIcon } from './icons/LoadingIcon';\nimport { ResetIcon } from './icons/ResetIcon';\nimport { SearchIcon } from './icons/SearchIcon';\nexport function SearchBox(_ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _translations$resetBu = translations.resetButtonTitle,\n resetButtonTitle = _translations$resetBu === void 0 ? 'Clear the query' : _translations$resetBu,\n _translations$resetBu2 = translations.resetButtonAriaLabel,\n resetButtonAriaLabel = _translations$resetBu2 === void 0 ? 'Clear the query' : _translations$resetBu2,\n _translations$cancelB = translations.cancelButtonText,\n cancelButtonText = _translations$cancelB === void 0 ? 'Cancel' : _translations$cancelB,\n _translations$cancelB2 = translations.cancelButtonAriaLabel,\n cancelButtonAriaLabel = _translations$cancelB2 === void 0 ? 'Cancel' : _translations$cancelB2,\n _translations$searchI = translations.searchInputLabel,\n searchInputLabel = _translations$searchI === void 0 ? 'Search' : _translations$searchI;\n\n var _props$getFormProps = props.getFormProps({\n inputElement: props.inputRef.current\n }),\n onReset = _props$getFormProps.onReset;\n\n React.useEffect(function () {\n if (props.autoFocus && props.inputRef.current) {\n props.inputRef.current.focus();\n }\n }, [props.autoFocus, props.inputRef]);\n React.useEffect(function () {\n if (props.isFromSelection && props.inputRef.current) {\n props.inputRef.current.select();\n }\n }, [props.isFromSelection, props.inputRef]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"form\", {\n className: \"DocSearch-Form\",\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n },\n onReset: onReset\n }, /*#__PURE__*/React.createElement(\"label\", _extends({\n className: \"DocSearch-MagnifierLabel\"\n }, props.getLabelProps()), /*#__PURE__*/React.createElement(SearchIcon, null), /*#__PURE__*/React.createElement(\"span\", {\n className: \"DocSearch-VisuallyHiddenForAccessibility\"\n }, searchInputLabel)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-LoadingIndicator\"\n }, /*#__PURE__*/React.createElement(LoadingIcon, null)), /*#__PURE__*/React.createElement(\"input\", _extends({\n className: \"DocSearch-Input\",\n ref: props.inputRef\n }, props.getInputProps({\n inputElement: props.inputRef.current,\n autoFocus: props.autoFocus,\n maxLength: MAX_QUERY_SIZE\n }))), /*#__PURE__*/React.createElement(\"button\", {\n type: \"reset\",\n title: resetButtonTitle,\n className: \"DocSearch-Reset\",\n \"aria-label\": resetButtonAriaLabel,\n hidden: !props.state.query\n }, /*#__PURE__*/React.createElement(ResetIcon, null))), /*#__PURE__*/React.createElement(\"button\", {\n className: \"DocSearch-Cancel\",\n type: \"reset\",\n \"aria-label\": cancelButtonAriaLabel,\n onClick: props.onClose\n }, cancelButtonText));\n}","export var MAX_QUERY_SIZE = 64;","var _excluded = [\"_highlightResult\", \"_snippetResult\"];\n\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; }\n\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; }\n\nfunction isLocalStorageSupported() {\n var key = '__TEST_KEY__';\n\n try {\n localStorage.setItem(key, '');\n localStorage.removeItem(key);\n return true;\n } catch (error) {\n return false;\n }\n}\n\nfunction createStorage(key) {\n if (isLocalStorageSupported() === false) {\n return {\n setItem: function setItem() {},\n getItem: function getItem() {\n return [];\n }\n };\n }\n\n return {\n setItem: function setItem(item) {\n return window.localStorage.setItem(key, JSON.stringify(item));\n },\n getItem: function getItem() {\n var item = window.localStorage.getItem(key);\n return item ? JSON.parse(item) : [];\n }\n };\n}\n\nexport function createStoredSearches(_ref) {\n var key = _ref.key,\n _ref$limit = _ref.limit,\n limit = _ref$limit === void 0 ? 5 : _ref$limit;\n var storage = createStorage(key);\n var items = storage.getItem().slice(0, limit);\n return {\n add: function add(item) {\n var _ref2 = item,\n _highlightResult = _ref2._highlightResult,\n _snippetResult = _ref2._snippetResult,\n hit = _objectWithoutProperties(_ref2, _excluded);\n\n var isQueryAlreadySaved = items.findIndex(function (x) {\n return x.objectID === hit.objectID;\n });\n\n if (isQueryAlreadySaved > -1) {\n items.splice(isQueryAlreadySaved, 1);\n }\n\n items.unshift(hit);\n items = items.slice(0, limit);\n storage.setItem(items);\n },\n remove: function remove(item) {\n items = items.filter(function (x) {\n return x.objectID !== item.objectID;\n });\n storage.setItem(items);\n },\n getAll: function getAll() {\n return items;\n }\n };\n}","function createBrowserLocalStorageCache(options) {\r\n const namespaceKey = `algoliasearch-client-js-${options.key}`;\r\n // eslint-disable-next-line functional/no-let\r\n let storage;\r\n const getStorage = () => {\r\n if (storage === undefined) {\r\n storage = options.localStorage || window.localStorage;\r\n }\r\n return storage;\r\n };\r\n const getNamespace = () => {\r\n return JSON.parse(getStorage().getItem(namespaceKey) || '{}');\r\n };\r\n const setNamespace = (namespace) => {\r\n getStorage().setItem(namespaceKey, JSON.stringify(namespace));\r\n };\r\n const removeOutdatedCacheItems = () => {\r\n const timeToLive = options.timeToLive ? options.timeToLive * 1000 : null;\r\n const namespace = getNamespace();\r\n const filteredNamespaceWithoutOldFormattedCacheItems = Object.fromEntries(Object.entries(namespace).filter(([, cacheItem]) => {\r\n return cacheItem.timestamp !== undefined;\r\n }));\r\n setNamespace(filteredNamespaceWithoutOldFormattedCacheItems);\r\n if (!timeToLive)\r\n return;\r\n const filteredNamespaceWithoutExpiredItems = Object.fromEntries(Object.entries(filteredNamespaceWithoutOldFormattedCacheItems).filter(([, cacheItem]) => {\r\n const currentTimestamp = new Date().getTime();\r\n const isExpired = cacheItem.timestamp + timeToLive < currentTimestamp;\r\n return !isExpired;\r\n }));\r\n setNamespace(filteredNamespaceWithoutExpiredItems);\r\n };\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n return Promise.resolve()\r\n .then(() => {\r\n removeOutdatedCacheItems();\r\n const keyAsString = JSON.stringify(key);\r\n return getNamespace()[keyAsString];\r\n })\r\n .then(value => {\r\n return Promise.all([value ? value.value : defaultValue(), value !== undefined]);\r\n })\r\n .then(([value, exists]) => {\r\n return Promise.all([value, exists || events.miss(value)]);\r\n })\r\n .then(([value]) => value);\r\n },\r\n set(key, value) {\r\n return Promise.resolve().then(() => {\r\n const namespace = getNamespace();\r\n // eslint-disable-next-line functional/immutable-data\r\n namespace[JSON.stringify(key)] = {\r\n timestamp: new Date().getTime(),\r\n value,\r\n };\r\n getStorage().setItem(namespaceKey, JSON.stringify(namespace));\r\n return value;\r\n });\r\n },\r\n delete(key) {\r\n return Promise.resolve().then(() => {\r\n const namespace = getNamespace();\r\n // eslint-disable-next-line functional/immutable-data\r\n delete namespace[JSON.stringify(key)];\r\n getStorage().setItem(namespaceKey, JSON.stringify(namespace));\r\n });\r\n },\r\n clear() {\r\n return Promise.resolve().then(() => {\r\n getStorage().removeItem(namespaceKey);\r\n });\r\n },\r\n };\r\n}\n\n// @todo Add logger on options to debug when caches go wrong.\r\nfunction createFallbackableCache(options) {\r\n const caches = [...options.caches];\r\n const current = caches.shift(); // eslint-disable-line functional/immutable-data\r\n if (current === undefined) {\r\n return createNullCache();\r\n }\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n return current.get(key, defaultValue, events).catch(() => {\r\n return createFallbackableCache({ caches }).get(key, defaultValue, events);\r\n });\r\n },\r\n set(key, value) {\r\n return current.set(key, value).catch(() => {\r\n return createFallbackableCache({ caches }).set(key, value);\r\n });\r\n },\r\n delete(key) {\r\n return current.delete(key).catch(() => {\r\n return createFallbackableCache({ caches }).delete(key);\r\n });\r\n },\r\n clear() {\r\n return current.clear().catch(() => {\r\n return createFallbackableCache({ caches }).clear();\r\n });\r\n },\r\n };\r\n}\n\nfunction createNullCache() {\r\n return {\r\n get(_key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n const value = defaultValue();\r\n return value\r\n .then(result => Promise.all([result, events.miss(result)]))\r\n .then(([result]) => result);\r\n },\r\n set(_key, value) {\r\n return Promise.resolve(value);\r\n },\r\n delete(_key) {\r\n return Promise.resolve();\r\n },\r\n clear() {\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nfunction createInMemoryCache(options = { serializable: true }) {\r\n // eslint-disable-next-line functional/no-let\r\n let cache = {};\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n const keyAsString = JSON.stringify(key);\r\n if (keyAsString in cache) {\r\n return Promise.resolve(options.serializable ? JSON.parse(cache[keyAsString]) : cache[keyAsString]);\r\n }\r\n const promise = defaultValue();\r\n const miss = (events && events.miss) || (() => Promise.resolve());\r\n return promise.then((value) => miss(value)).then(() => promise);\r\n },\r\n set(key, value) {\r\n // eslint-disable-next-line functional/immutable-data\r\n cache[JSON.stringify(key)] = options.serializable ? JSON.stringify(value) : value;\r\n return Promise.resolve(value);\r\n },\r\n delete(key) {\r\n // eslint-disable-next-line functional/immutable-data\r\n delete cache[JSON.stringify(key)];\r\n return Promise.resolve();\r\n },\r\n clear() {\r\n cache = {};\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nfunction createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.19.1';\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nfunction createMappedRequestOptions(requestOptions, timeout) {\r\n const options = requestOptions || {};\r\n const data = options.data || {};\r\n Object.keys(options).forEach(key => {\r\n if (['timeout', 'headers', 'queryParameters', 'data', 'cacheable'].indexOf(key) === -1) {\r\n data[key] = options[key]; // eslint-disable-line functional/immutable-data\r\n }\r\n });\r\n return {\r\n data: Object.entries(data).length > 0 ? data : undefined,\r\n timeout: options.timeout || timeout,\r\n headers: options.headers || {},\r\n queryParameters: options.queryParameters || {},\r\n cacheable: options.cacheable,\r\n };\r\n}\n\nconst CallEnum = {\r\n /**\r\n * If the host is read only.\r\n */\r\n Read: 1,\r\n /**\r\n * If the host is write only.\r\n */\r\n Write: 2,\r\n /**\r\n * If the host is both read and write.\r\n */\r\n Any: 3,\r\n};\n\nconst HostStatusEnum = {\r\n Up: 1,\r\n Down: 2,\r\n Timeouted: 3,\r\n};\n\n// By default, API Clients at Algolia have expiration delay\r\n// of 5 mins. In the JavaScript client, we have 2 mins.\r\nconst EXPIRATION_DELAY = 2 * 60 * 1000;\r\nfunction createStatefulHost(host, status = HostStatusEnum.Up) {\r\n return {\r\n ...host,\r\n status,\r\n lastUpdate: Date.now(),\r\n };\r\n}\r\nfunction isStatefulHostUp(host) {\r\n return host.status === HostStatusEnum.Up || Date.now() - host.lastUpdate > EXPIRATION_DELAY;\r\n}\r\nfunction isStatefulHostTimeouted(host) {\r\n return (host.status === HostStatusEnum.Timeouted && Date.now() - host.lastUpdate <= EXPIRATION_DELAY);\r\n}\n\nfunction createStatelessHost(options) {\r\n if (typeof options === 'string') {\r\n return {\r\n protocol: 'https',\r\n url: options,\r\n accept: CallEnum.Any,\r\n };\r\n }\r\n return {\r\n protocol: options.protocol || 'https',\r\n url: options.url,\r\n accept: options.accept || CallEnum.Any,\r\n };\r\n}\n\nconst MethodEnum = {\r\n Delete: 'DELETE',\r\n Get: 'GET',\r\n Post: 'POST',\r\n Put: 'PUT',\r\n};\n\nfunction createRetryableOptions(hostsCache, statelessHosts) {\r\n return Promise.all(statelessHosts.map(statelessHost => {\r\n return hostsCache.get(statelessHost, () => {\r\n return Promise.resolve(createStatefulHost(statelessHost));\r\n });\r\n })).then(statefulHosts => {\r\n const hostsUp = statefulHosts.filter(host => isStatefulHostUp(host));\r\n const hostsTimeouted = statefulHosts.filter(host => isStatefulHostTimeouted(host));\r\n /**\r\n * Note, we put the hosts that previously timeouted on the end of the list.\r\n */\r\n const hostsAvailable = [...hostsUp, ...hostsTimeouted];\r\n const statelessHostsAvailable = hostsAvailable.length > 0\r\n ? hostsAvailable.map(host => createStatelessHost(host))\r\n : statelessHosts;\r\n return {\r\n getTimeout(timeoutsCount, baseTimeout) {\r\n /**\r\n * Imagine that you have 4 hosts, if timeouts will increase\r\n * on the following way: 1 (timeouted) > 4 (timeouted) > 5 (200)\r\n *\r\n * Note that, the very next request, we start from the previous timeout\r\n *\r\n * 5 (timeouted) > 6 (timeouted) > 7 ...\r\n *\r\n * This strategy may need to be reviewed, but is the strategy on the our\r\n * current v3 version.\r\n */\r\n const timeoutMultiplier = hostsTimeouted.length === 0 && timeoutsCount === 0\r\n ? 1\r\n : hostsTimeouted.length + 3 + timeoutsCount;\r\n return timeoutMultiplier * baseTimeout;\r\n },\r\n statelessHosts: statelessHostsAvailable,\r\n };\r\n });\r\n}\n\nconst isNetworkError = ({ isTimedOut, status }) => {\r\n return !isTimedOut && ~~status === 0;\r\n};\r\nconst isRetryable = (response) => {\r\n const status = response.status;\r\n const isTimedOut = response.isTimedOut;\r\n return (isTimedOut || isNetworkError(response) || (~~(status / 100) !== 2 && ~~(status / 100) !== 4));\r\n};\r\nconst isSuccess = ({ status }) => {\r\n return ~~(status / 100) === 2;\r\n};\r\nconst retryDecision = (response, outcomes) => {\r\n if (isRetryable(response)) {\r\n return outcomes.onRetry(response);\r\n }\r\n if (isSuccess(response)) {\r\n return outcomes.onSuccess(response);\r\n }\r\n return outcomes.onFail(response);\r\n};\n\nfunction retryableRequest(transporter, statelessHosts, request, requestOptions) {\r\n const stackTrace = []; // eslint-disable-line functional/prefer-readonly-type\r\n /**\r\n * First we prepare the payload that do not depend from hosts.\r\n */\r\n const data = serializeData(request, requestOptions);\r\n const headers = serializeHeaders(transporter, requestOptions);\r\n const method = request.method;\r\n // On `GET`, the data is proxied to query parameters.\r\n const dataQueryParameters = request.method !== MethodEnum.Get\r\n ? {}\r\n : {\r\n ...request.data,\r\n ...requestOptions.data,\r\n };\r\n const queryParameters = {\r\n 'x-algolia-agent': transporter.userAgent.value,\r\n ...transporter.queryParameters,\r\n ...dataQueryParameters,\r\n ...requestOptions.queryParameters,\r\n };\r\n let timeoutsCount = 0; // eslint-disable-line functional/no-let\r\n const retry = (hosts, // eslint-disable-line functional/prefer-readonly-type\r\n getTimeout) => {\r\n /**\r\n * We iterate on each host, until there is no host left.\r\n */\r\n const host = hosts.pop(); // eslint-disable-line functional/immutable-data\r\n if (host === undefined) {\r\n throw createRetryError(stackTraceWithoutCredentials(stackTrace));\r\n }\r\n const payload = {\r\n data,\r\n headers,\r\n method,\r\n url: serializeUrl(host, request.path, queryParameters),\r\n connectTimeout: getTimeout(timeoutsCount, transporter.timeouts.connect),\r\n responseTimeout: getTimeout(timeoutsCount, requestOptions.timeout),\r\n };\r\n /**\r\n * The stackFrame is pushed to the stackTrace so we\r\n * can have information about onRetry and onFailure\r\n * decisions.\r\n */\r\n const pushToStackTrace = (response) => {\r\n const stackFrame = {\r\n request: payload,\r\n response,\r\n host,\r\n triesLeft: hosts.length,\r\n };\r\n // eslint-disable-next-line functional/immutable-data\r\n stackTrace.push(stackFrame);\r\n return stackFrame;\r\n };\r\n const decisions = {\r\n onSuccess: response => deserializeSuccess(response),\r\n onRetry(response) {\r\n const stackFrame = pushToStackTrace(response);\r\n /**\r\n * If response is a timeout, we increaset the number of\r\n * timeouts so we can increase the timeout later.\r\n */\r\n if (response.isTimedOut) {\r\n timeoutsCount++;\r\n }\r\n return Promise.all([\r\n /**\r\n * Failures are individually send the logger, allowing\r\n * the end user to debug / store stack frames even\r\n * when a retry error does not happen.\r\n */\r\n transporter.logger.info('Retryable failure', stackFrameWithoutCredentials(stackFrame)),\r\n /**\r\n * We also store the state of the host in failure cases. If the host, is\r\n * down it will remain down for the next 2 minutes. In a timeout situation,\r\n * this host will be added end of the list of hosts on the next request.\r\n */\r\n transporter.hostsCache.set(host, createStatefulHost(host, response.isTimedOut ? HostStatusEnum.Timeouted : HostStatusEnum.Down)),\r\n ]).then(() => retry(hosts, getTimeout));\r\n },\r\n onFail(response) {\r\n pushToStackTrace(response);\r\n throw deserializeFailure(response, stackTraceWithoutCredentials(stackTrace));\r\n },\r\n };\r\n return transporter.requester.send(payload).then(response => {\r\n return retryDecision(response, decisions);\r\n });\r\n };\r\n /**\r\n * Finally, for each retryable host perform request until we got a non\r\n * retryable response. Some notes here:\r\n *\r\n * 1. The reverse here is applied so we can apply a `pop` later on => more performant.\r\n * 2. We also get from the retryable options a timeout multiplier that is tailored\r\n * for the current context.\r\n */\r\n return createRetryableOptions(transporter.hostsCache, statelessHosts).then(options => {\r\n return retry([...options.statelessHosts].reverse(), options.getTimeout);\r\n });\r\n}\n\nfunction createTransporter(options) {\r\n const { hostsCache, logger, requester, requestsCache, responsesCache, timeouts, userAgent, hosts, queryParameters, headers, } = options;\r\n const transporter = {\r\n hostsCache,\r\n logger,\r\n requester,\r\n requestsCache,\r\n responsesCache,\r\n timeouts,\r\n userAgent,\r\n headers,\r\n queryParameters,\r\n hosts: hosts.map(host => createStatelessHost(host)),\r\n read(request, requestOptions) {\r\n /**\r\n * First, we compute the user request options. Now, keep in mind,\r\n * that using request options the user is able to modified the intire\r\n * payload of the request. Such as headers, query parameters, and others.\r\n */\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions, transporter.timeouts.read);\r\n const createRetryableRequest = () => {\r\n /**\r\n * Then, we prepare a function factory that contains the construction of\r\n * the retryable request. At this point, we may *not* perform the actual\r\n * request. But we want to have the function factory ready.\r\n */\r\n return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Read) !== 0), request, mappedRequestOptions);\r\n };\r\n /**\r\n * Once we have the function factory ready, we need to determine of the\r\n * request is \"cacheable\" - should be cached. Note that, once again,\r\n * the user can force this option.\r\n */\r\n const cacheable = mappedRequestOptions.cacheable !== undefined\r\n ? mappedRequestOptions.cacheable\r\n : request.cacheable;\r\n /**\r\n * If is not \"cacheable\", we immediatly trigger the retryable request, no\r\n * need to check cache implementations.\r\n */\r\n if (cacheable !== true) {\r\n return createRetryableRequest();\r\n }\r\n /**\r\n * If the request is \"cacheable\", we need to first compute the key to ask\r\n * the cache implementations if this request is on progress or if the\r\n * response already exists on the cache.\r\n */\r\n const key = {\r\n request,\r\n mappedRequestOptions,\r\n transporter: {\r\n queryParameters: transporter.queryParameters,\r\n headers: transporter.headers,\r\n },\r\n };\r\n /**\r\n * With the computed key, we first ask the responses cache\r\n * implemention if this request was been resolved before.\r\n */\r\n return transporter.responsesCache.get(key, () => {\r\n /**\r\n * If the request has never resolved before, we actually ask if there\r\n * is a current request with the same key on progress.\r\n */\r\n return transporter.requestsCache.get(key, () => {\r\n return (transporter.requestsCache\r\n /**\r\n * Finally, if there is no request in progress with the same key,\r\n * this `createRetryableRequest()` will actually trigger the\r\n * retryable request.\r\n */\r\n .set(key, createRetryableRequest())\r\n .then(response => Promise.all([transporter.requestsCache.delete(key), response]), err => Promise.all([transporter.requestsCache.delete(key), Promise.reject(err)]))\r\n .then(([_, response]) => response));\r\n });\r\n }, {\r\n /**\r\n * Of course, once we get this response back from the server, we\r\n * tell response cache to actually store the received response\r\n * to be used later.\r\n */\r\n miss: response => transporter.responsesCache.set(key, response),\r\n });\r\n },\r\n write(request, requestOptions) {\r\n /**\r\n * On write requests, no cache mechanisms are applied, and we\r\n * proxy the request immediately to the requester.\r\n */\r\n return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Write) !== 0), request, createMappedRequestOptions(requestOptions, transporter.timeouts.write));\r\n },\r\n };\r\n return transporter;\r\n}\n\nfunction createUserAgent(version) {\r\n const userAgent = {\r\n value: `Algolia for JavaScript (${version})`,\r\n add(options) {\r\n const addedUserAgent = `; ${options.segment}${options.version !== undefined ? ` (${options.version})` : ''}`;\r\n if (userAgent.value.indexOf(addedUserAgent) === -1) {\r\n // eslint-disable-next-line functional/immutable-data\r\n userAgent.value = `${userAgent.value}${addedUserAgent}`;\r\n }\r\n return userAgent;\r\n },\r\n };\r\n return userAgent;\r\n}\n\nfunction deserializeSuccess(response) {\r\n // eslint-disable-next-line functional/no-try-statement\r\n try {\r\n return JSON.parse(response.content);\r\n }\r\n catch (e) {\r\n throw createDeserializationError(e.message, response);\r\n }\r\n}\r\nfunction deserializeFailure({ content, status }, stackFrame) {\r\n // eslint-disable-next-line functional/no-let\r\n let message = content;\r\n // eslint-disable-next-line functional/no-try-statement\r\n try {\r\n message = JSON.parse(content).message;\r\n }\r\n catch (e) {\r\n // ..\r\n }\r\n return createApiError(message, status, stackFrame);\r\n}\n\nfunction serializeUrl(host, path, queryParameters) {\r\n const queryParametersAsString = serializeQueryParameters(queryParameters);\r\n // eslint-disable-next-line functional/no-let\r\n let url = `${host.protocol}://${host.url}/${path.charAt(0) === '/' ? path.substr(1) : path}`;\r\n if (queryParametersAsString.length) {\r\n url += `?${queryParametersAsString}`;\r\n }\r\n return url;\r\n}\r\nfunction serializeQueryParameters(parameters) {\r\n const isObjectOrArray = (value) => Object.prototype.toString.call(value) === '[object Object]' ||\r\n Object.prototype.toString.call(value) === '[object Array]';\r\n return Object.keys(parameters)\r\n .map(key => encode('%s=%s', key, isObjectOrArray(parameters[key]) ? JSON.stringify(parameters[key]) : parameters[key]))\r\n .join('&');\r\n}\r\nfunction serializeData(request, requestOptions) {\r\n if (request.method === MethodEnum.Get ||\r\n (request.data === undefined && requestOptions.data === undefined)) {\r\n return undefined;\r\n }\r\n const data = Array.isArray(request.data)\r\n ? request.data\r\n : { ...request.data, ...requestOptions.data };\r\n return JSON.stringify(data);\r\n}\r\nfunction serializeHeaders(transporter, requestOptions) {\r\n const headers = {\r\n ...transporter.headers,\r\n ...requestOptions.headers,\r\n };\r\n const serializedHeaders = {};\r\n Object.keys(headers).forEach(header => {\r\n const value = headers[header];\r\n // @ts-ignore\r\n // eslint-disable-next-line functional/immutable-data\r\n serializedHeaders[header.toLowerCase()] = value;\r\n });\r\n return serializedHeaders;\r\n}\n\nfunction stackTraceWithoutCredentials(stackTrace) {\r\n return stackTrace.map(stackFrame => stackFrameWithoutCredentials(stackFrame));\r\n}\r\nfunction stackFrameWithoutCredentials(stackFrame) {\r\n const modifiedHeaders = stackFrame.request.headers['x-algolia-api-key']\r\n ? { 'x-algolia-api-key': '*****' }\r\n : {};\r\n return {\r\n ...stackFrame,\r\n request: {\r\n ...stackFrame.request,\r\n headers: {\r\n ...stackFrame.request.headers,\r\n ...modifiedHeaders,\r\n },\r\n },\r\n };\r\n}\n\nfunction createApiError(message, status, transporterStackTrace) {\r\n return {\r\n name: 'ApiError',\r\n message,\r\n status,\r\n transporterStackTrace,\r\n };\r\n}\n\nfunction createDeserializationError(message, response) {\r\n return {\r\n name: 'DeserializationError',\r\n message,\r\n response,\r\n };\r\n}\n\nfunction createRetryError(transporterStackTrace) {\r\n return {\r\n name: 'RetryError',\r\n message: 'Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.',\r\n transporterStackTrace,\r\n };\r\n}\n\nconst createSearchClient = options => {\r\n const appId = options.appId;\r\n const auth = createAuth(options.authMode !== undefined ? options.authMode : AuthMode.WithinHeaders, appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [\r\n { url: `${appId}-dsn.algolia.net`, accept: CallEnum.Read },\r\n { url: `${appId}.algolia.net`, accept: CallEnum.Write },\r\n ].concat(shuffle([\r\n { url: `${appId}-1.algolianet.com` },\r\n { url: `${appId}-2.algolianet.com` },\r\n { url: `${appId}-3.algolianet.com` },\r\n ])),\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/x-www-form-urlencoded' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n const base = {\r\n transporter,\r\n appId,\r\n addAlgoliaAgent(segment, version) {\r\n transporter.userAgent.add({ segment, version });\r\n },\r\n clearCache() {\r\n return Promise.all([\r\n transporter.requestsCache.clear(),\r\n transporter.responsesCache.clear(),\r\n ]).then(() => undefined);\r\n },\r\n };\r\n return addMethods(base, options.methods);\r\n};\n\nconst customRequest = (base) => {\r\n return (request, requestOptions) => {\r\n if (request.method === MethodEnum.Get) {\r\n return base.transporter.read(request, requestOptions);\r\n }\r\n return base.transporter.write(request, requestOptions);\r\n };\r\n};\n\nconst initIndex = (base) => {\r\n return (indexName, options = {}) => {\r\n const searchIndex = {\r\n transporter: base.transporter,\r\n appId: base.appId,\r\n indexName,\r\n };\r\n return addMethods(searchIndex, options.methods);\r\n };\r\n};\n\nconst multipleQueries = (base) => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => {\r\n return {\r\n ...query,\r\n params: serializeQueryParameters(query.params || {}),\r\n };\r\n });\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/queries',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst multipleSearchForFacetValues = (base) => {\r\n return (queries, requestOptions) => {\r\n return Promise.all(queries.map(query => {\r\n const { facetName, facetQuery, ...params } = query.params;\r\n return initIndex(base)(query.indexName, {\r\n methods: { searchForFacetValues },\r\n }).searchForFacetValues(facetName, facetQuery, {\r\n ...requestOptions,\r\n ...params,\r\n });\r\n }));\r\n };\r\n};\n\nconst findAnswers = (base) => {\r\n return (query, queryLanguages, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/answers/%s/prediction', base.indexName),\r\n data: {\r\n query,\r\n queryLanguages,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst search = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/query', base.indexName),\r\n data: {\r\n query,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchForFacetValues = (base) => {\r\n return (facetName, facetQuery, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/facets/%s/query', base.indexName, facetName),\r\n data: {\r\n facetQuery,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst LogLevelEnum = {\r\n Debug: 1,\r\n Info: 2,\r\n Error: 3,\r\n};\n\n/* eslint no-console: 0 */\r\nfunction createConsoleLogger(logLevel) {\r\n return {\r\n debug(message, args) {\r\n if (LogLevelEnum.Debug >= logLevel) {\r\n console.debug(message, args);\r\n }\r\n return Promise.resolve();\r\n },\r\n info(message, args) {\r\n if (LogLevelEnum.Info >= logLevel) {\r\n console.info(message, args);\r\n }\r\n return Promise.resolve();\r\n },\r\n error(message, args) {\r\n console.error(message, args);\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nfunction createBrowserXhrRequester() {\r\n return {\r\n send(request) {\r\n return new Promise((resolve) => {\r\n const baseRequester = new XMLHttpRequest();\r\n baseRequester.open(request.method, request.url, true);\r\n Object.keys(request.headers).forEach(key => baseRequester.setRequestHeader(key, request.headers[key]));\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n baseRequester.abort();\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n const connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n // eslint-disable-next-line functional/immutable-data\r\n baseRequester.onreadystatechange = () => {\r\n if (baseRequester.readyState > baseRequester.OPENED && responseTimeout === undefined) {\r\n clearTimeout(connectTimeout);\r\n responseTimeout = createTimeout(request.responseTimeout, 'Socket timeout');\r\n }\r\n };\r\n // eslint-disable-next-line functional/immutable-data\r\n baseRequester.onerror = () => {\r\n // istanbul ignore next\r\n if (baseRequester.status === 0) {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n resolve({\r\n content: baseRequester.responseText || 'Network request failed',\r\n status: baseRequester.status,\r\n isTimedOut: false,\r\n });\r\n }\r\n };\r\n // eslint-disable-next-line functional/immutable-data\r\n baseRequester.onload = () => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n resolve({\r\n content: baseRequester.responseText,\r\n status: baseRequester.status,\r\n isTimedOut: false,\r\n });\r\n };\r\n baseRequester.send(request.data);\r\n });\r\n },\r\n };\r\n}\n\nfunction algoliasearch(appId, apiKey, options) {\r\n const commonOptions = {\r\n appId,\r\n apiKey,\r\n timeouts: {\r\n connect: 1,\r\n read: 2,\r\n write: 30,\r\n },\r\n requester: createBrowserXhrRequester(),\r\n logger: createConsoleLogger(LogLevelEnum.Error),\r\n responsesCache: createInMemoryCache(),\r\n requestsCache: createInMemoryCache({ serializable: false }),\r\n hostsCache: createFallbackableCache({\r\n caches: [\r\n createBrowserLocalStorageCache({ key: `${version}-${appId}` }),\r\n createInMemoryCache(),\r\n ],\r\n }),\r\n userAgent: createUserAgent(version).add({\r\n segment: 'Browser',\r\n version: 'lite',\r\n }),\r\n authMode: AuthMode.WithinQueryParameters,\r\n };\r\n return createSearchClient({\r\n ...commonOptions,\r\n ...options,\r\n methods: {\r\n search: multipleQueries,\r\n searchForFacetValues: multipleSearchForFacetValues,\r\n multipleQueries,\r\n multipleSearchForFacetValues,\r\n customRequest,\r\n initIndex: base => (indexName) => {\r\n return initIndex(base)(indexName, {\r\n methods: { search, searchForFacetValues, findAnswers },\r\n });\r\n },\r\n },\r\n });\r\n}\r\n// eslint-disable-next-line functional/immutable-data\r\nalgoliasearch.version = version;\n\nexport default algoliasearch;\n","var _excluded = [\"footer\", \"searchBox\"];\n\nfunction _extends() { _extends = Object.assign || 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); }\n\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; }\n\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; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\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.\"); }\n\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); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\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; }\n\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; }\n\nimport { createAutocomplete } from '@algolia/autocomplete-core';\nimport React from 'react';\nimport { MAX_QUERY_SIZE } from './constants';\nimport { Footer } from './Footer';\nimport { Hit } from './Hit';\nimport { ScreenState } from './ScreenState';\nimport { SearchBox } from './SearchBox';\nimport { createStoredSearches } from './stored-searches';\nimport { useSearchClient } from './useSearchClient';\nimport { useTouchEvents } from './useTouchEvents';\nimport { useTrapFocus } from './useTrapFocus';\nimport { groupBy, identity, noop, removeHighlightTags, isModifierEvent } from './utils';\nexport function DocSearchModal(_ref) {\n var appId = _ref.appId,\n apiKey = _ref.apiKey,\n indexName = _ref.indexName,\n _ref$placeholder = _ref.placeholder,\n placeholder = _ref$placeholder === void 0 ? 'Search docs' : _ref$placeholder,\n searchParameters = _ref.searchParameters,\n maxResultsPerGroup = _ref.maxResultsPerGroup,\n _ref$onClose = _ref.onClose,\n onClose = _ref$onClose === void 0 ? noop : _ref$onClose,\n _ref$transformItems = _ref.transformItems,\n transformItems = _ref$transformItems === void 0 ? identity : _ref$transformItems,\n _ref$hitComponent = _ref.hitComponent,\n hitComponent = _ref$hitComponent === void 0 ? Hit : _ref$hitComponent,\n _ref$resultsFooterCom = _ref.resultsFooterComponent,\n resultsFooterComponent = _ref$resultsFooterCom === void 0 ? function () {\n return null;\n } : _ref$resultsFooterCom,\n navigator = _ref.navigator,\n _ref$initialScrollY = _ref.initialScrollY,\n initialScrollY = _ref$initialScrollY === void 0 ? 0 : _ref$initialScrollY,\n _ref$transformSearchC = _ref.transformSearchClient,\n transformSearchClient = _ref$transformSearchC === void 0 ? identity : _ref$transformSearchC,\n _ref$disableUserPerso = _ref.disableUserPersonalization,\n disableUserPersonalization = _ref$disableUserPerso === void 0 ? false : _ref$disableUserPerso,\n _ref$initialQuery = _ref.initialQuery,\n initialQueryFromProp = _ref$initialQuery === void 0 ? '' : _ref$initialQuery,\n _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations,\n getMissingResultsUrl = _ref.getMissingResultsUrl,\n _ref$insights = _ref.insights,\n insights = _ref$insights === void 0 ? false : _ref$insights;\n\n var footerTranslations = translations.footer,\n searchBoxTranslations = translations.searchBox,\n screenStateTranslations = _objectWithoutProperties(translations, _excluded);\n\n var _React$useState = React.useState({\n query: '',\n collections: [],\n completion: null,\n context: {},\n isOpen: false,\n activeItemId: null,\n status: 'idle'\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n state = _React$useState2[0],\n setState = _React$useState2[1];\n\n var containerRef = React.useRef(null);\n var modalRef = React.useRef(null);\n var formElementRef = React.useRef(null);\n var dropdownRef = React.useRef(null);\n var inputRef = React.useRef(null);\n var snippetLength = React.useRef(10);\n var initialQueryFromSelection = React.useRef(typeof window !== 'undefined' ? window.getSelection().toString().slice(0, MAX_QUERY_SIZE) : '').current;\n var initialQuery = React.useRef(initialQueryFromProp || initialQueryFromSelection).current;\n var searchClient = useSearchClient(appId, apiKey, transformSearchClient);\n var favoriteSearches = React.useRef(createStoredSearches({\n key: \"__DOCSEARCH_FAVORITE_SEARCHES__\".concat(indexName),\n limit: 10\n })).current;\n var recentSearches = React.useRef(createStoredSearches({\n key: \"__DOCSEARCH_RECENT_SEARCHES__\".concat(indexName),\n // We display 7 recent searches and there's no favorites, but only\n // 4 when there are favorites.\n limit: favoriteSearches.getAll().length === 0 ? 7 : 4\n })).current;\n var saveRecentSearch = React.useCallback(function saveRecentSearch(item) {\n if (disableUserPersonalization) {\n return;\n } // We don't store `content` record, but their parent if available.\n\n\n var search = item.type === 'content' ? item.__docsearch_parent : item; // We save the recent search only if it's not favorited.\n\n if (search && favoriteSearches.getAll().findIndex(function (x) {\n return x.objectID === search.objectID;\n }) === -1) {\n recentSearches.add(search);\n }\n }, [favoriteSearches, recentSearches, disableUserPersonalization]);\n var sendItemClickEvent = React.useCallback(function (item) {\n if (!state.context.algoliaInsightsPlugin || !item.__autocomplete_id) return;\n var insightsItem = item;\n var insightsClickParams = {\n eventName: 'Item Selected',\n index: insightsItem.__autocomplete_indexName,\n items: [insightsItem],\n positions: [item.__autocomplete_id],\n queryID: insightsItem.__autocomplete_queryID\n };\n state.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(insightsClickParams);\n }, [state.context.algoliaInsightsPlugin]);\n var autocomplete = React.useMemo(function () {\n return createAutocomplete({\n id: 'docsearch',\n defaultActiveItemId: 0,\n placeholder: placeholder,\n openOnFocus: true,\n initialState: {\n query: initialQuery,\n context: {\n searchSuggestions: []\n }\n },\n insights: insights,\n navigator: navigator,\n onStateChange: function onStateChange(props) {\n setState(props.state);\n },\n getSources: function getSources(_ref2) {\n var query = _ref2.query,\n sourcesState = _ref2.state,\n setContext = _ref2.setContext,\n setStatus = _ref2.setStatus;\n\n if (!query) {\n if (disableUserPersonalization) {\n return [];\n }\n\n return [{\n sourceId: 'recentSearches',\n onSelect: function onSelect(_ref3) {\n var item = _ref3.item,\n event = _ref3.event;\n saveRecentSearch(item);\n\n if (!isModifierEvent(event)) {\n onClose();\n }\n },\n getItemUrl: function getItemUrl(_ref4) {\n var item = _ref4.item;\n return item.url;\n },\n getItems: function getItems() {\n return recentSearches.getAll();\n }\n }, {\n sourceId: 'favoriteSearches',\n onSelect: function onSelect(_ref5) {\n var item = _ref5.item,\n event = _ref5.event;\n saveRecentSearch(item);\n\n if (!isModifierEvent(event)) {\n onClose();\n }\n },\n getItemUrl: function getItemUrl(_ref6) {\n var item = _ref6.item;\n return item.url;\n },\n getItems: function getItems() {\n return favoriteSearches.getAll();\n }\n }];\n }\n\n var insightsActive = Boolean(insights);\n return searchClient.search([{\n query: query,\n indexName: indexName,\n params: _objectSpread({\n attributesToRetrieve: ['hierarchy.lvl0', 'hierarchy.lvl1', 'hierarchy.lvl2', 'hierarchy.lvl3', 'hierarchy.lvl4', 'hierarchy.lvl5', 'hierarchy.lvl6', 'content', 'type', 'url'],\n attributesToSnippet: [\"hierarchy.lvl1:\".concat(snippetLength.current), \"hierarchy.lvl2:\".concat(snippetLength.current), \"hierarchy.lvl3:\".concat(snippetLength.current), \"hierarchy.lvl4:\".concat(snippetLength.current), \"hierarchy.lvl5:\".concat(snippetLength.current), \"hierarchy.lvl6:\".concat(snippetLength.current), \"content:\".concat(snippetLength.current)],\n snippetEllipsisText: '…',\n highlightPreTag: '',\n highlightPostTag: '',\n hitsPerPage: 20,\n clickAnalytics: insightsActive\n }, searchParameters)\n }]).catch(function (error) {\n // The Algolia `RetryError` happens when all the servers have\n // failed, meaning that there's no chance the response comes\n // back. This is the right time to display an error.\n // See https://github.com/algolia/algoliasearch-client-javascript/blob/2ffddf59bc765cd1b664ee0346b28f00229d6e12/packages/transporter/src/errors/createRetryError.ts#L5\n if (error.name === 'RetryError') {\n setStatus('error');\n }\n\n throw error;\n }).then(function (_ref7) {\n var results = _ref7.results;\n var firstResult = results[0];\n var hits = firstResult.hits,\n nbHits = firstResult.nbHits;\n var sources = groupBy(hits, function (hit) {\n return removeHighlightTags(hit);\n }, maxResultsPerGroup); // We store the `lvl0`s to display them as search suggestions\n // in the \"no results\" screen.\n\n if (sourcesState.context.searchSuggestions.length < Object.keys(sources).length) {\n setContext({\n searchSuggestions: Object.keys(sources)\n });\n }\n\n setContext({\n nbHits: nbHits\n });\n var insightsParams = {};\n\n if (insightsActive) {\n insightsParams = {\n __autocomplete_indexName: indexName,\n __autocomplete_queryID: firstResult.queryID,\n __autocomplete_algoliaCredentials: {\n appId: appId,\n apiKey: apiKey\n }\n };\n }\n\n return Object.values(sources).map(function (items, index) {\n return {\n sourceId: \"hits\".concat(index),\n onSelect: function onSelect(_ref8) {\n var item = _ref8.item,\n event = _ref8.event;\n saveRecentSearch(item);\n\n if (!isModifierEvent(event)) {\n onClose();\n }\n },\n getItemUrl: function getItemUrl(_ref9) {\n var item = _ref9.item;\n return item.url;\n },\n getItems: function getItems() {\n return Object.values(groupBy(items, function (item) {\n return item.hierarchy.lvl1;\n }, maxResultsPerGroup)).map(transformItems).map(function (groupedHits) {\n return groupedHits.map(function (item) {\n var parent = null;\n var potentialParent = groupedHits.find(function (siblingItem) {\n return siblingItem.type === 'lvl1' && siblingItem.hierarchy.lvl1 === item.hierarchy.lvl1;\n });\n\n if (item.type !== 'lvl1' && potentialParent) {\n parent = potentialParent;\n }\n\n return _objectSpread(_objectSpread({}, item), {}, {\n __docsearch_parent: parent\n }, insightsParams);\n });\n }).flat();\n }\n };\n });\n });\n }\n });\n }, [indexName, searchParameters, maxResultsPerGroup, searchClient, onClose, recentSearches, favoriteSearches, saveRecentSearch, initialQuery, placeholder, navigator, transformItems, disableUserPersonalization, insights, appId, apiKey]);\n var getEnvironmentProps = autocomplete.getEnvironmentProps,\n getRootProps = autocomplete.getRootProps,\n refresh = autocomplete.refresh;\n useTouchEvents({\n getEnvironmentProps: getEnvironmentProps,\n panelElement: dropdownRef.current,\n formElement: formElementRef.current,\n inputElement: inputRef.current\n });\n useTrapFocus({\n container: containerRef.current\n });\n React.useEffect(function () {\n document.body.classList.add('DocSearch--active');\n return function () {\n var _window$scrollTo, _window;\n\n document.body.classList.remove('DocSearch--active'); // IE11 doesn't support `scrollTo` so we check that the method exists\n // first.\n\n (_window$scrollTo = (_window = window).scrollTo) === null || _window$scrollTo === void 0 || _window$scrollTo.call(_window, 0, initialScrollY);\n }; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n React.useEffect(function () {\n var isMobileMediaQuery = window.matchMedia('(max-width: 768px)');\n\n if (isMobileMediaQuery.matches) {\n snippetLength.current = 5;\n }\n }, []);\n React.useEffect(function () {\n if (dropdownRef.current) {\n dropdownRef.current.scrollTop = 0;\n }\n }, [state.query]); // We don't focus the input when there's an initial query (i.e. Selection\n // Search) because users rather want to see the results directly, without the\n // keyboard appearing.\n // We therefore need to refresh the autocomplete instance to load all the\n // results, which is usually triggered on focus.\n\n React.useEffect(function () {\n if (initialQuery.length > 0) {\n refresh();\n\n if (inputRef.current) {\n inputRef.current.focus();\n }\n }\n }, [initialQuery, refresh]); // We rely on a CSS property to set the modal height to the full viewport height\n // because all mobile browsers don't compute their height the same way.\n // See https://css-tricks.com/the-trick-to-viewport-units-on-mobile/\n\n React.useEffect(function () {\n function setFullViewportHeight() {\n if (modalRef.current) {\n var vh = window.innerHeight * 0.01;\n modalRef.current.style.setProperty('--docsearch-vh', \"\".concat(vh, \"px\"));\n }\n }\n\n setFullViewportHeight();\n window.addEventListener('resize', setFullViewportHeight);\n return function () {\n window.removeEventListener('resize', setFullViewportHeight);\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: containerRef\n }, getRootProps({\n 'aria-expanded': true\n }), {\n className: ['DocSearch', 'DocSearch-Container', state.status === 'stalled' && 'DocSearch-Container--Stalled', state.status === 'error' && 'DocSearch-Container--Errored'].filter(Boolean).join(' '),\n role: \"button\",\n tabIndex: 0,\n onMouseDown: function onMouseDown(event) {\n if (event.target === event.currentTarget) {\n onClose();\n }\n }\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Modal\",\n ref: modalRef\n }, /*#__PURE__*/React.createElement(\"header\", {\n className: \"DocSearch-SearchBar\",\n ref: formElementRef\n }, /*#__PURE__*/React.createElement(SearchBox, _extends({}, autocomplete, {\n state: state,\n autoFocus: initialQuery.length === 0,\n inputRef: inputRef,\n isFromSelection: Boolean(initialQuery) && initialQuery === initialQueryFromSelection,\n translations: searchBoxTranslations,\n onClose: onClose\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Dropdown\",\n ref: dropdownRef\n }, /*#__PURE__*/React.createElement(ScreenState, _extends({}, autocomplete, {\n indexName: indexName,\n state: state,\n hitComponent: hitComponent,\n resultsFooterComponent: resultsFooterComponent,\n disableUserPersonalization: disableUserPersonalization,\n recentSearches: recentSearches,\n favoriteSearches: favoriteSearches,\n inputRef: inputRef,\n translations: screenStateTranslations,\n getMissingResultsUrl: getMissingResultsUrl,\n onItemClick: function onItemClick(item, event) {\n // If insights is active, send insights click event\n sendItemClickEvent(item);\n saveRecentSearch(item);\n\n if (!isModifierEvent(event)) {\n onClose();\n }\n }\n }))), /*#__PURE__*/React.createElement(\"footer\", {\n className: \"DocSearch-Footer\"\n }, /*#__PURE__*/React.createElement(Footer, {\n translations: footerTranslations\n }))));\n}","import algoliasearch from 'algoliasearch/dist/algoliasearch-lite.esm.browser';\nimport React from 'react';\nimport { version } from './version';\nexport function useSearchClient(appId, apiKey, transformSearchClient) {\n var searchClient = React.useMemo(function () {\n var client = algoliasearch(appId, apiKey);\n client.addAlgoliaAgent('docsearch', version); // Since DocSearch.js relies on DocSearch React with an alias to Preact,\n // we cannot add the `docsearch-react` user agent by default, otherwise\n // it would also be sent on a DocSearch.js integration.\n // We therefore only add the `docsearch-react` user agent if `docsearch.js`\n // is not present.\n\n if (/docsearch.js \\(.*\\)/.test(client.transporter.userAgent.value) === false) {\n client.addAlgoliaAgent('docsearch-react', version);\n }\n\n return transformSearchClient(client);\n }, [appId, apiKey, transformSearchClient]);\n return searchClient;\n}","export var version = '3.6.0';","import React from 'react';\nexport function useTouchEvents(_ref) {\n var getEnvironmentProps = _ref.getEnvironmentProps,\n panelElement = _ref.panelElement,\n formElement = _ref.formElement,\n inputElement = _ref.inputElement;\n React.useEffect(function () {\n if (!(panelElement && formElement && inputElement)) {\n return undefined;\n }\n\n var _getEnvironmentProps = getEnvironmentProps({\n panelElement: panelElement,\n formElement: formElement,\n inputElement: inputElement\n }),\n onTouchStart = _getEnvironmentProps.onTouchStart,\n onTouchMove = _getEnvironmentProps.onTouchMove;\n\n window.addEventListener('touchstart', onTouchStart);\n window.addEventListener('touchmove', onTouchMove);\n return function () {\n window.removeEventListener('touchstart', onTouchStart);\n window.removeEventListener('touchmove', onTouchMove);\n };\n }, [getEnvironmentProps, panelElement, formElement, inputElement]);\n}","import React from 'react';\nexport function useTrapFocus(_ref) {\n var container = _ref.container;\n React.useEffect(function () {\n if (!container) {\n return undefined;\n }\n\n var focusableElements = container.querySelectorAll('a[href]:not([disabled]), button:not([disabled]), input:not([disabled])');\n var firstElement = focusableElements[0];\n var lastElement = focusableElements[focusableElements.length - 1];\n\n function trapFocus(event) {\n if (event.key !== 'Tab') {\n return;\n }\n\n if (event.shiftKey) {\n if (document.activeElement === firstElement) {\n event.preventDefault();\n lastElement.focus();\n }\n } else if (document.activeElement === lastElement) {\n event.preventDefault();\n firstElement.focus();\n }\n }\n\n container.addEventListener('keydown', trapFocus);\n return function () {\n container.removeEventListener('keydown', trapFocus);\n };\n }, [container]);\n}","function _extends() { _extends = Object.assign || 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); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\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.\"); }\n\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); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport React from 'react';\nimport { createPortal } from 'react-dom';\nimport { DocSearchButton } from './DocSearchButton';\nimport { DocSearchModal } from './DocSearchModal';\nimport { useDocSearchKeyboardEvents } from './useDocSearchKeyboardEvents';\nexport function DocSearch(props) {\n var _props$translations, _props$translations2;\n\n var searchButtonRef = React.useRef(null);\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n isOpen = _React$useState2[0],\n setIsOpen = _React$useState2[1];\n\n var _React$useState3 = React.useState((props === null || props === void 0 ? void 0 : props.initialQuery) || undefined),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n initialQuery = _React$useState4[0],\n setInitialQuery = _React$useState4[1];\n\n var onOpen = React.useCallback(function () {\n setIsOpen(true);\n }, [setIsOpen]);\n var onClose = React.useCallback(function () {\n setIsOpen(false);\n }, [setIsOpen]);\n var onInput = React.useCallback(function (event) {\n setIsOpen(true);\n setInitialQuery(event.key);\n }, [setIsOpen, setInitialQuery]);\n useDocSearchKeyboardEvents({\n isOpen: isOpen,\n onOpen: onOpen,\n onClose: onClose,\n onInput: onInput,\n searchButtonRef: searchButtonRef\n });\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DocSearchButton, {\n ref: searchButtonRef,\n translations: props === null || props === void 0 || (_props$translations = props.translations) === null || _props$translations === void 0 ? void 0 : _props$translations.button,\n onClick: onOpen\n }), isOpen && createPortal( /*#__PURE__*/React.createElement(DocSearchModal, _extends({}, props, {\n initialScrollY: window.scrollY,\n initialQuery: initialQuery,\n translations: props === null || props === void 0 || (_props$translations2 = props.translations) === null || _props$translations2 === void 0 ? void 0 : _props$translations2.modal,\n onClose: onClose\n })), document.body));\n}","import React from 'react';\n\nfunction isEditingContent(event) {\n var element = event.target;\n var tagName = element.tagName;\n return element.isContentEditable || tagName === 'INPUT' || tagName === 'SELECT' || tagName === 'TEXTAREA';\n}\n\nexport function useDocSearchKeyboardEvents(_ref) {\n var isOpen = _ref.isOpen,\n onOpen = _ref.onOpen,\n onClose = _ref.onClose,\n onInput = _ref.onInput,\n searchButtonRef = _ref.searchButtonRef;\n React.useEffect(function () {\n function onKeyDown(event) {\n var _event$key;\n\n function open() {\n // We check that no other DocSearch modal is showing before opening\n // another one.\n if (!document.body.classList.contains('DocSearch--active')) {\n onOpen();\n }\n }\n\n if (event.keyCode === 27 && isOpen || // The `Cmd+K` shortcut both opens and closes the modal.\n // We need to check for `event.key` because it can be `undefined` with\n // Chrome's autofill feature.\n // See https://github.com/paperjs/paper.js/issues/1398\n ((_event$key = event.key) === null || _event$key === void 0 ? void 0 : _event$key.toLowerCase()) === 'k' && (event.metaKey || event.ctrlKey) || // The `/` shortcut opens but doesn't close the modal because it's\n // a character.\n !isEditingContent(event) && event.key === '/' && !isOpen) {\n event.preventDefault();\n\n if (isOpen) {\n onClose();\n } else if (!document.body.classList.contains('DocSearch--active')) {\n open();\n }\n }\n\n if (searchButtonRef && searchButtonRef.current === document.activeElement && onInput) {\n if (/[a-zA-Z0-9]/.test(String.fromCharCode(event.keyCode))) {\n onInput(event);\n }\n }\n }\n\n window.addEventListener('keydown', onKeyDown);\n return function () {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [isOpen, onOpen, onClose, onInput, searchButtonRef]);\n}","import type { DocSearchProps as DocSearchComponentProps } from '@docsearch/react';\nimport { DocSearch, version } from '@docsearch/react';\nimport React, { render } from 'preact/compat';\n\nfunction getHTMLElement(\n value: HTMLElement | string,\n environment: DocSearchProps['environment'] = window\n): HTMLElement {\n if (typeof value === 'string') {\n return environment.document.querySelector(value)!;\n }\n\n return value;\n}\n\ninterface DocSearchProps extends DocSearchComponentProps {\n container: HTMLElement | string;\n environment?: typeof window;\n}\n\nexport function docsearch(props: DocSearchProps) {\n render(\n {\n searchClient.addAlgoliaAgent('docsearch.js', version);\n\n return props.transformSearchClient\n ? props.transformSearchClient(searchClient)\n : searchClient;\n }}\n />,\n getHTMLElement(props.container, props.environment)\n );\n}\n"],"names":["EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","currentIndex","currentComponent","prevRaf","currentHook","afterPaintEffects","oldBeforeDiff","options","oldBeforeRender","oldAfterDiff","diffed","oldCommit","oldBeforeUnmount","unmount","getHookState","index","type","hooks","__","__h","length","push","useState","initialState","useReducer","invokeOrReturn","reducer","init","hookState","_reducer","n","nextValue","action","setState","useEffect","callback","args","state","argsChanged","useLayoutEffect","useMemo","factory","flushAfterPaintEffects","forEach","t","component","invokeCleanup","invokeEffect","e","vnode","c","requestAnimationFrame","raf","done","clearTimeout","timeout","HAS_RAF","cancelAnimationFrame","setTimeout","commitQueue","some","filter","cb","hook","comp","oldArgs","newArgs","arg","f","assign","obj","props","i","shallowDiffers","a","b","initialValue","current","ref","createHandle","concat","context","provider","sub","value","formatter","useDebugValue","ControlKeyIcon","React","createElement","width","height","className","d","strokeWidth","stroke","fill","strokeLinecap","SearchIcon","viewBox","fillRule","strokeLinejoin","_excluded","_extends","Object","target","arguments","source","key","prototype","hasOwnProperty","call","apply","this","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_i","Symbol","iterator","_s","_e","_arr","_n","_d","next","err","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","toString","slice","constructor","name","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","DocSearchButton","forwardRef","_ref","_ref$translations","translations","_translations$buttonT","buttonText","_translations$buttonA","buttonAriaLabel","_useState2","setKey","navigator","platform","Fragment","DocSearchButtonKey","reactsToKey","_ref2","children","_useState4","isKeyDown","setIsKeyDown","window","addEventListener","handleKeyDown","handleKeyUp","removeEventListener","debounce","fn","time","timerId","undefined","_len","_key","_x","_r","return","_typeof","decycle","seen","Set","process","env","NODE_ENV","has","newSeen","add","map","x","fromEntries","entries","flatten","values","reduce","autocompleteId","getItemsCount","collections","sum","collection","items","invariant","condition","message","Error","isPrimitive","isEqual","first","second","_Object$keys","noop","userAgents","segment","version","warnCache","createClickedEvent","item","__autocomplete_indexName","positions","findIndex","objectID","queryID","__autocomplete_queryID","algoliaSource","_excluded2","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","ownKeys","object","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","input","hint","prim","toPrimitive","res","String","Number","_toPrimitive","_toPropertyKey","configurable","writable","chunk","chunkSize","chunks","objectIDs","mapToInsightsParamsApi","params","param","createSearchInsightsApi","searchInsights","_split$map2","major","minor","canSendHeaders","split","sendToInsights","method","payloads","_items$0$__autocomple","__autocomplete_algoliaCredentials","headers","appId","apiKey","setUserToken","userToken","clickedObjectIDsAfterSearch","clickedObjectIDs","_len2","_key2","clickedFilters","_len3","_key3","convertedObjectIDsAfterSearch","_len4","_key4","convertedObjectIDs","_len5","_key5","convertedFilters","_len6","_key6","viewedObjectIDs","_len7","_key7","acc","_ref3","_ref4","payload","_ref5","viewedFilters","_len8","_key8","createViewedEvents","itemsByIndexName","_acc$current$__autoco","indexName","isAlgoliaInsightsHit","hit","ALGOLIA_INSIGHTS_SRC","sendViewedObjectIDs","onItemsChange","insights","insightsEvents","event","eventName","createAlgoliaInsightsPlugin","_getOptions","_ref8","onSelect","_ref9","onActive","getOptions","providedInsightsClient","insightsClient","onSelectEvent","onActiveEvent","safelyRunOnBrowser","pointer","AlgoliaAnalyticsObject","queue","environment","errorMessage","script","document","async","src","onerror","console","error","body","appendChild","cause","loadInsights","previousItems","debouncedOnStateChange","isOpen","subscribe","setContext","algoliaInsightsPlugin","__algoliaSearchParameters","clickAnalytics","_ref6","onStateChange","_ref7","__autocomplete_pluginOptions","checkOptions","sanitizedMessage","trim","warn","debug","createInternalCancelablePromise","promise","then","onfulfilled","onrejected","createCallback","catch","finally","onfinally","onCancelList","cancel","isCanceled","callbacks","cancelable","onResult","fallback","getNextActiveItemId","moveAmount","baseIndex","itemCount","defaultActiveItemId","numericIndex","getActiveItem","collectionIndex","collectionsCount","activeItemId","getCollectionFromActiveItemId","isOffsetFound","counter","previousItemsOffset","currentCollection","getRelativeActiveItemId","itemInputValue","getItemInputValue","itemUrl","getItemUrl","regex","createStore","onStoreStateChange","list","getState","dispatch","prevState","pendingRequests","cancelablePromise","cancelAll","isEmpty","getDefaultProps","pluginSubscribers","_props$id","plugins","openOnFocus","placeholder","autoFocus","stallThreshold","shouldPanelOpen","reshape","sources","id","query","completion","status","_props$onStateChange","_x$onStateChange","onSubmit","_props$onSubmit","_x$onSubmit","onReset","_props$onReset","_x$onReset","getSources","Promise","all","plugin","Boolean","seenSourceIds","resolve","JSON","stringify","maybeSource","sourceId","includes","defaultSource","setIsOpen","onResolve","__default","normalizedSource","getNormalizedSources","nested","_x$onSelect","_x$onActive","_x$onResolve","navigate","location","navigateNewTab","windowReference","open","focus","navigateNewWindow","isDescription","execute","preResolve","itemsOrDescription","description","contextParameters","requesterId","_state$context$key","requests","queries","transformResponse","searchClient","container","find","_container$items","request","maybeDescription","responses","postResolve","store","rawResults","matches","response","results","transform","hits","result","facetHits","_facetHits","facetHit","label","count","_highlightResult","highlighted","every","basePromiseId","latestResolvedId","latestResolvedValue","lastStalledId","runConcurrentSafePromise","currentPromiseId","onInput","_ref$nextState","nextState","refresh","setters","setCollections","setQuery","setActiveItemId","setStatus","_nextState$isOpen","_request","getItems","originalSourcesBySourceId","sourcesBySourceId","_nextState$isOpen2","isPanelOpen","highlightedItem","_excluded3","_excluded4","_excluded5","_excluded6","_excluded7","getPropGetters","getAutocompleteId","instanceId","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","sourceIndex","htmlFor","getInputProps","_props$environment$na","onFocus","_ref2$maxLength","maxLength","activeItem","shouldFallbackKeyHint","userAgent","match","isSamsung","enterKeyHint","autoComplete","autoCorrect","autoCapitalize","spellCheck","onChange","currentTarget","onKeyDown","triggerScrollIntoView","nodeItem","getElementById","scrollIntoViewIfNeeded","scrollIntoView","triggerOnActive","nextActiveItemId","metaKey","ctrlKey","shiftKey","altKey","_onKeyDown","onBlur","onClick","getPanelProps","onMouseLeave","getListProps","getItemProps","__autocomplete_id","onMouseMove","_item","_source","getMetadata","_","_options$__autocomple","_options$__autocomple2","_options$__autocomple3","optionsKey","__autocomplete_metadata","extraOptions","ua","getCompletion","_getActiveItem","stateReducer","_nextState","createAutocomplete","subscribers","rawValue","baseItemId","getAutocompleteSetters","propGetters","Event","insightsParams","_plugin$subscribe","_environment$navigato","_environment$navigato2","metadata","metadataContainer","headRef","querySelector","content","injectMetadata","AlgoliaLogo","_translations$searchB","searchByText","href","hostname","rel","xmlns","y","rx","ry","CommandIcon","ariaLabel","Footer","_translations$selectT","selectText","_translations$selectK","selectKeyAriaLabel","_translations$navigat","navigateText","_translations$navigat2","navigateUpKeyAriaLabel","_translations$navigat3","navigateDownKeyAriaLabel","_translations$closeTe","closeText","_translations$closeKe","closeKeyAriaLabel","Hit","url","LoadingIcon","strokeOpacity","cx","cy","r","attributeName","to","dur","repeatCount","RecentIcon","ResetIcon","SelectIcon","LvlIcon","SourceIcon","ContentIcon","AnchorIcon","StarIcon","ErrorIcon","NoResultsIcon","ErrorScreen","_translations$titleTe","titleText","_translations$helpTex","helpText","NoResultsScreen","_translations$noResul","noResultsText","_translations$suggest","suggestedQueryText","_translations$reportM","reportMissingResultsText","_translations$reportM2","reportMissingResultsLinkText","searchSuggestions","search","toLowerCase","inputRef","getMissingResultsUrl","getPropertyByPath","path","prev","Snippet","attribute","_ref$tagName","tagName","dangerouslySetInnerHTML","__html","Results","title","Result","join","renderIcon","renderAction","onItemClick","hitComponent","_React$useState2","isDeleting","setIsDeleting","_React$useState4","isFavoriting","setIsFavoriting","useRef","__docsearch_parent","onTransitionEnd","hierarchy","runDeleteTransition","runFavoriteTransition","groupBy","predicate","maxResultsPerGroup","identity","isModifierEvent","button","regexHighlightTags","regexHasHighlightTags","RegExp","removeHighlightTags","_internalDocSearchHit","_hit$_highlightResult","internalDocSearchHit","lvl0","replace","ResultsScreen","_collection$items","resultsFooterComponent","StartScreen","_translations$recentS","recentSearchesTitle","_translations$noRecen","noRecentSearchesText","_translations$saveRec","saveRecentSearchButtonTitle","_translations$removeR","removeRecentSearchButtonTitle","_translations$favorit","favoriteSearchesTitle","_translations$removeF","removeFavoriteSearchButtonTitle","hasCollections","disableUserPersonalization","stopPropagation","favoriteSearches","recentSearches","remove","ScreenState","memo","errorScreen","noResultsScreen","startScreen","_prevProps","nextProps","SearchBox","_translations$resetBu","resetButtonTitle","_translations$resetBu2","resetButtonAriaLabel","_translations$cancelB","cancelButtonText","_translations$cancelB2","cancelButtonAriaLabel","_translations$searchI","searchInputLabel","isFromSelection","select","hidden","onClose","createStorage","localStorage","setItem","removeItem","isLocalStorageSupported","getItem","parse","createStoredSearches","_ref$limit","limit","storage","_snippetResult","isQueryAlreadySaved","splice","unshift","getAll","createBrowserLocalStorageCache","namespaceKey","getStorage","getNamespace","setNamespace","namespace","removeOutdatedCacheItems","timeToLive","filteredNamespaceWithoutOldFormattedCacheItems","timestamp","filteredNamespaceWithoutExpiredItems","cacheItem","currentTimestamp","Date","getTime","get","defaultValue","events","miss","keyAsString","exists","set","delete","clear","createFallbackableCache","caches","shift","createInMemoryCache","serializable","cache","shuffle","array","Math","floor","random","addMethods","base","methods","encode","format","encodeURIComponent","AuthMode","WithinQueryParameters","WithinHeaders","createMappedRequestOptions","requestOptions","data","queryParameters","cacheable","CallEnum","Read","Write","Any","HostStatusEnum","createStatefulHost","host","lastUpdate","now","createStatelessHost","protocol","accept","MethodEnum","createRetryableOptions","hostsCache","statelessHosts","statelessHost","statefulHosts","hostsUp","isStatefulHostUp","hostsTimeouted","isStatefulHostTimeouted","hostsAvailable","getTimeout","timeoutsCount","baseTimeout","retryableRequest","transporter","stackTrace","serializeData","serializedHeaders","header","serializeHeaders","dataQueryParameters","retry","hosts","pop","transporterStackTrace","stackTraceWithoutCredentials","serializeUrl","connectTimeout","timeouts","connect","responseTimeout","pushToStackTrace","stackFrame","triesLeft","decisions","onSuccess","createDeserializationError","deserializeSuccess","onRetry","isTimedOut","logger","info","stackFrameWithoutCredentials","onFail","createApiError","deserializeFailure","requester","send","outcomes","isNetworkError","isRetryable","retryDecision","reverse","createUserAgent","addedUserAgent","queryParametersAsString","serializeQueryParameters","charAt","substr","parameters","modifiedHeaders","createSearchClient","auth","authMode","credentials","createAuth","requestsCache","responsesCache","read","mappedRequestOptions","createRetryableRequest","reject","write","createTransporter","addAlgoliaAgent","clearCache","customRequest","initIndex","searchIndex","multipleQueries","multipleSearchForFacetValues","facetName","facetQuery","searchForFacetValues","findAnswers","queryLanguages","LogLevelEnum","algoliasearch","logLevel","commonOptions","baseRequester","XMLHttpRequest","setRequestHeader","createTimeout","abort","onreadystatechange","readyState","OPENED","responseText","onload","DocSearchModal","_ref$placeholder","searchParameters","_ref$onClose","_ref$transformItems","transformItems","_ref$hitComponent","_ref$resultsFooterCom","_ref$initialScrollY","initialScrollY","_ref$transformSearchC","transformSearchClient","_ref$disableUserPerso","_ref$initialQuery","initialQuery","initialQueryFromProp","_ref$insights","footerTranslations","footer","searchBoxTranslations","searchBox","screenStateTranslations","containerRef","modalRef","formElementRef","dropdownRef","snippetLength","initialQueryFromSelection","getSelection","client","useSearchClient","saveRecentSearch","useCallback","sendItemClickEvent","insightsItem","insightsClickParams","autocomplete","sourcesState","insightsActive","attributesToRetrieve","attributesToSnippet","snippetEllipsisText","highlightPreTag","highlightPostTag","hitsPerPage","firstResult","nbHits","lvl1","groupedHits","potentialParent","siblingItem","flat","_getEnvironmentProps","useTouchEvents","focusableElements","querySelectorAll","firstElement","lastElement","trapFocus","useTrapFocus","classList","_window$scrollTo","_window","scrollTo","matchMedia","scrollTop","setFullViewportHeight","vh","innerHeight","style","setProperty","tabIndex","DocSearch","_props$translations","_props$translations2","searchButtonRef","setInitialQuery","onOpen","_event$key","keyCode","element","isContentEditable","isEditingContent","fromCharCode","useDocSearchKeyboardEvents","createPortal","scrollY","modal","docsearch","render","getHTMLElement"],"mappings":"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"}