{"version":3,"sources":["../node_modules/@algolia/autocomplete-shared/dist/esm/userAgents.js","../node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromiseList.js","../node_modules/@algolia/autocomplete-core/dist/esm/createStore.js","../node_modules/@algolia/autocomplete-shared/dist/esm/flatten.js","../node_modules/@algolia/autocomplete-core/dist/esm/getAutocompleteSetters.js","../node_modules/@algolia/autocomplete-shared/dist/esm/getItemsCount.js","../node_modules/@algolia/autocomplete-shared/dist/esm/generateAutocompleteId.js","../node_modules/@algolia/autocomplete-shared/dist/esm/noop.js","../node_modules/@algolia/autocomplete-core/dist/esm/utils/getNormalizedSources.js","../node_modules/@algolia/autocomplete-core/dist/esm/getDefaultProps.js","../node_modules/@algolia/autocomplete-core/dist/esm/reshape.js","../node_modules/@algolia/autocomplete-core/dist/esm/utils/mapToAlgoliaResponse.js","../node_modules/@algolia/autocomplete-core/dist/esm/resolve.js","../node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromise.js","../node_modules/@algolia/autocomplete-core/dist/esm/utils/getActiveItem.js","../node_modules/@algolia/autocomplete-core/dist/esm/onInput.js","../node_modules/@algolia/autocomplete-core/dist/esm/utils/createConcurrentSafePromise.js","../node_modules/@algolia/autocomplete-core/dist/esm/onKeyDown.js","../node_modules/@algolia/autocomplete-core/dist/esm/utils/isSamsung.js","../node_modules/@algolia/autocomplete-core/dist/esm/getPropGetters.js","../node_modules/@algolia/autocomplete-core/dist/esm/utils/isOrContainsNode.js","../node_modules/@algolia/autocomplete-core/dist/esm/metadata.js","../node_modules/@algolia/autocomplete-core/dist/esm/getCompletion.js","../node_modules/@algolia/autocomplete-core/dist/esm/utils/getNextActiveItemId.js","../node_modules/@algolia/autocomplete-core/dist/esm/stateReducer.js","../node_modules/@algolia/autocomplete-core/dist/esm/createAutocomplete.js","../node_modules/@algolia/autocomplete-shared/dist/esm/createRef.js","../node_modules/@algolia/autocomplete-shared/dist/esm/debounce.js","../node_modules/htm/dist/htm.module.js","../node_modules/@algolia/autocomplete-js/dist/esm/elements/SearchIcon.js","../node_modules/@algolia/autocomplete-js/dist/esm/elements/ClearIcon.js","../node_modules/@algolia/autocomplete-js/dist/esm/elements/LoadingIcon.js","../node_modules/@algolia/autocomplete-js/dist/esm/utils/setProperties.js","../node_modules/@algolia/autocomplete-js/dist/esm/getCreateDomElement.js","../node_modules/@algolia/autocomplete-js/dist/esm/elements/Input.js","../node_modules/@algolia/autocomplete-js/dist/esm/createAutocompleteDom.js","../../src/constants.js","../../src/util.js","../../src/options.js","../../src/create-element.js","../../src/component.js","../../src/diff/children.js","../../src/diff/props.js","../../src/diff/index.js","../../src/render.js","../node_modules/@algolia/autocomplete-shared/dist/esm/getAttributeValueByPath.js","../../src/diff/catch-error.js","../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAttribute.js","../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitHighlight.js","../node_modules/@algolia/autocomplete-js/dist/esm/components/Highlight.js","../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/isPartHighlighted.js","../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/reverseHighlightedParts.js","../node_modules/@algolia/autocomplete-js/dist/esm/components/ReverseHighlight.js","../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitReverseHighlight.js","../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitSnippet.js","../node_modules/@algolia/autocomplete-js/dist/esm/components/ReverseSnippet.js","../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitReverseSnippet.js","../node_modules/@algolia/autocomplete-js/dist/esm/components/Snippet.js","../node_modules/@algolia/autocomplete-js/dist/esm/utils/getHTMLElement.js","../node_modules/@algolia/autocomplete-js/dist/esm/utils/mergeClassNames.js","../node_modules/@algolia/autocomplete-js/dist/esm/getDefaultOptions.js","../node_modules/@algolia/autocomplete-js/dist/esm/getPanelPlacementStyle.js","../node_modules/@algolia/autocomplete-js/dist/esm/render.js","../node_modules/@algolia/autocomplete-js/dist/esm/utils/mergeDeep.js","../node_modules/@algolia/autocomplete-js/dist/esm/utils/pickBy.js","../node_modules/@algolia/autocomplete-js/dist/esm/autocomplete.js","../node_modules/@algolia/autocomplete-js/dist/esm/createEffectWrapper.js","../node_modules/@algolia/autocomplete-js/dist/esm/createReactiveWrapper.js","../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/requester/createRequester.js","../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/search/fetchAlgoliaResults.js","../node_modules/@algolia/autocomplete-js/dist/esm/requesters/createAlgoliaRequester.js","../node_modules/@algolia/autocomplete-js/dist/esm/requesters/getAlgoliaResults.js","../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/constants/index.js","../node_modules/@algolia/autocomplete-js/dist/esm/userAgents.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/@algolia/autocomplete-shared/dist/esm/version.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/scroll-affix/dist/scroll-affix.js","../node_modules/algoliasearch/dist/algoliasearch.umd.js","../node_modules/regenerator-runtime/runtime.js"],"names":["userAgents","segment","version","createCancelablePromiseList","list","add","cancelablePromise","push","finally","filter","item","cancelAll","forEach","promise","cancel","isEmpty","length","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","apply","_defineProperty","obj","key","value","defineProperty","configurable","writable","createStore","reducer","props","onStoreStateChange","state","initialState","getState","dispatch","action","payload","prevState","target","i","arguments","source","getOwnPropertyDescriptors","defineProperties","_objectSpread","type","pendingRequests","flatten","values","reduce","a","b","concat","getItemsCount","collections","sum","collection","items","autocompleteId","generateAutocompleteId","noop","getNormalizedSources","getSources","params","seenSourceIds","Promise","resolve","then","sources","Array","isArray","all","maybeSource","Boolean","map","sourceId","includes","Error","JSON","stringify","normalizedSource","getItemInputValue","_ref","query","getItemUrl","onSelect","_ref2","setIsOpen","onActive","_toConsumableArray","arr","_arrayLikeToArray","_arrayWithoutHoles","iter","Symbol","iterator","from","_iterableToArray","o","minLen","n","prototype","toString","call","slice","constructor","name","test","_unsupportedIterableToArray","TypeError","_nonIterableSpread","len","arr2","isDescription","execute","preResolve","itemsOrDescription","description","requests","queries","transformResponse","acc","current","searchClient","requesterId","container","find","_container$items","request","maybeDescription","responses","postResolve","matches","response","results","transform","rawResults","result","_hits","hits","hit","__autocomplete_indexName","index","__autocomplete_queryID","queryID","facetHits","_facetHits","facetHit","label","count","_highlightResult","highlighted","mapToAlgoliaResponse","every","undefined","createInternalCancelablePromise","onfulfilled","onrejected","createCallback","catch","onfinally","onCancelList","isCanceled","callbacks","callback","createCancelablePromise","executor","reject","cancelable","onResult","fallback","arg","getActiveItem","collectionIndex","collectionsCount","nextValue","activeItemId","getCollectionFromActiveItemId","isOffsetFound","counter","previousItemsOffset","currentCollection","getRelativeActiveItemId","itemInputValue","itemUrl","reason","_excluded","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","lastStalledId","runConcurrentSafePromise","basePromiseId","latestResolvedId","latestResolvedValue","currentPromiseId","x","createConcurrentSafePromise","onInput","event","_ref$nextState","nextState","refresh","store","setters","environment","clearTimeout","setCollections","setQuery","setActiveItemId","setStatus","defaultActiveItemId","openOnFocus","_nextState$isOpen","isOpen","shouldPanelOpen","_request","setTimeout","stallThreshold","getItems","sourcesBySourceId","reshape","_nextState$isOpen2","isPanelOpen","highlightedItem","regex","_excluded2","_excluded3","_excluded4","_excluded5","getPropGetters","getEnvironmentProps","providedProps","inputElement","formElement","panelElement","onTouchStart","some","contextNode","parent","child","contains","debug","onTouchMove","document","activeElement","blur","getRootProps","rest","role","id","getFormProps","noValidate","onSubmit","_providedProps$inputE","preventDefault","onReset","_providedProps$inputE2","focus","getLabelProps","htmlFor","getInputProps","_props$environment$na","onFocus","completion","isTouchDevice","_ref2$maxLength","maxLength","activeItem","shouldFallbackKeyHint","userAgent","match","isSamsung","navigator","enterKeyHint","autoComplete","autoCorrect","autoCapitalize","spellCheck","autoFocus","placeholder","onChange","currentTarget","onKeyDown","triggerScrollIntoView","nodeItem","getElementById","scrollIntoViewIfNeeded","scrollIntoView","triggerOnActive","nextActiveItemId","metaKey","ctrlKey","navigateNewTab","shiftKey","navigateNewWindow","altKey","navigate","_onKeyDown","onBlur","onClick","getPanelProps","onMouseDown","onMouseLeave","getListProps","getItemProps","__autocomplete_id","onMouseMove","_item","_source","getMetadata","_","_options$__autocomple","_options$__autocomple2","_options$__autocomple3","plugins","options","optionsKey","__autocomplete_metadata","extraOptions","plugin","__autocomplete_pluginOptions","ua","getCompletion","_getActiveItem","getNextActiveItemId","moveAmount","baseIndex","itemCount","numericIndex","stateReducer","status","context","hasOwnProperty","_nextState","createAutocomplete","subscribers","pluginSubscribers","_props$id","window","onStateChange","_props$onStateChange","_x$onStateChange","_props$onSubmit","_x$onSubmit","_props$onReset","_x$onReset","nested","_x$onSelect","_x$onActive","_ref3","location","assign","_ref4","windowReference","open","_ref5","getDefaultProps","rawValue","baseItemId","setContext","getAutocompleteSetters","propGetters","Event","_plugin$subscribe","subscribe","fn","_environment$navigato","metadata","metadataContainer","createElement","headRef","querySelector","content","appendChild","injectMetadata","createRef","initialValue","debounce","time","timerId","_len","args","_key","t","s","r","e","u","h","p","Map","get","this","set","replace","l","SearchIcon","element","createElementNS","setAttribute","path","ClearIcon","LoadingIcon","innerHTML","TOUCH_EVENTS_ALIASES","setStyle","style","eventProxy","_listeners","setProperty","dom","useCapture","nameLower","oldValue","toLowerCase","addEventListener","removeEventListener","removeAttribute","getNormalizedName","setProperties","setPropertiesWithoutEvents","getCreateDomElement","tagName","_ref$children","children","append","createAutocompleteDom","autocomplete","autocompleteScopeApi","classNames","isDetached","_ref$placeholder","setIsModalOpen","translations","createDomElement","rootProps","root","class","detachedContainer","stopPropagation","detachedOverlay","labelProps","submitButton","title","submitButtonTitle","clearButton","clearButtonTitle","loadingIndicator","input","getInputPropsCore","onDetachedEscape","inputProps","Input","inputWrapperPrefix","inputWrapperSuffix","inputWrapper","formProps","form","panelProps","panel","detachedSearchButtonIcon","detachedSearchButtonPlaceholder","textContent","detachedSearchButton","detachedCancelButton","detachedCancelButtonText","detachedFormContainer","vnodeId","rerenderQueue","defer","prevDebounce","EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","removeNode","node","parentNode","removeChild","ref","normalizedProps","defaultProps","createVNode","original","vnode","Fragment","Component","getDomSibling","childIndex","sibling","updateParentDomPointers","base","enqueueRender","c","process","debounceRendering","queue","sort","component","commitQueue","oldVNode","oldDom","parentDom","diff","ownerSVGElement","commitRoot","diffChildren","renderResult","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","childVNode","newDom","firstChildDom","refs","oldChildren","oldChildrenLength","reorderChildren","placeChild","unmount","applyRef","tmp","nextDom","sibDom","outer","nextSibling","insertBefore","cssText","eventProxyCapture","newVNode","isNew","oldProps","oldState","snapshot","clearProcessingException","newProps","provider","componentContext","newType","contextType","render","doRender","sub","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","diffed","cb","oldHtml","newHtml","nodeType","localName","createTextNode","is","data","childNodes","dangerouslySetInnerHTML","attributes","hydrate","diffProps","checked","parentVNode","skipRemove","componentWillUnmount","replaceNode","firstChild","getAttributeValueByPath","record","error","errorInfo","ctor","handled","getDerivedStateFromError","setState","componentDidCatch","update","forceUpdate","bind","parseAttribute","preTagParts","highlightedValue","split","HIGHLIGHT_PRE_TAG","firstValue","shift","parts","part","lastPart","isHighlighted","createAttributeSet","postTagParts","HIGHLIGHT_POST_TAG","parseAlgoliaHitHighlight","attribute","createHighlightComponent","Highlight","_ref2$tagName","__autocomplete_componentName","htmlEscapes","hasAlphanumeric","RegExp","regexEscapedHtml","regexHasEscapedHtml","isPartHighlighted","_parts","_parts2","isNextHighlighted","isPreviousHighlighted","character","reverseHighlightedParts","createReverseHighlightComponent","ReverseHighlight","parseAlgoliaHitSnippet","createReverseSnippetComponent","ReverseSnippet","createSnippetComponent","Snippet","getHTMLElement","mergeClassNames","accValue","currentValue","join","defaultClassNames","panelLayout","sourceFooter","sourceHeader","sourceNoResults","defaultRender","defaultRenderer","preactCreateElement","PreactFragment","getPanelPlacementStyle","panelPlacement","containerRect","getBoundingClientRect","top","pageYOffset","documentElement","scrollTop","body","height","left","right","clientWidth","width","maxWidth","formRect","_extends","_typeof","isPlainObject","mergeDeep","_slicedToArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","next","done","err","_iterableToArrayLimit","_nonIterableRest","pickBy","predicate","entries","_createEffectWrapper","effects","cleanups","runEffect","effectCleanup","cleanupEffects","currentCleanups","cleanup","runEffects","currentEffects","effect","createEffectWrapper","_createReactiveWrappe","reactives","reactive","_fn","runReactives","createReactiveWrapper","hasNoResultsSourceTemplateRef","optionsRef","onStateChangeRef","_core$id","panelContainer","renderNoResults","renderer","detachedMediaQuery","components","core","containerElement","defaultedRenderer","defaultComponents","_ref6","_ref7","_ref8","_ref9","getComputedStyle","getPropertyValue","getDefaultOptions","matchMedia","_onStateChangeRef$cur","_props$value$core$onS","_props$value$core","templates","noResults","hasItems","hasNoResultsTemplate","lastStateRef","html","htm","setPanelPosition","scheduleRender","renderProps","hidden","renderSearchBox","classList","toggle","sections","sourceIndex","className","header","itemProps","footer","elements","renderPanel","updatedOptions","_props$value$renderer","rendererProps","requestAnimationFrame","prevValue","remove","environmentProps","panelContainerElement","debouncedRender","querySelectorAll","scrollablePanel","onResize","previousIsDetached","toggleModalClassname","isActive","isModalDetachedMql","hasModernEventListener","addListener","removeListener","destroy","getAlgoliaResults","fetcher","fetcherParams","_fetcherParams$reques","requesterParams","requestParams","createRequester","_ref$userAgents","addAlgoliaAgent","coreUserAgents","search","searchParameters","hitsPerPage","highlightPreTag","highlightPostTag","fetchAlgoliaResults","createAlgoliaRequester","module","exports","_taggedTemplateLiteral","strings","raw","freeze","asyncGeneratorStep","gen","_next","_throw","info","_asyncToGenerator","self","offsetTop","offsetLeft","offsetParent","y","insertAt","head","getElementsByTagName","styleSheet","f","handleScroll","el","maxScrollHeight","sectionSelector","offsetHeight","baseTop","updateStatus","initialize","return","localStorage","parse","getItem","miss","setItem","delete","clear","removeItem","caches","serializable","headers","m","WithinHeaders","queryParameters","WithinQueryParameters","Math","min","d","wait","floor","random","encodeURIComponent","timeout","cacheable","g","Read","Write","Any","v","P","w","lastUpdate","Date","now","O","protocol","url","accept","I","D","q","getTimeout","statelessHosts","S","method","pop","message","transporterStackTrace","R","N","connectTimeout","timeouts","connect","responseTimeout","host","triesLeft","onSuccess","onRetry","isTimedOut","logger","A","hostsCache","onFail","requester","send","reverse","k","requestsCache","responsesCache","hosts","read","mappedRequestOptions","transporter","write","T","E","charAt","substr","C","U","z","J","F","H","M","K","batch","shouldStop","cursor","page","W","acl","tt","B","cluster","Q","users","G","clearExistingDictionaryEntries","jt","taskID","L","operation","destination","ut","methods","waitTask","de","V","scope","pe","Rules","Settings","X","Synonyms","Y","Z","$","objectID","et","rt","nt","at","ot","it","retrieveMappings","getClusters","appId","indexName","st","ct","ft","dt","lt","pt","ht","mt","yt","facetName","facetQuery","searchForFacetValues","ue","gt","vt","bt","Pt","wt","Ot","It","xt","Dt","qt","St","se","kt","ce","Tt","batchSize","taskIDs","objectIDs","Nt","Et","forwardToReplicas","Rt","At","Ct","Ut","zt","le","DeleteObject","Jt","Ft","Ht","Lt","Mt","queryLanguages","Kt","paginate","ie","position","parseInt","nbPages","Wt","Bt","Qt","attributesToRetrieve","Gt","getVersion","Vt","_t","Xt","createIfNotExists","PartialUpdateObject","PartialUpdateObjectNoCreate","Yt","safe","autoGenerateObjectIDIfNotExist","substring","ee","Zt","ne","clearExistingRules","$t","oe","clearExistingSynonyms","te","AddObject","UpdateObject","re","ae","replaceExistingSynonyms","fe","DeleteIndex","ClearIndex","he","me","ye","ge","apiKey","XMLHttpRequest","setRequestHeader","abort","onreadystatechange","readyState","OPENED","onerror","responseText","onload","console","region","getPersonalizationStrategy","setPersonalizationStrategy","authMode","clearCache","multipleBatch","multipleGetObjects","multipleQueries","copyIndex","copySettings","copySynonyms","copyRules","moveIndex","listIndices","getLogs","listClusters","multipleSearchForFacetValues","getApiKey","addApiKey","listApiKeys","updateApiKey","deleteApiKey","restoreApiKey","assignUserID","assignUserIDs","getUserID","searchUserIDs","listUserIDs","getTopUserIDs","removeUserID","hasPendingMappings","clearDictionaryEntries","deleteDictionaryEntries","getDictionarySettings","getAppTask","replaceDictionaryEntries","saveDictionaryEntries","searchDictionaryEntries","setDictionarySettings","waitAppTask","customRequest","initIndex","findAnswers","getObject","getObjects","saveObject","saveObjects","setSettings","getSettings","partialUpdateObject","partialUpdateObjects","deleteObject","deleteObjects","deleteBy","clearObjects","browseObjects","getObjectPosition","findObject","exists","saveSynonym","saveSynonyms","getSynonym","searchSynonyms","browseSynonyms","deleteSynonym","clearSynonyms","replaceAllObjects","replaceAllSynonyms","searchRules","getRule","deleteRule","saveRule","saveRules","replaceAllRules","browseRules","clearRules","initAnalytics","addABTest","getABTest","getABTests","stopABTest","deleteABTest","initPersonalization","initRecommendation","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","mark","setPrototypeOf","__proto__","awrap","async","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","Function"],"mappings":"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","file":"static/js/13.94573e05.chunk.js","sourcesContent":["import { version } from './version';\nexport var userAgents = [{\n segment: 'autocomplete-core',\n version: version\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 { 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 flatten(values) {\n return values.reduce(function (a, b) {\n return a.concat(b);\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}","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}","var autocompleteId = 0;\nexport function generateAutocompleteId() {\n return \"autocomplete-\".concat(autocompleteId++);\n}","export var noop = function noop() {};","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\n var normalizedSource = _objectSpread({\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 }, source);\n\n return Promise.resolve(normalizedSource);\n }));\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 });\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 sourcesBySourceId = 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 reshapeSources = props.reshape({\n sources: Object.values(sourcesBySourceId),\n sourcesBySourceId: 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 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 _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 _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 { 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) {\n if (isRequesterDescription(itemsOrDescription)) {\n return _objectSpread(_objectSpread({}, itemsOrDescription), {}, {\n requests: itemsOrDescription.queries.map(function (query) {\n return {\n query: 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) {\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 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}","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}","// 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 _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);\n });\n })).then(resolve).then(function (responses) {\n return postResolve(responses, sources);\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 === '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 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 regex = /((gt|sm)-|galaxy nexus)|samsung[- ]/i;\nexport function isSamsung(userAgent) {\n return Boolean(userAgent && userAgent.match(regex));\n}","var _excluded = [\"props\", \"refresh\", \"store\"],\n _excluded2 = [\"inputElement\", \"formElement\", \"panelElement\"],\n _excluded3 = [\"inputElement\"],\n _excluded4 = [\"inputElement\", \"maxLength\"],\n _excluded5 = [\"item\", \"source\"];\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 { 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 return _objectSpread({\n // On touch devices, we do not rely on the native `blur` event of the\n // input to close the panel, but rather on a custom `touchstart` event\n // outside of the autocomplete elements.\n // This ensures a working experience on mobile because we blur the input\n // on touch devices when the user starts scrolling (`touchmove`).\n // @TODO: support cases where there are multiple Autocomplete instances.\n // Right now, a second instance makes this computation return false.\n onTouchStart: function onTouchStart(event) {\n // The `onTouchStart` event shouldn't trigger the `blur` handler when\n // it's not an interaction with Autocomplete. We detect it with the\n // 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 }\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 // 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 isTouchDevice = ('ontouchstart' in props.environment);\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 onBlur: function onBlur() {\n // We do rely on the `blur` event on touch devices.\n // See explanation in `onTouchStart`.\n if (!isTouchDevice) {\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 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 getLabelProps = function getLabelProps(rest) {\n return _objectSpread({\n htmlFor: \"\".concat(props.id, \"-input\"),\n id: \"\".concat(props.id, \"-label\")\n }, rest);\n };\n\n var getListProps = function getListProps(rest) {\n return _objectSpread({\n role: 'listbox',\n 'aria-labelledby': \"\".concat(props.id, \"-label\"),\n id: \"\".concat(props.id, \"-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 rest = _objectWithoutProperties(providedProps, _excluded5);\n\n return _objectSpread({\n id: \"\".concat(props.id, \"-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;\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$navigato.userAgent.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}","/**\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\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 }, 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 }, 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 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 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 }));\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 }, propGetters), setters);\n}","export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}","export function debounce(fn, time) {\n var timerId = undefined;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (timerId) {\n clearTimeout(timerId);\n }\n\n timerId = setTimeout(function () {\n return fn.apply(void 0, args);\n }, time);\n };\n}","var n=function(t,s,r,e){var u;s[0]=0;for(var h=1;h=5&&((e||!n&&5===r)&&(h.push(r,0,e,s),r=6),n&&(h.push(r,n,0,s),r=6)),e=\"\"},a=0;a\"===t?(r=1,e=\"\"):e=t+e[0]:u?t===u?u=\"\":e+=t:'\"'===t||\"'\"===t?u=t:\">\"===t?(p(),r=1):r&&(\"=\"===t?(r=5,s=e,e=\"\"):\"/\"===t&&(r<5||\">\"===n[a][l+1])?(p(),3===r&&(h=h[0]),r=h,(h=h[0]).push(2,0,r),r=0):\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t?(p(),r=2):e+=t),3===r&&\"!--\"===e&&(r=4,h=h[0])}return p(),h}(s)),r),arguments,[])).length>1?r:r[0]}\n","export var SearchIcon = function SearchIcon(_ref) {\n var environment = _ref.environment;\n var element = environment.document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n element.setAttribute('class', 'aa-SubmitIcon');\n element.setAttribute('viewBox', '0 0 24 24');\n element.setAttribute('width', '20');\n element.setAttribute('height', '20');\n element.setAttribute('fill', 'currentColor');\n var path = environment.document.createElementNS('http://www.w3.org/2000/svg', 'path');\n path.setAttribute('d', 'M16.041 15.856c-0.034 0.026-0.067 0.055-0.099 0.087s-0.060 0.064-0.087 0.099c-1.258 1.213-2.969 1.958-4.855 1.958-1.933 0-3.682-0.782-4.95-2.050s-2.050-3.017-2.050-4.95 0.782-3.682 2.050-4.95 3.017-2.050 4.95-2.050 3.682 0.782 4.95 2.050 2.050 3.017 2.050 4.95c0 1.886-0.745 3.597-1.959 4.856zM21.707 20.293l-3.675-3.675c1.231-1.54 1.968-3.493 1.968-5.618 0-2.485-1.008-4.736-2.636-6.364s-3.879-2.636-6.364-2.636-4.736 1.008-6.364 2.636-2.636 3.879-2.636 6.364 1.008 4.736 2.636 6.364 3.879 2.636 6.364 2.636c2.125 0 4.078-0.737 5.618-1.968l3.675 3.675c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414z');\n element.appendChild(path);\n return element;\n};","export var ClearIcon = function ClearIcon(_ref) {\n var environment = _ref.environment;\n var element = environment.document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n element.setAttribute('class', 'aa-ClearIcon');\n element.setAttribute('viewBox', '0 0 24 24');\n element.setAttribute('width', '18');\n element.setAttribute('height', '18');\n element.setAttribute('fill', 'currentColor');\n var path = environment.document.createElementNS('http://www.w3.org/2000/svg', 'path');\n path.setAttribute('d', 'M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z');\n element.appendChild(path);\n return element;\n};","export var LoadingIcon = function LoadingIcon(_ref) {\n var environment = _ref.environment;\n var element = environment.document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n element.setAttribute('class', 'aa-LoadingIcon');\n element.setAttribute('viewBox', '0 0 100 100');\n element.setAttribute('width', '20');\n element.setAttribute('height', '20');\n element.innerHTML = \"\\n \\n\";\n return element;\n};","/* eslint-disable */\n\n/**\n * Touch-specific event aliases\n *\n * See https://w3c.github.io/touch-events/#extensions-to-the-globaleventhandlers-mixin\n */\nvar TOUCH_EVENTS_ALIASES = ['ontouchstart', 'ontouchend', 'ontouchmove', 'ontouchcancel'];\n/*\n * Taken from Preact\n *\n * See https://github.com/preactjs/preact/blob/6ab49d9020740127577bf4af66bf63f4af7f9fee/src/diff/props.js#L58-L151\n */\n\nfunction setStyle(style, key, value) {\n if (value === null) {\n style[key] = '';\n } else if (typeof value !== 'number') {\n style[key] = value;\n } else {\n style[key] = value + 'px';\n }\n}\n/**\n * Proxy an event to hooked event handlers\n */\n\n\nfunction eventProxy(event) {\n this._listeners[event.type](event);\n}\n/**\n * Set a property value on a DOM node\n */\n\n\nexport function setProperty(dom, name, value) {\n var useCapture;\n var nameLower;\n var oldValue = dom[name];\n\n if (name === 'style') {\n if (typeof value == 'string') {\n dom.style = value;\n } else {\n if (value === null) {\n dom.style = '';\n } else {\n for (name in value) {\n if (!oldValue || value[name] !== oldValue[name]) {\n setStyle(dom.style, name, value[name]);\n }\n }\n }\n }\n } // Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n else if (name[0] === 'o' && name[1] === 'n') {\n useCapture = name !== (name = name.replace(/Capture$/, ''));\n nameLower = name.toLowerCase();\n if (nameLower in dom || TOUCH_EVENTS_ALIASES.includes(nameLower)) name = nameLower;\n name = name.slice(2);\n if (!dom._listeners) dom._listeners = {};\n dom._listeners[name] = value;\n\n if (value) {\n if (!oldValue) dom.addEventListener(name, eventProxy, useCapture);\n } else {\n dom.removeEventListener(name, eventProxy, useCapture);\n }\n } else if (name !== 'list' && name !== 'tagName' && // HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n // setAttribute\n name !== 'form' && name !== 'type' && name !== 'size' && name !== 'download' && name !== 'href' && name in dom) {\n dom[name] = value == null ? '' : value;\n } else if (typeof value != 'function' && name !== 'dangerouslySetInnerHTML') {\n if (value == null || value === false && // ARIA-attributes have a different notion of boolean values.\n // The value `false` is different from the attribute not\n // existing on the DOM, so we can't remove it. For non-boolean\n // ARIA-attributes we could treat false as a removal, but the\n // amount of exceptions would cost us too many bytes. On top of\n // that other VDOM frameworks also always stringify `false`.\n !/^ar/.test(name)) {\n dom.removeAttribute(name);\n } else {\n dom.setAttribute(name, value);\n }\n }\n}\n\nfunction getNormalizedName(name) {\n switch (name) {\n case 'onChange':\n return 'onInput';\n\n default:\n return name;\n }\n}\n\nexport function setProperties(dom, props) {\n for (var name in props) {\n setProperty(dom, getNormalizedName(name), props[name]);\n }\n}\nexport function setPropertiesWithoutEvents(dom, props) {\n for (var name in props) {\n if (!(name[0] === 'o' && name[1] === 'n')) {\n setProperty(dom, getNormalizedName(name), props[name]);\n }\n }\n}","var _excluded = [\"children\"];\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 { setProperties } from './utils';\nexport function getCreateDomElement(environment) {\n return function createDomElement(tagName, _ref) {\n var _ref$children = _ref.children,\n children = _ref$children === void 0 ? [] : _ref$children,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var element = environment.document.createElement(tagName);\n setProperties(element, props);\n element.append.apply(element, _toConsumableArray(children));\n return element;\n };\n}","var _excluded = [\"autocompleteScopeApi\", \"environment\", \"classNames\", \"getInputProps\", \"getInputPropsCore\", \"onDetachedEscape\", \"state\"];\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 { getCreateDomElement } from '../getCreateDomElement';\nimport { setProperties } from '../utils';\nexport var Input = function Input(_ref) {\n var autocompleteScopeApi = _ref.autocompleteScopeApi,\n environment = _ref.environment,\n classNames = _ref.classNames,\n getInputProps = _ref.getInputProps,\n getInputPropsCore = _ref.getInputPropsCore,\n onDetachedEscape = _ref.onDetachedEscape,\n state = _ref.state,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var createDomElement = getCreateDomElement(environment);\n var element = createDomElement('input', props);\n var inputProps = getInputProps(_objectSpread({\n state: state,\n props: getInputPropsCore({\n inputElement: element\n }),\n inputElement: element\n }, autocompleteScopeApi));\n setProperties(element, _objectSpread(_objectSpread({}, inputProps), {}, {\n onKeyDown: function onKeyDown(event) {\n if (onDetachedEscape && event.key === 'Escape') {\n event.preventDefault();\n onDetachedEscape();\n return;\n }\n\n inputProps.onKeyDown(event);\n }\n }));\n return element;\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 { ClearIcon, Input, LoadingIcon, SearchIcon } from './elements';\nimport { getCreateDomElement } from './getCreateDomElement';\nimport { setProperties } from './utils';\nexport function createAutocompleteDom(_ref) {\n var autocomplete = _ref.autocomplete,\n autocompleteScopeApi = _ref.autocompleteScopeApi,\n classNames = _ref.classNames,\n environment = _ref.environment,\n isDetached = _ref.isDetached,\n _ref$placeholder = _ref.placeholder,\n placeholder = _ref$placeholder === void 0 ? 'Search' : _ref$placeholder,\n propGetters = _ref.propGetters,\n setIsModalOpen = _ref.setIsModalOpen,\n state = _ref.state,\n translations = _ref.translations;\n var createDomElement = getCreateDomElement(environment);\n var rootProps = propGetters.getRootProps(_objectSpread({\n state: state,\n props: autocomplete.getRootProps({})\n }, autocompleteScopeApi));\n var root = createDomElement('div', _objectSpread({\n class: classNames.root\n }, rootProps));\n var detachedContainer = createDomElement('div', {\n class: classNames.detachedContainer,\n onMouseDown: function onMouseDown(event) {\n event.stopPropagation();\n }\n });\n var detachedOverlay = createDomElement('div', {\n class: classNames.detachedOverlay,\n children: [detachedContainer],\n onMouseDown: function onMouseDown() {\n setIsModalOpen(false);\n autocomplete.setIsOpen(false);\n }\n });\n var labelProps = propGetters.getLabelProps(_objectSpread({\n state: state,\n props: autocomplete.getLabelProps({})\n }, autocompleteScopeApi));\n var submitButton = createDomElement('button', {\n class: classNames.submitButton,\n type: 'submit',\n title: translations.submitButtonTitle,\n children: [SearchIcon({\n environment: environment\n })]\n });\n var label = createDomElement('label', _objectSpread({\n class: classNames.label,\n children: [submitButton]\n }, labelProps));\n var clearButton = createDomElement('button', {\n class: classNames.clearButton,\n type: 'reset',\n title: translations.clearButtonTitle,\n children: [ClearIcon({\n environment: environment\n })]\n });\n var loadingIndicator = createDomElement('div', {\n class: classNames.loadingIndicator,\n children: [LoadingIcon({\n environment: environment\n })]\n });\n var input = Input({\n class: classNames.input,\n environment: environment,\n state: state,\n getInputProps: propGetters.getInputProps,\n getInputPropsCore: autocomplete.getInputProps,\n autocompleteScopeApi: autocompleteScopeApi,\n onDetachedEscape: isDetached ? function () {\n autocomplete.setIsOpen(false);\n setIsModalOpen(false);\n } : undefined\n });\n var inputWrapperPrefix = createDomElement('div', {\n class: classNames.inputWrapperPrefix,\n children: [label, loadingIndicator]\n });\n var inputWrapperSuffix = createDomElement('div', {\n class: classNames.inputWrapperSuffix,\n children: [clearButton]\n });\n var inputWrapper = createDomElement('div', {\n class: classNames.inputWrapper,\n children: [input]\n });\n var formProps = propGetters.getFormProps(_objectSpread({\n state: state,\n props: autocomplete.getFormProps({\n inputElement: input\n })\n }, autocompleteScopeApi));\n var form = createDomElement('form', _objectSpread({\n class: classNames.form,\n children: [inputWrapperPrefix, inputWrapper, inputWrapperSuffix]\n }, formProps));\n var panelProps = propGetters.getPanelProps(_objectSpread({\n state: state,\n props: autocomplete.getPanelProps({})\n }, autocompleteScopeApi));\n var panel = createDomElement('div', _objectSpread({\n class: classNames.panel\n }, panelProps));\n\n if (process.env.NODE_ENV === 'test') {\n setProperties(panel, {\n 'data-testid': 'panel'\n });\n }\n\n if (isDetached) {\n var detachedSearchButtonIcon = createDomElement('div', {\n class: classNames.detachedSearchButtonIcon,\n children: [SearchIcon({\n environment: environment\n })]\n });\n var detachedSearchButtonPlaceholder = createDomElement('div', {\n class: classNames.detachedSearchButtonPlaceholder,\n textContent: placeholder\n });\n var detachedSearchButton = createDomElement('button', {\n type: 'button',\n class: classNames.detachedSearchButton,\n onClick: function onClick() {\n setIsModalOpen(true);\n },\n children: [detachedSearchButtonIcon, detachedSearchButtonPlaceholder]\n });\n var detachedCancelButton = createDomElement('button', {\n type: 'button',\n class: classNames.detachedCancelButton,\n textContent: translations.detachedCancelButtonText,\n // Prevent `onTouchStart` from closing the panel\n // since it should be initiated by `onClick` only\n onTouchStart: function onTouchStart(event) {\n event.stopPropagation();\n },\n onClick: function onClick() {\n autocomplete.setIsOpen(false);\n setIsModalOpen(false);\n }\n });\n var detachedFormContainer = createDomElement('div', {\n class: classNames.detachedFormContainer,\n children: [form, detachedCancelButton]\n });\n detachedContainer.appendChild(detachedFormContainer);\n root.appendChild(detachedSearchButton);\n } else {\n root.appendChild(form);\n }\n\n return {\n detachedContainer: detachedContainer,\n detachedOverlay: detachedOverlay,\n inputWrapper: inputWrapper,\n input: input,\n root: root,\n form: form,\n label: label,\n submitButton: submitButton,\n clearButton: clearButton,\n loadingIndicator: loadingIndicator,\n panel: panel\n };\n}","export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { EMPTY_ARR } from \"./constants\";\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-ignore We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\nprocess._rerenderCount = 0;\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g.
{reuse}{reuse}
) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse =
\n\t\t\t//
{reuse}{reuse}
\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tnull,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tnewDom = childVNode._dom;\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\tchildVNode._children === oldVNode._children\n\t\t\t) {\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldDom,\n\t\t\t\t\tparentDom\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\toldChildren,\n\t\t\t\t\tnewDom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tif (\n\t\t\t\ttypeof newParentVNode.type == 'function' &&\n\t\t\t\toldChildren[i]._dom != null &&\n\t\t\t\toldChildren[i]._dom == newParentVNode._nextDom\n\t\t\t) {\n\t\t\t\t// If the newParentVNode.__nextDom points to a dom node that is about to\n\t\t\t\t// be unmounted, then get the next sibling of that vnode and set\n\t\t\t\t// _nextDom to it\n\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldParentVNode, i + 1);\n\t\t\t}\n\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\tlet c = childVNode._children;\n\tlet tmp = 0;\n\tfor (; c && tmp < c.length; tmp++) {\n\t\tlet vnode = c[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tvnode,\n\t\t\t\t\tvnode,\n\t\t\t\t\tc,\n\t\t\t\t\tvnode._dom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nfunction placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\toldVNode == null ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t// The value `false` is different from the attribute not\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t// that other VDOM frameworks also always stringify `false`.\n\n\t\tif (typeof value === 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (\n\t\t\tvalue != null &&\n\t\t\t(value !== false || (name[0] === 'a' && name[1] === 'r'))\n\t\t) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\n}\n\nfunction eventProxyCapture(e) {\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ } from '../constants';\nimport { Component, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc.state = c._nextState;\n\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\n\n\t\t\tc._dirty = false;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\t'setAttribute' in child === !!nodeType &&\n\t\t\t\t(nodeType ? child.localName === nodeType : child.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the -element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value ||\n\t\t\t\t\t(nodeType === 'progress' && !i) ||\n\t\t\t\t\t// This is only for IE 11 to fix