@docsearch/js 3.4.0 → 3.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/umd/index.js +2 -2
- package/dist/umd/index.js.map +1 -1
- package/package.json +2 -2
package/dist/umd/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"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/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/noop.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/userAgents.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/version.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/utils/mapToAlgoliaResponse.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/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/version.js","../../../docsearch-react/dist/esm/DocSearchModal.js","../../../docsearch-react/dist/esm/useSearchClient.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;r<arguments.length;r++)u.push(o[r]);if(null!=u&&(f.children=u),\"function\"==typeof n&&null!=n.defaultProps)for(r in n.defaultProps)void 0===f[r]&&(f[r]=n.defaultProps[r]);return v(n,f,i,t,null)}function v(l,u,i,t,r){var o={type:l,props:u,key:i,ref:t,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++n.__v:r};return null!=n.vnode&&n.vnode(o),o}function h(){return{current:null}}function y(n){return n.children}function p(n,l){this.props=n,this.context=l}function d(n,l){if(null==l)return n.__?d(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?d(n):null}function _(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return _(n)}}function k(l){(!l.__d&&(l.__d=!0)&&u.push(l)&&!m.__r++||t!==n.debounceRendering)&&((t=n.debounceRendering)||i)(m)}function m(){for(var n;m.__r=u.length;)n=u.sort(function(n,l){return n.__v.__b-l.__v.__b}),u=[],n.some(function(n){var l,u,i,t,r,o;n.__d&&(r=(t=(l=n).__v).__e,(o=l.__P)&&(u=[],(i=c({},t)).__v=t.__v+1,T(o,t,i,l.__n,void 0!==o.ownerSVGElement,null!=t.__h?[r]:null,u,null==r?d(t):r,t.__h),j(u,t),t.__e!=r&&_(t)))})}function b(n,l,u,i,t,r,e,c,s,a){var h,p,_,k,m,b,w,A=i&&i.__k||f,P=A.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(k=u.__k[h]=null==(k=l[h])||\"boolean\"==typeof k?null:\"string\"==typeof k||\"number\"==typeof k?v(null,k,null,null,k):Array.isArray(k)?v(y,{children:k},null,null,null):k.__b>0?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;p<P;p++){if((_=A[p])&&k.key==_.key&&k.type===_.type){A[p]=void 0;break}_=null}T(n,k,_=_||o,t,r,e,c,s,a),m=k.__e,(p=k.ref)&&_.ref!=p&&(w||(w=[]),_.ref&&w.push(_.ref,null,k),w.push(p,k.__c||m,k)),null!=m?(null==b&&(b=m),\"function\"==typeof k.type&&null!=k.__k&&k.__k===_.__k?k.__d=s=g(k,s,n):s=x(n,k,_,A,m,s),a||\"option\"!==u.type?\"function\"==typeof u.type&&(u.__d=s):n.value=\"\"):s&&_.__e==s&&s.parentNode!=n&&(s=d(_))}for(u.__e=b,h=P;h--;)null!=A[h]&&(\"function\"==typeof u.type&&null!=A[h].__e&&A[h].__e==u.__d&&(u.__d=d(i,h+1)),L(A[h],A[h]));if(w)for(h=0;h<w.length;h++)I(w[h],w[++h],w[++h])}function g(n,l,u){var i,t;for(i=0;i<n.__k.length;i++)(t=n.__k[i])&&(t.__=n,l=\"function\"==typeof t.type?g(t,l,u):x(u,t,t,n.__k,t.__e,l));return l}function w(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(Array.isArray(n)?n.some(function(n){w(n,l)}):l.push(n)),l}function x(n,l,u,i,t,r){var o,f,e;if(void 0!==l.__d)o=l.__d,l.__d=void 0;else if(null==u||t!=r||null==t.parentNode)n:if(null==r||r.parentNode!==n)n.appendChild(t),o=null;else{for(f=r,e=0;(f=f.nextSibling)&&e<i.length;e+=2)if(f==t)break n;n.insertBefore(t,r),o=r}return void 0!==o?o:t.nextSibling}function A(n,l,u,i,t){var r;for(r in u)\"children\"===r||\"key\"===r||r in l||C(n,r,null,u[r],i);for(r in l)t&&\"function\"!=typeof l[r]||\"children\"===r||\"key\"===r||\"value\"===r||\"checked\"===r||u[r]===l[r]||C(n,r,l[r],u[r],i)}function P(n,l,u){\"-\"===l[0]?n.setProperty(l,u):n[l]=null==u?\"\":\"number\"!=typeof u||e.test(l)?u:u+\"px\"}function C(n,l,u,i,t){var r;n:if(\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof i&&(n.style.cssText=i=\"\"),i)for(l in i)u&&l in u||P(n.style,l,\"\");if(u)for(l in u)i&&u[l]===i[l]||P(n.style,l,u[l])}else if(\"o\"===l[0]&&\"n\"===l[1])r=l!==(l=l.replace(/Capture$/,\"\")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?i||n.addEventListener(l,r?H:$,r):n.removeEventListener(l,r?H:$,r);else if(\"dangerouslySetInnerHTML\"!==l){if(t)l=l.replace(/xlink[H:h]/,\"h\").replace(/sName$/,\"s\");else if(\"href\"!==l&&\"list\"!==l&&\"form\"!==l&&\"download\"!==l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null!=u&&(!1!==u||\"a\"===l[0]&&\"r\"===l[1])?n.setAttribute(l,u):n.removeAttribute(l))}}function $(l){this.l[l.type+!1](n.event?n.event(l):l)}function H(l){this.l[l.type+!0](n.event?n.event(l):l)}function T(l,u,i,t,r,o,f,e,s){var a,v,h,d,_,k,m,g,w,x,A,P=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(s=i.__h,e=u.__e=i.__e,u.__h=null,o=[e]),(a=n.__b)&&a(u);try{n:if(\"function\"==typeof P){if(g=u.props,w=(a=P.contextType)&&t[a.__c],x=a?w?w.props.value:a.__:t,i.__c?m=(v=u.__c=i.__c).__=v.__E:(\"prototype\"in P&&P.prototype.render?u.__c=v=new P(g,x):(u.__c=v=new p(g,x),v.constructor=P,v.render=M),w&&w.sub(v),v.props=g,v.state||(v.state={}),v.context=x,v.__n=t,h=v.__d=!0,v.__h=[]),null==v.__s&&(v.__s=v.state),null!=P.getDerivedStateFromProps&&(v.__s==v.state&&(v.__s=c({},v.__s)),c(v.__s,P.getDerivedStateFromProps(g,v.__s))),d=v.props,_=v.state,h)null==P.getDerivedStateFromProps&&null!=v.componentWillMount&&v.componentWillMount(),null!=v.componentDidMount&&v.__h.push(v.componentDidMount);else{if(null==P.getDerivedStateFromProps&&g!==d&&null!=v.componentWillReceiveProps&&v.componentWillReceiveProps(g,x),!v.__e&&null!=v.shouldComponentUpdate&&!1===v.shouldComponentUpdate(g,v.__s,x)||u.__v===i.__v){v.props=g,v.state=v.__s,u.__v!==i.__v&&(v.__d=!1),v.__v=u,u.__e=i.__e,u.__k=i.__k,v.__h.length&&f.push(v);break n}null!=v.componentWillUpdate&&v.componentWillUpdate(g,v.__s,x),null!=v.componentDidUpdate&&v.__h.push(function(){v.componentDidUpdate(d,_,k)})}v.context=x,v.props=g,v.state=v.__s,(a=n.__r)&&a(u),v.__d=!1,v.__v=u,v.__P=l,a=v.render(v.props,v.state,v.context),v.state=v.__s,null!=v.getChildContext&&(t=c(c({},t),v.getChildContext())),h||null==v.getSnapshotBeforeUpdate||(k=v.getSnapshotBeforeUpdate(d,_)),A=null!=a&&a.type===y&&null==a.key?a.props.children:a,b(l,Array.isArray(A)?A:[A],u,i,t,r,o,f,e,s),v.base=u.__e,u.__h=null,v.__h.length&&f.push(v),m&&(v.__E=v.__=null),v.__e=!1}else null==o&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=z(i.__e,u,i,t,r,o,f,s);(a=n.diffed)&&a(u)}catch(l){u.__v=null,(s||null!=o)&&(u.__e=e,u.__h=!!s,o[o.indexOf(e)]=null),n.__e(l,u,i)}}function j(l,u){n.__c&&n.__c(u,l),l.some(function(u){try{l=u.__h,u.__h=[],l.some(function(n){n.call(u)})}catch(l){n.__e(l,u.__v)}})}function z(n,l,u,i,t,r,e,c){var a,v,h,y,p=u.props,d=l.props,_=l.type,k=0;if(\"svg\"===_&&(t=!0),null!=r)for(;k<r.length;k++)if((a=r[k])&&(a===n||(_?a.localName==_:3==a.nodeType))){n=a,r[k]=null;break}if(null==n){if(null===_)return document.createTextNode(d);n=t?document.createElementNS(\"http://www.w3.org/2000/svg\",_):document.createElement(_,d.is&&d),r=null,c=!1}if(null===_)p===d||c&&n.data===d||(n.data=d);else{if(r=r&&f.slice.call(n.childNodes),v=(p=u.props||o).dangerouslySetInnerHTML,h=d.dangerouslySetInnerHTML,!c){if(null!=r)for(p={},y=0;y<n.attributes.length;y++)p[n.attributes[y].name]=n.attributes[y].value;(h||v)&&(h&&(v&&h.__html==v.__html||h.__html===n.innerHTML)||(n.innerHTML=h&&h.__html||\"\"))}if(A(n,d,p,t,c),h)l.__k=[];else if(k=l.props.children,b(n,Array.isArray(k)?k:[k],l,u,i,t&&\"foreignObject\"!==_,r,e,n.firstChild,c),null!=r)for(k=r.length;k--;)null!=r[k]&&s(r[k]);c||(\"value\"in d&&void 0!==(k=d.value)&&(k!==n.value||\"progress\"===_&&!k)&&C(n,\"value\",k,p.value,!1),\"checked\"in d&&void 0!==(k=d.checked)&&k!==n.checked&&C(n,\"checked\",k,p.checked,!1))}return n}function I(l,u,i){try{\"function\"==typeof l?l(u):l.current=u}catch(l){n.__e(l,i)}}function L(l,u,i){var t,r,o;if(n.unmount&&n.unmount(l),(t=l.ref)&&(t.current&&t.current!==l.__e||I(t,null,u)),i||\"function\"==typeof l.type||(i=null!=(r=l.__e)),l.__e=l.__d=void 0,null!=(t=l.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(l){n.__e(l,u)}t.base=t.__P=null}if(t=l.__k)for(o=0;o<t.length;o++)t[o]&&L(t[o],u,i);null!=r&&s(r)}function M(n,l,u){return this.constructor(n,u)}function N(l,u,i){var t,r,e;n.__&&n.__(l,u),r=(t=\"function\"==typeof i)?null:i&&i.__k||u.__k,e=[],T(u,l=(!t&&i||u).__k=a(y,null,[l]),r||o,o,void 0!==u.ownerSVGElement,!t&&i?[i]:r?null:u.firstChild?f.slice.call(u.childNodes):null,e,!t&&i?i:r?r.__e:u.firstChild,t),j(e,l)}function O(n,l){N(n,l,O)}function S(n,l,u){var i,t,r,o=arguments,f=c({},n.props);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;r<arguments.length;r++)u.push(o[r]);return null!=u&&(f.children=u),v(n.type,f,i||n.key,t||n.ref,null)}function q(n,l){var u={__c:l=\"__cC\"+r++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(k)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n={__e:function(n,l){for(var u,i,t;l=l.__;)if((u=l.__c)&&!u.__)try{if((i=u.constructor)&&null!=i.getDerivedStateFromError&&(u.setState(i.getDerivedStateFromError(n)),t=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),t=u.__d),t)return u.__E=u}catch(l){n=l}throw n},__v:0},l=function(n){return null!=n&&void 0===n.constructor},p.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=c({},this.state),\"function\"==typeof n&&(n=n(c({},u),this.props)),n&&c(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),k(this))},p.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),k(this))},p.prototype.render=y,u=[],i=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,m.__r=0,r=0;export{N as render,O as hydrate,a as createElement,a as h,y as Fragment,h as createRef,l as isValidElement,p as Component,S as cloneElement,q as createContext,w as toChildArray,n as options};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,u,r,o=0,i=[],c=n.__b,f=n.__r,e=n.diffed,a=n.__c,v=n.unmount;function m(t,r){n.__h&&n.__h(u,t,o||r),o=0;var i=u.__H||(u.__H={__:[],__h:[]});return t>=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]<e[0])break;n.u=e=e[2]}};function M(n){return this.getChildContext=function(){return n.context},n.children}function T(n){var t=this,e=n.i;t.componentWillUnmount=function(){d(null,t.l),t.l=null,t.i=null},t.i&&t.i!==e&&t.componentWillUnmount(),n.__v?(t.l||(t.i=e,t.l={nodeType:1,parentNode:e,childNodes:[],appendChild:function(n){this.childNodes.push(n),t.i.appendChild(n)},insertBefore:function(n,e){this.childNodes.push(n),t.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>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 }, /*#__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(\"kbd\", {\n className: \"DocSearch-Button-Key\"\n }, key === ACTION_KEY_DEFAULT ? /*#__PURE__*/React.createElement(ControlKeyIcon, null) : key), /*#__PURE__*/React.createElement(\"kbd\", {\n className: \"DocSearch-Button-Key\"\n }, \"K\"))));\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\n return state.collections.reduce(function (sum, collection) {\n return sum + collection.items.length;\n }, 0);\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.8.2';","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\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}\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}\n\ncreateCancelablePromise.resolve = function (value) {\n return cancelable(Promise.resolve(value));\n};\n\ncreateCancelablePromise.reject = function (reason) {\n return cancelable(Promise.reject(reason));\n};\n\nexport function cancelable(promise) {\n return createInternalCancelablePromise(promise, {\n isCanceled: false,\n onCancelList: []\n });\n}\n\nfunction createCallback(onResult, state, fallback) {\n if (!onResult) {\n return fallback;\n }\n\n return function callback(arg) {\n if (state.isCanceled) {\n return arg;\n }\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\n if (moveAmount < 0 && (baseIndex === null || defaultActiveItemId !== null && baseIndex === 0)) {\n return itemCount + moveAmount;\n }\n\n var numericIndex = (baseIndex === null ? -1 : baseIndex) + moveAmount;\n\n if (numericIndex <= -1 || numericIndex >= itemCount) {\n return defaultActiveItemId === null ? null : 0;\n }\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; }\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 _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\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 // 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\n if (seenSourceIds.includes(source.sourceId)) {\n throw new Error(\"[Autocomplete] The `sourceId` \".concat(JSON.stringify(source.sourceId), \" is not unique.\"));\n }\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\n var normalizedSource = _objectSpread(_objectSpread({}, defaultSource), source);\n\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 }, []); // Based on the accumulated counts, we can infer the index of the suggestion.\n\n var collectionIndex = accumulatedCollectionsCount.reduce(function (acc, current) {\n if (current <= state.activeItemId) {\n return acc + 1;\n }\n\n return acc;\n }, 0);\n return state.collections[collectionIndex];\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 */\n\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\n while (isOffsetFound === false) {\n var currentCollection = state.collections[counter];\n\n if (currentCollection === collection) {\n isOffsetFound = true;\n break;\n }\n\n previousItemsOffset += currentCollection.items.length;\n counter++;\n }\n\n return state.activeItemId - previousItemsOffset;\n}\n\nexport function getActiveItem(state) {\n var collection = getCollectionFromActiveItemId(state);\n\n if (!collection) {\n return null;\n }\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[- ]/i;\nexport function isSamsung(userAgent) {\n return Boolean(userAgent && userAgent.match(regex));\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; }\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\nexport function mapToAlgoliaResponse(rawResults) {\n var results = rawResults.map(function (result) {\n var _hits;\n\n return _objectSpread(_objectSpread({}, result), {}, {\n hits: (_hits = result.hits) === null || _hits === void 0 ? void 0 : _hits.map(function (hit) {\n // Bring support for the Insights plugin.\n return _objectSpread(_objectSpread({}, hit), {}, {\n __autocomplete_indexName: result.index,\n __autocomplete_queryID: result.queryID\n });\n })\n });\n });\n return {\n results: results,\n hits: results.map(function (result) {\n return result.hits;\n }).filter(Boolean),\n facetHits: results.map(function (result) {\n var _facetHits;\n\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 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\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\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 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\nimport { flatten } from '@algolia/autocomplete-shared';\nexport function getAutocompleteSetters(_ref) {\n var store = _ref.store;\n\n var setActiveItemId = function setActiveItemId(value) {\n store.dispatch('setActiveItemId', value);\n };\n\n var setQuery = function setQuery(value) {\n store.dispatch('setQuery', value);\n };\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\n var setIsOpen = function setIsOpen(value) {\n store.dispatch('setIsOpen', value);\n };\n\n var setStatus = function setStatus(value) {\n store.dispatch('setStatus', value);\n };\n\n var setContext = function setContext(value) {\n store.dispatch('setContext', value);\n };\n\n return {\n setActiveItemId: setActiveItemId,\n setQuery: setQuery,\n setCollections: setCollections,\n setIsOpen: setIsOpen,\n setStatus: setStatus,\n setContext: setContext\n };\n}","function _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 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\nimport { getItemsCount, generateAutocompleteId, flatten } from '@algolia/autocomplete-shared';\nimport { getNormalizedSources } from './utils';\nexport function getDefaultProps(props, pluginSubscribers) {\n var _props$id;\n\n /* eslint-disable no-restricted-globals */\n var environment = typeof window !== 'undefined' ? window : {};\n /* eslint-enable no-restricted-globals */\n\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 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\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\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\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\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\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\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\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\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\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 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\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\n var _props$plugins$reduce = props.plugins.reduce(function (acc, plugin) {\n if (plugin.reshape) {\n return plugin.reshape(acc);\n }\n\n return acc;\n }, {\n sourcesBySourceId: originalSourcesBySourceId,\n state: state\n }),\n sourcesBySourceId = _props$plugins$reduce.sourcesBySourceId;\n\n var reshapeSources = props.reshape({\n sourcesBySourceId: sourcesBySourceId,\n sources: Object.values(sourcesBySourceId),\n state: state\n }); // We reconstruct the collections with the items modified by the `reshape` prop.\n\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); }\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 _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\nimport { decycle, flatten, invariant } from '@algolia/autocomplete-shared';\nimport { mapToAlgoliaResponse } from './utils';\n\nfunction isDescription(item) {\n return Boolean(item.execute);\n}\n\nfunction isRequesterDescription(description) {\n return Boolean(description === null || description === void 0 ? void 0 : description.execute);\n}\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\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\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\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\n if (container) {\n var _container$items;\n\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\n return acc;\n }, []);\n var values = packed.map(function (maybeDescription) {\n if (!isDescription(maybeDescription)) {\n return Promise.resolve(maybeDescription);\n }\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}","var _excluded = [\"event\", \"nextState\", \"props\", \"query\", \"refresh\", \"store\"];\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 { 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\n if (lastStalledId) {\n props.environment.clearTimeout(lastStalledId);\n }\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\n if (!query && props.openOnFocus === false) {\n var _nextState$isOpen;\n\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 })); // 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\n var _request = cancelable(runConcurrentSafePromise(collections).then(function () {\n return Promise.resolve();\n }));\n\n return store.pendingRequests.add(_request);\n }\n\n setStatus('loading');\n lastStalledId = props.environment.setTimeout(function () {\n setStatus('stalled');\n }, props.stallThreshold); // 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\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\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 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\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\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\n latestResolvedId = currentPromiseId;\n latestResolvedValue = x;\n return x;\n });\n };\n}","var _excluded = [\"event\", \"props\", \"refresh\", \"store\"];\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 { 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\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\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\n\n var triggerOnActive = function triggerOnActive() {\n var highlightedItem = getActiveItem(store.getState());\n\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\n\n event.preventDefault(); // When re-opening the panel, we need to split the logic to keep the actions\n // synchronized as `onInput` returns a promise.\n\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(); // 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\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); // 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\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Tab') {\n store.dispatch('blur', null); // 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\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\n return;\n } // This prevents the `onSubmit` event to be sent because an item is\n // highlighted.\n\n\n event.preventDefault();\n\n var _ref2 = getActiveItem(store.getState()),\n item = _ref2.item,\n itemInputValue = _ref2.itemInputValue,\n itemUrl = _ref2.itemUrl,\n source = _ref2.source;\n\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) {// 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\n onInput(_objectSpread({\n event: event,\n nextState: {\n isOpen: false\n },\n props: props,\n query: itemInputValue,\n refresh: refresh,\n store: store\n }, setters)).then(function () {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n });\n }\n }\n}","var _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\"];\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 { 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\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\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\n if (!isAutocompleteInteraction || event.target === inputElement) {\n return;\n } // @TODO: support cases where there are multiple Autocomplete instances.\n // Right now, a second instance makes this computation return false.\n\n\n var isTargetWithinAutocomplete = [formElement, panelElement].some(function (contextNode) {\n return isOrContainsNode(contextNode, event.target);\n });\n\n if (isTargetWithinAutocomplete === false) {\n store.dispatch('blur', null); // 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\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\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\n inputElement.blur();\n }\n }, rest);\n };\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\n var getFormProps = function getFormProps(providedProps) {\n var inputElement = providedProps.inputElement,\n rest = _objectWithoutProperties(providedProps, _excluded3);\n\n return _objectSpread({\n action: '',\n noValidate: true,\n role: 'search',\n onSubmit: function onSubmit(event) {\n var _providedProps$inputE;\n\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\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\n var getInputProps = function getInputProps(providedProps) {\n var _props$environment$na;\n\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\n store.dispatch('focus', null);\n }\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\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\n var getAutocompleteId = function getAutocompleteId(instanceId, sourceId) {\n return typeof sourceId !== 'undefined' ? \"\".concat(instanceId, \"-\").concat(sourceId) : instanceId;\n };\n\n var getLabelProps = function getLabelProps(providedProps) {\n var _ref3 = providedProps || {},\n sourceIndex = _ref3.sourceIndex,\n rest = _objectWithoutProperties(_ref3, _excluded5);\n\n return _objectSpread({\n htmlFor: \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-input\"),\n id: \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-label\")\n }, rest);\n };\n\n var getListProps = function getListProps(providedProps) {\n var _ref4 = providedProps || {},\n sourceIndex = _ref4.sourceIndex,\n rest = _objectWithoutProperties(_ref4, _excluded6);\n\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\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\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\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\n store.dispatch('mousemove', item.__autocomplete_id);\n var activeItem = getActiveItem(store.getState());\n\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\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 }); // 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\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\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 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\nimport { userAgents } from '@algolia/autocomplete-shared';\nexport function getMetadata(_ref) {\n var _, _options$__autocomple, _options$__autocomple2, _options$__autocomple3;\n\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\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\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\n var state = _ref.state;\n\n if (state.isOpen === false || state.activeItemId === null) {\n return null;\n }\n\n return ((_getActiveItem = getActiveItem(state)) === null || _getActiveItem === void 0 ? void 0 : _getActiveItem.itemInputValue) || null;\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; }\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\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\n case 'setQuery':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n query: action.payload,\n completion: null\n });\n }\n\n case 'setCollections':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n collections: action.payload\n });\n }\n\n case 'setIsOpen':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n isOpen: action.payload\n });\n }\n\n case 'setStatus':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n status: action.payload\n });\n }\n\n case 'setContext':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n context: _objectSpread(_objectSpread({}, state.context), action.payload)\n });\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\n return _objectSpread(_objectSpread({}, nextState), {}, {\n completion: getCompletion({\n state: nextState\n })\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\n return _objectSpread(_objectSpread({}, _nextState), {}, {\n completion: getCompletion({\n state: _nextState\n })\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\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n query: '',\n status: 'idle',\n collections: []\n });\n }\n\n case 'submit':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n isOpen: false,\n status: 'idle'\n });\n }\n\n case 'reset':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: // 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 // 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\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\n case 'blur':\n {\n if (action.props.debug) {\n return state;\n }\n\n return _objectSpread(_objectSpread({}, state), {}, {\n isOpen: false,\n activeItemId: null\n });\n }\n\n case 'mousemove':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.payload\n });\n }\n\n case 'mouseleave':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.props.defaultActiveItemId\n });\n }\n\n default:\n invariant(false, \"The reducer action \".concat(JSON.stringify(action.type), \" is not supported.\"));\n return state;\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\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\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\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\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\n props.plugins.forEach(function (plugin) {\n var _plugin$subscribe;\n\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>|<\\/mark>)/g;\nvar regexHasHighlightTags = RegExp(regexHighlightTags.source);\nexport function removeHighlightTags(hit) {\n var _internalDocSearchHit, _internalDocSearchHit2, _internalDocSearchHit3, _hit$_highlightResult, _hit$_highlightResult2;\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 ? void 0 : (_internalDocSearchHit2 = _internalDocSearchHit._highlightResult) === null || _internalDocSearchHit2 === void 0 ? void 0 : (_internalDocSearchHit3 = _internalDocSearchHit2.hierarchy) === null || _internalDocSearchHit3 === void 0 ? void 0 : _internalDocSearchHit3.lvl0 : (_hit$_highlightResult = hit._highlightResult) === null || _hit$_highlightResult === void 0 ? void 0 : (_hit$_highlightResult2 = _hit$_highlightResult.hierarchy) === null || _hit$_highlightResult2 === void 0 ? void 0 : _hit$_highlightResult2.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\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(\"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 return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n return Promise.resolve()\r\n .then(() => {\r\n const keyAsString = JSON.stringify(key);\r\n const value = getNamespace()[keyAsString];\r\n return Promise.all([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)] = value;\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.8.5';\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.onSucess(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 onSucess: 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 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 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","export var version = '3.4.0';","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\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 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 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 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: '<mark>',\n highlightPostTag: '</mark>',\n hitsPerPage: 20\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 _results$ = results[0],\n hits = _results$.hits,\n nbHits = _results$.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 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 return _objectSpread(_objectSpread({}, item), {}, {\n __docsearch_parent: item.type !== 'lvl1' && groupedHits.find(function (siblingItem) {\n return siblingItem.type === 'lvl1' && siblingItem.hierarchy.lvl1 === item.hierarchy.lvl1;\n })\n });\n });\n }).flat();\n }\n };\n });\n });\n }\n });\n }, [indexName, searchParameters, maxResultsPerGroup, searchClient, onClose, recentSearches, favoriteSearches, saveRecentSearch, initialQuery, placeholder, navigator, transformItems, disableUserPersonalization]);\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 ? 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 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}","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 ? 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 ? 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<HTMLElement>(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 <DocSearch\n {...props}\n transformSearchClient={(searchClient) => {\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","ACTION_KEY_DEFAULT","DocSearchButton","forwardRef","_ref","_ref$translations","translations","_translations$buttonT","buttonText","_translations$buttonA","buttonAriaLabel","_useState2","setKey","navigator","platform","Fragment","flatten","values","reduce","autocompleteId","getItemsCount","collections","sum","collection","items","noop","userAgents","segment","version","createInternalCancelablePromise","promise","then","onfulfilled","onrejected","createCallback","catch","finally","onfinally","onCancelList","cancel","isCanceled","callbacks","cancelable","onResult","fallback","getNextActiveItemId","moveAmount","baseIndex","itemCount","defaultActiveItemId","numericIndex","ownKeys","object","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","configurable","writable","getActiveItem","collectionIndex","map","acc","collectionsCount","activeItemId","getCollectionFromActiveItemId","item","isOffsetFound","counter","previousItemsOffset","currentCollection","getRelativeActiveItemId","itemInputValue","getItemInputValue","itemUrl","getItemUrl","regex","createStore","onStoreStateChange","list","getState","dispatch","payload","prevState","pendingRequests","add","cancelablePromise","cancelAll","isEmpty","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","getDefaultProps","pluginSubscribers","_props$id","environment","window","plugins","debug","openOnFocus","placeholder","autoFocus","stallThreshold","shouldPanelOpen","reshape","_ref2","sources","id","query","completion","isOpen","status","onStateChange","params","_props$onStateChange","x","_x$onStateChange","onSubmit","_props$onSubmit","_x$onSubmit","onReset","_props$onReset","_x$onReset","getSources","Promise","all","plugin","Boolean","seenSourceIds","resolve","maybeSource","sourceId","includes","Error","JSON","stringify","defaultSource","onSelect","setIsOpen","onActive","onResolve","__default","normalizedSource","getNormalizedSources","nested","_x$onSelect","_x$onActive","_x$onResolve","navigate","_ref3","location","navigateNewTab","_ref4","windowReference","open","focus","navigateNewWindow","_ref5","isDescription","execute","preResolve","itemsOrDescription","description","contextParameters","requesterId","_state$context$key","__algoliaSearchParameters","requests","queries","transformResponse","searchClient","container","find","_container$items","request","maybeDescription","responses","postResolve","store","matches","response","results","transform","rawResults","result","_hits","hits","hit","__autocomplete_indexName","__autocomplete_queryID","queryID","facetHits","_facetHits","facetHit","label","count","_highlightResult","highlighted","mapToAlgoliaResponse","every","undefined","basePromiseId","latestResolvedId","latestResolvedValue","lastStalledId","runConcurrentSafePromise","currentPromiseId","onInput","event","_ref$nextState","nextState","refresh","setters","setCollections","setQuery","setActiveItemId","setStatus","_nextState$isOpen","_request","getItems","originalSourcesBySourceId","sourcesBySourceId","_nextState$isOpen2","isPanelOpen","highlightedItem","_excluded2","_excluded3","_excluded4","_excluded5","_excluded6","_excluded7","getPropGetters","getAutocompleteId","instanceId","getEnvironmentProps","providedProps","inputElement","formElement","panelElement","onMouseDownOrTouchStart","contextNode","parent","child","contains","onTouchStart","onMouseDown","onTouchMove","document","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","__autocomplete_pluginOptions","ua","getCompletion","_getActiveItem","stateReducer","_nextState","createAutocomplete","subscribers","rawValue","baseItemId","setContext","getAutocompleteSetters","propGetters","Event","_plugin$subscribe","subscribe","fn","_environment$navigato","_environment$navigato2","metadata","metadataContainer","headRef","querySelector","content","appendChild","injectMetadata","AlgoliaLogo","_translations$searchB","searchByText","href","hostname","rel","xmlns","y","rx","ry","CommandIcon","ariaLabel","children","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","split","prev","Snippet","attribute","_ref$tagName","tagName","dangerouslySetInnerHTML","__html","Results","title","Result","objectID","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","_internalDocSearchHit2","_internalDocSearchHit3","_hit$_highlightResult","_hit$_highlightResult2","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","isFromSelection","select","hidden","onClose","createStorage","localStorage","setItem","removeItem","error","isLocalStorageSupported","getItem","parse","createStoredSearches","_ref$limit","limit","storage","_snippetResult","isQueryAlreadySaved","findIndex","splice","unshift","getAll","createBrowserLocalStorageCache","namespaceKey","getStorage","getNamespace","get","defaultValue","events","miss","keyAsString","exists","set","namespace","delete","clear","createFallbackableCache","caches","shift","_key","createInMemoryCache","serializable","cache","shuffle","array","Math","floor","random","addMethods","base","methods","encode","format","encodeURIComponent","AuthMode","WithinQueryParameters","WithinHeaders","createMappedRequestOptions","requestOptions","data","entries","headers","queryParameters","cacheable","CallEnum","Read","Write","Any","HostStatusEnum","EXPIRATION_DELAY","createStatefulHost","host","lastUpdate","Date","now","createStatelessHost","protocol","accept","MethodEnum","createRetryableOptions","hostsCache","statelessHosts","statelessHost","statefulHosts","hostsUp","isStatefulHostUp","hostsTimeouted","isStatefulHostTimeouted","hostsAvailable","getTimeout","timeoutsCount","baseTimeout","retryableRequest","transporter","stackTrace","method","serializeData","serializedHeaders","header","serializeHeaders","dataQueryParameters","retry","hosts","pop","message","transporterStackTrace","stackTraceWithoutCredentials","serializeUrl","connectTimeout","timeouts","connect","responseTimeout","pushToStackTrace","stackFrame","triesLeft","decisions","onSucess","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","appId","auth","authMode","apiKey","credentials","createAuth","requestsCache","responsesCache","read","mappedRequestOptions","createRetryableRequest","reject","write","createTransporter","addAlgoliaAgent","clearCache","initIndex","indexName","searchIndex","multipleQueries","multipleSearchForFacetValues","facetName","facetQuery","searchForFacetValues","findAnswers","queryLanguages","LogLevelEnum","algoliasearch","logLevel","commonOptions","baseRequester","XMLHttpRequest","setRequestHeader","createTimeout","abort","onreadystatechange","readyState","OPENED","onerror","responseText","onload","console","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","footerTranslations","footer","searchBoxTranslations","searchBox","screenStateTranslations","containerRef","modalRef","formElementRef","dropdownRef","snippetLength","initialQueryFromSelection","getSelection","client","useSearchClient","saveRecentSearch","useCallback","autocomplete","sourcesState","attributesToRetrieve","attributesToSnippet","snippetEllipsisText","highlightPreTag","highlightPostTag","hitsPerPage","_ref7","_results$","nbHits","_ref8","_ref9","lvl1","groupedHits","siblingItem","flat","_ref6","_getEnvironmentProps","addEventListener","removeEventListener","useTouchEvents","focusableElements","querySelectorAll","firstElement","lastElement","trapFocus","useTrapFocus","body","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","String","fromCharCode","useDocSearchKeyboardEvents","createPortal","scrollY","modal","render","getHTMLElement"],"mappings":"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"}
|
|
1
|
+
{"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/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/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-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/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/version.js","../../../docsearch-react/dist/esm/DocSearchModal.js","../../../docsearch-react/dist/esm/useSearchClient.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;r<arguments.length;r++)u.push(o[r]);if(null!=u&&(f.children=u),\"function\"==typeof n&&null!=n.defaultProps)for(r in n.defaultProps)void 0===f[r]&&(f[r]=n.defaultProps[r]);return v(n,f,i,t,null)}function v(l,u,i,t,r){var o={type:l,props:u,key:i,ref:t,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++n.__v:r};return null!=n.vnode&&n.vnode(o),o}function h(){return{current:null}}function y(n){return n.children}function p(n,l){this.props=n,this.context=l}function d(n,l){if(null==l)return n.__?d(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?d(n):null}function _(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return _(n)}}function k(l){(!l.__d&&(l.__d=!0)&&u.push(l)&&!m.__r++||t!==n.debounceRendering)&&((t=n.debounceRendering)||i)(m)}function m(){for(var n;m.__r=u.length;)n=u.sort(function(n,l){return n.__v.__b-l.__v.__b}),u=[],n.some(function(n){var l,u,i,t,r,o;n.__d&&(r=(t=(l=n).__v).__e,(o=l.__P)&&(u=[],(i=c({},t)).__v=t.__v+1,T(o,t,i,l.__n,void 0!==o.ownerSVGElement,null!=t.__h?[r]:null,u,null==r?d(t):r,t.__h),j(u,t),t.__e!=r&&_(t)))})}function b(n,l,u,i,t,r,e,c,s,a){var h,p,_,k,m,b,w,A=i&&i.__k||f,P=A.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(k=u.__k[h]=null==(k=l[h])||\"boolean\"==typeof k?null:\"string\"==typeof k||\"number\"==typeof k?v(null,k,null,null,k):Array.isArray(k)?v(y,{children:k},null,null,null):k.__b>0?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;p<P;p++){if((_=A[p])&&k.key==_.key&&k.type===_.type){A[p]=void 0;break}_=null}T(n,k,_=_||o,t,r,e,c,s,a),m=k.__e,(p=k.ref)&&_.ref!=p&&(w||(w=[]),_.ref&&w.push(_.ref,null,k),w.push(p,k.__c||m,k)),null!=m?(null==b&&(b=m),\"function\"==typeof k.type&&null!=k.__k&&k.__k===_.__k?k.__d=s=g(k,s,n):s=x(n,k,_,A,m,s),a||\"option\"!==u.type?\"function\"==typeof u.type&&(u.__d=s):n.value=\"\"):s&&_.__e==s&&s.parentNode!=n&&(s=d(_))}for(u.__e=b,h=P;h--;)null!=A[h]&&(\"function\"==typeof u.type&&null!=A[h].__e&&A[h].__e==u.__d&&(u.__d=d(i,h+1)),L(A[h],A[h]));if(w)for(h=0;h<w.length;h++)I(w[h],w[++h],w[++h])}function g(n,l,u){var i,t;for(i=0;i<n.__k.length;i++)(t=n.__k[i])&&(t.__=n,l=\"function\"==typeof t.type?g(t,l,u):x(u,t,t,n.__k,t.__e,l));return l}function w(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(Array.isArray(n)?n.some(function(n){w(n,l)}):l.push(n)),l}function x(n,l,u,i,t,r){var o,f,e;if(void 0!==l.__d)o=l.__d,l.__d=void 0;else if(null==u||t!=r||null==t.parentNode)n:if(null==r||r.parentNode!==n)n.appendChild(t),o=null;else{for(f=r,e=0;(f=f.nextSibling)&&e<i.length;e+=2)if(f==t)break n;n.insertBefore(t,r),o=r}return void 0!==o?o:t.nextSibling}function A(n,l,u,i,t){var r;for(r in u)\"children\"===r||\"key\"===r||r in l||C(n,r,null,u[r],i);for(r in l)t&&\"function\"!=typeof l[r]||\"children\"===r||\"key\"===r||\"value\"===r||\"checked\"===r||u[r]===l[r]||C(n,r,l[r],u[r],i)}function P(n,l,u){\"-\"===l[0]?n.setProperty(l,u):n[l]=null==u?\"\":\"number\"!=typeof u||e.test(l)?u:u+\"px\"}function C(n,l,u,i,t){var r;n:if(\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof i&&(n.style.cssText=i=\"\"),i)for(l in i)u&&l in u||P(n.style,l,\"\");if(u)for(l in u)i&&u[l]===i[l]||P(n.style,l,u[l])}else if(\"o\"===l[0]&&\"n\"===l[1])r=l!==(l=l.replace(/Capture$/,\"\")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?i||n.addEventListener(l,r?H:$,r):n.removeEventListener(l,r?H:$,r);else if(\"dangerouslySetInnerHTML\"!==l){if(t)l=l.replace(/xlink[H:h]/,\"h\").replace(/sName$/,\"s\");else if(\"href\"!==l&&\"list\"!==l&&\"form\"!==l&&\"download\"!==l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null!=u&&(!1!==u||\"a\"===l[0]&&\"r\"===l[1])?n.setAttribute(l,u):n.removeAttribute(l))}}function $(l){this.l[l.type+!1](n.event?n.event(l):l)}function H(l){this.l[l.type+!0](n.event?n.event(l):l)}function T(l,u,i,t,r,o,f,e,s){var a,v,h,d,_,k,m,g,w,x,A,P=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(s=i.__h,e=u.__e=i.__e,u.__h=null,o=[e]),(a=n.__b)&&a(u);try{n:if(\"function\"==typeof P){if(g=u.props,w=(a=P.contextType)&&t[a.__c],x=a?w?w.props.value:a.__:t,i.__c?m=(v=u.__c=i.__c).__=v.__E:(\"prototype\"in P&&P.prototype.render?u.__c=v=new P(g,x):(u.__c=v=new p(g,x),v.constructor=P,v.render=M),w&&w.sub(v),v.props=g,v.state||(v.state={}),v.context=x,v.__n=t,h=v.__d=!0,v.__h=[]),null==v.__s&&(v.__s=v.state),null!=P.getDerivedStateFromProps&&(v.__s==v.state&&(v.__s=c({},v.__s)),c(v.__s,P.getDerivedStateFromProps(g,v.__s))),d=v.props,_=v.state,h)null==P.getDerivedStateFromProps&&null!=v.componentWillMount&&v.componentWillMount(),null!=v.componentDidMount&&v.__h.push(v.componentDidMount);else{if(null==P.getDerivedStateFromProps&&g!==d&&null!=v.componentWillReceiveProps&&v.componentWillReceiveProps(g,x),!v.__e&&null!=v.shouldComponentUpdate&&!1===v.shouldComponentUpdate(g,v.__s,x)||u.__v===i.__v){v.props=g,v.state=v.__s,u.__v!==i.__v&&(v.__d=!1),v.__v=u,u.__e=i.__e,u.__k=i.__k,v.__h.length&&f.push(v);break n}null!=v.componentWillUpdate&&v.componentWillUpdate(g,v.__s,x),null!=v.componentDidUpdate&&v.__h.push(function(){v.componentDidUpdate(d,_,k)})}v.context=x,v.props=g,v.state=v.__s,(a=n.__r)&&a(u),v.__d=!1,v.__v=u,v.__P=l,a=v.render(v.props,v.state,v.context),v.state=v.__s,null!=v.getChildContext&&(t=c(c({},t),v.getChildContext())),h||null==v.getSnapshotBeforeUpdate||(k=v.getSnapshotBeforeUpdate(d,_)),A=null!=a&&a.type===y&&null==a.key?a.props.children:a,b(l,Array.isArray(A)?A:[A],u,i,t,r,o,f,e,s),v.base=u.__e,u.__h=null,v.__h.length&&f.push(v),m&&(v.__E=v.__=null),v.__e=!1}else null==o&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=z(i.__e,u,i,t,r,o,f,s);(a=n.diffed)&&a(u)}catch(l){u.__v=null,(s||null!=o)&&(u.__e=e,u.__h=!!s,o[o.indexOf(e)]=null),n.__e(l,u,i)}}function j(l,u){n.__c&&n.__c(u,l),l.some(function(u){try{l=u.__h,u.__h=[],l.some(function(n){n.call(u)})}catch(l){n.__e(l,u.__v)}})}function z(n,l,u,i,t,r,e,c){var a,v,h,y,p=u.props,d=l.props,_=l.type,k=0;if(\"svg\"===_&&(t=!0),null!=r)for(;k<r.length;k++)if((a=r[k])&&(a===n||(_?a.localName==_:3==a.nodeType))){n=a,r[k]=null;break}if(null==n){if(null===_)return document.createTextNode(d);n=t?document.createElementNS(\"http://www.w3.org/2000/svg\",_):document.createElement(_,d.is&&d),r=null,c=!1}if(null===_)p===d||c&&n.data===d||(n.data=d);else{if(r=r&&f.slice.call(n.childNodes),v=(p=u.props||o).dangerouslySetInnerHTML,h=d.dangerouslySetInnerHTML,!c){if(null!=r)for(p={},y=0;y<n.attributes.length;y++)p[n.attributes[y].name]=n.attributes[y].value;(h||v)&&(h&&(v&&h.__html==v.__html||h.__html===n.innerHTML)||(n.innerHTML=h&&h.__html||\"\"))}if(A(n,d,p,t,c),h)l.__k=[];else if(k=l.props.children,b(n,Array.isArray(k)?k:[k],l,u,i,t&&\"foreignObject\"!==_,r,e,n.firstChild,c),null!=r)for(k=r.length;k--;)null!=r[k]&&s(r[k]);c||(\"value\"in d&&void 0!==(k=d.value)&&(k!==n.value||\"progress\"===_&&!k)&&C(n,\"value\",k,p.value,!1),\"checked\"in d&&void 0!==(k=d.checked)&&k!==n.checked&&C(n,\"checked\",k,p.checked,!1))}return n}function I(l,u,i){try{\"function\"==typeof l?l(u):l.current=u}catch(l){n.__e(l,i)}}function L(l,u,i){var t,r,o;if(n.unmount&&n.unmount(l),(t=l.ref)&&(t.current&&t.current!==l.__e||I(t,null,u)),i||\"function\"==typeof l.type||(i=null!=(r=l.__e)),l.__e=l.__d=void 0,null!=(t=l.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(l){n.__e(l,u)}t.base=t.__P=null}if(t=l.__k)for(o=0;o<t.length;o++)t[o]&&L(t[o],u,i);null!=r&&s(r)}function M(n,l,u){return this.constructor(n,u)}function N(l,u,i){var t,r,e;n.__&&n.__(l,u),r=(t=\"function\"==typeof i)?null:i&&i.__k||u.__k,e=[],T(u,l=(!t&&i||u).__k=a(y,null,[l]),r||o,o,void 0!==u.ownerSVGElement,!t&&i?[i]:r?null:u.firstChild?f.slice.call(u.childNodes):null,e,!t&&i?i:r?r.__e:u.firstChild,t),j(e,l)}function O(n,l){N(n,l,O)}function S(n,l,u){var i,t,r,o=arguments,f=c({},n.props);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;r<arguments.length;r++)u.push(o[r]);return null!=u&&(f.children=u),v(n.type,f,i||n.key,t||n.ref,null)}function q(n,l){var u={__c:l=\"__cC\"+r++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(k)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n={__e:function(n,l){for(var u,i,t;l=l.__;)if((u=l.__c)&&!u.__)try{if((i=u.constructor)&&null!=i.getDerivedStateFromError&&(u.setState(i.getDerivedStateFromError(n)),t=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),t=u.__d),t)return u.__E=u}catch(l){n=l}throw n},__v:0},l=function(n){return null!=n&&void 0===n.constructor},p.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=c({},this.state),\"function\"==typeof n&&(n=n(c({},u),this.props)),n&&c(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),k(this))},p.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),k(this))},p.prototype.render=y,u=[],i=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,m.__r=0,r=0;export{N as render,O as hydrate,a as createElement,a as h,y as Fragment,h as createRef,l as isValidElement,p as Component,S as cloneElement,q as createContext,w as toChildArray,n as options};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,u,r,o=0,i=[],c=n.__b,f=n.__r,e=n.diffed,a=n.__c,v=n.unmount;function m(t,r){n.__h&&n.__h(u,t,o||r),o=0;var i=u.__H||(u.__H={__:[],__h:[]});return t>=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]<e[0])break;n.u=e=e[2]}};function M(n){return this.getChildContext=function(){return n.context},n.children}function T(n){var t=this,e=n.i;t.componentWillUnmount=function(){d(null,t.l),t.l=null,t.i=null},t.i&&t.i!==e&&t.componentWillUnmount(),n.__v?(t.l||(t.i=e,t.l={nodeType:1,parentNode:e,childNodes:[],appendChild:function(n){this.childNodes.push(n),t.i.appendChild(n)},insertBefore:function(n,e){this.childNodes.push(n),t.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>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 }, /*#__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(\"kbd\", {\n className: \"DocSearch-Button-Key\"\n }, key === ACTION_KEY_DEFAULT ? /*#__PURE__*/React.createElement(ControlKeyIcon, null) : key), /*#__PURE__*/React.createElement(\"kbd\", {\n className: \"DocSearch-Button-Key\"\n }, \"K\"))));\n});","export function debounce(fn, time) {\n var timerId = undefined;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(function () {\n return fn.apply(void 0, args);\n }, time);\n };\n}","export function flatten(values) {\n return values.reduce(function (a, b) {\n return a.concat(b);\n }, []);\n}","var autocompleteId = 0;\nexport function generateAutocompleteId() {\n return \"autocomplete-\".concat(autocompleteId++);\n}","export function getItemsCount(state) {\n if (state.collections.length === 0) {\n return 0;\n }\n return state.collections.reduce(function (sum, collection) {\n return sum + collection.items.length;\n }, 0);\n}","function isPrimitive(obj) {\n return obj !== Object(obj);\n}\nexport function isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {\n return first === second;\n }\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n if (!(key in second)) {\n return false;\n }\n if (!isEqual(first[key], second[key])) {\n return false;\n }\n }\n return true;\n}","export var noop = function noop() {};","import { version } from './version';\nexport var userAgents = [{\n segment: 'autocomplete-core',\n version: version\n}];","export var version = '1.9.3';","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}","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>|<\\/mark>)/g;\nvar regexHasHighlightTags = RegExp(regexHighlightTags.source);\nexport function removeHighlightTags(hit) {\n var _internalDocSearchHit, _internalDocSearchHit2, _internalDocSearchHit3, _hit$_highlightResult, _hit$_highlightResult2;\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 ? void 0 : (_internalDocSearchHit2 = _internalDocSearchHit._highlightResult) === null || _internalDocSearchHit2 === void 0 ? void 0 : (_internalDocSearchHit3 = _internalDocSearchHit2.hierarchy) === null || _internalDocSearchHit3 === void 0 ? void 0 : _internalDocSearchHit3.lvl0 : (_hit$_highlightResult = hit._highlightResult) === null || _hit$_highlightResult === void 0 ? void 0 : (_hit$_highlightResult2 = _hit$_highlightResult.hierarchy) === null || _hit$_highlightResult2 === void 0 ? void 0 : _hit$_highlightResult2.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\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(\"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 return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n return Promise.resolve()\r\n .then(() => {\r\n const keyAsString = JSON.stringify(key);\r\n const value = getNamespace()[keyAsString];\r\n return Promise.all([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)] = value;\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.8.5';\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.onSucess(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 onSucess: 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 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 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","export var version = '3.5.1';","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: '<mark>',\n highlightPostTag: '</mark>',\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 _results$ = results[0],\n hits = _results$.hits,\n nbHits = _results$.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: results[0].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 ? 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}","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 ? 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 ? 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<HTMLElement>(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 <DocSearch\n {...props}\n transformSearchClient={(searchClient) => {\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","ACTION_KEY_DEFAULT","DocSearchButton","forwardRef","_ref","_ref$translations","translations","_translations$buttonT","buttonText","_translations$buttonA","buttonAriaLabel","_useState2","setKey","navigator","platform","Fragment","debounce","fn","time","timerId","undefined","_len","_key","flatten","values","reduce","autocompleteId","getItemsCount","collections","sum","collection","items","isPrimitive","isEqual","first","second","_Object$keys","noop","userAgents","segment","version","createClickedEvent","item","__autocomplete_indexName","positions","findIndex","x","objectID","queryID","__autocomplete_queryID","algoliaSource","_x","_r","return","_excluded2","_typeof","_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","map","param","_ref2","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_VERSION","ALGOLIA_INSIGHTS_SRC","sendViewedObjectIDs","onItemsChange","insights","insightsEvents","event","eventName","createAlgoliaInsightsPlugin","_getOptions","_ref8","onSelect","_ref9","onActive","getOptions","providedInsightsClient","insightsClient","onSelectEvent","onActiveEvent","window","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","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","add","cancelablePromise","cancelAll","isEmpty","getDefaultProps","pluginSubscribers","_props$id","plugins","debug","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","maybeSource","sourceId","includes","Error","JSON","stringify","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","children","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","_internalDocSearchHit2","_internalDocSearchHit3","_hit$_highlightResult","_hit$_highlightResult2","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","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","get","defaultValue","events","miss","keyAsString","exists","set","namespace","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","entries","queryParameters","cacheable","CallEnum","Read","Write","Any","HostStatusEnum","EXPIRATION_DELAY","createStatefulHost","host","lastUpdate","Date","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","message","transporterStackTrace","stackTraceWithoutCredentials","serializeUrl","connectTimeout","timeouts","connect","responseTimeout","pushToStackTrace","stackFrame","triesLeft","decisions","onSucess","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","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","_results$","nbHits","lvl1","groupedHits","potentialParent","siblingItem","flat","_getEnvironmentProps","addEventListener","removeEventListener","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","render","getHTMLElement"],"mappings":"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"}
|